On Jan 31, 2008 5:04 PM, Lou Amodeo <[EMAIL PROTECTED]> wrote: > Hi, I have a question about the implementation of the "wsdlless" > deployment > function. > The issues I see are occurring in a couple of places within the > life-cycle. > Namely, deployment, binding start, and service definition. It occurs to me > that if the generation of the wsdl occurred early in the process, rather > than during the startup of the component, Tuscany could maintain a common > code path for contributions with wsdl and contributions w/o wsdl. Today > for > instance WSDL is processed in the WSBindingProcessor when its present and > the Axis2ServiceBinding when its not. I am curious why this is so? Why > wouldn't the WSBindingProcessor detect wsdlLess, generate a wsdl > definition > at that point and the subsuquent flow from there on would be the same? > Alternatively, when a contribution is deployed, why not detect a wsdl is > missing, generate one, and place it in the contribution. At this point a > wsdlElement could also be added and the subsequent startup process would > not > know the difference? I am not sure if other bindings will adopt a wsdlless > approach but I would think a common non-binding specific process would be > beneficial. > > > Thanks for your help. > Hi Lou,
Anything we can do to simplify our code path is a good thing IMO. More specifically I'm attracted by your idea of having the wsdl processing happen in one place and I think this could work well for the model generated in memory when a composite is processed. The WSDL interface contract could be built in the earlier phases of composite processing and the code at the top of Axis2ServiceBindingProvider InterfaceContract contract = wsBinding.getBindingInterfaceContract (); if (contract == null) { contract = service.getInterfaceContract ().makeUnidirectional(false); if ((contract instanceof JavaInterfaceContract)) { contract = Java2WSDLHelper.createWSDLInterfaceContract((JavaInterfaceContract)contract, requiresSOAP12(wsBinding)); } wsBinding.setBindingInterfaceContract(contract); } Could be reworked or removed.. Could you say a little more about the alternative you propose, "Alternatively, when a contribution is deployed, why not detect a wsdl is missing, generate one, and place it in the contribution. ". What you you mean by "deployed" here. I'm asking in relation to two other threads that are ongoing. In the discussion [1] about reference targets I've been floating the idea of having a contribution processing phase in the domain that fixes up contributions before they are deployed to nodes. I had been thinking about URIs but this WSDL point could be another one of the things that could be done ahead of time. In that way the Node would always be presented with a WSDL file in the deployed contribution. In the discussion [2] about the runtime Java2WSDL processing you suggest that you want to write the generated WSDL out as a file as an alternative to providing access to it via ?wsdl. Moving this processing forward would make this related fix easier. My question here is where should the WSDL file be written to? I'll ask that back over on the other thread. Regards Simon [1] http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg27294.html [2] http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg27532.html