geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aaron Mulder" <ammul...@alumni.princeton.edu>
Subject Re: how are gbean references resolved?
Date Wed, 22 Feb 2006 14:50:10 GMT
On 2/22/06, Conrad O'Dea <codea@iona.com> wrote:
> <!-- 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?

I'll give you my 2 cents on this...

The defaultParentId is set as the parent for any application modules
that are configured.  This primarily affects the class path for those
modules, but also affects startup order (parents should be started
before children, etc.).  So if an application module needs to see
Celtix classes, then you'll want to add Celtix to the defaultParentId;
if the standard libraries provided by Axis are good enough, then you
wouldn't need to change the defaultParentId.

The reference is resolved based on the GBeanName (ObjectName) pattern
(not related to the parent ID).  That's generally made up of the
domain, server, application name, component type, module name, and
component name.  I believe that anything you specify in the reference
is as you specify, and anything else generally defaults to the value
for the referencing component (except for the type -- I'm not sure how
that's determined but maybe the declaration of the reference can say
what type it wants?).  So the reference above translates to something
like "use the same domain, server, and application (null), allow any
module name, and require the component name to be 'WebServiceBuilder'"
-- and again, I'm not sure how it handles the type, but if you make
sure the type of your GBean matches the type of the Axis one, you
should be fine (assuming you declare yours with <gbean
name="WebServiceBuilder class="...">).  The type is generally set in
the constructor for the GBean info builder factory thingy for your
GBean, using one of the constants declared in, well, I forget which
class, NameFactory maybe.

To troubleshoot this, start the server and point your browser to
http://localhost:8080/debug-tool/ and look for your GBean name in the
list and also look for the Axis GBean name in the list -- searching
for WebServiceBuilder ought to do.  If you can't figure out what's
wrong from there, you can reply and post both names and we can take a
look.

Thanks,
    Aaron

Mime
View raw message