Apache Tomcat 7.0.28

org.apache.catalina.ant.jmx
Class JMXAccessorTask

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.Task
          extended by org.apache.catalina.ant.BaseRedirectorHelperTask
              extended by org.apache.catalina.ant.jmx.JMXAccessorTask
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
JMXAccessorCreateTask, JMXAccessorGetTask, JMXAccessorInvokeTask, JMXAccessorQueryTask, JMXAccessorSetTask, JMXAccessorUnregisterTask

public class JMXAccessorTask
extends BaseRedirectorHelperTask

Access JMX JSR 160 MBeans Server.

Examples: open server with reference and autorisation
 
    <jmxOpen
            host="127.0.0.1"
            port="9014"
            username="monitorRole"
            password="mysecret"
            ref="jmx.myserver" 
        />
  
 
All calls after opening with same refid reuse the connection.

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

All JMXAccessorXXXTask support the attribute if and unless. With if the task is only execute when property exist and with unless when property not exists.
NOTE : These tasks require Ant 1.6 or later interface.

Since:
5.5.10
Version:
$Id: JMXAccessorTask.java 1075061 2011-02-27 14:29:07Z markt $
Author:
Peter Rossbach

Field Summary
static String JMX_SERVICE_PREFIX
           
static String 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
JMXAccessorTask()
           
 
Method Summary
static MBeanServerConnection accessJMXConnection(org.apache.tools.ant.Project project, String url, String host, String port, String username, String password, String refId)
          Get Current Connection from ref parameter or create a new one!
protected  Object convertStringToType(String value, String valueType)
          Convert string to datatype FIXME How we can transfer values from ant project reference store (ref)?
static MBeanServerConnection createJMXConnection(String url, String host, String port, String username, String password)
          create a new JMX Connection with auth when username and password is set.
protected  void createProperty(Object result)
          create result as property with name from attribute resultproperty
