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, with functionality to parse WSDL 2.0 documents into the WSDL 2.0 component model and validate their syntax and semantics.
The WSDL 2.0 specification was published as a W3C Recommendation on June 26, 2007.
The M9 release fully supports the parsing of valid WSDL 2.0 documents into the WSDL 2.0 Component model, as defined by the WSDL 2.0 spec and embodied in its Test Suite as at the 9th February 2011. Within the WSDL 2.0 Test Suite at that date, there were 80 testcases in the Component Model Tests (the 'good' document testcases) whose WSDL documents collectively covered all of the WSDL 2.0 elements and attributes defined by the spec and those defined for the SOAP and HTTP binding extensions. Woden passed all of these 80 testcases. Any further change to the test suite will be implemented in Woden after the M9 release to maintain this level of compliance.
The M9 release includes a new validation framework, which will support the WSDL 2.0 assertions. As of M9 many of the assertions still need to be implemented. The main focus of the next release will be to complete Woden's WSDL 2.0 compliance by fully supporting the assertions defined in the WSDL 2.0 spec. That is, completing Woden's validation logic to capture violations of these assertions in the 'bad' WSDL documents in the W3C WSDL 2.0 test suite.Other significant functionality that remains to be delivered is:
The Woden parser framework and its programming model originated from WSDL4J, a WSDL 1.1 processor. Differences in WSDL 2.0 mean that the Woden WSDL object model is quite different to WSDL4J's, however other WSDL4J features have been reused or adapted, such as its extension architecture.
This release includes the following new features:
The M9 release is available in 3 types of archives; zip, tar.gz and tar.bz2. For each archive type there is a binary and a source distribution archive, each with its own MD5 and sha1 checksums. The source distribution contains the entire Woden Subversion source code tree.The binary distribution contains the Woden API Javadoc and the seven Woden jar files described below:
Please see this list of what we think needs doing - and please consider helping out if you're interested & able! A more complete and up-to-date list of ToDos is the Woden JIRA issues at http://issues.apache.org/jira/browse/Woden.
WSDLFactory factory = WSDLFactory.newInstance(); WSDLReader reader = factory.newWSDLReader(); reader.setFeature(ReaderFeatures.VALIDATION_FEATURE_ID, true); <-- enable WSDL 2.0 validation (optional) Description descComp = reader.readWSDL(wsdlLoc); <-- the Description component, always returned DescriptionElement descElem = descComp.toElement(); <-- the <description> element, if requiredA custom error handler can also be specified as follows:
Description descComp = reader.readWSDL(wsdlLoc, myErrorHandler);WSDL can be parsed from some underlying object or byte stream content (rather than a URL) using a WSDLSource object:
WSDLFactory factory = WSDLFactory.newInstance(); WSDLReader reader = factory.newWSDLReader(); reader.setFeature(WSDLReader.FEATURE_VALIDATION, true); WSDLSource wsdlSource = reader.createWSDLSource(); //the WSDLSource impl is specific to the WSDLReader impl wsdlSource.setBaseURI(wsdlURI); wsdlSource.setSource(wsdlSrc); //where wsdlSrc might be a DOM Document or Element object Description descComp = reader.readWSDL(wsdlSource);