Java News from Tuesday, January 2, 2007

Two weeks from today will be the first iteration of Extreme Tuesday New York. Mike Roberts writes that this will be "a local chapter of London's 'eXtreme Tuesday Club' . My hope is it will provide a good compliment to XP-NYC group since it is a social, pub-based, group." The London group was always great fun, but I look forward to a version that doesn't require a transatlantic plane ride. The first meeting will be Tuesday, January 16, at the Union Square Heartland Brewery.


I have uploaded the finished release of Jaxen 1.1, an open source XPath 1.0 engine written in Java that supports multiple object models including DOM, XOM, JDOM, and dom4j. It is also flexible enough to be adapted to XML views of non-XML data structures. For instance, PMD uses it to enable XPath expressions to query compiled Java byte code. Version 1.1 is believed to be fully conformant with the XPath 1.0 specification. Numerous bugs have been fixed since version 1.0 several years ago. If anyone is still using version 1.0, please upgrade at your earliest convenience. Jaxen is published under a modified BSD license.


Christian Schlichtherle has released TrueZip 6.4, a drop-in replacement for the java's file I/O classes.

TrueZIP is a Java based Virtual File System (VFS) which enables an application to access ZIP, TAR and all derivative archive types (JAR, TAR.GZ, ...) transparently as if they were just directories in a file's path name. This works recursively, so an archive file may even be enclosed in another archive file. TrueZIP 6 features an extensible "plug-in driver" architecture (actually a Service Provider Interface), so it is expected that support for other archive types will be added over time (contributors wanted: ARJ, RAR anyone?).

The TrueZIP API provides drop-in replacements for the well-known classes File, FileInputStream and FileOutputStream. This design makes TrueZIP very easy to use: All that is required to archive-enable a legacy application is to add a few import statements for the package de.schlichtherle.io, add some type casts where required, and add a final call to File.update() once before the client application terminates in order to force an update of all archive files which have been used and require an update.

This release improves performance and documentation and fixes bugs. TrueZip is published under the Apache 2.0 license.


David A. Hall has posted beta 0.8 of jga, an open source collection of generic algorithms for Java. "jga is a functors library: the intent is to explore and exploit functors as a design and implementation tool to reduce boilerplate coding. A functor is an object that encapsulates a function or expression: it can take arguments and produce results, as can any method, expression, or function (in other languages that support functions). Unlike an expression, as an object it can be passed as an argument without being executed; it can be persisted to a database or file; it can be serialized and passed from client to server (and back); and it can be instantiated at runtime based on information unavailable at compile-time." jga is now dual licensed under the GNU Lesser general Public License and the CDDL. In addition this release now allows more static access to methods.


Bruno Lowagie has released iText 1.4.8, an open source Java library for creating documents in PDF, XML, HTML, and RTF. It can also convert XML documents into any of these formats. This release fixes bugs. iText is published under the Mozilla Public License.