# Class JMXAccessorQueryTask

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

All Implemented Interfaces:
  `Cloneable`

public class JMXAccessorQueryTask extends JMXAccessorTask
Query for Mbeans.

- open no existing JSR 160 rmi jmx connection
- Get all Mbeans attributes
- Get only the Query Mbeans ObjectNames
- Show query result as Ant console log
- Bind query result as Ant properties

Query a list of Mbeans.

      <jmxQuery
              host="127.0.0.1"
              port="9014"
              name="Catalina:type=Manager,*
              resultproperty="manager" />

with attribute attributebinding="true" you can get all attributes also from result objects.
The property manager.length show the size of the result and with manager.[0..length].name the resulted ObjectNames are saved. These tasks require Ant 1.6 or later interface.

Since:
  5.5.10

- ## Field Summary

  ### Fields inherited from class JMXAccessorTask

  `JMX_SERVICE_PREFIX, JMX_SERVICE_SUFFIX`

  ### Fields inherited from class 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
  `JMXAccessorQueryTask()`
  Constructs a new JMXAccessorQueryTask.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `bindAttributes(MBeanServerConnection jmxServerConnection, String pname, ObjectName oname)`
  Bind MBean attributes to Ant properties.
  `boolean`
  `isAttributebinding()`
  Get the attribute binding flag.
  `String`
  `jmxExecute(MBeanServerConnection jmxServerConnection)`
  Execute the specified command, based on the configured properties.
  `protected String`
  `jmxQuery(MBeanServerConnection jmxServerConnection, String qry)`
  Call Mbean server for some mbeans with same domain, attributes. with attributebinding=true you can save all attributes from all found objects
  `void`
  `setAttributebinding(boolean attributeBinding)`
  Set the attribute binding flag.

  ### Methods inherited from class 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 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 Object

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

- ## Constructor Details

  - ### JMXAccessorQueryTask

    public JMXAccessorQueryTask()
    Constructs a new JMXAccessorQueryTask.

- ## Method Details

  - ### isAttributebinding

    public boolean isAttributebinding()
    Get the attribute binding flag.
    Returns:
      the attribute binding flag

  - ### setAttributebinding

    public void setAttributebinding(boolean attributeBinding)
    Set the attribute binding flag.
    Parameters:
      `attributeBinding` - the flag 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

  - ### jmxQuery

    protected String jmxQuery(MBeanServerConnection jmxServerConnection, String qry)
    Call Mbean server for some mbeans with same domain, attributes. with attributebinding=true you can save all attributes from all found objects
    Parameters:
      `jmxServerConnection` - Connection to the JMX server
      `qry` - The query
    Returns:
      null (no error message to report other than exception)

  - ### bindAttributes

    protected void bindAttributes(MBeanServerConnection jmxServerConnection, String pname, ObjectName oname)
    Bind MBean attributes to Ant properties.
    Parameters:
      `jmxServerConnection` - the JMX server connection
      `pname` - the property name prefix
      `oname` - the MBean object name