This sounds great Emmanuel thanks!


On 10/19/07, Emmanuel Lecharny <> wrote:

while removing the SASL chain, I had some problem with some access to
DirectoryService instance. As the BindHandler were initialized in the
LdapServer constructor, the DirectoryService is null as it is
initialized after.

What I suggest is to initialize the default handler in the
LdapServer.start() method,
just before the server launch :

         * The serveur is now initialized, we can
         * install the default requests handlers, which need
         * access to the DirectoryServer instance.

        startLDAP0( getIpPort(), chain );

        started = true;

Here, the installDefauktHandlers() method will install the default
handlers if no specific handler has been installed :

     * Install the LDAP request handlers.
    private void installDefaultHandlers()
        if ( getAbandonHandler() == null )
            setAbandonHandler( new DefaultAbandonHandler() );


I have tested this approach, and it works perfectly well, and let the
user define its own handler in a embedded server.

I will commit this code in bigbang branch, but if anyone has a better
solution, I would be glad to revert this code !

Emmanuel Lécharny