Hi Emm,

On Tue, Mar 31, 2009 at 11:20 PM, Emmanuel Lecharny <elecharny@apache.org> wrote:
So here is what I have from now on :

Simple bind (blocking) :
  public LdapResponse bind()  throws LdapException
  public LdapResponse bind( String name ) throws Exception
  public LdapResponse bind( String name, String credentials ) throws LdapException
  public LdapResponse bind( String name, byte[] credentials )  throws LdapException

For the common (90%) case perhaps just bind() and bind( String, String ) works no?

Sasl and other complex operations (blocking and not blocking):
  public LdapResponse bind( BindRequest bindRequest ) throws LdapException
  public void bind( BindRequest bindRequest, BindListener bindListener ) throws LdapException


I was trying to evaluate if it's a good idea to have bindSasl() methods, instead of having a generic bind( BindRequest). In this case, we will have this additional method  :
  public LdapResponse bindSasl( String name, String mechanism, byte[] credentials )  throws LdapException

Yeah this helps with the simple case.  People are using SASL more and more these days.  More common though people are using StartTLS.  Maybe that's something to keep in mind.  But do  we really need this in some kind of simple case?  Again we want to balance convenience with congestion to make the API as easy to use and understand as possible.