FileDocCategorySizeDatePackage
JMXAccessorCreateTask.javaAPI DocApache Tomcat 6.0.146822Fri Jul 20 04:20:36 BST 2007org.apache.catalina.ant.jmx

JMXAccessorCreateTask

public class JMXAccessorCreateTask extends JMXAccessorTask
Create new MBean at JMX JSR 160 MBeans Server.
  • Create Mbeans
  • Create Mbeans with parameter
  • Create remote Mbeans with different classloader

Examples:
create a new Mbean at jmx.server connection

<jmx:create
ref="jmx.server"
name="Catalina:type=MBeanFactory"
className="org.apache.catalina.mbeans.MBeanFactory"
classLoader="Catalina:type=ServerClassLoader,name=server">
<Arg value="org.apache.catalina.mbeans.MBeanFactory" />
</jmxCreate/>

WARNINGNot all Tomcat MBeans can create remotely and autoregister by its parents! Please, use the MBeanFactory operation to generate valves and realms.

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

These tasks require Ant 1.6 or later interface.
author
Peter Rossbach
version
$Revision: 467222 $
since
5.5.12

Fields Summary
private String
className
private String
classLoader
private List
args
private static final String
info
Descriptive information describing this implementation.
Constructors Summary
Methods Summary
public voidaddArg(Arg arg)

        args.add(arg);
    
public java.util.ListgetArgs()

return
Returns the args.

        return args;
    
public java.lang.StringgetClassLoader()

return
Returns the classLoader.

        return classLoader;
    
public java.lang.StringgetClassName()

return
Returns the className.

        return className;
    
public java.lang.StringgetInfo()
Return descriptive information about this implementation and the corresponding version number, in the format <description>/<version>.

return
Returns the class info.


                             
       

        return (info);

    
protected java.lang.StringjmxCreate(javax.management.MBeanServerConnection jmxServerConnection, java.lang.String name)
create new Mbean and when set from ClassLoader Objectname

param
jmxServerConnection
param
name
return
The value of the given named attribute
throws
Exception

        String error = null;
        Object argsA[] = null;
        String sigA[] = null;
        if (args != null) {
           argsA = new Object[ args.size()];
           sigA = new String[args.size()];
           for( int i=0; i<args.size(); i++ ) {
               Arg arg=(Arg)args.get(i);
               if( arg.type==null) {
                   arg.type="java.lang.String";
                   sigA[i]=arg.getType();
                   argsA[i]=arg.getValue();
               } else {
                   sigA[i]=arg.getType();
                   argsA[i]=convertStringToType(arg.getValue(),arg.getType());
               }                
           }
        }
        if (classLoader != null && !"".equals(classLoader)) {
            if (isEcho()) {
                handleOutput("create MBean " + name + " from class "
                        + className + " with classLoader " + classLoader);
            }
            if(args == null)
                jmxServerConnection.createMBean(className, new ObjectName(name), new ObjectName(classLoader));
            else
                jmxServerConnection.createMBean(className, new ObjectName(name), new ObjectName(classLoader),argsA,sigA);
                
        } else {
            if (isEcho()) {
                handleOutput("create MBean " + name + " from class "
                        + className);
            }
            if(args == null)
                jmxServerConnection.createMBean(className, new ObjectName(name));
            else
                jmxServerConnection.createMBean(className, new ObjectName(name),argsA,sigA);
        }
        return error;
    
public java.lang.StringjmxExecute(javax.management.MBeanServerConnection jmxServerConnection)
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.

exception
Exception if an error occurs


        if (getName() == null) {
            throw new BuildException("Must specify a 'name'");
        }
        if ((className == null)) {
            throw new BuildException(
                    "Must specify a 'className' for get");
        }
        return jmxCreate(jmxServerConnection, getName());
     
public voidsetArgs(java.util.List args)

param
args The args to set.

        this.args = args;
    
public voidsetClassLoader(java.lang.String classLoaderName)

param
classLoader The classLoader to set.

        this.classLoader = classLoaderName;
    
public voidsetClassName(java.lang.String className)

param
className The className to set.

        this.className = className;