WSDLToIDLDevPlan
Summary of Requirements Being Addressed
A tool that can
- Take a wsdl file with a
portType
and produce an idl file for thatportType
- Take a wsdl file with a
portType
and add a CorbaBinding and output a new wsdl file with the corbaBinding - Take a wsdl file with a CorbaBinding and produce an idl file for that CorbaBinding.
Summary of Proposed Solution
The proposed solution is to use jwsdl (wsdl4j reference implementation) to implement the model for the wsdl file and define idltype classes to represent this information in idl. Define a corba binding schema for Yoko.
To get corba type classes generated to represent the corbatypes in the corba binding we will use the xsdtojava tool in celtix and use jwsdl extensionregistry and celtix's JAXBExtensionHelper class to add the corba extenstions to the model so we can have a complete model of a wsdl file with a corba binding.
So then for the purpose of having a corbaBinding and generating the idl - you need to traverse the CorbaBinding, get its operations that match those in the PortType from which you get the operation's input and output and then match these Corba Types to idlTypes.
Likewise when adding a corbaBinding we need to Setup the extension elements and to do this we need to map the schema types of the input/ouput to Corba types and then build up the corba binding and operations with the corba types and add these to the Corba Binding.
The Binding, PortType, Messages etc will be got using jwsdl.
We need to define how the following mappings are done.
- Map the schema types to CORBA Types
- Map the CORBA Types to idlTypes.
For these mappings the proposal is to use the apache Schema project api's. The project is at http://ws.apache.org/commons/
For each set of tasks we need to setup and write unit tests and system tests. Make sure it conforms to checkstyle. We need to conform to the coding standard used in Yoko.
Stories to be done for type support
List of different types that need to be supported
Description |
---|
Primitive support for the Corba binding generation (mapping schema types to corba types |
Tests for Primitive support for the Corba binding generation |
Primitive support for idl generation (mapping corba types to idltypes) |
Tests for Primitive support for idl generation |
Support for simple sequence and Enum |
Support for basic sequence with tests |
Support for basic struct with tests |
Support for basic exception with tests |
Support for basic union with tests |
Support for basic enum with tests |
Support for basic array with tests |
Support for typedef array with tests |
Support for union with tests |
Support for anon types with tests |
Support for nested with tests |
Support for basic recursion with tests |
Support for basic fixed with tests |
Support for basic any with tests |
Support for basic consts with tests |
Support for date/time with tests |
Support for ws-addressing maybe |