protected  void createProperty(String propertyPrefix, Object result)
          create result as property with name from property prefix When result is an array and isSeparateArrayResults is true, resultproperty used as prefix (resultproperty.0-array.length and store the result array length at resultproperty.length.
protected  void echoResult(String name, Object result)
           
 void execute()
          Execute the specified command.
 String getDelimiter()
           
 String getHost()
          The Host of the JMX JSR 160 MBeanServer to be used.
 String getIf()
           
 String getInfo()
          Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.
protected  MBeanServerConnection getJMXConnection()
          get JMXConnection
 String getName()
          The name used at remote MbeanServer
 String getPassword()
          The login password for the Manager application.
 String getPort()
          The Port of the JMX JSR 160 MBeanServer to be used.
 String getProperty(String property)
          Get Property
 String getRef()
           
 String getResultproperty()
           
 String getUnless()
           
 String getUrl()
          The URL of the JMX JSR 160 MBeanServer to be used.
 String getUsername()
          The login username for the JMX MBeanServer.
 boolean isEcho()
           
 boolean isSeparatearrayresults()
           
 boolean isUseRef()
           
 String jmxExecute(MBeanServerConnection jmxServerConnection)
          Execute the specified command, based on the configured properties.
 void setDelimiter(String separator)
           
 void setEcho(boolean echo)
           
 void setHost(String host)
           
 void setIf(String c)
          Only execute if a property of the given name exists in the current project.
 void setName(String objectName)
           
 void setPassword(String password)
           
 void setPort(String port)
           
 boolean setProperty(String property, Object value)
           
 void setRef(String refId)
           
 void setResultproperty(String propertyName)
           
 void setSeparatearrayresults(boolean separateArrayResults)
           
 void setUnless(String c)
          Only execute if a property of the given name does not exist in the current project.
 void setUrl(String url)
           
 void setUsername(String username)
           
protected  boolean testIfCondition()
          test the if condition
protected  boolean testUnlessCondition()
          test the unless condition
 
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
 

Field Detail

JMX_SERVICE_PREFIX

public static final String JMX_SERVICE_PREFIX
See Also:
Constant Field Values

JMX_SERVICE_SUFFIX

public static final String JMX_SERVICE_SUFFIX
See Also:
Constant Field Values
Constructor Detail

JMXAccessorTask

public JMXAccessorTask()
Method Detail

getInfo

public String getInfo()
Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.


getName

public String getName()
The name used at remote MbeanServer


setName

public void setName(String objectName)

getResultproperty

public String getResultproperty()
Returns:
Returns the resultproperty.

setResultproperty

public void setResultproperty(String propertyName)
Parameters:
propertyName - The resultproperty to set.

getDelimiter

public String getDelimiter()
Returns:
Returns the delimiter.

setDelimiter

public void setDelimiter(String separator)
Parameters:
separator - The delimiter to set.

isEcho

public boolean isEcho()
Returns:
Returns the echo.

setEcho

public void setEcho(boolean echo)
Parameters:
echo - The echo to set.

isSeparatearrayresults

public boolean isSeparatearrayresults()
Returns:
Returns the separatearrayresults.

setSeparatearrayresults

public void setSeparatearrayresults(boolean separateArrayResults)
Parameters:
separateArrayResults - The separatearrayresults to set.

getPassword

public String getPassword()
The login password for the Manager application.


setPassword

public void setPassword(String password)

getUsername

public String getUsername()
The login username for the JMX MBeanServer.


setUsername

public void setUsername(String username)

getUrl

public String getUrl()
The URL of the JMX JSR 160 MBeanServer to be used.


setUrl

public void setUrl(String url)

getHost

public String getHost()
The Host of the JMX JSR 160 MBeanServer to be used.


setHost

public void setHost(String host)

getPort

public String getPort()
The Port of the JMX JSR 160 MBeanServer to be used.


setPort

public void setPort(String port)

isUseRef

public boolean isUseRef()
Returns:
Returns the useRef.

getRef

public String getRef()
Returns:
Returns the ref.

setRef

public void setRef(String refId)
Parameters:
refId - The ref to set.

getIf

public String getIf()
Returns:
Returns the ifCondition.

setIf

public void setIf(String c)
Only execute if a property of the given name exists in the current project.

Parameters:
c - property name

getUnless

public String getUnless()
Returns:
Returns the unlessCondition.

setUnless

public void setUnless(String c)
Only execute if a property of the given name does not exist in the current project.

Parameters:
c - property name

execute

public void execute()
             throws org.apache.tools.ant.BuildException
Execute the specified command. This logic only performs the common attribute validation required by all subclasses; it does not perform any functional logic directly.

Overrides:
execute in class org.apache.tools.ant.Task
Throws:
org.apache.tools.ant.BuildException - if a validation error occurs

createJMXConnection

public static MBeanServerConnection createJMXConnection(String url,
                                                        String host,
                                                        String port,
                                                        String username,
                                                        String password)
                                                 throws MalformedURLException,
                                                        IOException
create a new JMX Connection with auth when username and password is set.

Throws:
MalformedURLException
IOException

testIfCondition

protected boolean testIfCondition()
test the if condition

Returns:
true if there is no if condition, or the named property exists

testUnlessCondition

protected boolean testUnlessCondition()
test the unless condition

Returns:
true if there is no unless condition, or there is a named property but it doesn't exist

accessJMXConnection

public static MBeanServerConnection accessJMXConnection(org.apache.tools.ant.Project project,
                                                        String url,
                                                        String host,
                                                        String port,
                                                        String username,
                                                        String password,
                                                        String refId)
                                                 throws MalformedURLException,
                                                        IOException
Get Current Connection from ref parameter or create a new one!

Returns:
The server connection
Throws:
MalformedURLException
IOException

getJMXConnection

protected MBeanServerConnection getJMXConnection()
                                          throws MalformedURLException,
                                                 IOException
get JMXConnection

Returns:
The connection
Throws:
MalformedURLException
IOException

jmxExecute

public String jmxExecute(MBeanServerConnection jmxServerConnection)
                  throws Exception
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.

Throws:
Exception - if an error occurs

convertStringToType

protected Object convertStringToType(String value,
                                     String valueType)
Convert string to datatype FIXME How we can transfer values from ant project reference store (ref)?

Parameters:
value - The value
valueType - The type
Returns:
The converted object

echoResult

protected void echoResult(String name,
                          Object result)
Parameters:
name - context of result
result -

createProperty

protected void createProperty(Object result)
create result as property with name from attribute resultproperty

Parameters:
result - The result
See Also:
createProperty(String, Object)

createProperty

protected void createProperty(String propertyPrefix,
                              Object result)
create result as property with name from property prefix When result is an array and isSeparateArrayResults is true, resultproperty used as prefix (resultproperty.0-array.length and store the result array length at resultproperty.length. Other option is that you delimit your result with a delimiter (java.util.StringTokenizer is used).

Parameters:
propertyPrefix -
result -

getProperty

public String getProperty(String property)
Get Property

Parameters:
property - name
Returns:
The property value

setProperty

public boolean setProperty(String property,
                           Object value)
Parameters:
property - The property
value - The value
Returns:
True if successful

Apache Tomcat 7.0.28

Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.