[
Lists Home |
Date Index |
Thread Index
]
The nux-1.1 release has been uploaded to
http://dsd.lbl.gov/nux/
Nux is a small, natural, straightforward and surprisingly effective
open-source extension of the XOM and Saxon XML libraries.
Nux is geared towards versatile embedded integration and interchange,
in particular for high-throughput server container environments (e.g.
high-speed real-time data streaming applications, large-scale
Peer-to-Peer messaging network infrastructures over high-bandwidth
networks, scalable message oriented middleware, etc). But its
simplicity also makes it useful for client side XML
query/transformation workflow pipelines.
Features include:
• Seamless W3C XQuery and XPath support for XOM.
• Efficient and flexible pools and factories for documents,
XQueries, XSL Transforms, as well as document Builders that validate
against various schema languages, including W3C XML Schemas, DTDs,
RELAX NG, Schematron, etc.
• Optional serialization and deserialization of XOM XML documents to
and from an efficient and compact custom binary XML data format (bnux
format), without loss or change of any information. Serialization and
deserialization is much faster than with the standard textual XML
format, and the resulting binary data is more compressed than textual
XML.
• For simple and complex continuous queries and/or transformations
over very large or infinitely long XML input, a convenient streaming
path filter API combines full XQuery and XPath support with
straightforward filtering.
• Glue for integration with JAXB and for queries over ill-formed
HTML.
• Well documented API.
Changelog:
• nux.xom.pool: Added a configurable XML caching framework. Classes
DocumentFactory, DocumentPool, DocumentMap and PoolConfig enable
efficient compact thread-safe pooling/caching of XOM document objects.
Usage is safe: It survives stress tests looking for memory leaks, race
conditions, etc. Plugins for dependency chain invalidation could be
added in the future, but for the moment this isn't explicitly
supported. Comments on this or any other Nux aspect are always welcome.
See API: http://dsd.lbl.gov/nux/api/nux/xom/pool/package-summary.html.
• nux.xom.pool.*: All pools and ThreadLocals now internally use
SoftReferences to allow for automatic garbage collection of cached
objects in low-memory situations.
• nux.xom.pool:*: All pools now have a constructor that takes a
PoolConfig object.
• XQuery/XPath: Now requires saxon-8.4 (bundled with the download).
See the Saxon documentation for the changelog. In particular note that
the namespace axis is nomore supported in XQuery.
• XQuery/XPath: Various performance improvements (preceding axis,
variables with large node lists, etc.).
• XQuery/XPath: On output, now auto-converts any Saxon NodeInfo
implementation (e.g. TinyTree, StandardTree, JDOM, DOM) while fully
preserving node identities, even in the presence of documentless nodes.
This required some minor refactoring internal to NodeWrapper.
• XQuery/XPath: Better documentation on how to use extension
functions and modules.
• Added XOMUtil.Normalizer with standard XML algorithms for text and
whitespace normalization of trees.
• Deprecated XQueryUtil.normalizeTexts(). The same functionality is
now available through XOMUtil.Normalizer.PRESERVE.normalize().
|