On 3/25/10 11:12 PM, Stefan Zoerner wrote:
Hi all,
Hi Stefan,

I will respond in detail to you mail, but first, why not using the annotations to start a server ?

It's way easier, you don't have to worry about what's going on and what needs to be initialized first.

I'm also wondering if this should not be the standard way to start the server.

Let me give you an example :

package org.apache.directory.server.factory;

import org.apache.commons.io.FileUtils;
import org.apache.directory.server.core.DirectoryService;
import org.apache.directory.server.core.annotations.CreateDS;
import org.apache.directory.server.core.factory.DSAnnotationProcessor;

public class MyServer
{

    @CreateDS( name = "myServer" )
    public static void main( String[] args ) throws Exception
    {
DirectoryService service = DSAnnotationProcessor.getDirectoryService();

        if ( service.isStarted() )
        {
            System.out.println( "Service started !" );
        }

        service.shutdown();
        FileUtils.deleteDirectory( service.getWorkingDirectory() );
    }
}

That should be enough to start a server.

You can of course define some more elements :

package org.apache.directory.server.factory;

import org.apache.commons.io.FileUtils;
import org.apache.directory.server.core.DirectoryService;
import org.apache.directory.server.core.annotations.CreateDS;
import org.apache.directory.server.core.factory.DSAnnotationProcessor;

public class MyBetterServer
{

    @CreateDS(
        name = "MethodDSWithPartition",
        partitions =
        {
            @CreatePartition(
                name = "example",
                suffix = "dc=example,dc=com",
                contextEntry = @ContextEntry(
                    entryLdif =
                        "dn: dc=example,dc=com\n" +
                        "dc: example\n" +
                        "objectClass: top\n" +
                        "objectClass: domain\n\n" ),
                indexes =
                {
                    @CreateIndex( attribute = "objectClass" ),
                    @CreateIndex( attribute = "dc" ),
                    @CreateIndex( attribute = "ou" )
                } )
        } )
    @CreateLdapServer (
        transports =
        {
            @CreateTransport( protocol = "LDAP" ),
            @CreateTransport( protocol = "LDAPS" )
        })
    public static void main( String[] args ) throws Exception
    {
DirectoryService service = DSAnnotationProcessor.getDirectoryService();

        if ( service.isStarted() )
        {
            System.out.println( "Service started !" );
        }

        service.shutdown();
        FileUtils.deleteDirectory( service.getWorkingDirectory() );
    }
}


Does this sound good to you ?

--

Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com


Reply via email to