On Thu, Jul 23, 2009 at 7:25 AM, Emmanuel Lecharny <elecharny@apache.org> wrote:
Stefan Seelmann wrote:
Emmanuel Lecharny wrote:
Alex Karasulu wrote:
Hmmm if I want to delete a tree of entries then I will have no choice
but to
wrap my LdapDN in a DeleteRequest which I must now create, just to add
control to delete the subtree.
Yes, true. IMO, your proposal (deleteTree) is probably better.


I think the main API shouldn't be overloaded with too much convenience
methods and should be close to the LDAP protocol. I also think the main
API should not implement such algorithms (if server supports
TreeDeleteControl use it, else search/delete recursively).
You may be right. If the server does not support the control, what should we do ? Implement the recursive deletion cliennt side ? That does not make a lot of sense, IMO.

What about putting these helpful convenience methods to a Helper class?
 DeleteHelper.deleteTree( LdapConnection, LdapDN )
 DeleteHelper.deleteChildren( LdapConnection, LdapDN)

Maybe we can split the API in two parts :
- the core API
- an extended API (something like ldapx, as Sun define a javax)

thoughts ?

Pretty much agree but maybe we don't have to go to that degree.  The helpers recommended sound nice.

I don't want to talk for Stefan but I think he wants the reduced set of methods needed to just get the job done: sort of like the philosophy of RISC.  We can expose more convenience utility methods that build on the minimal set to provide more convenience to our users outside of the minimal set without cluttering it.  I like this thought process.

Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org