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:
-
SOAP binding extensions were supported in M3 for the WSDL Element model
(ext attributes and ext elements), but they are now fully supported in M4 in the
WSDL Component model too as component extension properties. New capability
has been added to the ExtensionRegistry to handle these component extensions.
Related junit testcases have been added to the test suite.
-
Validation of the service component and its children.
The specific WSDL 2.0 assertions included in this milestone are:
Component assertions: Service-0063, Endpoint-0064, Endpoint-0065 and Endpoint-0066.
-
Namespace-only imports are partially supported for schemas, but support for a
URI resolver and XML catalog need to be added to assist with the resolution of
imports and includes.
-
A User Guide has been added to the Woden website.
Current Release Structure
The distribution contains two Woden jar files described below:
-
woden-api.jar - Contains only the public Woden API (not yet final).
This jar is suitable for those that wish to create their own implementation of
the API.
-
woden.jar - Contains the public Woden API (not yet final) and current DOM
implementation.
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!
-
Most of the unit tests on the M4 plan are still outstanding, as the SOAP extensions
for the component model took longer than expected. These are still crucially important
for regression testing further development and will remain a major focus item for the
next milestone.
-
The User Guide added after M3 needs updating to reflect the functional additions for M4.
-
There is a need for technical design documentation for developers.
-
Interface extension via the 'extends' attribute of the WSDL interface element has not
been implemented yet.
-
Validation of MEPs and extension elements (such as those for SOAP and HTTP bindings and
for type systems other than XML schema) has not yet been implemented.
-
HTTP extension elements have not yet been implemented.
-
Support for non-XML Schema type systems has not yet been implemented.
-
See also the Task List on the Woden wiki at http://wiki.apache.org/ws/FrontPage/Woden/TaskList.
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
-
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.
-
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.
-
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.
-
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.