+1 from me for merging. Sanjiva.
On Sat, 2007-01-20 at 07:47 +0530, keith chapman wrote: > Hi devs, > > As most of you might know we (Chinthaka and myself) created a branch > [1] to work on Axis2 to improve it for WSDL 2.0 support. We have > successfully completed most of the work now. The rest can be completed > within a week or so. So we thought we better discuss the changes we > had to do before merging the branch to the trunk. We had to do a > couple of notable changes to Axis2 in order to do the improvements in > a cleaner way. We did not want to hack axis2 to provide WSDL 2 > support. > > The following briefing might help those who are not very familiar with > WSDL 2.0. > > Approximate mapping of WSDL 2.0 components to WSDL 1.1 > Note : This mapping is just for explanatory purposes. > > WSDL 2.0 WSDL 1.1 > > endpoint port > binding binding > interface portType > > > WSDL 2.0 uses lots of defaulting rules and thrives on the principle of > reuse (Which enables the user to write a WSDL 2.0 document without > specifying too many things). A service can have multiple endpoints, an > endpoint has a single binding (a binding may be used by several > endpoints). A binding may be bound to an interface (Generic Bindings > can also exist where the binding is not bound to an interface). > > In order to maximize the benefits of WSDL is it clear that axis2 needs > to support multiple endpoints. Currently axis2 does not support > multiple services or multiple endpoints. Axis2 just processors the > first endpoint and deploys the service. While integrating WSDL 2.0 > support to axis2 it was clear that we needed to support multiple > endpoints. > > *Proposal for supporting multiple endpoints.* > > Introduce the following classes (class diagram attached) > > AxisEndpoint - Hold information about an endpoint > > AxisBinding - Hold information about a Binding > > AxisBindingOperation - Hold information about a binding operation. > AxisOperation will hold general information pertaining to an > operation . All additional information (Binding specific information) > will be captured by this class. It will also have a link to its > corresponding AxisOperation. > > AxisBindingMessage - Hold information about a binding Message. > AxisMessage will hold general information pertaining to > a message . All additional information (Binding specific message > information) will be captured by this class. It will also have a > link to its corresponding AxisMessage > > In correspondence to the inclusion of the new binding hierarchy, > WSDL20ToAxisServiceBuilder and WSDL11ToAxisServiceBuilder will have to > be updated to pump the new classes. (We have already updated > WSDL20ToAxisServiceBuilder. WSDL11ToAxisServiceBuilder is in the > process of been updated). Also AxisServiceBasedMultiLanguageEmitter > will have to be updated to draw information from the new binding > hierarchy (This has also been completed). > > *Effects on Dispatching* > > With the introduction of multiple endpoints we should have a way of > dispatching messages to the correct endpoints now. The mechanism we > used was to have the default URIs as > $Prefix/ServiceName.EndpointName[/OperationName][/Other Stuff]. It > will be nice if we can include something like > > <endpoints> > <endpoint alias="NSPath" name="" />* > </endpoints>? > > in the services.xml. which will make the request url look like > $Prefix/alias[/OperationName][/Other Stuff] > > We have updated RequestURIBasedDispatcher to dispatch messages to the > correct endpoint based on the above. The allServices map in > AxisConfiguration has been updated to map ServiceName.EndpointName to > the corresponding AxisService. Once we find the correct AxisService > we add the name of the endpoint (the endpoint that the message came > to) as a property to the message context. > > We would like to know your comments on this before going ahead and > merging the WSDL 2.0 branch to the trunk. > > [1] : > https://svn.apache.org/repos/asf/webservices/axis2/branches/java/WSDL_2_0 > <https://svn.apache.org/repos/asf/webservices/axis2/branches/java/WSDL_2_0> > > Thanks, > Keith > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] -- Sanjiva Weerawarana, Ph.D. Founder & Director; Lanka Software Foundation; http://www.opensource.lk/ Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/ Director; Open Source Initiative; http://www.opensource.org/ Member; Apache Software Foundation; http://www.apache.org/ Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]