Package org.apache.catalina.ant.jmx
Class JMXAccessorTask
java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.catalina.ant.BaseRedirectorHelperTask
org.apache.catalina.ant.jmx.JMXAccessorTask
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
JMXAccessorCreateTask
,JMXAccessorGetTask
,JMXAccessorInvokeTask
,JMXAccessorQueryTask
,JMXAccessorSetTask
,JMXAccessorUnregisterTask
Access JMX JSR 160 MBeans Server.
NOTE : These tasks require Ant 1.6 or later interface.
- 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
<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
- Author:
- Peter Rossbach
-
Field Summary
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
-
Method Summary
Modifier and TypeMethodDescriptionstatic 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
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 resultpropertyprotected 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 atresultproperty.length
.protected void
echoResult
(String name, Object result) void
execute()
Execute the specified command.getHost()
getIf()
protected MBeanServerConnection
get JMXConnectiongetName()
Get the name used at remote MbeanServer.getPort()
getProperty
(String property) Get PropertygetRef()
getUrl()
boolean
isEcho()
boolean
boolean
isUseRef()
jmxExecute
(MBeanServerConnection jmxServerConnection) Execute the specified command, based on the configured properties.void
setDelimiter
(String separator) void
setEcho
(boolean echo) void
void
Only execute if a property of the given name exists in the current project.void
void
setPassword
(String password) void
boolean
setProperty
(String property, Object value) void
void
setResultproperty
(String propertyName) void
setSeparatearrayresults
(boolean separateArrayResults) void
Only execute if a property of the given name does not exist in the current project.void
void
setUsername
(String username) protected boolean
test the if conditionprotected boolean
test the unless conditionMethods 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
-
Field Details
-
JMX_SERVICE_PREFIX
- See Also:
-
JMX_SERVICE_SUFFIX
- See Also:
-
-
Constructor Details
-
JMXAccessorTask
public JMXAccessorTask()
-
-
Method Details
-
getName
Get the name used at remote MbeanServer.- Returns:
- the name used at remote MbeanServer
-
setName
-
getResultproperty
- Returns:
- Returns the resultproperty.
-
setResultproperty
- Parameters:
propertyName
- The resultproperty to set.
-
getDelimiter
- Returns:
- Returns the delimiter.
-
setDelimiter
- 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
- Returns:
- The login password for the
Manager
application.
-
setPassword
-
getUsername
- Returns:
- The login username for the
JMX
MBeanServer.
-
setUsername
-
getUrl
- Returns:
- The URL of the
JMX JSR 160
MBeanServer to be used.
-
setUrl
-
getHost
- Returns:
- The Host of the
JMX JSR 160
MBeanServer to be used.
-
setHost
-
getPort
- Returns:
- The Port of the
JMX JSR 160
MBeanServer to be used.
-
setPort
-
isUseRef
public boolean isUseRef()- Returns:
- Returns the useRef.
-
getRef
- Returns:
- Returns the ref.
-
setRef
- Parameters:
refId
- The ref to set.
-
getIf
- Returns:
- Returns the ifCondition.
-
setIf
Only execute if a property of the given name exists in the current project.- Parameters:
c
- property name
-
getUnless
- Returns:
- Returns the unlessCondition.
-
setUnless
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.BuildExceptionExecute 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 classorg.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.- Parameters:
url
- URL to be used for the JMX connection (if specified, it is a complete URL so host and port will not be used)host
- Host name of the JMX serverport
- Port number for the JMX serverusername
- User name for the connectionpassword
- Credentials corresponding to the specified user- Returns:
- the JMX connection
- Throws:
MalformedURLException
- Invalid URL specifiedIOException
- Other connection error
-
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!- Parameters:
project
- The Ant projecturl
- URL to be used for the JMX connection (if specified, it is a complete URL so host and port will not be used)host
- Host name of the JMX serverport
- Port number for the JMX serverusername
- User name for the connectionpassword
- Credentials corresponding to the specified userrefId
- The Id of the reference to retrieve in the project- Returns:
- the JMX connection
- Throws:
MalformedURLException
- Invalid URL specifiedIOException
- Other connection error
-
getJMXConnection
get JMXConnection- Returns:
- the JMX connection
- Throws:
MalformedURLException
- Invalid URL specifiedIOException
- Other connection error
-
jmxExecute
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.- Parameters:
jmxServerConnection
- The JMX connection that should be used- Returns:
- An error message string in some situations
- Throws:
Exception
- if an error occurs
-
convertStringToType
Convert string to datatype FIXME How we can transfer values from ant project reference store (ref)?- Parameters:
value
- The valuevalueType
- The type- Returns:
- The converted object
-
echoResult
- Parameters:
name
- context of resultresult
- The result
-
createProperty
create result as property with name from attribute resultproperty- Parameters:
result
- The result- See Also:
-
createProperty
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 atresultproperty.length
. Other option is that you delimit your result with a delimiter (java.util.StringTokenizer is used).- Parameters:
propertyPrefix
- Prefix for the propertyresult
- The result
-
getProperty
Get Property- Parameters:
property
- name- Returns:
- The property value
-
setProperty
- Parameters:
property
- The propertyvalue
- The value- Returns:
- True if successful
-