# 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
Constructor
Description
`JMXAccessorInvokeTask()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### JMXAccessorInvokeTask

public JMXAccessorInvokeTask()

## Method Details

### 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