| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <document> |
| <properties> |
| <author email="akarasulu">akarasulu</author> |
| <title>ApacheDS - Building</title> |
| </properties> |
| <body> |
| <section heading="h2" 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>java -jar main/target/apacheds-main-$version.jar server.xml |
| </source> |
| <p> |
| When you start the server without a xml conf file arguement default settings are |
| used. It tries to bind to 389 but this non-root user does not have the needed |
| priviledges so it tries to bind on the next available port which is 1024. You |
| may like a conf file that can be used to override and set server specific |
| properties to control its behavoir. Below we use |
| the |
| <a href="http://valpithy.notlong.com/">xml configuration</a> |
| file that comes preconfigured for Apache under the server/trunk/main |
| directory: |
| </p> |
| <source>java -jar main/target/apacheds-main-${version}.jar main/server.xml |
| </source> |
| </section> |
| <section heading="h2" 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> |
| core</td> |
| <td> |
| The heart of the server which contains the JNDI Provider, interceptors, |
| partitions and |
| schema.</td> |
| </tr> |
| <tr> |
| <td> |
| shared</td> |
| <td> |
| Contains shared classes between modules to prevent cyclic |
| deps.</td> |
| </tr> |
| <tr> |
| <td> |
| plugin</td> |
| <td> |
| Contains a maven plugin used while developing with/for the directory |
| server.</td> |
| </tr> |
| <tr> |
| <td> |
| main</td> |
| <td> |
| Contains the ApacheDS application main() along with a special |
| InitialContextFactory implemenation that extends the CoreContextFactory which is |
| an InitialContextFactory implementation (ICF). This ICF is the |
| ServerContextFactory and it initializes MINA adding the LDAP protocol provider |
| as well as the other providers for protocols like Kerberos, Change Password, |
| NTP, DNS and DHCP. Of course the configuration determines if these protocols are |
| started or not. All protocols with the exception of NTP use the core LDAP store |
| as their backing store with custom |
| schema.</td> |
| </tr> |
| </table> |
| </section> |
| </body> |
| </document> |