this should work, did you check if the server was started properly?
and if it does, then check the connectivity issue to the said host and
port using telnet.

I don't see anything else that stops your client from connecting if the
server is
running and the port is reachable.

On Tue, May 19, 2015 at 10:49 AM, Bajaj, Yogesh <[email protected]>
wrote:

> import java.io.File;
>
> import java.util.List;
>
>
>
> import org.apache.directory.api.ldap.model.name.Dn;
>
> import org.apache.directory.api.ldap.model.schema.SchemaManager;
>
> import org.apache.directory.api.ldap.model.schema.registries.SchemaLoader;
>
> import org.apache.directory.api.ldap.schema.extractor.SchemaLdifExtractor;
>
> import
> org.apache.directory.api.ldap.schema.extractor.impl.DefaultSchemaLdifExtractor;
>
> import org.apache.directory.api.ldap.schema.loader.LdifSchemaLoader;
>
> import
> org.apache.directory.api.ldap.schema.manager.impl.DefaultSchemaManager;
>
>
>
> import org.apache.directory.api.util.exception.Exceptions;
>
> import org.apache.directory.server.constants.ServerDNConstants;
>
> import org.apache.directory.server.core.DefaultDirectoryService;
>
> import org.apache.directory.server.core.api.CacheService;
>
> import org.apache.directory.server.core.api.DirectoryService;
>
> import org.apache.directory.server.core.api.DnFactory;
>
> import org.apache.directory.server.core.api.InstanceLayout;
>
> import org.apache.directory.server.core.api.schema.SchemaPartition;
>
> import
> org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmPartition;
>
> import org.apache.directory.server.core.partition.ldif.LdifPartition;
>
> import org.apache.directory.server.core.shared.DefaultDnFactory;
>
> import org.apache.directory.server.i18n.I18n;
>
> import org.apache.directory.server.ldap.LdapServer;
>
> import org.apache.directory.server.protocol.shared.transport.TcpTransport;
>
> import org.apache.logging.log4j.LogManager;
>
> import org.apache.logging.log4j.Logger;
>
>
>
> /**
>
> * A simple example exposing how to embed Apache Directory Server from the
>
> * bleeding trunk into an application.
>
> *
>
>  * @author <a href="mailto:[email protected]";>Apache Directory
>
> *         Project</a>
>
> * @version $Rev$, $Date$
>
> */
>
>
>
>
>
> public class EmbeddedADS  {
>
>
>
>
>
>     private static final Logger LOGGER =
> LogManager.getLogger(EmbeddedADS.class);
>
>     /** The directory service */
>
>     private DirectoryService service;
>
>
>
>     /** The LDAP server */
>
>     private LdapServer server;
>
>
>
>     private static EmbeddedADS instance;
>
>
>
>
>
>
>
>     public static EmbeddedADS getInstance(){
>
>         if(instance == null){
>
>             instance= new EmbeddedADS();
>
>         }
>
>         return instance;
>
>     }
>
>
>
>     /**
>
>      * initialize the schema manager and add the schema partition to
> diectory
>
>      * service
>
>      *
>
>      * @throws Exception
>
>      *             if the schema LDIF files are not found on the classpath
>
>      */
>
>     private void initSchemaPartition() throws Exception {
>
>         final InstanceLayout instanceLayout =
> this.service.getInstanceLayout();
>
>
>
>         final File schemaPartitionDirectory = new File(
>
>                 instanceLayout.getPartitionsDirectory(), "schema");
>
>
>
>         // Extract the schema on disk (a brand new one) and load the
> registries
>
>         if (schemaPartitionDirectory.exists()) {
>
>             LOGGER.debug("schema partition already exists, skipping schema
> extraction");
>
>         } else {
>
>             final SchemaLdifExtractor extractor = new
> DefaultSchemaLdifExtractor(
>
>                     instanceLayout.getPartitionsDirectory());
>
>             extractor.extractOrCopy();
>
>         }
>
>
>
>         final SchemaLoader loader = new LdifSchemaLoader(
>
>                 schemaPartitionDirectory);
>
>         final SchemaManager schemaManager = new
> DefaultSchemaManager(loader);
>
>
>
>         // final DnFactory dnFactory = new
>
>         // DefaultDnFactory(schemaManager,service.getDnFactory());
>
>
>
>         // We have to load the schema now, otherwise we won't be able
>
>         // to initialize the Partitions, as we won't be able to parse
>
>         // and normalize their suffix Dn
>
>         schemaManager.loadAllEnabled();
>
>
>
>         final List<Throwable> errors = schemaManager.getErrors();
>
>
>
>         if (errors.size() != 0) {
>
>             throw new Exception(I18n.err(I18n.ERR_317,
>
>                     Exceptions.printErrors(errors)));
>
>         }
>
>
>
>         this.service.setSchemaManager(schemaManager);
>
>
>
>         // Init the LdifPartition with schema
>
>        DnFactory dnFactory = new DefaultDnFactory(schemaManager,
> this.service.getCacheService().getCache("dnCache"));
>
>        this.service.setDnFactory(dnFactory);
>
>         final LdifPartition schemaLdifPartition = new LdifPartition(
>
>                 schemaManager,  service.getDnFactory());
>
>
>
>
> schemaLdifPartition.setPartitionPath(schemaPartitionDirectory.toURI());
>
>
>
>         // The schema partition
>
>         final SchemaPartition schemaPartition = new SchemaPartition(
>
>                 schemaManager);
>
>         schemaPartition.setWrappedPartition(schemaLdifPartition);
>
>         this.service.setSchemaPartition(schemaPartition);
>
>     }
>
>
>
>     /**
>
>      * Initialize the server. It creates the partition, adds the index, and
>
>      * injects the context entries for the created partitions.
>
>      *
>
>      * @param workDir
>
>      *            the directory to be used for storing the data
>
>      * @throws Exception
>
>      *             if there were some problems while initializing the
> system
>
>      */
>
>     private void initDirectoryService(final File workDir) throws Exception
> {
>
>         // Initialize the LDAP service
>
>         this.service = new DefaultDirectoryService();
>
>         this.service.setInstanceLayout(new InstanceLayout(workDir));
>
>
>
>         final CacheService cacheService = new CacheService();
>
>         cacheService.initialize(this.service.getInstanceLayout());
>
>
>
>         this.service.setCacheService(cacheService);
>
>
>
>         // first load the schema
>
>         this.initSchemaPartition();
>
>
>
>         // then the system partition
>
>         // this is a MANDATORY partition
>
>         // DO NOT add this via addPartition() method, trunk code complains
> about
>
>         // duplicate partition
>
>         // while initializing
>
>         final JdbmPartition systemPartition = new JdbmPartition(
>
>                 this.service.getSchemaManager(), service.getDnFactory());
>
>         systemPartition.setId("system");
>
>         systemPartition.setPartitionPath(new File(this.service
>
>                 .getInstanceLayout().getPartitionsDirectory(),
> systemPartition
>
>                 .getId()).toURI());
>
>         systemPartition.setSuffixDn(new Dn(ServerDNConstants.SYSTEM_DN));
>
>         systemPartition.setSchemaManager(this.service.getSchemaManager());
>
>
>
>         // mandatory to call this method to set the system partition
>
>         // Note: this system partition might be removed from trunk
>
>         this.service.setSystemPartition(systemPartition);
>
>
>
>         // Disable the ChangeLog system
>
>         this.service.getChangeLog().setEnabled(false);
>
>         this.service.setDenormalizeOpAttrsEnabled(true);
>
>         this.service.setShutdownHookEnabled(true);
>
>
>
>         // And start the service
>
>         this.service.startup();
>
>
>
>         // We are all done !
>
>     }
>
>
>
>     public EmbeddedADS()  {
>
>
>
>     }
>
>
>
>     /**
>
>      * Creates a new instance of EmbeddedADS. It initializes the directory
>
>      * service.
>
>      *
>
>      * @throws Exception
>
>      *             If something went wrong
>
>      */
>
>     public void init(final File workDir) throws Exception {
>
>         if (!workDir.exists()) {
>
>             workDir.mkdirs();
>
>             this.initDirectoryService(workDir);
>
>             this.service.shutdown();
>
>         }
>
>
>
>         this.initDirectoryService(workDir);
>
>     }
>
>
>
>     /**
>
>      * starts the LdapServer
>
>      *
>
>      * @throws Exception
>
>      */
>
>     public void startServer(File workDir, String certFilePath,int
> serverPort) throws Exception {
>
>         init(workDir);
>
>         this.server = new LdapServer();
>
>         TcpTransport transports = new TcpTransport(serverPort);
>
>
>
>         this.server.setTransports(transports);
>
>         this.server.setDirectoryService(this.service);
>
>         this.server.setKeystoreFile(certFilePath);
>
>
>
>
>
>         this.server.setCertificatePassword("changeit");
>
>        this.server.loadKeyStore();
>
>         transports.setEnableSSL(true);
>
>         LOGGER.debug("ssl enabled {}",server.isEnableLdaps(transports));
>
>
>
>
>
>         this.server.start();
>
>
>
>
>
>         LOGGER.debug("The server is running.");
>
>     }
>
>
>
>     public void shutdownServer() throws Exception {
>
>
>
>
>
>         if(this.server != null){
>
>             try {
>
>                 this.server.stop();
>
>                 LOGGER.debug("LDAP Server stop done");
>
>             } catch (Exception e) {
>
>               LOGGER.error("exception in stop server",e);
>
>             }
>
>         }
>
>
>
>
>
>         if(this.service != null){
>
>             try {
>
>                 this.service.shutdown();
>
>                 LOGGER.debug("Dir Service shutdwon done");
>
>             } catch (Exception e) {
>
>                 LOGGER.error("exception in shutdown dir service",e);
>
>             }
>
>         }
>
>
>
>
>
>     }
>
>
>
> }
>
>
>
> From: Kiran Ayyagari [mailto:[email protected]]
> Sent: Monday, May 18, 2015 10:46 PM
> To: [email protected]
> Cc: Bajaj, Yogesh
> Subject: Re: Enable SSL for Embed Apache DS Server
>
>
>
>
>
>
>
> On Tue, May 19, 2015 at 10:42 AM, Bajaj, Yogesh <[email protected]>
> wrote:
>
>
> I changed code to use port 10636. Still connection time out is happening
> on bind call. Client code is below.
>
> you need to give your code where you embedded the server, if it contains
> any sensitive information
> please remove those lines and send
>
>         private static void test1(){
>                 try( LdapConnection connection = new
> LdapNetworkConnection( "vsvphxasldev01", 10636,true);) {
>
>                     connection.bind( "uid=admin,ou=system", "secret" );
> // here connection time out is happening
>                         EntryCursor cursor = connection.search(
> "ou=configuration", "(&(objectclass=*))", SearchScope.SUBTREE, "*" );
>
>                         while ( cursor.next() ){
>                             Entry entry = cursor.get();
>
>                             System.out.println(entry);
>                         }
>                         connection.unBind();
>                 } catch (LdapException | CursorException | IOException e) {
>                     // TODO Auto-generated catch block
>                     e.printStackTrace();
>
>                 }
>             }
>
>         -----Original Message-----
>         From: Kiran Ayyagari [mailto:[email protected]]
>         Sent: Friday, May 15, 2015 8:24 PM
>         To: [email protected]
>         Subject: Re: Enable SSL for Embed Apache DS Server
>
>         On Sat, May 16, 2015 at 4:28 AM, Bajaj, Yogesh <
> [email protected]> wrote:
>
>         > Thanks for your reply and help.
>         >
>         > Local System :-
>         >
>         > For embed server, ssl port is 10399. I am able to connect it
> using
>         > Apache Ldap Studio browser as well as
>
>         are you sure 10389 is your ssl port? just double checking cause
> this is the default non-ssl port in ApacheDS show us your client code part
> where you are attempting to connect
>
>         > do search using LDAP client api successfully locally. For LDAP
> client
>         > api, I installed certificates in key store to avoid ssl
> handshake error.
>         >
>         > On Client dev system :-
>         > Neither apacheds  or nor ldap client api prog are able to
> connect to
>         > embed ldap server on client m/c.
>         > I am getting below exception and ssl trace log is below :-
>         >
>         >
>         > trustStore is: C:\trusted.ks
>         > trustStore type is : jks
>         > trustStore provider is :
>         > init truststore
>         > adding as trusted cert:
>         >   Subject: CN=ess-tools, OU=ApacheDS, O=ASF, C=US
>         >   Issuer:  CN=ess-tools, OU=ApacheDS, O=ASF, C=US
>         >   Algorithm: RSA; Serial number: 0x3ddca171
>         >   Valid from Thu May 14 00:14:42 EDT 2015 until Sat May 13
> 00:14:42
>         > EDT
>         > 2017
>         >
>         > 2015-05-15 16:22:16,531 DEBUG Using default SystemClock for
> timestamps
>         > 2015-05-15 16:22:16:547 LdapConnectionConfig [DEBUG] found
>         > X509TrustManager sun.security.ssl.X509TrustManagerImpl@28c75ad4
>         > 2015-05-15 16:22:18:139 DefaultLdapCodecService [INFO] Registered
>         > pre-bundled control factory: 1.3.6.1.4.1.18060.0.0.1
>         > 2015-05-15 16:22:18:203 DefaultLdapCodecService [INFO] Registered
>         > pre-bundled control factory: 2.16.840.1.113730.3.4.7
>         > 2015-05-15 16:22:18:234 DefaultLdapCodecService [INFO] Registered
>         > pre-bundled control factory: 2.16.840.1.113730.3.4.2
>         > 2015-05-15 16:22:18:265 DefaultLdapCodecService [INFO] Registered
>         > pre-bundled control factory: 2.16.840.1.113730.3.4.18
>         > 2015-05-15 16:22:18:406 DefaultLdapCodecService [INFO] Registered
>         > pre-bundled control factory: 1.2.840.113556.1.4.319
>         > 2015-05-15 16:22:18:468 DefaultLdapCodecService [INFO] Registered
>         > pre-bundled control factory: 2.16.840.1.113730.3.4.3
>         > 2015-05-15 16:22:18:499 DefaultLdapCodecService [INFO] Registered
>         > pre-bundled control factory: 1.3.6.1.4.1.4203.1.10.1
>         > 2015-05-15 16:22:18:577 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.3.6.1.4.1.18060.0.0.1
>         > 2015-05-15 16:22:18:577 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 2.16.840.1.113730.3.4.7
>         > 2015-05-15 16:22:18:577 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 2.16.840.1.113730.3.4.2
>         > 2015-05-15 16:22:18:577 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 2.16.840.1.113730.3.4.18
>         > 2015-05-15 16:22:18:577 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.2.840.113556.1.4.319
>         > 2015-05-15 16:22:18:577 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 2.16.840.1.113730.3.4.3
>         > 2015-05-15 16:22:18:577 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.3.6.1.4.1.4203.1.10.1
>         > 2015-05-15 16:22:18:671 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.3.6.1.4.1.42.2.27.8.5.1
>         > 2015-05-15 16:22:18:936 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 2.16.840.1.113730.3.4.9
>         > 2015-05-15 16:22:18:983 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 2.16.840.1.113730.3.4.10
>         > 2015-05-15 16:22:19:061 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.3.6.1.4.1.4203.1.9.1.3
>         > 2015-05-15 16:22:19:108 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.3.6.1.4.1.4203.1.9.1.4
>         > 2015-05-15 16:22:19:170 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.3.6.1.4.1.4203.1.9.1.1
>         > 2015-05-15 16:22:19:170 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.3.6.1.4.1.4203.1.9.1.2
>         > 2015-05-15 16:22:19:233 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.2.840.113556.1.4.473
>         > 2015-05-15 16:22:19:265 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.2.840.113556.1.4.474
>         > 2015-05-15 16:22:19:296 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > control factory: 1.2.840.113556.1.4.841
>         > 2015-05-15 16:22:19:467 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > extended operation factory: 1.3.6.1.1.8
>         > 2015-05-15 16:22:19:686 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > extended operation factory: 1.3.6.1.4.1.18060.0.1.8
>         > 2015-05-15 16:22:19:857 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > extended operation factory: 1.3.6.1.4.1.18060.0.1.3
>         > 2015-05-15 16:22:20:029 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > extended operation factory: 1.3.6.1.4.1.18060.0.1.6
>         > 2015-05-15 16:22:20:123 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > extended operation factory: 1.3.6.1.4.1.18060.0.1.5
>         > 2015-05-15 16:22:20:294 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > extended operation factory: 1.3.6.1.4.1.4203.1.11.1
>         > 2015-05-15 16:22:20:410 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > extended operation factory: 1.3.6.1.4.1.4203.1.11.3
>         > 2015-05-15 16:22:20:551 CodecFactoryUtil [INFO] Registered
> pre-bundled
>         > extended operation factory: 1.3.6.1.4.1.1466.20037 trigger
> seeding of
>         > SecureRandom done seeding SecureRandom
>         > 2015-05-15 16:23:29:440 LdapNetworkConnection [DEBUG] ------>>
>         > Connection
>         > error: Connection timed out: no further information
>         >
> org.apache.directory.ldap.client.api.exception.InvalidConnectionException:
>         > Cannot connect to the server: Connection timed out: no further
> information
>         >         at
>         >
> org.apache.directory.ldap.client.api.LdapNetworkConnection.connect(LdapNetworkConnection.java:658)
>         >         at
>         >
> org.apache.directory.ldap.client.api.LdapNetworkConnection.bindAsync(LdapNetworkConnection.java:1268)
>         >         at
>         >
> org.apache.directory.ldap.client.api.LdapNetworkConnection.bind(LdapNetworkConnection.java:1188)
>         >         at
>         >
> org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:127)
>         >         at
>         >
> org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:112)
>         >         at com.whg.ess.tool.ldap.LdapSvc.test1(LdapSvc.java:68)
>         >         at com.whg.ess.tool.ldap.LdapSvc.main(LdapSvc.java:27)
>         > Caused by: java.net.ConnectException: Connection timed out: no
> further
>         > information
>         >         at sun.nio.ch.SocketChannelImpl.checkConnect(Native
> Method)
>         >         at
>         >
> sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
>         >         at
>         >
> org.apache.mina.transport.socket.nio.NioSocketConnector.finishConnect(NioSocketConnector.java:221)
>         >         at
>         >
> org.apache.mina.transport.socket.nio.NioSocketConnector.finishConnect(NioSocketConnector.java:47)
>         >         at
>         >
> org.apache.mina.core.polling.AbstractPollingIoConnector.processConnections(AbstractPollingIoConnector.java:459)
>         >         at
>         >
> org.apache.mina.core.polling.AbstractPollingIoConnector.access$700(AbstractPollingIoConnector.java:65)
>         >         at
>         >
> org.apache.mina.core.polling.AbstractPollingIoConnector$Connector.run(AbstractPollingIoConnector.java:527)
>         >         at
>         >
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
>         >         at
>         >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         >         at
>         >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         >         at java.lang.Thread.run(Thread.java:745)
>         >
>         >
>         > Thanks
>         > Yogesh Bajaj
>         >
>         >
>         > -----Original Message-----
>         > From: Emmanuel Lécharny [mailto:[email protected]]
>         > Sent: Wednesday, May 13, 2015 5:42 PM
>         > To: [email protected]
>         > Subject: Re: Enable SSL for Embed Apache DS Server
>         >
>         > Le 13/05/15 22:03, Bajaj, Yogesh a écrit :
>         > > Hi Friends,
>         > >
>         > > I set up Apache DS embed server. I am using one of aspect
> provided
>         > > in
>         > JIRA ticket  to avoid multiple resources issue.
>         > > This is working fine on local laptop. Now I want to enable SSL
> for
>         > > embed
>         > LDAP server  as once I am deploying it on client dev server , I
> am not
>         > able to connect it. My client dev server requires ssh connection.
>         >
>         > SSL and SSH are two different things.
>         >
>         > The code you provided is correct. The server should be SSL
> enabled.
>         > have you tried to connect to the server on port 10636 (or
> whatever
>         > value serverPort contains) ?
>         > >
>         > > Please advise, how to enable SSL for embed LDAP server?. I
> already
>         > > did
>         > below in embed ldap server.
>         > >
>         > > transports.setEnableSSL(true);
>         > >
>         > > I am using latest Apache DS version 2.0.0-M20.
>         > >
>         > >
>         > > Embed LDAP server java file :-
>         > >
>         > > import java.io.File;
>         > > import java.util.List;
>         > >
>         > > import org.apache.directory.api.ldap.model.name.Dn;
>         > > import
> org.apache.directory.api.ldap.model.schema.SchemaManager;
>         > > import
>         > >
> org.apache.directory.api.ldap.model.schema.registries.SchemaLoader;
>         > > import
>         > >
> org.apache.directory.api.ldap.schema.extractor.SchemaLdifExtractor;
>         > > import
>         > >
> org.apache.directory.api.ldap.schema.extractor.impl.DefaultSchemaLdi
>         > > fE
>         > > xtractor; import
>         > > org.apache.directory.api.ldap.schema.loader.LdifSchemaLoader;
>         > > import
>         > >
> org.apache.directory.api.ldap.schema.manager.impl.DefaultSchemaManag
>         > > er
>         > > ;
>         > >
>         > > import org.apache.directory.api.util.exception.Exceptions;
>         > > import org.apache.directory.server.constants.ServerDNConstants;
>         > > import
> org.apache.directory.server.core.DefaultDirectoryService;
>         > > import org.apache.directory.server.core.api.CacheService;
>         > > import org.apache.directory.server.core.api.DirectoryService;
>         > > import org.apache.directory.server.core.api.DnFactory;
>         > > import org.apache.directory.server.core.api.InstanceLayout;
>         > > import
> org.apache.directory.server.core.api.schema.SchemaPartition;
>         > > import
>         > >
> org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmParti
>         > > ti
>         > > on; import
>         > > org.apache.directory.server.core.partition.ldif.LdifPartition;
>         > > import
> org.apache.directory.server.core.shared.DefaultDnFactory;
>         > > import org.apache.directory.server.i18n.I18n;
>         > > import org.apache.directory.server.ldap.LdapServer;
>         > > import
>         > >
> org.apache.directory.server.protocol.shared.transport.TcpTransport;
>         > > import org.apache.logging.log4j.LogManager;
>         > > import org.apache.logging.log4j.Logger;
>         > >
>         > >
>         > >
>         > > public class EmbeddedADS  {
>         > >
>         > >
>         > >
>         > >     private static final Logger LOGGER =
>         > LogManager.getLogger(EmbeddedADS.class);
>         > >     /** The directory service */
>         > >     private DirectoryService service;
>         > >
>         > >     /** The LDAP server */
>         > >     private LdapServer server;
>         > >
>         > >     private static EmbeddedADS instance;
>         > >
>         > >
>         > >
>         > >     public static EmbeddedADS getInstance(){
>         > >         if(instance == null){
>         > >             instance= new EmbeddedADS();
>         > >         }
>         > >         return instance;
>         > >     }
>         > >
>         > >     /**
>         > >      * initialize the schema manager and add the schema
> partition to
>         > diectory
>         > >      * service
>         > >      *
>         > >      * @throws Exception
>         > >      *             if the schema LDIF files are not found on
> the
>         > classpath
>         > >      */
>         > >     private void initSchemaPartition() throws Exception {
>         > >         final InstanceLayout instanceLayout =
>         > > this.service.getInstanceLayout();
>         > >
>         > >         final File schemaPartitionDirectory = new File(
>         > >                 instanceLayout.getPartitionsDirectory(),
> "schema");
>         > >
>         > >         // Extract the schema on disk (a brand new one) and
> load the
>         > registries
>         > >         if (schemaPartitionDirectory.exists()) {
>         > >             LOGGER.debug("schema partition already exists,
> skipping
>         > schema extraction");
>         > >         } else {
>         > >             final SchemaLdifExtractor extractor = new
>         > DefaultSchemaLdifExtractor(
>         > >                     instanceLayout.getPartitionsDirectory());
>         > >             extractor.extractOrCopy();
>         > >         }
>         > >
>         > >         final SchemaLoader loader = new LdifSchemaLoader(
>         > >                 schemaPartitionDirectory);
>         > >         final SchemaManager schemaManager = new
>         > > DefaultSchemaManager(loader);
>         > >
>         > >         // final DnFactory dnFactory = new
>         > >         //
> DefaultDnFactory(schemaManager,service.getDnFactory());
>         > >
>         > >         // We have to load the schema now, otherwise we won't
> be able
>         > >         // to initialize the Partitions, as we won't be able
> to parse
>         > >         // and normalize their suffix Dn
>         > >         schemaManager.loadAllEnabled();
>         > >
>         > >         final List<Throwable> errors =
> schemaManager.getErrors();
>         > >
>         > >         if (errors.size() != 0) {
>         > >             throw new Exception(I18n.err(I18n.ERR_317,
>         > >                     Exceptions.printErrors(errors)));
>         > >         }
>         > >
>         > >         this.service.setSchemaManager(schemaManager);
>         > >
>         > >         // Init the LdifPartition with schema
>         > >        DnFactory dnFactory = new
> DefaultDnFactory(schemaManager,
>         > this.service.getCacheService().getCache("dnCache"));
>         > >        this.service.setDnFactory(dnFactory);
>         > >         final LdifPartition schemaLdifPartition = new
> LdifPartition(
>         > >                 schemaManager,  service.getDnFactory());
>         > >
>         > >
>         > >
> schemaLdifPartition.setPartitionPath(schemaPartitionDirectory.toURI(
>         > > ))
>         > > ;
>         > >
>         > >         // The schema partition
>         > >         final SchemaPartition schemaPartition = new
> SchemaPartition(
>         > >                 schemaManager);
>         > >
>  schemaPartition.setWrappedPartition(schemaLdifPartition);
>         > >         this.service.setSchemaPartition(schemaPartition);
>         > >     }
>         > >
>         > >     /**
>         > >      * Initialize the server. It creates the partition, adds
> the
>         > > index,
>         > and
>         > >      * injects the context entries for the created partitions.
>         > >      *
>         > >      * @param workDir
>         > >      *            the directory to be used for storing the data
>         > >      * @throws Exception
>         > >      *             if there were some problems while
> initializing the
>         > system
>         > >      */
>         > >     private void initDirectoryService(final File workDir)
> throws
>         > Exception {
>         > >         // Initialize the LDAP service
>         > >         this.service = new DefaultDirectoryService();
>         > >         this.service.setInstanceLayout(new
> InstanceLayout(workDir));
>         > >
>         > >         final CacheService cacheService = new CacheService();
>         > >
>  cacheService.initialize(this.service.getInstanceLayout());
>         > >
>         > >         this.service.setCacheService(cacheService);
>         > >
>         > >         // first load the schema
>         > >         this.initSchemaPartition();
>         > >
>         > >         // then the system partition
>         > >         // this is a MANDATORY partition
>         > >         // DO NOT add this via addPartition() method, trunk
> code
>         > complains about
>         > >         // duplicate partition
>         > >         // while initializing
>         > >         final JdbmPartition systemPartition = new
> JdbmPartition(
>         > >                 this.service.getSchemaManager(),
> service.getDnFactory());
>         > >         systemPartition.setId("system");
>         > >         systemPartition.setPartitionPath(new File(this.service
>         > >                 .getInstanceLayout().getPartitionsDirectory(),
>         > systemPartition
>         > >                 .getId()).toURI());
>         > >         systemPartition.setSuffixDn(new
>         > > Dn(ServerDNConstants.SYSTEM_DN));
>         > >
>         > >
> systemPartition.setSchemaManager(this.service.getSchemaManager());
>         > >
>         > >         // mandatory to call this method to set the system
> partition
>         > >         // Note: this system partition might be removed from
> trunk
>         > >         this.service.setSystemPartition(systemPartition);
>         > >
>         > >         // Disable the ChangeLog system
>         > >         this.service.getChangeLog().setEnabled(false);
>         > >         this.service.setDenormalizeOpAttrsEnabled(true);
>         > >         this.service.setShutdownHookEnabled(true);
>         > >
>         > >         // And start the service
>         > >         this.service.startup();
>         > >
>         > >         // We are all done !
>         > >     }
>         > >
>         > >     public EmbeddedADS()  {
>         > >
>         > >     }
>         > >
>         > >     /**
>         > >      * Creates a new instance of EmbeddedADS. It initializes
> the
>         > directory
>         > >      * service.
>         > >      *
>         > >      * @throws Exception
>         > >      *             If something went wrong
>         > >      */
>         > >     public void init(final File workDir) throws Exception {
>         > >         if (!workDir.exists()) {
>         > >             workDir.mkdirs();
>         > >             this.initDirectoryService(workDir);
>         > >             this.service.shutdown();
>         > >         }
>         > >
>         > >         this.initDirectoryService(workDir);
>         > >     }
>         > >
>         > >     /**
>         > >      * starts the LdapServer
>         > >      *
>         > >      * @throws Exception
>         > >      */
>         > >     public void startServer(File workDir, int serverPort)
> throws
>         > Exception {
>         > >         init(workDir);
>         > >         this.server = new LdapServer();
>         > >         TcpTransport transports = new TcpTransport(serverPort);
>         > >         transports.setEnableSSL(true);
>         > >         this.server.setTransports(transports);
>         > >         this.server.setDirectoryService(this.service);
>         > >
>         > >
>         > >         this.server.start();
>         > >
>         > >
>         > >         LOGGER.debug("The server is running.");
>         > >     }
>         > >
>         > >     public void shutdownServer() throws Exception {
>         > >
>         > >
>         > >         if(this.server != null){
>         > >             try {
>         > >                 this.server.stop();
>         > >                 LOGGER.debug("LDAP Server stop done");
>         > >             } catch (Exception e) {
>         > >               LOGGER.error("exception in stop server",e);
>         > >             }
>         > >         }
>         > >
>         > >
>         > >         if(this.service != null){
>         > >             try {
>         > >                 this.service.shutdown();
>         > >                 LOGGER.debug("Dir Service shutdwon done");
>         > >             } catch (Exception e) {
>         > >                 LOGGER.error("exception in shutdown dir
> service",e);
>         > >             }
>         > >         }
>         > >
>         > >
>         > >     }
>         > > }
>         > >
>         > >
>         > >
>         > >
>         > > The information in this electronic mail ("e-mail") message may
>         > > contain
>         > information that is confidential and/or privileged, or may
> otherwise
>         > be protected by work product or other legal rules. It is solely
> for
>         > the use of the individual(s) or the entity (ies) originally
> intended.
>         > Access to this electronic mail message by anyone else is
> unauthorized.
>         > If you are not the intended recipient, be advised that any
>         > unauthorized review, disclosure, copying, distribution or use of
> this
>         > information, or any action taken or omitted to be taken in
> reliance on it, is prohibited and may be unlawful.
>         > Please notify the sender immediately if you have received this
>         > electronic message by mistake, and destroy all copies of the
> original message.
>         > >
>         > > The sender believes that this e-mail and any attachments were
> free
>         > > of
>         > any virus, worm, Trojan horse, malicious code and/or other
>         > contaminants when sent. E-mail transmissions cannot be
> guaranteed to
>         > be secure or error-free, so this message and its attachments
> could
>         > have been infected, corrupted or made incomplete during
> transmission.
>         > By reading the message and opening any attachments, the recipient
>         > accepts full responsibility for any viruses or other defects
> that may
>         > arise, and for taking remedial action relating to such viruses
> and
>         > other defects. Neither Wyndham Worldwide Corporation nor any of
> its
>         > affiliated entities is liable for any loss or damage arising in
> any
>         > way from, or for errors or omissions in the contents of, this
> message or its attachments.
>         >
>         >
>         > The information in this electronic mail ("e-mail") message may
> contain
>         > information that is confidential and/or privileged, or may
> otherwise
>         > be protected by work product or other legal rules. It is solely
> for
>         > the use of the individual(s) or the entity (ies) originally
> intended.
>         > Access to this electronic mail message by anyone else is
> unauthorized.
>         > If you are not the intended recipient, be advised that any
>         > unauthorized review, disclosure, copying, distribution or use of
> this
>         > information, or any action taken or omitted to be taken in
> reliance on it, is prohibited and may be unlawful.
>         > Please notify the sender immediately if you have received this
>         > electronic message by mistake, and destroy all copies of the
> original message.
>         >
>         > The sender believes that this e-mail and any attachments were
> free of
>         > any virus, worm, Trojan horse, malicious code and/or other
>         > contaminants when sent. E-mail transmissions cannot be
> guaranteed to
>         > be secure or error-free, so this message and its attachments
> could
>         > have been infected, corrupted or made incomplete during
> transmission.
>         > By reading the message and opening any attachments, the recipient
>         > accepts full responsibility for any viruses or other defects
> that may
>         > arise, and for taking remedial action relating to such viruses
> and
>         > other defects. Neither Wyndham Worldwide Corporation nor any of
> its
>         > affiliated entities is liable for any loss or damage arising in
> any
>         > way from, or for errors or omissions in the contents of, this
> message or its attachments.
>         >
>
>
>
>         --
>         Kiran Ayyagari
>         http://keydap.com
>
>         The information in this electronic mail ("e-mail") message may
> contain information that is confidential and/or privileged, or may
> otherwise be protected by work product or other legal rules. It is solely
> for the use of the individual(s) or the entity (ies) originally intended.
> Access to this electronic mail message by anyone else is unauthorized. If
> you are not the intended recipient, be advised that any unauthorized
> review, disclosure, copying, distribution or use of this information, or
> any action taken or omitted to be taken in reliance on it, is prohibited
> and may be unlawful. Please notify the sender immediately if you have
> received this electronic message by mistake, and destroy all copies of the
> original message.
>
>         The sender believes that this e-mail and any attachments were free
> of any virus, worm, Trojan horse, malicious code and/or other contaminants
> when sent. E-mail transmissions cannot be guaranteed to be secure or
> error-free, so this message and its attachments could have been infected,
> corrupted or made incomplete during transmission. By reading the message
> and opening any attachments, the recipient accepts full responsibility for
> any viruses or other defects that may arise, and for taking remedial action
> relating to such viruses and other defects. Neither Wyndham Worldwide
> Corporation nor any of its affiliated entities is liable for any loss or
> damage arising in any way from, or for errors or omissions in the contents
> of, this message or its attachments.
>
>
>
>
> --
>
> Kiran Ayyagari
> http://keydap.com
>
>
> The information in this electronic mail ("e-mail") message may contain
> information that is confidential and/or privileged, or may otherwise be
> protected by work product or other legal rules. It is solely for the use of
> the individual(s) or the entity (ies) originally intended. Access to this
> electronic mail message by anyone else is unauthorized. If you are not the
> intended recipient, be advised that any unauthorized review, disclosure,
> copying, distribution or use of this information, or any action taken or
> omitted to be taken in reliance on it, is prohibited and may be unlawful.
> Please notify the sender immediately if you have received this electronic
> message by mistake, and destroy all copies of the original message.
>
> The sender believes that this e-mail and any attachments were free of any
> virus, worm, Trojan horse, malicious code and/or other contaminants when
> sent. E-mail transmissions cannot be guaranteed to be secure or error-free,
> so this message and its attachments could have been infected, corrupted or
> made incomplete during transmission. By reading the message and opening any
> attachments, the recipient accepts full responsibility for any viruses or
> other defects that may arise, and for taking remedial action relating to
> such viruses and other defects. Neither Wyndham Worldwide Corporation nor
> any of its affiliated entities is liable for any loss or damage arising in
> any way from, or for errors or omissions in the contents of, this message
> or its attachments.
>



-- 
Kiran Ayyagari
http://keydap.com

Reply via email to