cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: GSoC. CXF-48 / WSDL 2.0 Support
Date Tue, 12 Apr 2011 15:17:22 GMT


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
dkulp@apache.org
http://dankulp.com/blog
Talend - http://www.talend.com

Mime
View raw message