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).
The current client-api does both, i.e checks if the server supports the 'treedelete' control, if Yes, then uses it else deletes recursively
What about putting these helpful convenience methods to a Helper class? DeleteHelper.deleteTree( LdapConnection, LdapDN ) DeleteHelper.deleteChildren( LdapConnection, LdapDN)
IMHO, I don't think that the current API has *too* many methods with completely different semantics (after excluding the helpful overloaded methods), having said this, I prefer to apply the suggested changes on LdapConnection and lets review the whole public API again here and see if it is better to move some methods to corresponding XXXHelper classes. Kiran Ayyagari
