The FreeHEP Java Library
Mark Dönszelmann (SLAC), Tony Johnson (SLAC), Massimiliano Turri (SLAC), Victor V. Serbo (SLAC), Joseph Perl (SLAC), Gary Bower (SLAC), Charles Loomis (LAL), Julius Hrivnac
(LAL)
7-HENP Software Architecture and Software Engineering (includes Online and Offline)
The FreeHEP Java Library is an Open-Source library of common Java classes and tools. The library tries to reduce unnecessary duplication of effort by making common functionality available to the entire HENP community and others. It consists of a HENP specific part, a generic part and a set of tools.
- The HENP specific libraries include: JAIDA, a full Java reference implementation of AIDA (Abstract Interfaces for Data Analysis); HepRep, a standard for representable items for event display; IO modules for reading HBOOK, ROOT, MCFIO and StdHEP files; and YaPPI, a particle property database. Both JAIDA and HepRep are available to C++ programmers via JNI wrappers (AIDAJNI, HepRepJNI) which come as the sole C++ part of
FreeHEP.
- The generic libraries include: a layered application framework for building Java applications using plug-in modules and services; a vector graphics output module to output formats such as PostScript, PDF, EMF (Enhanced Meta Format) and SVG (Scalable Vector Graphics); a postscript viewer; and several general and XML-related utility classes.
- Among the tools are: AID, to describe Abstract Interfaces and compile them into other languages (Java, C++, ...); and JNeeds, to find the relation between different Java packages. The infrastructure and tools to support the distributed development of the FreeHEP Java Library is also available as part of the toolset.
Both Java Analysis Studio (JAS) and the WIRED Event Display make heavy use of the FreeHEP library. Many people outside the field of HENP are using the generic part of the library.
The talk will focus on the distributed development of this Open-Source library and describe a few components in detail.
More information on the FreeHEP Java Library, including WebStart Demonstrations, is available at:
http://java.freehep.org/