Woden Incubating 1.0.0 M6 Release Notes

This is the Milestone 6 (M6) 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 the Apache Web Services PMC. 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

Milestone releases will deliver Woden functionality gradually, leading up to a 1.0 release. The objective of a 1.0 release will be to deliver a WSDL processor that fully implements the W3C WSDL 2.0 specification, including parsing WSDL 2.0 documents into the WSDL 2.0 component model and validating their syntax and semantics.

Note that the WSDL 2.0 "spec" is currently at W3C Candidate Recommendation and may move to Proposed Recommendation towards the end of 2006, then full W3C Recommendation (i.e. a specification) sometime in early 2007.

The M6 release delivers an implementation of the Woden API based on DOM and Xerces parsing and an implementation based on AXIOM and StAX parsing.

The DOM implementation of Woden has been integrated into Axis2 and SOAP messaging based on WSDL 2.0 documents was successfully tested by the WSDL 2.0 working group at a W3C Interoperability event in July 2006. Work will commence soon to integrate the AXIOM/StAX implementation of Woden into Axis2.

Some remaining objectives include converting WSDL 1.1 documents into the WSDL 2.0 component model so they can be manipulated via the Woden API, serializing Woden's WSDL object model to WSDL 2.0 documents and full support for programmatically creating and modifying WSDL 2.0 documents.

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

What's new in this release?

This release includes the following new features:

Current Release Structure

The binary distribution contains three Woden jar files described below:

Woden depends on the following libraries and these are included in the binary distribution: The source distribution contains all of the Woden source code; the API source, the implementation source and the Ant tasks source. It does not contain the dependent libraries, but the build.properties file specifies where they can be obtained from.

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. The "testSchemaId1G" testcase from the W3C WSDL 2.0 test suite is failing since the change to XmlSchema 1.1. This appears to be due to a fragid specified for the schemaLocation in a schema import. It requires investigation and resolving, possibly in XmlSchema rather than Woden.
  2. The StAX/AXIOM implementation is less complete than the Xerces/DOM implementation. For example, extensions are not yet supported as this is awaiting the removal of some DOM dependencies from the Woden API. This work is underway and will be completed for Milestone 7.
  3. 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.
  4. There are still failures in the W3C test suite results for the Component Interchange format testing being conducted by the WSDL 2.0 Working Group. Some of these were resolved at the W3C WSDL 2.0 Interop event in early July 2006, but the remainder require investigation.
  5. There are insufficient test cases in the test suite for M6. 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 testcase to a validation rule specified in the WSDL 2.0 spec.
  6. The current extension mechanism requires statically typed interfaces for each type of extension. This requires the client application to know each required extension and its API. Some investigation has been done on a more flexible, dynamic extension mechanism and any changes that arise from this should be delivered in M7.