Java News from Tuesday, December 21, 2004

I am pleased to announce what I expect is the final beta and release candidate of XOM 1.0, my open source dual streaming/tree-based API for processing XML with Java. XOM focuses on correctness, simplicity, and performance, in that order. This final (I hope) beta implements a number of improvements to performance in various areas of the API. Depending on the nature of your programs and documents, you should see speed-ups of somewhere between 0 and 20% compared to the previous beta. There are no over-the-covers changes in this release. Under-the-covers a few classes have undergone major rewrites, and a couple of non-public classes have been removed. All the unit tests (now over a thousand of them) still pass, but please do check this release out with your own code. If no problems are identified in this beta, I expect to officially release XOM 1.0 possibly as early as tomorrow, and certainly by the end of the year.

IBM's alphaWorks has released the Reflexive User Interface Builder 1.1, an application that constructs and renders graphical user interfaces (GUIs) for Java Swing and Eclipse Standard Widget Toolkit (SWT) described in an XML document. According to the web site,

IBM Reflexive User Interface Builder is both a specification for a mark-up language in which to describe GUIs and an engine for creating (and, if desired, rendering) them. This application can be used as a stand-alone application for testing and evaluating basic GUI layout and functionality, or it can be used as a library within the context of a Java application for creating and rendering GUIs for that application.

The application supplies an optional means of validating properties of and relations between components. One can describe a set of constraints on components and then insure that the said components are in accord with these constraints. For instance, this application is packaged with a basic accessibility validation document that diagnoses select accessibility omisions in GUIs. Such mechanisms can enhance the rapid development, testing, and evaluation of GUI-based applications.

How does it work?

Although other XML script-driven, Java-based GUI engines have been developed, the power of this approach stems from its reliance upon the Java Reflection API, which allows classes to be introspected in order to reveal their fields, constructors, and methods. Proceeding in this way, IBM Reflexive User Interface Builder can create and render GUIs based solely upon the information in an XML document. This document need not conform to any pre-defined DTD or XML schema.

Version 1.1 adds the ability to validate Eclipse SWT GUIs, generate Java source for GUIs constructed by the builder, and embed Java source code in RIB documents.