public class JMXServiceJob extends ClientBase implements Structural, BeanDirectoryOwner
Features of this service include:
${my-jmx-world/mydomain:type=greeting,name=hello}
Note that what is being referenced here is an Oddjob wrapper around
the MBean that allows operations and attributes of the MBean to accessed
elsewhere. What is referenced is not an MBean instance.
The example below shows an MBean (wrapper) being passed as the source
property to an InvokeJob.
Attributes of the MBean can be accessed as if they were properties of the MBean. If the MBean above has an attribute 'FullText' its value can be accessed using the expression:
${my-jmx-world/mydomain:type=greeting,name=hello.FullText}
If an MBean Object Name contains dots (.) it must be quoted using double
quotes. If the domain in the above example was my.super.domain the
MBean can be identified with the expression:
${my-jmx-world/"my.super.domain:type=greeting,name=hello"}
and the attribute with:
${my-jmx-world/"my.super.domain:type=greeting,name=hello".FullText}
Note that this support for quoting does not apply to Oddjob property
expansion expressions in general - only too these MBean identifiers.
<oddjob>
<job>
<sequential id="sequential">
<jobs>
<jmx:service id="jmx-service" connection="localhost:13013" xmlns:jmx="http://rgordon.co.uk/oddjob/jmx"/>
<echo id="echo-farm">${jmx-service/"fruit:service=vendor,name=Pickles".Farm}</echo>
<set>
<values>
<value key="jmx-service/fruit:service=vendor,name=Pickles.Rating" value="4.2"/>
</values>
</set>
<invoke id="invoke-quote" function="quote">
<parameters>
<value value="apples"/>
<value value="2012-08-06"/>
<value value="42"/>
</parameters>
<source>
<value value="${jmx-service/fruit:service=vendor,name=Pickles}"/>
</source>
</invoke>
</jobs>
</sequential>
</job>
</oddjob>
ClientBase.WhyStop| Constructor and Description |
|---|
JMXServiceJob() |
| Modifier and Type | Method and Description |
|---|---|
void |
addStructuralListener(StructuralListener listener)
Add a listener.
|
protected void |
doStart(javax.management.MBeanServerConnection mbsc,
java.util.concurrent.ScheduledExecutorService notificationProcessor)
Overridden by subclasses to provide a specific startup.
|
protected void |
onStop(ClientBase.WhyStop why) |
BeanDirectory |
provideBeanDirectory()
Get the
BeanDirectory. |
void |
removeStructuralListener(StructuralListener listener)
Remove a listener.
|
doStop, getConnection, getEnvironment, getHeartbeat, onStart, onStop, setConnection, setEnvironment, setHeartbeatfireDestroyedState, getName, getStateChanger, hardReset, iconHelper, logger, loggerName, onDestroy, run, setName, softReset, stateHandler, stop, toStringaddIconListener, addPropertyChangeListener, addStateListener, configure, destroy, firePropertyChange, getArooaSession, iconForId, initialise, lastStateEvent, onConfigured, onInitialised, removeIconListener, removePropertyChangeListener, removeStateListener, save, save, setArooaContext, setArooaSessionclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddStateListener, lastStateEvent, removeStateListenerprotected void doStart(javax.management.MBeanServerConnection mbsc,
java.util.concurrent.ScheduledExecutorService notificationProcessor)
throws java.io.IOException
ClientBasedoStart in class ClientBasejava.io.IOExceptionprotected void onStop(ClientBase.WhyStop why)
onStop in class ClientBasepublic BeanDirectory provideBeanDirectory()
BeanDirectoryOwnerBeanDirectory. This method may return null if
the BeanDirectory isn't available.provideBeanDirectory in interface BeanDirectoryOwnerBeanDirectory or null.public void addStructuralListener(StructuralListener listener)
StructuraladdStructuralListener in interface Structurallistener - The listener.public void removeStructuralListener(StructuralListener listener)
StructuralremoveStructuralListener in interface Structurallistener - The listener.