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