Though this code may seem to work, it is by no means very well tested and should be considered pre-alpha code.
The MarlinJava wrapper wraps the Marlin C++ code and makes it accessible from Java. The wrapper is generated by the SWIG Compiler. With this wrapper it is possible to call Marlin's Processors from a Java program. The wrapper also allows Marlin to read the Events via LCIO or org.LCSIM from Java. Adapters have been provided to make the Java Events, read with either LCIO or org.LCSIM, look like C++ LCIO Events.
Marlin can add extra information to the Java Events. When doing so, this extra C++ information is properly wrapped in Java to make sure it fits in the Java Event.
Apart from some Adapter and Implementation classes all other code is generated by the SWIG Compiler. SWIG uses the MarlinJava.swg setup file to do this.
A MarlinDriver is available to make Marlin Processors act os org.lcsim Drivers.
To make the C++ code available to Java all of Marlin, MarlinReco and MarlinUtil, and all their dependencies, CERNLIB, CLHEP, GSL, Gear, Root, LCIO and SIO are linked with the MarlinJava shareable library.
The current system was tested on Linux and MacOS X. Specific build instructions are available.