All directory projects use Maven as the default build tool. We try to remain current with the production version of Maven. As of 12/04 we use Maven 1.0.2 on JDK 1.4 and up.
The multiproject plugin is used to build all the maven projects associated with the server. After checking out the server trunk from subversion, cd into it and run the following multiproject command:
maven multiproject:install
Once you've built the server you'll find an executable jar file under the main/target directory labeled apacheds-main-${version}.jar which can be fired up like so:
[akarasulu@newton trunk]$ java -jar main/target/apacheds-main-0.8.0-SNAPSHOT.jar server: using default properties ... server: standard ldap port 389 is not available, using 1024 instead server: started in 1368 milliseconds
When you start the server without a properties file arguement default settings are used. It tries to bind to 389 but this non-root user does not have the needed privledges so it tries to bind on the next available port which is 1024. If you would like a properties file can be used to override and set server specific properties to control her behavoir. Below we use the properties file that comes preconfigured for Apache under the server/trunk/main directory:
[akarasulu@newton trunk]$ java -jar main/target/apacheds-main-0.8.0-SNAPSHOT.jar main/server.properties server: loading properties from main/eve.properties server: started in 1449 milliseconds
The server is composed of 4 separate maven projects. These projects are summarized below:
Project | Summary |
---|---|
protocol | Contains an LDAP protocol provider for the SEDA framework. |
plugin | Contains a maven plugin used while developing with/for the directory server. |
core | Contains the server's core which contains the JNDI Provider that wraps/is the backend subsystem. |
shared | Contains shared classes between modules to prevent cyclic deps. |
optional | We might create this project in the near future to contain bundles of optional schema jars. The server's maven plugin generates Java class files for OpenLDAP schema files. These classes create schema objects way faster than parsing a file to dynamically create schema objects. The optional package will contain all the schema classes for published schemas we can find. When firing up the server you can request to load only those schemas you actually use. |