On Mon, Jan 3, 2011 at 2:02 AM, Emmanuel Lecharny <elecharny@gmail.com> wrote:
On 1/3/11 12:53 AM, Alex Karasulu wrote:
On Mon, Jan 3, 2011 at 1:29 AM, Emmanuel Lecharny<elecharny@gmail.com>wrote:

On 1/2/11 4:05 PM, Alex Karasulu wrote:

+1

The dn2subentry cache sounds like a valid optimization and making it a top
level accesible cache also sounds right.

I went a step further, but I sent a mail explaining this extra step.


Additionally i checked out depa on DnNode and it seems out of place in
shared. Had the thought that it might be best close to where it is being
used.  WDYT?

DnNode is not ony used for subentries, it's also used by referrals and
partitions. We could move it to core-api, but I believe it's better in
shared, as it may be used by the client API.


Yes I know it's being used for referrals and partitions. Usages are in
apacheds-core and in apacheds-core-api.

There are no usages in the client API.
Not yet, but I don't want to obliterate this option.

Agreed there's no need to "obliterate" the option. However in terms of API design and maintenance conventions we can add this at any point in time without any issue whatsoever. However removing it especially after the shared API goes 1.0 is going to having to involve deprecation procedures. We're going to be stuck with it if we are mistaken.

Currently it's code smell (Fowler) wreaks of a server implementation detail while being exposed as part of the shared API.

The client will most certainly use this data structure when we will write a GUI to manage APs.
 
If and when such a Studio GUI plugin is built we can always add the data structure at any time if we still feel it is necessary. However we might not really want to do this since Studio now depends on ApacheDS proper so it can see the server API's as well. There might not be a need to inject this into the shared API after all. 

Also DnNode is not going to be used by non-ui applications using the LDAP client API proper since these administrative actions leverage simple LDAP operations.   

--
Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org
To set up a meeting with me: http://tungle.me/AlexKarasulu