Participate

ToscanaJ is Open Source Software, which means we are happy for you to take our code and change it to your needs. Of course the best thing for us and for you is, if your effort lives on in the project. So if you want to work on ToscanaJ, please try to collaborate with us. If you don't want to -- fair enough, but don't complain if your hacks don't work in the next version or we reject our code since it does not match our overall design.

The next paragraphs are a short introduction for people wanting to get involved in the ToscanaJ development. It gives first an introduction how to get all the stuff you need and then some hints on how to compile and run it.

Getting the sources

To compile and run ToscanaJ you need to get some modules from the CVS repository on Sourceforge. First you should read the introduction to CVS on the project pages. You will need to use the developer access to commit changes into the repository, if you just want the latest version and don't want to commit changes (or you are happy to commit patches), just use anonymous access. If you think you should have write access, please ask on the developer mailing list for it.

The modules you need for a standard build are: examples, libs and source. These have to be put into the same directory since the build script will expect them to be colocated. You can safely ignore the other modules first, in case you are curious read the XML file describing the structure of the CVS.

Build tools

The main build process for ToscanaJ is using the Ant build tool from the Apache Jakarta project. You just need a standard binary distribution to compile and run ToscanaJ. At the moment of writing the developers also use Eclipse (very good, Open Source) and IDEA (fabulous, commercial licencing) for development. Feel free to ask for some help on setting up these IDEs if you need it. But any editor/IDE for Java should work, esp. if you are willing to use Ant for the actual build process.

Building with Ant

Building ToscanaJ just means running Ant while being in the toplevel directory of the source module. This directory should contain a build.xml file with a couple of different targets. The default one just compiles ToscanaJ, and it is invoked by just running the command ant without any parameters. There are other build targets which can be given as a parameter, e.g. ant run will compile and run ToscanaJ. Here is a list of all interesting targets:
compile
just compiles the code
rebuild
compiles a clean version (necessary in case dependencies are still held by old files)
dist
creates a tarball with the distribution in it. This is exactly the same format as the downloads on Sourceforge
splitDist
creates the distribution splitted across three files: the program itself, the libraries and the examples. This is useful if you want to update an installation, since the libraries and examples change far less than the code and the file containing the program will be very small
javadoc
creates the JavaDoc for the program (we actually don't use that call and there is not that much JavaDoc in the code since we rather use descriptive names)
run
compiles and runs ToscanaJ
run-elba
compiles and runs Elba
run-siena
compiles and runs Siena
run-lucca
compiles and runs Lucca

Using the Sourceforge system

We make use of many features of the Sourceforge system. Most importantly we use the mailing lists and the tracker interface, so if you want to be part of the development effort, you should at least start reading the developer list and check the trackers before asking for features or filing bug reports. Of course we rather want duplicates than things slipping through, but you make our life easier if you at least scan the tracker item titles before filing your bug report or feature request.