JFCML 0.9.0 Release Notes

JFCML - JFC/Swing XML Markup Language.


Designed to be the fastest, most complete, and easy to use markup language for Swing. Built directly on top of the SAXParser, JFCML is fast, efficient, and highly scalable.

Release 0.9 implements a major overhaul of the interpreter. I have disposed of my 'pseudo-reflection' architecture in favor of true reflection.

After instrumentation of version 0.8, I have found that JFCML is overwhelmingly I/O bound, and the class-heavy 'pseudo-reflection' architecture adds significantly to the amount of data which needs to be read from the disk. Inspired by the success of Array types introduced in version 0.8.2, I decided to try the all-reflection approach. JFCML's performance has not changed; most time is still spent reading from the disk.

The benefits of a pure reflection approach are too many to list, and in fact I probably haven't even thought of all of them yet. Most noticably, the package is TEN TIMES SMALLER! The jar has shrank from ~550k to ~50k. The size of the DTD (~40k) will quickly outpace the size of the jar.

By far the coolest benefit is that JFCML now automatically inherits support for all AWT Components. The core architecture of JFCML was always intended to eventually support AWT. I have not yet added support for AWT in the DTD, but it is currently possible if validation is turned off.

The old extension mechanisms no longer exist; and have been replaced by a more comprehensive API. The new API provides classes for creating chains of handlers for different kinds of XML entities (elements, attributes, etc) and much more.

Posted by Shawn Curry 2004-12-07

Log in to post a comment.