geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Conrad O'Dea" <conrad.o...@iona.com>
Subject Re: CXF Geronimo Integration
Date Wed, 04 Oct 2006 09:04:55 GMT
Hi Dan,

some comments below...

On Tue, 2006-10-03 at 14:19 -0400, Dan Diephouse wrote:

> 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.

I'm not overly familiar with CXF's service model stuff but this sounds
reasonable.  

With JEE5 and Web Services 1.2, deployment descriptors optional so the
CXF web service builder must be able to introspect the deployment
archive and find suitably annotated classes. 

> 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.

I did some work with the Geronimo Web Service container and Celtix 1.0,
although that was with a WS endpoint implemented using a servlet.  For
the servlet case, the integration was done as a custom Celtix transport
that sat atop the Geronimo web service container.  The transport was G's
but the bindings and dispatch were handled by Celtix.

Currently with Geronimo, are EJBs invoked on through the same Web
Service Container?  If so, then CXF may need to adapt to the WS
container as well as using the EJB invoker.  If not, is the plan for CXF
to supply the whole WS stack, including transport?

And not forgetting support servlet endpoints.

> 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?

On the client side, injection of @WebServiceRef annotations need to be
supported.  I guess this would come under some general resource
injection framework for Geronimo, but CXF will need to be able to hook
into it to provide proxies for the referenced services

On the builder side of thing, I'll dust off the old Celtix one and see
how out of date it is.  


rgds
Conrad 


> 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
> >
> 
> 


Mime
View raw message