Return-Path: Delivered-To: apmail-directory-dev-archive@www.apache.org Received: (qmail 51831 invoked from network); 7 Mar 2011 23:10:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 7 Mar 2011 23:10:15 -0000 Received: (qmail 65320 invoked by uid 500); 7 Mar 2011 23:10:15 -0000 Delivered-To: apmail-directory-dev-archive@directory.apache.org Received: (qmail 65276 invoked by uid 500); 7 Mar 2011 23:10:15 -0000 Mailing-List: contact dev-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list dev@directory.apache.org Received: (qmail 65268 invoked by uid 99); 7 Mar 2011 23:10:15 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Mar 2011 23:10:15 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of akarasulu@gmail.com designates 209.85.215.178 as permitted sender) Received: from [209.85.215.178] (HELO mail-ey0-f178.google.com) (209.85.215.178) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Mar 2011 23:10:10 +0000 Received: by eya25 with SMTP id 25so2005287eya.37 for ; Mon, 07 Mar 2011 15:09:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:date:x-google-sender-auth :message-id:subject:from:to:content-type:content-transfer-encoding; bh=vsbBQxJtqFSLWHTgHIFzlihTfBXMxvPY02LseFUu5a8=; b=XMHqgVosGW9ZtGMptH+REAyeWtw/PJddJ7HtIqyivXt5/cI0JAV2yDj6TufJF7MOtj ERBeLJR1zTRqd1CsYxzdJqyUykAAuM9dXiO7/BLqff1KWosjPFVcP2lqf7LA77a4/OAE 9oUtJJOWKVLS3T4rzVgOg0e5mGnhbQZ+NFF9c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type:content-transfer-encoding; b=O5g2YIlbY0qTylc13QU7p6JdmIQ6pNG0WZQuvEk3Hs60jur1yD/x8W8gXoDQZutsYj zoWiyf2xS/BHBmLaLcY5rtdvNuo5O1gxneMILucAE6oPN2py8YaXDx4IcVFOj5jKKnp2 Uwcr17AERDmvsg+tzsLX3L8JsiAF9oanfavTw= MIME-Version: 1.0 Received: by 10.216.187.82 with SMTP id x60mr3334132wem.9.1299539388833; Mon, 07 Mar 2011 15:09:48 -0800 (PST) Sender: akarasulu@gmail.com Received: by 10.216.51.15 with HTTP; Mon, 7 Mar 2011 15:09:48 -0800 (PST) Date: Tue, 8 Mar 2011 01:09:48 +0200 X-Google-Sender-Auth: JGvn_RVDtgBi8QmyxybRIk8femU Message-ID: Subject: [Shared] [Model] What was the reason for removing the schema entity interfaces like AttributeType? From: Alex Karasulu To: Apache Directory Developers List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hi all, I just looked through the schema packages and noticed that it has become another hives nest of inter-dependency. I'm not blaming anyone here so please don't get the wrong idea. I just want to avoid these trends because they cause more complexity and lead more unnecessary work. Let me show y'all some code to be clear. There once were clean simple schema entity interfaces like AttributeType that were used to=A0shield the API from getting contaminated by irrelevant implementation methods and=A0functionality. [0] shows an example of a clean interface which was there earlier that most of the code handled. This was removed and replaced by a class. Now look here [1] to see the big 1800 line file mixed with all sorts of functionality [1] like=A0addToRegistries(). This method has no place in this object which is now used globally. As a result, interdependencies have increased through and through inside these packages as well as in the server which now depends on these out of place methods. It's going to be a PITA to clean this up and the work will be twice, maybe more, as hard as when the interfaces were removed. The rest of the code base now has come to depend on these non-essential methods specific to some function or use case associated with implementation details. I'm trying to get some traction with making schema loadable and this is yet another surprise to have to contend with. Please let's not remove interfaces just because they seem unappealing. When in doubt, leave the interface where it is, it can't hurt, but the opposite can hurt a lot. I'm sitting here starring at this nest and wondering what the heck I should do first. Best Regards, Alex [0] -=A0http://goo.gl/2j5dT [1] -=A0http://goo.gl/G7wBV