Note | ||
---|---|---|
| ||
This site is in the process of being reviewed and updated. |
This page give some information about the layout of Apache DS 1.5 trunks, and try to explain how it is built.
Table of Contents |
---|
Project Hierarchy
The actual project hierarchy is the following :
- apacheds
- bootstrap-extract</module>
- bootstrap-partition</module>
- bootstrap-plugin</module>
- schema-extras</module>
- schema-bootstrap</module>
- utils
- schema-registries
- jdbm-store
- constants
- btree-base
- core
- core-shared
- core-plugin
- core-unit
- protocol-shared
- protocol-ntp
- protocol-ldap
- protocol-kerberos
- protocol-dhcp
- protocol-dns
- protocol-changepw
- server-tools
- server-unit
- server-main
- server-jndi
- kerberos-shared
- mitosis
- server-replication
- server-ssl
- shared
- asn1
- ldap
- ldap-constants
- asn1-codec
- convert
- daemon
- bootstrappers
- plugin
This hierarchy represent the projects being built. Some project (OSGI, ...) are not built
Prerequisites for building
You must have installed Maven 2.0.7 and have a JDK 5 installed on your computer. A working internet connection is also mandatory.
Maven
Download and install Maven 2.0.7. (ATTENTION !!! Do NOT use another version of Maven )
Add a MAVEN_HOME environment variable and add MAVEN_HOME/bin to your system path:
On a Linux box you could add the following to the .bashrc file (.bashrc is a file you'll find in your home directory)
No Format |
---|
... export MAVEN_HOME=/opt/maven-2.0.7 export PATH=$JAVA_HOME:$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH ... |
Windows users, use Control Panel -> System -> Advanced -> Environment Variables
JDK 5
Info | ||
---|---|---|
| ||
There may be some issues with older JDK versions and Kerberos, therefore we recommend using a version >=1.5.0_09 |
Getting the code
To download the sources, you must have installed a Subversion client.
With readonly access :
No Format |
---|
svn co http://svn.apache.org/repos/asf/directory/apacheds/trunk-with-dependencies/ apacheds-trunk |
With read/write access (for committers only) :
No Format |
---|
svn co https://svn.apache.org/repos/asf/directory/apacheds/trunk-with-dependencies/ apacheds-trunk |
Building the trunks
Enabling Snapshot Repositories
Note | ||
---|---|---|
The following information is only needed if one want to setup its own maven repo. There is no need to define a settings.xml file for generic usage.
|
You may either specify the profile at the command-line, each time you use 'mvn', or you may configure the profile to always be active.
To use a profile at the command-line:
Code Block |
---|
# mvn -Papache [options] [<goal(s)>] [<phase(s)>] |
To specify the 'apache' profile to always be active:
Code Block |
---|
<settings> ... <activeProfiles> <activeProfile>apache</activeProfile> </activeProfiles> ... </settings> |
Building the trunks
If you already have built the trunks once, it may be better to clean the repository :
Code Block |
---|
cd <root of apache directory server sources> mvn clean |
Now, we can compile the project.
The command is simple :
Code Block |
---|
cd <root of apache directory server sources> mvn install |
A lot of plugins will be downloaded. If you are curious, you can then look at .m2/repository to see what has been downloaded on this step.
Building should finish with these lines:
Code Block |
---|
[INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 8 minutes 30 seconds [INFO] Finished at: Mon Oct 30 23:32:41 CET 2006 [INFO] Final Memory: 18M/32M [INFO] ------------------------------------------------------------------------ |
Info | ||
---|---|---|
If you want to do really safe build, run the following commands in trunks:
|
Building the installers
Building the installers is a two phase process :
Code Block |
---|
cd <root of apache directory server sources> mvn install cd apacheds/server-installers mvn install |
That's it, the jars will be find in target/images/apacheds-1.5.0-SNAPSHOT-<XXXXXX>-setup.jar where XXXXXX is your local system
Starting the server without installation
The directory apacheds/server-main contains a script for Linux (apacheds.sh) and one for Windows (apacheds.bat) which can be used for starting the server without the need to install it first (as non-root-user on Linux and non-Windows-service on Windows).
Linux:
No Format |
---|
cd apacheds/server-main ./apacheds.sh |
Integration test
To run integration tests, just use the following command :
Code Block |
---|
cd <root of apache directory server sources> mvn -Dintegration test |
Eclipse
Building eclipse files
To build the .project and .classpath files for eclipse, type the following commands :
Code Block |
---|
cd <root of apache directory server sources> mvn clean install mvn eclipse:eclipse |
then import all the existing project which has been created.
Maven settings
Don't forget to declare a classpath variable named M2_REPO, pointing to ~/.m2/repository, otherwise many links to existing jars will be broken.
You can declare new variables in Eclipse in Windows -> Preferences... and selecting Java -> Build Path -> Classpath Variables
Eclipse hints
Add an eclipse-apacheDS.sh file in your eclipse root directory, to allow eclipse to get more memory (e.g. 750MB)
You may also declare a specific workspace when launching eclipse. I have created a workspace-apacheDS directory in my HOME directory, where all the ApacheDS project is built when I use Eclipse.
No Format |
---|
<eclipse_root>/eclipse -data $HOME/workspace-apacheDS -vm java -vmargs -Xmx750M |
Launch eclipse :
No Format |
---|
<eclipse_root>/eclipse-apacheDS.sh |
Eclipse plugins
Coding standards
The coding standards including an eclipse code formatting profile is available here.
.