Hi!
I applied to be the mentor for this proposal. I also just turned on the "proposal modification enabled" flag so you may be able to modify the proposal direcetly now to add more stuff. If now, we'll likely just need to pass things back and forth on this list. more inline..... On Monday 11 April 2011 4:57:22 PM Yaroslav Porshnev wrote: > Greetings to Apache CXF development community. > > My name is Yaroslav Porshnev and I applied for Google Summer of Code > with proposal of adding WSDL 2.0 support. > > I would like to work on this project as it corresponds to my Master > studies in Service Engineering where an important role is devoted to > Web Services. The project allows me to widen my knowledge and have > excellent practice in this area. > > Unfortunately I’ve heard about GSOC only at the beginning of previous > week, so I had only few days to find interesting project and create at > least draft version of the proposal. I understand that its current > version very raw an lacks some important information like timeline and > plan of realization, but I decided to give at least some outcome > instead of waiting for next summer. > Do you have some kind of wiki or other place where I can put my > proposal and revise it? I think with your advices I can make better > variant by the end of this week. > > I am currently exploring CXF and things that should be done for the > realization of the project and I have several questions. > > First of all, is this WSDL 2.0 support interesting to the development > community? As I can see from Jira, this issue was created almost 5 > years ago, and since then there were not much activities. Or maybe I > as a newbie don’t see some fundamental difficulty in its realization? Historically, WSDL 2.0 has never really "taken off". Most of the industry is very centered around WSDL 1.1. Part of that is that there are very few toolkits that support it. Kind of a checken/egg issue. However, there definitely is some value to being able to support WSDL 2.0. With WSDL 2.0, we could model both SOAP and REST services together which can be quite interesting. There are other QOS guarantees that are interoduced with the additional message patterns allowed in WSDL2.0. > As I understand one of the main goals here will be modification of > existing set of tools for WSDL->code and code->WSDL transformation. > Will it also involve any modifications of existing architecture? > > I would highly appreciate any ideas and advices. In CXF, for the SOAP/JAX-WS side, we have a service model in cxf/api that models the service at runtime and for the tools. Most of the "work" around what is needed involves: 1) Writing a class that would take the service model and produce a WSDL2 document. This would be used at runtime for things like ?wsdl2 as well as for the java2ws tool. (ServiceWSDLBuilder.java) 2) Writing a class that would take a wsdl2 doc and build up the service model. This is used at runtime as well as for wsdl2java. (WSDLServiceBuilder.java) One the two of them are written (you can use the above classes in rt/core/src/main/java/org/apache/cxf/wsdl11 as a starting point), you would need to start findng the places that call the wsdl11 versions and have them optionally call the wsdl11 versions. Some places may require some refactory. The WSDLManager, for example, only deals with wsdl4j object model which is WSDL1.1 only. That will require a little work. Beyond that would be enable JAX-RS to generate WSDL2.0. We have a generator that generates WADL. It would likely be easiest to look at that and create a new one for WSDL2.0. There are a lot of other complexities that would need investigating. I think the only wsdl2.0 model in Java is Woden. Adding an additional dependeny such of that for a feature that isn't really needed or used by a lot of people could be an issue. Thus, we'd likely want to find a way to dynamically load the wsdl2 support only if needed or available. However, getting the above done would be a huge start. My SUGGESTION for your proposal would be to lay out a roadmap that starts with the Java->WSDL2 case. That's a bit easier to do and has a lower impact on the rest of CXF. It's really just used in two places: 1) the handling of ?wsdl (so you would add ?wsdl2 support) 2) the java2ws tool That would be milestone 1. The second part would be the WSDL -> * parts that may require a bit more knowledge about CXF which you would hopefully start learning while doing the first part. I hope that helps give you a little more information. Definitely dig into the above mentioned code and ask questions, -- Daniel Kulp [email protected] http://dankulp.com/blog Talend - http://www.talend.com
