Hey a happy user :).

Ajith, I also hate the fact that we generate RemoteException .. I don't
see the point! So I'd be +1 for removing them for sure - when someone
asks for JAX-WS stubs then we can but we don't need to do them for the
normal stuff.

Sanjiva.
--- Begin Message --- I took a shot at integrating the Axis 2 WSDL2Java code generator into our WSDL2Java tool and Maven plugin. I basically use a combination of our SDO code generator (to figure out the SDO type mappings) and the Axis 2 WSDL2Java (to generate Java service interfaces).

Here is how it currently works:
1. We start with a WSDL file, WSDL operations flowing XSD elements and types, defined in inline XSDs or imported XSDs. 2. Run the WSDL through the SDO code generator, we do not need to generate the SDO classes here, we just run the SDO generator to populate a Map containing the SDO type mappings (XSD qname -> simple type or generated SDO class name) 3. Create an Axis2 TypeMapper from that Map, create an Axis2 CodegenConfiguration and configure it with the proper options to generate an interface with the desired style, in the desired package etc. 4. Register with the Axis2 CodegenConfiguration an SDODataBindingCodegenExtension - this does not generate any databindings at the moment, it just sets the configured TypeMapper containing the SDO type mappings on the CodegenConfiguration 5 Create an Axis2 InterfaceWriter, create an Axis2 JavaEmitter and call writeInterface on it. This generates a Java service interface, the generated methods flow simple Java types and generated SDO classes.

This can be used from the command line or from a Maven build (with the Maven plugin that I checked in under java/sca/plugin).

There are some minor issues left, the generated methods have a throws RemoteException clause which is not required by SCA, I couldn't get the Axis2 pretty printer to be recognized (but the generated code is still formatted ok), I also had to extend the Axis2 JavaEmitter class to turn a protected method to public... but this is a starting point. I will start a discussion on the Axis2 dev list to see if we can get some improvements to WSDL2Java to make it easier to embed, customize and use in Tuscany.

So our WSDL2Java tool is pretty much functional now. I integrated it in the build of the Bigbank sample to demonstrate how to use it. The AccountService interfaces are now automatically generated from AccountService.wsdl as part of the Maven build.

--
Jean-Sebastien


--- End Message ---

Reply via email to