Woden Incubating 1.0.0 M4 Release Notes

This is the Fourth Milestone release of Apache Woden.
The Milestone plan is at http://incubator.apache.org/woden/dev/1.0/milestoneplan.html.

Incubation Disclaimer

The Woden project is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by Davanum Srinivas. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Key points

This milestone delivers a DOM-based implementation of Woden. The main objective is to deliver a full implementation of WSDL 2.0 asap. A StAX implementation of the Woden API will be the next objective, along with WSDL 1.1 support and 1.1 to 2.0 conversion.

The Woden framework and programming model are similar to WSDL4J, such as the factory, reader and WSDL xml object model. Other features will be reused too, such as the extension mechanism.

What's in this release?

This release includes the following new features:

Current Release Structure

The distribution contains two Woden jar files described below:

Woden depends on Apache Xerces 2.7.1 and on Apache Web Service Commons XmlSchema 1.0. These libraries are included in the distribution.

What's still to do?

Please see a list of what we think needs doing - and please consider helping out if you're interested & able!

Example Usage

WSDLFactory factory = WSDLFactory.newInstance();
WSDLReader reader = factory.newWSDLReader();
reader.setFeature(ReaderFeatures.VALIDATION_FEATURE_ID, true); <-- enable WSDL 2.0 validation (optional)
DescriptionElement desc = reader.readWSDL(wsdlLoc); <-- the <description> element
Description descComp = desc.toComponent(); <-- the Description component

A custom error handler can also be specified as follows:
DescriptionElement desc = reader.readWSDL(wsdlLoc, handler);

Known Problems/Issues

  1. Currently, the only type system supported is W3C XML Schema and this is exposed at certain points of the API (through the use of the XmlSchema interface). Later on we will consider more general, extendable support for other type systems.
  2. Constants that represent possible type systems (e.g. W3 XML Schema) and type system APIs (e.g. XML Schema API) are defined in org.apache.woden.internal.wsdl20.Constants. This is part of the implementation, not part of the API. Users of the API may need access to these constants to query type system support via TypesElement, ElementDeclaration or TypeDefinition. We need to think about how to expose these constants on the API.
  3. There is currently one JUnit test failure. Failure of test testCreditCardFaults1G is due to a current limitation in Woden with respect to resolving imported schema locations based on the schemaLocation attribute.
  4. There are insufficient test cases in the test suite for M4. The suite requires more junit tests for the Woden framework and the W3C WSDL test suite is in the process of being annotated with assertions that tie each test to a specific part of the WSDL 2.0 spec.