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
