The tool should be able to generate different types of Wrapper.
The Tool Should starts with a WSDL document and generate following classes.
The tool should able to generate classes for
The tool should be extensible to support other programming languages if required.
The tool should be support SOAP1.2 encoding style and extensible to support other encoding styles as well.
The tool should able to generate classes for following styles
The tool takes a top down approach. It starts with a wsdl document and generates all the classes necessary to deploy the web service. It generates.
For more information about the generated classes please refer to the architecture documentation.
WSG - WebServiceGenaratorThe blue arrows means the execution will go for one of the objects and black arrows mean tool will go to all the objects.
The factories have used to have right kind of instances at each occasion. The path and how the execution is done depend on the options. e.g. if the targetEngine is client all generators except generator creates server wrapper will be called or else server all generators except generator creates client stub will be called. MSG-WSG and DOC-WSG will call the generators even they are not shown.
The WSDL file and the user options are processed by the WSDLWs. The WSDL create a class called wsContext(WebServiceContext) which is the runtime representation of the processed data. This wsContext passes to the generators. The generators extract the information form the wsContext create the files.The wsContext act as a mediator and create a loosely coupled system.
wsContext has following componets.Generator generate a class depend on the options, It contains a class called SourceWriter and the concrete implementation of the SourceWriter decides what will Genarator generate. The SourceWriter factory create a correct type of generator depend on the options.
Above class diagram shows the class structure of the tool. The extensibility has been the major concern of the design.
To really work on this please go through the example3 description at userguide.