| <?xml version="1.0" encoding="UTF-8"?> | |
| <document> | |
| <properties> | |
| <author email="akarasulu@apache.org">Alex Karasulu</author> | |
| <title>Apache Directory Project: Building the Directory Server</title> | |
| </properties> | |
| <body> | |
| <section name="Building and Running the Apache Directory Server"> | |
| <p> | |
| All directory projects use <a href="http://maven.apache.org">Maven</a> | |
| 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. | |
| </p> | |
| <p> | |
| 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: | |
| </p> | |
| <source> | |
| maven multiproject:install | |
| </source> | |
| <p> | |
| 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: | |
| </p> | |
| <source> | |
| [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 | |
| </source> | |
| <p> | |
| 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 <a href="http://vortuoad.notlong.com/"> | |
| properties</a> file that comes preconfigured for Apache under the | |
| server/trunk/main directory: | |
| </p> | |
| <source> | |
| [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 | |
| </source> | |
| </section> | |
| <section name="Apache Directory Server's Maven Modules"> | |
| <p> | |
| The server is composed of 4 separate maven projects. These projects are | |
| summarized below: | |
| </p> | |
| <table> | |
| <tr> | |
| <th>Project</th><th>Summary</th> | |
| </tr> | |
| <tr> | |
| <td>protocol</td> | |
| <td>Contains an LDAP protocol provider for the SEDA framework.</td> | |
| </tr> | |
| <tr> | |
| <td>plugin</td> | |
| <td>Contains a maven plugin used while developing with/for the | |
| directory server.</td> | |
| </tr> | |
| <tr> | |
| <td>core</td> | |
| <td> | |
| Contains the server's core which contains the JNDI Provider that | |
| wraps/is the backend subsystem. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>shared</td> | |
| <td>Contains shared classes between modules to prevent cyclic deps.</td> | |
| </tr> | |
| <tr> | |
| <td>optional</td> | |
| <td> | |
| 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. | |
| </td> | |
| </tr> | |
| </table> | |
| </section> | |
| </body> | |
| </document> |