James Mao wrote:
About ServiceModel, I think it should also be an independent module, and for tools or rt, i think it'll be great if we have an plug-able api, so the tools and rt are not directly reference ServiceModel, and if you want to replace the ServiceModel with other Model(Wooden) will be possible. For the builder which build servicemodel should stay in servicemodel, just like Wsdl4j, they provider a model and also provide a builder.

That misses the whole point of the service model. The point of the service model is that wsdl 1.1, wsdl 2, and classes all get converted into the service model and then artifacts are generated from that.

- Dan
No, You missed my point, my point is that the ServiceModel should/could also be an independent module, we should have a decoupled design in our mind, Currently it's tightly coupled with rt, which i don't think it's a good design. To support wsdl1.1, wsdl2, classes all get converted into the ServiceModel , doesn't mean it have to stay in RT, if there are some dependence, we could/should also move that part out of rt.
Ideally you have builder api like that:

ServiceModel build(URL url)  // Use default profile JAX-WS
ServiceModel build(Class cls)
ServiceModel build(Definition def) // wsdl 1.1
ServiceModel build(Definition??? def) // wsdl 1.2
ServiceModel build(URL url, Profile profile)
...

The whole module could be shared by both the Tools and RT

So overall, my point is we could split the ServiceModel from RT.

Then, we have ServiceModel and Tools above the TestUtils/API/RT/..., i think all the problems solved.

While you can split out the service model from the run time, you'll still need the factories which are part of the core and the jaxws module. For instance:

org.apache.cxf.wsdl11.WSDLServiceBuilder - for building a basic model from wsdl org.apache.cxf.jaxws.JaxWsServiceFactoryBean - for building a model from a class org.apache.cxf.soap.SoapBindingFactory - for building a soap binding model from a wsdl

I hope this makes clear that splitting out the service model from the runtime makes no sense as you still need all these auxillary classes.


- Dan

--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog

Reply via email to