Package org.apache.catalina.ant.jmx

## Class JMXAccessorInvokeTask

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.catalina.ant.BaseRedirectorHelperTask
      - - org.apache.catalina.ant.jmx.JMXAccessorTask
        - - org.apache.catalina.ant.jmx.JMXAccessorInvokeTask

All Implemented Interfaces:
  `Cloneable`

    public class JMXAccessorInvokeTask
    extends JMXAccessorTask

Access JMX JSR 160 MBeans Server.

- open more then one JSR 160 rmi connection
- Get/Set Mbeans attributes
- Call Mbean Operation with arguments
- Argument values can be converted from string to int,long,float,double,boolean,ObjectName or InetAddress
- Query Mbeans
- Show Get, Call, Query result at Ant console log
- Bind Get, Call, Query result at Ant properties

Examples:

- Get a session attribute hello from session with ref ${sessionid.0} form app Catalina:type=Manager,context=/ClusterTest,host=localhost

         <jmx:invoke
                 name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
                 operation="getSessionAttribute"
                 resultproperty="hello">
               <arg value="${sessionid.0}"/>
               <arg value="Hello"/>
         </jmx:invoke>

- Create new AccessLogger at localhost `<jmx:invoke name="Catalina:type=MBeanFactory" operation="createAccessLoggerValve" resultproperty="accessLoggerObjectName" > <arg value="Catalina:type=Host,host=localhost"/> </jmx:invoke>`
- Remove existing AccessLogger at localhost `<jmx:invoke name="Catalina:type=MBeanFactory" operation="removeValve" > <arg value="Catalina:type=Valve,name=AccessLogValve,host=localhost"/> </jmx:invoke>`

First call to a remote MBeanserver save the JMXConnection a referenz jmx.server

These tasks require Ant 1.6 or later interface.

Since:
  5.5.10
Author:
  Peter Rossbach

### Field Summary

### Fields inherited from class org.apache.catalina.ant.jmx.JMXAccessorTask

`JMX_SERVICE_PREFIX, JMX_SERVICE_SUFFIX`

### Fields inherited from class org.apache.catalina.ant.BaseRedirectorHelperTask

`alwaysLog, failOnError, redirectErrStream, redirector, redirectorConfigured, redirectorElement, redirectOutput, redirectOutStream`

### Fields inherited from class org.apache.tools.ant.Task

`target, taskName, taskType, wrapper`

### Fields inherited from class org.apache.tools.ant.ProjectComponent

`description, location, project`

### Constructor Summary

Constructors
`JMXAccessorInvokeTask()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addArg​(Arg arg)`
`List<Arg>` `getArgs()`
`String` `getOperation()`
`String` `jmxExecute​(MBeanServerConnection jmxServerConnection)` Execute the specified command, based on the configured properties.
`protected String` `jmxInvoke​(MBeanServerConnection jmxServerConnection, String name)` Invoke specified operation.
`void` `setArgs​(List<Arg> args)`
`void` `setOperation​(String operation)`

### Methods inherited from class org.apache.catalina.ant.jmx.JMXAccessorTask

`accessJMXConnection, convertStringToType, createJMXConnection, createProperty, createProperty, echoResult, execute, getDelimiter, getHost, getIf, getJMXConnection, getName, getPassword, getPort, getProperty, getRef, getResultproperty, getUnless, getUrl, getUsername, isEcho, isSeparatearrayresults, isUseRef, setDelimiter, setEcho, setHost, setIf, setName, setPassword, setPort, setProperty, setRef, setResultproperty, setSeparatearrayresults, setUnless, setUrl, setUsername, testIfCondition, testUnlessCondition`

### Methods inherited from class org.apache.catalina.ant.BaseRedirectorHelperTask

`addConfiguredRedirector, closeRedirector, handleErrorFlush, handleErrorOutput, handleFlush, handleOutput, handleOutput, isFailOnError, openRedirector, setAlwaysLog, setAppend, setCreateEmptyFiles, setError, setErrorProperty, setFailonerror, setLogError, setOutput, setOutputproperty`

### Methods inherited from class org.apache.tools.ant.Task

`bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleInput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

### Methods inherited from class org.apache.tools.ant.ProjectComponent

`clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### JMXAccessorInvokeTask

    public JMXAccessorInvokeTask()

### Method Detail

#### getOperation

    public String getOperation()

Returns:
  Returns the operation.

#### setOperation

    public void setOperation​(String operation)

Parameters:
  `operation` - The operation to set.

#### addArg

    public void addArg​(Arg arg)

#### getArgs

    public List<Arg> getArgs()

Returns:
  Returns the args.

#### setArgs

    public void setArgs​(List<Arg> args)

Parameters:
  `args` - The args to set.

#### jmxExecute

    public String jmxExecute​(MBeanServerConnection jmxServerConnection)
                      throws Exception

Description copied from class: `JMXAccessorTask`
Execute the specified command, based on the configured properties. The input stream will be closed upon completion of this task, whether it was executed successfully or not.

Overrides:
  `jmxExecute` in class `JMXAccessorTask`
Parameters:
  `jmxServerConnection` - The JMX connection that should be used
Returns:
  An error message string in some situations
Throws:
  `Exception` - if an error occurs

#### jmxInvoke

    protected String jmxInvoke​(MBeanServerConnection jmxServerConnection,
                               String name)
                        throws Exception

Invoke specified operation.

Parameters:
  `jmxServerConnection` - Connection to the JMX server
  `name` - The MBean name
Returns:
  null (no error message to report other than exception)
Throws:
  `Exception` - An error occurred