geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Conrad O'Dea" <co...@iona.com>
Subject how are gbean references resolved?
Date Wed, 22 Feb 2006 11:15:31 GMT
Hi there, 

I've been looking at a way of plugging a Celtix runtime into Geronimo
and have some questions and observations on deployment of components and
their dependencies.  Apologies in advance if I have misunderstood  or
missed something completely.

Basically my question is how are GBean references resolved?  When one
gbean has a reference to another of a specific type, how is that reference
resolved? Some more detail follows.

In order to allow Celtix to be used to deploy JAXWS web-services, the
deployers (specifically, Tomcat, Jetty and OpenEJB) need to get a
reference on a WebServiceBuilder GBean provided by the Celtix module.
>>From looking at the code of the various deployers and at how the created
WebServiceContainer is used, once the correct builder is used,
integrating Celtix should be possible (if not exactly
straightforward :-).

However, I cannot see how the GBean from Celtix can be used in
addition/preference to that provided by the Axis module.  For each of
the module deployers, the WebServiceBuilder reference is injected via
the constructor.    BTW, I've tried deploying my own
WebServiceBuilder GBean but it never gets invoked.


Which WebServiceBuilder to inject must be described by the deployment
plans for the deployers, I guess.  In each of the deployers mentioned
above, the plan's parentId contains a reference to the Axis car, for
example from the the tomcat-deployer plan.xml:

<!-- tomcat deployer plan.xml -->
<attribute
name="defaultParentId">${pom.groupId}/j2ee-server/${pom.currentVersion}/car,${pom.groupId}/tomcat/${pom.currentVersion}/car,${pom.groupId}/axis/${pom.currentVersion}/car
</attribute>
...
   <references name="WebServiceBuilder">
      <pattern>
        <module>*</module>
           <name>WebServiceBuilder</name>
...


Is it through the defaultParentId that the kernel resolves
WebServiceBuilder reference?

If so, does that imply that to use something other than Axis to provide
a WebServiceBuilder then all of the defaultParentId attributes must be
updated to refer to something other than Axis?  In which case, to
integrate and use a Celtix runtime in Geronimo will require changing the
plans of any components that depend on the WebServiceBuilder.

Is it possible to change the plans for the deployers to be less specific
about where the WebServiceBuilder is located?  For example to specify
that *any* WebServiceBuilder will do?  Or even better to configure it so
that *all* registered WebServiceBuilders are tried until one succeeds?

thanks
Conrad 



Mime
View raw message