David and I chatted a little bit online this weekend as we tried to bring each other up to speed on the respective areas so we could have a meaningful conversation about this. [1] I thought I'd take a little bit to summarize.

As I understand it, we would need to integrate CXF at two points. First, the deployment. We need to support JSR 109 deployment descriptors. Second, we need to support invoking EJBs.

For deployment, we can wire in JSR 109 descriptors into the service construction. In CXF we have a Service, which holds a WSDL like service model and information about CXF can invoke the server (like databinding info, interceptors/handlers, etc). Generally you create a Service from a ServiceFactory [2][3]. The base service factory (ReflectionServiceFactoryBean) can actually construct the service from WSDL using the WSDLServiceFactory or from introspection. During this construction, ServiceConfigurations [4] can provide values for the service. There can be many of these. For instance, lets say we want to determine the namespace of the service. We can have a JaxWsServiceConfiguration which takes the namespace from the @WebService attribute. If there is no specified namespace, the service factory will move to the DefaultServiceConfiguration which will create a namespace from the package name. With that all said - its easy to envision how a Jsr109ServiceConfiguration could be created to override values in the JAX-WS attributes. I still don't know enough about JSR109 to say if this will be sufficient though - It would be good to come up with a list of areas that JSR 109 affects.

The second area - EJB invocation - is a bit simpler. In CXF we have the concept of Invokers [5][6]. Invokers allow you to control how your object is invoked. You can supply your own object, scopes, etc. XFire had an EJB invoker [7] which I think is similar to what needs to happen here (although I know jack about EJBs, so I could be wrong). While the Invoker interface in CXF is slightly different, all the same information is there.

Are there other integration areas that I missed here? Anyone able to provide a more comprehensive view of what exactly we need to do in terms of JSR 109?

Cheers,
- Dan


1. http://dev.rectang.com/logs/codehaus/%23cxf/20061001.html
2. http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?r=450267#l287 3. http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?r=450397 4. http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractServiceConfiguration.java?r=450267 5. http://fisheye3.cenqua.com/browse/~raw,r=437862/celtixfire/trunk/api/src/main/java/org/apache/cxf/service/invoker/Invoker.java 6. http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java?r=447027
7. http://xfire.codehaus.org/Invokers


David Jencks wrote:
I'm starting to look into jee5 webservices integration in geronimo. So far I've got as far as locating some of the specs and starting to read them :-). If anyone wants to help or take over aspects of this that would be great!

Unfortunately I haven't been able to keep up with the dev lists for either axis or cxf so I'm not sure whether anyone has thought about this before nor how much of the appropriate specs are implemented already by either project. I have been pointed to a cxf geronimo builder, but haven't determined how out of date it is, as there have been quite a few builder changes in geronimo since the builder was written.

Thanks!
david jencks



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

Reply via email to