2007-04-09: This release is obsolete: please see instead the NeXusBeans beta release !
This is the alpha release of NeXusBeans, as developed by Dr Darren Kelly in late 2005 for the Bragg Institute, ANSTO, and presented to the NeXus International Advisory Committee (NIAC) in Feb 2006 at Gernoble, France.
Being only an alpha release, this system is completely unsupported ! The beta release will be supported within the Bragg Institute at ANSTO, and the 1.0 release will be supported for the benefit of the wider NeXus community if the Bragg Institute chooses to provide continuing financial support to Darren Kelly for this work.
In order to use this release you will need:
- The au.gov.ansto.bragg.nexus.alpha.jar library by Darren Kelly.
- The jnexus.jar library by Mark Koennecke (for access to NX types).
- A modern Java IDE like Netbeans or Eclipse
You may also like to inspect:
- The alpha NeXusBeans Java src.
- The online Javadoc API for alpha NeXusBeans (including propagated documentation from the NeXus meta-DTDs). I am deliberately NOT providing bundled Javadocs for this release because I do not want obsolete alpha docs hanging around on user's machines; only the Version 1.0 javadocs will be tarballed.
- Some documenting UML images exported from Magicdraw UML, as presented at NIAC Feb 2006. (Some of the class and interface names are slightly out of date, most of these were reverse-engineered and were accurate at the time of presentation.)
Notes on this release:
- The alpha NeXusBeans are generated automatically from stored NeXus XML files from Dec 2005 provided with the release. Future releases of NeXML tools will enable on-the-fly generation directly from the NeXus CVS.
- It does enable easy representation of NeXus XML templates (a.k.a. meta-DTDs) as Java beans.
- It does enable easy construction of a NeXus representation of neutron bean instruments and data in Java (as presented at NIAC 2006, and to colleagues and guests at ANSTO).
- It does NOT provide notifications from setters. Under Darren Kelly's Bragg base framework (not supplied with this release) that is achieved by an introspective global notification mechanism available by wrapping AND/OR inheritance.
- It does NOT provide extensive assistance in dimensioning of data items, it simply offers an Object that the user may populate as desired, as it is difficult to interpret NeXus array instructions like 'NX_FLOAT[i,j,?k,?l]' sufficiently generally. This matter is being addressed in the next release.
- It does NOT currently include Java annotations to enable hibernation (database persistence using Hibernate). This is planned for future releases, and will be incorporated as an option in the next version of the NeXusBean generation tool (see below).
- It does NOT include the JavaBeans serialization technology presented at NIAC 2006. The XStream-based reader/writer system developed by Darren Kelly and student Hugh Rayner, and customised to meet the NeXus format, will be included in future NeXML tools project releases.
- The base package is only partially documented, as there are still many issues concerning handling of dimensioned data. The beta release will include substantial Javadoc once a strategy for handling multi-dimensional data indicators like 'NX_FLOAT[i,j,?k,?l]' has been decided. The UML overview of the base package is out-of-date, yet nevertheless quite informative.
Concerning the NeXusBean generation tool:
- The original developmental XML2Java tool used to generate these alpha NeXusBeans is NOT supported, and will NOT be released.
- A new "metamodel-driven" tool for generating the NeXusBeans is under development and is to be released as part of the NeXML "XML tools for NeXus" project in late March 2007, and will enable live generation of NeXusBeans from XML templates (meta-DTDs) streamed directly from CVS. (That tool is part of a larger forward-engineering project at The Bragg Institute, which will enable forward engineering of Neutron Beam Instrument components directly from UML2 and SysML graphical models).