By the way, the reason it works if you change it to a server, rather
than a service, is because, when parsing the plugin descriptor, if RHQ
encounters a server element at the top level with no runs-inside types
defined, it assumes the server is a platform server (a server who has
all the platform types as its parents). So:
<server name="Interdomain Service" ...>
...
</server>
is essentially equivalent to:
<server name="Interdomain Service" ...>
<runs-inside>
<parent-resource-type name="Windows" plugin="Platforms"/>
<parent-resource-type name="Linux" plugin="Platforms"/>
<parent-resource-type name="Solaris" plugin="Platforms"/>
<parent-resource-type name="HP-UX" plugin="Platforms"/>
<parent-resource-type name="AIX" plugin="Platforms"/>
<parent-resource-type name="FreeBSD" plugin="Platforms"/>
<parent-resource-type name="Mac OS X" plugin="Platforms"/>
<parent-resource-type name="Java" plugin="Platforms"/> <!--
any OS that
RHQ doesn't have native (i.e. SIGAR) support for -->
</runs-inside>
...
</server>
On 9/16/2009 11:14 AM, Ian Springer wrote:
Hi Bruno,
You have to define the service's parent type(s), so RHQ knows where to
stick it in the type hierarchy once it's discovered. There are a few
ways to do this, depending on your needs.
If it's a platform service (i.e. a service whose parent is the
platform itself), you'd do something like:
<service name="Interdomain Service" ...>
<runs-inside>
<parent-resource-type name="Windows" plugin="Platforms"/>
<parent-resource-type name="Linux" plugin="Platforms"/>
<parent-resource-type name="Solaris" plugin="Platforms"/>
<parent-resource-type name="HP-UX" plugin="Platforms"/>
<parent-resource-type name="AIX" plugin="Platforms"/>
<parent-resource-type name="FreeBSD" plugin="Platforms"/>
<parent-resource-type name="Mac OS X" plugin="Platforms"/>
<parent-resource-type name="Java" plugin="Platforms"/> <!--
any OS
that RHQ doesn't have native (i.e. SIGAR) support for -->
</runs-inside>
...
</service>
(If your service will only run on certain OS'es, you could remove the
unsupported platform types from the list of parent types).
Or you could do something similar to say it can be the child of
multiple server or service types, e.g.:
<service name="Interdomain Service" ...>
<runs-inside>
<parent-resource-type name="JMX Server" plugin="JMX"/>
<parent-resource-type name="JBossAS Server" plugin="JBossAS"/>
<parent-resource-type name="JBossAS Server"
plugin="JBossAS5"/>
</runs-inside>
...
</service>
Finally, if you want it to be a child of a single server or service
type defined in the same plugin, just nest it inside the parent server
or service element, e.g.:
<server name="CoolServer">
<service name="Interdomain Service" ...>
...
</service>
...
</server>
Hopefully this helps.
--Ian
On 9/15/2009 5:55 AM, Bruno Wassermann wrote:
> Hello again,
>
> I have written a plugin which defines a single service like so:
> <service
> name="Interdomain Service"
> discovery="InterDomainResourceDiscoveryComponent"
> class="InterDomainResourceComponent"
> description="Dependency in different administrative domain"
> supportsManualAdd="true">
> ...
>
> During auto-discovery, the resource discovery component does not get
> called.
> It only gets called, if I define the Interdomain Service to be a server.
> What am I missing here?
>
> Thanks,
>
> -- Bruno
>
>
>
> _______________________________________________
> jopr-dev mailing list
> jopr-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/jopr-dev
--
Ian Springer
Sr. Software Developer
JBoss Operations Network
Red Hat
ian.springer(a)redhat.com