Woden Incubating 1.0.0 M5 Release Notes

This is the Fifth 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 initial objective is to deliver a full implementation of WSDL 2.0 parsing and validation. Work is underway to integrate Woden into Axis2. A StAX implementation of the Woden API will be the next objective, along with WSDL 1.1 support, 1.1 to 2.0 conversion, serialization and full support for creating and modifying WSDL documents.

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 three Woden jar files described below:

Woden depends on Apache Xerces 2.8.0 and on Apache Web Service Commons XmlSchema 1.0. These libraries are included in the distribution. The standalone WSDL 1.1 conversion program depends on WSDL4J 1.52 and this library is also 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);
WSDL can be now be parsed from a DOM Element, DOM Document or InputSource using a WSDLSource object:
   WSDLFactory factory = WSDLFactory.newInstance();
   WSDLReader reader = factory.newWSDLReader();
   reader.setFeature(WSDLReader.FEATURE_VALIDATION, true);
   WSDLSource wsdlSource = reader.createWSDLSource();
   wsdlSource.setBaseURI(wsdlURI);
   wsdlSource.setSource(docEl);
   DescriptionElement desc = reader.readWSDL(wsdlSource);
   Description descComp = desc.toComponent();

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. In the Element API, certain 'name' attributes are being handled as QNames whereas they are defined in the infoset as NCNames. This is being fixed.
  3. There are various failures in the test results for the Component Interchange format testing being conducted by the WSDL 2.0 Working Group. These need to be investigated prior to the W3C WSDL 2.0 Interop event in early July 2006.
  4. There are insufficient test cases in the test suite for M5. 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.