AIDAJNI

C++ to Java glue for AIDA

AIDAJNI 3.0.3 Release Notes

The most recent version of this file is available here.
Release notes for other 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.

Contents

AIDA Compliance

This adapter connects AIDA-C++ to AIDA-JNI. It supports AIDA 3.0 in a very limited way.

Supported Platforms

Binaries are available and supported for the following combinations of architectures and compilers:

Major changes in AIDAJNI 3.0.3

For a full list of changes in AIDAJNI 3.0.3 see the AIDAJNI change log.
For a full list of changes in AIDA 3.0 see the AIDA change log.

Documentation

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:

License

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.

Installing AIDAJNI

Download and install a Java AIDA Implementation which supports AIDA 3.0, 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            containing license and example
AIDAJNI/include    containing all necessary include files
AIDAJNI/lib        containing platform specific libraries (shareable and static)

Compilation

The current distributions do not contain source files. To build AIDAJNI for a particular platform you need to get a local copy of the FreeHEP library using CVS and follow the instructions for Building the native part of the library.

For any not-supported platform or compiler you may need to copy and change the system specific files in the  freehep/config/sys directory.

In future a source overlay will be made and easier rebuild instructions will be provided.

Building an Application with AIDAJNI

To build a C++ program with the AIDJNI package set the include directory to AIDAJNI/include and specify AIDAJNI/lib/{yourplatform} as a lib search path. When linking AIDAJNI you need the libraries AIDAJNI, FHJNI and jvm. The latter comes with the Java 2 Standard Development Kit and sits in different directories for different platforms, somewhere relative to JDK_HOME.

In future an aida-config utility will be provided to setup include directories and library search paths.

Running an Application with AIDAJNI

To run a C++ program with AIDAJNI, you need to point LD_LIBRARY_PATH (on Unix) to AIDJNI/lib/{yourplatform}.

To find the Java Virtual Machine, PATH (on Windows) or LD_LIBRARY_PATH (on Unix) needs to be set to find jvm.dll (on Windows) or libjvm.so and libverify.so (different directories, on Unix).

You also need to set up the CLASSPATH to point to the jar containing the Java AIDA implementation.

In future an aida-config utility will be provided to setup library runtime paths.

Using AIDAJNI from Geant4

JAIDA+AIDAJNI is currently distributed as an overlay product for Geant4 version 4.5.x. Eventually this will be changed and the normal AIDAJNI distribution should be usable. Until then, follow the JAIDA/Geant4 instructions.

Features/Limitations of the Current Release

This is a fairly limited implementation of AIDA:

Reporting Bugs

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.

Examples

The AIDJNI directory contains AidaTest.cc which serves as both a test of available functionality as well as an example.

In future the standard AIDATest package (currently under development) will be used to test the AIDAJNI adapter.