News!
- 20-Mar-2009: Release 0.9.5: Minor change; the only visible thing is that classes are now under com.fasterxml.aalto package.
-
- 04-Feb-2009: Release 0.9.4: Complete Stax 1.0 (API, feature set) implementation: now includes coalescing mode and namespace-repairing stream writers!
-
- Licensing clarified as GPL or for-fee commercial license (see 'Licensing' section for more.
- 21-Jan-2009: Release 0.9.3: complete Typed Access API (with official stax2-api-3.0.0 jar), bug fixes. Licensing clarified as GPL or for-fee commercial license (contact "prb@fasterxml.com" for details on latter!)
-
- 13-Mar-2008: Release 0.9.2: bug fixes, implemented Stax 2 (v3.0) Typed Access API (at level comparable to Woodstox 3.9.2)
- 13-Mar-2008: Release 0.9.1: minor fixes, improvements, non-blocking (async) parser getting more complete.
- 21-Feb-2008: Fixed a small but important typo in Usage section below -- property names were wrong (thanks Lowell!)
- 05-Feb-2008: Hacked together this home page, including downloadable
implementation jar.
What?
Aalto XML processor is a next-generation Stax XML processor implementation.
It is not directly related to other existing mature implementations
(such as Woodstox or
Sun Java Streaming Xml Parser),
although it did come about as a prototype for evaluating implementation
strategies that differ from those traditionally used for Java-based parsers.
Two main goals (above and beyond stock Stax/SAX API implementation) are:
- Ultra-high performance parsing by making the Common Case Fast
(similar to original RISC manifesto).
This may mean limiting functionality, but never compromising correctness.
XML 1.0 compliancy is not sacrificed for speed.
- Allowing non-block, asynchronous parsing: it should be possible to "feed" more input and incrementally get more XML events out, without forcing the current
thread to block on I/O read operation.
The current implementation goes a long way towards both goals,
proving that they are both achievable using a single implementation.
Licensing
From version 0.9.3 onward, Aalto is licensed under 2 different licenses:
- Basic GPL ("totally Free") for Free Software (read GNU Manifesto for more), such as research projects and free/open software developers
- Negotiatable commercial license by FasterXML, LLC for commercial entities that prefer full control over their usage of Aalto, including distribution without requirement for opening their source code.
Features, dependencies
Current version supports non-validating XML 1.0 subset (minus handling of DTD subsets -- that is, entity expansion and attribute defaulting have not been implemented). Supports for Stax2 validation interface is incomplete.
Stax 1.0 API is implemented for the most part, with following main exceptions:
- Coalescing mode not implemented (similar to Stax reference implementation)
- Repairing mode of stream writer not implemented (regular non-repairing mode is fully implemented).
- Non-namespace-aware mode (optional feature) is not implemented for stream writer
Completing Stax 1.0 API is a high priority goal for immediate development.
There is only one additional dependency, beyond requirement to have
APIs (Stax, SAX) available either as part of JDK (6.0) or separately:
since Aalto implements Stax2 API (developed as part of Woodstox project),
Stax2 API jar is needed along with Aalto jar. Version 3.0 (which is part
of Woodstox 4.0, and preliminary included with 3.9) should be used.
As indicated by above, Aalto features a reasonably complete Stax2
implementation. Some features (most notably Validation API) are only
partially implemented, but others such as Typed Access API are complete.
Usage
Implementation jar contains necessary service definition files
(under META-INF/services directory), but it may be necessary
to specify factory classes explicitly, using normal JAXP/Stax
settings. System properties to use are:
- -Djavax.xml.stream.XMLInputFactory=org.codehaus.wool.stax.InputFactoryImpl
- -Djavax.xml.stream.XMLOutputFactory=org.codehaus.wool.stax.OutputFactoryImpl
- -Djavax.xml.stream.XMLEventFactory=org.codehaus.wool.stax.EventFactoryImpl
- -Djavax.xml.parsers.SAXParserFactory=org.codehaus.wool.sax.SAXParserFactoryImpl
Download
Before details of distribution (like licensing etc) have been deciced on,
only binary jars are available. Implementations jars can be freely
evaluated and used without restrictions; distribution to third parties
is not allowed without explicit permission (it may become necessary
to mirror these jars, but for now this is the download page to use).
|
|
|