Interested in getting involved in the xooctory community? Want to provide a patch fixing a bug, or contribute a new feature? Your contribution is welcome, you will find here how to start developing Xooctory.

Issue Tracking

We use xoosent for our issue tracking, it is available here:
http://issues.xoocode.org/

Development Environment

As a java based project, the OS doesn't matter much.

What you will need to do Xooctory development, or simply to build it from sources for yourself, is the following tools: The team is using Eclipse as IDE at the moment, you will find details below.

Subversion access

You can browse our svn repository online here:
http://www.xoocode.org/wsvn/xoocode/org.xoocode.xooctory/trunk/xooctory/

To check out the latest source code base, run the following command:
svn co https://svn.xoocode.org/p/org.xoocode.xooctory/trunk/xooctory/ xooctory
Then you can test it is working properly on your box.

Launching

If your setup is ok, you can launch xooctory with the following command:
ant run
It should startup after a few seconds, and let you connect to http://localhost:8080/

You may also want to connect to
http://localhost:8080/admin/

To be able to import test data in your database.

Developing with Eclipse

We recommend the use of eclipse for the development. You will need a version 3.2 or greater, and you need to install a snapshot build of IvyDE you will find here: http://www.xoocode.org/downloads/tools/

Then all you need is to import the project into your workspace (using Import -> Existing project into workspace).

To start Xooctory in debug mode and benefit from hot code replace during your development, all you need is run the org.xoocode.xooctory.Main class as a Java Application.

Coding conventions

We follow the standard java coding conventions, as detailed in this document:
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Dealing with concurrency

Xooctory is meant to be used in a highly concurrent and distributed environment, which means that you need to properly understand java concurrency before considering hacking the code.

We highly recommend reading the book "Java Concurrency in Practice":
We use the annotations defined in this book to indicate if a class is thread safe, or not. Some classes may be thread safe while not having these annotations, but it at least mean that they haven't be reviewed for thread safety.

If you want to contribute a patch, be very careful with thread safety in these annotated classes at least. And if you think you have found a thread safety issue in one of these classes, please contact us, that's the power of open source!

Source of inspiration

To get an idea of what other CI servers provide and how they look like, we recommend checking the following site:

Committers

Committers should take care of setting svn:eol-style on the text files. To do so automatically, configure your subversion local installation (in ~/.subversion/config) with the same recommended config as ASF one.