Hm,
I checked the plugin name in my depend, added an explicit useCases=true, but
it still doesn't have TomcatConfig loaded at runtime. Is there, like for
Eclipse plug-ins, a concept of internal and external (visible to other
plugins that have some relationship with this plugin) classes and packages?
I haven't seen any evidence for that, but just checking.
Are dependencies transitive? If we have plugins A, B, C and B depends on C
and A depends on B and C, is it sufficient for A to declare its dependency
on B with the dependency on C being implied?
Here's an excerpt from Axis' rhq-plugin.xml. Maybe you can spot something
obvious that's wrong here?
<plugin
name="Axis"
displayName="Axis Server"
package="uk.ac.ucl.cs.sse.plugins.axis"
description="Discovery, measurment and management of Axis and deployed
Web services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:xmlns:rhq-plugin"
xmlns:c="urn:xmlns:rhq-configuration">
<depends plugin="JMX" />
<depends plugin="Tomcat" useClasses="true" />
<server
name="Axis Server"
...
-- Bruno
On Fri, Jul 31, 2009 at 3:41 AM, <mazz(a)redhat.com> wrote:
It sounds like what you are doing is correct. If you have a plugin
"A" and
it has some classes that you want available to plugin "B", then plugin
"B"'s
descriptor should have a <depends> tag on plugin "A":
<plugin name="B" ...>
<depends plugin="A" useClasses="true" />
...
</plugin>
What this does is put A's plugin classloader as the parent to B's plugin
classloader. You do not have to do anything else other than put that
<depends> in your descriptor (no need to put the plugin jar in your plugin
jar's lib directory).
FYI: The useClasses, if not defined, is inferred on the last <depends> tag
listed in the descriptor. If you only have one <depends> tag, its useClasses
is assumed true if its not specified.
BTW: recently, alot of work has gone into trunk that performs more
classloading "stuff". See:
http://jopr.org/confluence/display/RHQ/Plugin+Dependencies+and+Class+Loaders
----- Original Message -----
From: "Bruno Wassermann" <bruno.wassermann(a)googlemail.com>
To: "jopr-dev" <jopr-dev(a)lists.jboss.org>
Sent: Thursday, July 30, 2009 5:46:05 PM GMT -05:00 US/Canada Eastern
Subject: Re: [jopr-dev] Plugin Dependencies
Whoops, it should rather be <depends plugin="xyz"
useClasses="true/>,
right? Sorry about the premature question :(
-- Bruno
On Thu, Jul 30, 2009 at 10:41 PM, Bruno Wassermann <
bruno.wassermann(a)googlemail.com > wrote:
Hi,
This may be a typical newbie question...
I want the Axis plugin to be able to reuse some classes defined in the
Tomcat plugin, namely TomcatConfig. To achieve this lofty goal I add the
following to Axis.rhq-plugin.xml: <depends plugin="Tomcat"/>.
However, at runtime the class loader for the Axis plugin doesn't seem to
have loaded Tomcat's classes. Asking the agent to run a discovery scan, the
Axis plugin reports a NoClassDefFoundError for
org.jboss.on.tomcat.helper.TomcatConfig.
What am I getting wrong here? Do I have to manually add the Tomcat plugin's
jar file to my plugin?
Many thanks,
-- Bruno
_______________________________________________
jopr-dev mailing list
jopr-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jopr-dev
_______________________________________________
jopr-dev mailing list
jopr-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jopr-dev