Release Notes Version: : 1.15 $.
The most recent version of this file is available
here.
Release notes for all versions of AIDAJNI are available
here.
AIDAJNI is a C++ adapter of AIDA - Abstract Interfaces for Data Analysis which connects to a Java implementation of AIDA, such as JAIDA.
AIDAJNI allows C++ programmers to use any Java AIDA implementation.
It allows for instance Geant4, written in C++, to create histograms and ntuples in Java and store them in .aida files, which can be analyzed using JAS3 - Java Analysis Studio.
This adapter connects AIDA-C++ to AIDA-JNI. It almost fully supports the AIDA standard. The C++ side is AIDA 3.0 compliant (for usage in Geant 4.5.x), while the Java side is AIDA 3.2.1 compliant. From the user's perspective the differences between 3.0 and 3.2.1 are minimal.
Binaries are available and supported for the following combinations of architectures and compilers:
For a full list of changes in AIDAJNI 3.0.4 see the
AIDAJNI
change log.
For a full list of changes in AIDA 3.0 and AIDA 3.2 see the
AIDA change
log.
These release notes list issues specific to the AIDAJNI implementation of AIDA. In general all of the AIDA documentation applies to AIDAJNI, in particular the following are useful:
C++ (3.0)
Java (3.2.1)
AIDAJNI is part of the FreeHEP Java Library an "Open Source" library distributed under the terms of the LGPL. If you have questions about the licensing please send a mail to: developers@freehep.org.
Download and install a Java AIDA Implementation which supports AIDA 3.2.1, for example JAIDA.
Download AIDAJNI for one or more platforms. These distributions overlay on top of each other, adding support for different architectures. The distribution creates the following directory structure:
AIDAJNI-version containing license and release notes AIDAJNI-version/bin containing platform specific directories with setup scripts AIDAJNI-version/examples containing examples AIDAJNI-version/include containing all necessary include files AIDAJNI-version/lib containing platform specific directories with libraries (shareable and static)
The current distributions do not contain source files.
To (re-)build AIDAJNI for a particular platform you need to get AIDAJNI-3.0.4-src.zip or .tar.gz file from the ftp://ftp.slac.stanford.edu/software/freehep/AIDAJNI/v3.0.4/ directory.
Follow the instructions in README-src.html contained in that distribution.
Set the environment variable AIDAJNI_HOME to your unpacked AIDAJNI distribution. Make sure JDK_HOME is set to your Java Development Kit (1.4 or better), and source the system specific aidajni-setup file (.sh/.csh fro Unix, .bat for Windows, .win32 for Cygwin).
Example for Linux-g++3, using tcsh:
setenv AIDAJNI_HOME /users/tom/AIDAJNI-3.0.4 setenv JDK_HOME /users/tom/j2dsk1.4.1 source /bin/Linux-g++3/aidajni-setup.csh
Now you are able to execute the aida-config utility:
aida-config --version will display the version you installed. aida-config --include will display the include options for your compiler. aida-config --lib will display the library link options for your linker.
To compile (example for Linux-g++3):
g++ -c `aida-config --include` YourApplication.cc g++ YourApplication.o `aida-config --lib`
Once you have run the aidajni-setup script successfully you can just execute your application.
For Geant4 version 4.5.x JAIDA+AIDAJNI is distributed as an overlay product. This new overlay fixes some bugs in the A01 example and uses the setup and aida-config utilities to compile and link A01 with AIDAJNI.
The overlay is available from ftp://ftp.slac.stanford.edu/software/freehep/AIDAJNI/v3.0.4/
For Geant4 version 4.6.x the fixes to the A01 example and the overlay are included in the Geant4 release. One only needs to install JAIDA and AIDAJNI as described above.
IMPORTANT: Make sure you do not link in OPENGL libraries since they pre-load libXt.so, which will make the JavaVM crash when it tries to open its first Window/Frame. This does NOT apply to the Windows Operating System of course. This bug was reported to Sun Microsystems as early as JDK 1.3.1, but will not be fixed until JDK 1.5 comes out. Bugnumber 4638291
The following limitations exist:
setenv JVM_ARGS "-Dhep.aida.IAnalysisFactory=hep.aida.ref.BatchAnalysisFactory"
to be able to run without plotting. See AIDAJNI-28.
For discussion of features or problems related to AIDAJNI please use the AIDA mailing lists. To report bugs or request enhancements you can also use the AIDAJNI bug database.
The AIDJNI/examples directory contains AidaTest.cc which serves as a small test as well as an example. The subdirectories g++, CC and VC contain build scripts to compile and link AidaTest.cc into an executable. JAIDA and AIDAJNI must have been set up before running the build script.
The standard AIDATest package in C++ is used to test the AIDAJNI adapter. Some minor tweaks are being made to the tests and the JAIDA implementation so that all of them will pass, but we believe the AIDAJNI does not have major errors in it.