************************* Development Documentation ************************* The following documentation is about developing LSC itself - not a LSC synchronization task. Make sure you've read all the :doc:`general documentation ` before continuing here! Working environment =================== As well as the general :doc:`Requirements `, you need some extra tools to hack LSC - make sure you match these requirements: * Java Virtual Machine (JDK) >= 1.8 * `Maven `__ >=2 (Maven 3 recommended) * Add the mvn command line wrapper to Maven in your path (through ``~/.bashrc`` or something equivalent) * You can use Eclipse, NetBeans,... to edit the Java code. Integrating LSC and its Maven dependencies is described :doc:`here `. You should follow :doc:`our defined code style `. Java API for LSC-core ===================== The JavaDoc is generated from comments in LSC code. It needs a lot of improvement, all comments in code are very welcome! * `https://lsc-project.org/javadoc/latest/ `__ This can be very useful to get a function name to call from SyncOptions in the configuration file (see `LscBean `__, `AD `__, `ScriptableJndiServices `__, `DateUtils `__... Development tools ================= You can find LSC on GitHub: `https://github.com/lsc-project `__. There you can fill bugs, see the history of commits,... Running tests ------------- .. note:: Tests are run through Maven. Run all tests (opendj profile required) : .. code-block:: console mvn -Popendj test Run one test, named MyTest (note: don't put in the classpath here, write ``MyTest`` not ``org.lsc.MyTest``!): .. code-block:: console mvn -Popendj -Dtest=MyTest test Don't run tests: .. code-block:: console mvn -Dmaven.test.skip=true someOtherTarget Building ======== Various builds can be done : * the standard build requires OpenDJ to run tests. .. code-block:: console mvn -Popendj clean package * the light build does not require OpenDJ but you must skip tests: .. code-block:: console mvn -Dmaven.test.skip=true clean package * a build including PostgreSQL jar (can be with or without OpenDJ) .. code-block:: console mvn -Ppostgresql -Popendj clean package Releasing ========= See these notes on :doc:`doing a release `. Run LSC under Eclipse ===================== This section covers: * Integration of LSC in an Eclipse (netbeans) environment * Installation of maven integrated plugin in ide environnement * Running / debuging LSC Please follow: :doc:`Integrated Development Environment Integration `