pero        2005/09/14 06:28:29

  Modified:    catalina/src/share/org/apache/catalina/ant/jmx
                        JMXAccessorQueryTask.java JMXAccessorSetTask.java
                        JMXAccessorTask.java antlib.xml jmxaccessor.tasks
  Added:       catalina/src/share/org/apache/catalina/ant/jmx
                        JMXAccessorCreateTask.java
                        JMXAccessorUnregisterTask.java
  Log:
  Add create remote Mbeans and unregister tasks
  fix some small typos!
  
  Revision  Changes    Path
  1.6       +2 -2      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java
  
  Index: JMXAccessorQueryTask.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JMXAccessorQueryTask.java 27 Jul 2005 15:11:17 -0000      1.5
  +++ JMXAccessorQueryTask.java 14 Sep 2005 13:28:29 -0000      1.6
  @@ -106,7 +106,7 @@
        * input stream will be closed upon completion of this task, whether it 
was
        * executed successfully or not.
        * 
  -     * @exception BuildException
  +     * @exception Exception
        *                if an error occurs
        */
       public String jmxExecute(MBeanServerConnection jmxServerConnection)
  
  
  
  1.5       +2 -2      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorSetTask.java
  
  Index: JMXAccessorSetTask.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorSetTask.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JMXAccessorSetTask.java   27 Jul 2005 15:11:17 -0000      1.4
  +++ JMXAccessorSetTask.java   14 Sep 2005 13:28:29 -0000      1.5
  @@ -152,7 +152,7 @@
        * input stream will be closed upon completion of this task, whether it 
was
        * executed successfully or not.
        * 
  -     * @exception BuildException
  +     * @exception Exception
        *                if an error occurs
        */
       public String jmxExecute(MBeanServerConnection jmxServerConnection)
  
  
  
  1.13      +2 -2      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorTask.java
  
  Index: JMXAccessorTask.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorTask.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- JMXAccessorTask.java      27 Jul 2005 15:11:18 -0000      1.12
  +++ JMXAccessorTask.java      14 Sep 2005 13:28:29 -0000      1.13
  @@ -491,7 +491,7 @@
        * input stream will be closed upon completion of this task, whether it 
was
        * executed successfully or not.
        * 
  -     * @exception BuildException
  +     * @exception Exception
        *                if an error occurs
        */
       public String jmxExecute(MBeanServerConnection jmxServerConnection)
  
  
  
  1.3       +6 -0      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/antlib.xml
  
  Index: antlib.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/antlib.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- antlib.xml        30 Jun 2005 13:01:27 -0000      1.2
  +++ antlib.xml        14 Sep 2005 13:28:29 -0000      1.3
  @@ -16,6 +16,12 @@
           name="query"
           classname="org.apache.catalina.ant.jmx.JMXAccessorQueryTask" />
     <typedef
  +        name="create"
  +        classname="org.apache.catalina.ant.jmx.JMXAccessorCreateTask" />
  +  <typedef
  +        name="unregister"
  +        classname="org.apache.catalina.ant.jmx.JMXAccessorUnregisterTask" />
  +  <typedef
           name="equals"
           classname="org.apache.catalina.ant.jmx.JMXAccessorEqualsCondition" />
     <typedef
  
  
  
  1.3       +2 -0      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/jmxaccessor.tasks
  
  Index: jmxaccessor.tasks
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/jmxaccessor.tasks,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- jmxaccessor.tasks 30 Jun 2005 13:01:27 -0000      1.2
  +++ jmxaccessor.tasks 14 Sep 2005 13:28:29 -0000      1.3
  @@ -4,3 +4,5 @@
   jmxGet=org.apache.catalina.ant.jmx.JMXAccessorGetTask
   jmxInvoke=org.apache.catalina.ant.jmx.JMXAccessorInvokeTask
   jmxQuery=org.apache.catalina.ant.jmx.JMXAccessorQueryTask
  +jmxCreate=org.apache.catalina.ant.jmx.JMXAccessorCreateTask
  +jmxUnregister=org.apache.catalina.ant.jmx.JMXAccessorUnregisterTask
  
  
  
  1.1                  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorCreateTask.java
  
  Index: JMXAccessorCreateTask.java
  ===================================================================
  /*
   * Copyright 2002,2004-2005 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.catalina.ant.jmx;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import javax.management.MBeanServerConnection;
  import javax.management.ObjectName;
  
  import org.apache.tools.ant.BuildException;
  
  /**
   * Create new MBean at <em>JMX</em> JSR 160 MBeans Server. 
   * <ul>
   * <li>Create Mbeans</li>
   * <li>Create Mbeans with parameter</li>
   * <li>Create remote Mbeans with different classloader</li>
   * </ul>
   * <p>
   * Examples:
   * <br/>
   * create a new Mbean at jmx.server connection 
   * <pre>
   *   &lt;jmx:create
   *           ref="jmx.server"
   *           name="Catalina:type=MBeanFactory"
   *           className="org.apache.catalina.mbeans.MBeanFactory"
   *           classLoader="Catalina:type=ServerClassLoader,name=server"&gt;
   *            &lt;Arg value="org.apache.catalina.mbeans.MBeanFactory" /&gt;
   *   &lt;/jmxCreate/&gt;
   * </pre>
   * </p>
   * <p>
   * <b>WARNING</b>Not all Tomcat MBeans can create remotely and autoregister 
by its parents!
   * Please, use the MBeanFactory operation to generate valves and realms.
   * </p>
   * <p>
   * First call to a remote MBeanserver save the JMXConnection a reference 
<em>jmx.server</em>
   * </p>
   * These tasks require Ant 1.6 or later interface.
   *
   * @author Peter Rossbach
   * @version $Revision: 1.1 $
   * @since 5.5.12
   */
  public class JMXAccessorCreateTask extends JMXAccessorTask {
      // ----------------------------------------------------- Instance 
Variables
  
      private String className;
      private String classLoader;
      private List args=new ArrayList();
  
      // ----------------------------------------------------- Instance Info
  
      /**
       * Descriptive information describing this implementation.
       */
      private static final String info = 
"org.apache.catalina.ant.JMXAccessorCreateTask/1.0";
  
      /**
       * Return descriptive information about this implementation and the
       * corresponding version number, in the format
       * <code>&lt;description&gt;/&lt;version&gt;</code>.
       * @return Returns the class info.
       */
      public String getInfo() {
  
          return (info);
  
      }
  
      // ------------------------------------------------------------- 
Properties
  
      /**
       * @return Returns the classLoader.
       */
      public String getClassLoader() {
          return classLoader;
      }
      
      /**
       * @param classLoader The classLoader to set.
       */
      public void setClassLoader(String classLoaderName) {
          this.classLoader = classLoaderName;
      }
      
      /**
       * @return Returns the className.
       */
      public String getClassName() {
          return className;
      }
      
      /**
       * @param className The className to set.
       */
      public void setClassName(String className) {
          this.className = className;
      }
      
      public void addArg(Arg arg ) {
          args.add(arg);
      }
  
      /**
       * @return Returns the args.
       */
      public List getArgs() {
          return args;
      }
      /**
       * @param args The args to set.
       */
      public void setArgs(List args) {
          this.args = args;
      }
  
      // ------------------------------------------------------ protected 
Methods
      
      /**
       * 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
       */
      public String jmxExecute(MBeanServerConnection jmxServerConnection)
          throws Exception {
  
          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());
       }
      
      /**
       * create new Mbean and when set from ClassLoader Objectname
       * @param jmxServerConnection
       * @param name
       * @return The value of the given named attribute
       * @throws Exception
       */
      protected String jmxCreate(MBeanServerConnection jmxServerConnection,
              String name) 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;
      }
      
  }
  
  
  
  1.1                  
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorUnregisterTask.java
  
  Index: JMXAccessorUnregisterTask.java
  ===================================================================
  /*
   * Copyright 2002,2004-2005 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.catalina.ant.jmx;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import javax.management.MBeanServerConnection;
  import javax.management.ObjectName;
  
  import org.apache.tools.ant.BuildException;
  
  /**
   * unregister a MBean at <em>JMX</em> JSR 160 MBeans Server. 
   * <ul>
   * <li>unregister Mbeans</li>
   * </ul>
   * <p>
   * Examples:
   * <br/>
   * unregister an existing Mbean at jmx.server connection 
   * <pre>
   *   &lt;jmx:unregister
   *           ref="jmx.server"
   *           name="Catalina:type=MBeanFactory" /&gt;
   * </pre>
   * </p>
   * <p>
   * <b>WARNING</b>Not all Tomcat MBeans can successfully unregister remotely. 
The mbean
   * unregistration don't remove valves, realm, .. from parent class.
   * Please, use the MBeanFactory operation to remove valves and realms.
   * </p>
   * <p>
   * First call to a remote MBeanserver save the JMXConnection a reference 
<em>jmx.server</em>
   * </p>
   * These tasks require Ant 1.6 or later interface.
   *
   * @author Peter Rossbach
   * @version $Revision: 1.1 $
   * @since 5.5.12
   */
  public class JMXAccessorUnregisterTask extends JMXAccessorTask {
  
      // ----------------------------------------------------- Instance Info
  
      /**
       * Descriptive information describing this implementation.
       */
      private static final String info = 
"org.apache.catalina.ant.JMXAccessorUnregisterTask/1.0";
  
      /**
       * Return descriptive information about this implementation and the
       * corresponding version number, in the format
       * <code>&lt;description&gt;/&lt;version&gt;</code>.
       * @return Returns the class info.
       */
      public String getInfo() {
  
          return (info);
  
      }
      // ------------------------------------------------------ protected 
Methods
      
      /**
       * 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
       */
      public String jmxExecute(MBeanServerConnection jmxServerConnection)
          throws Exception {
  
          if (getName() == null) {
              throw new BuildException("Must specify a 'name'");
          }
          return  jmxUuregister(jmxServerConnection, getName());
       }
  
  
      /**
       * Unregister Mbean
       * @param jmxServerConnection
       * @param name
       * @return The value of the given named attribute
       * @throws Exception
       */
      protected String jmxUuregister(MBeanServerConnection 
jmxServerConnection,String name) throws Exception {
          String error = null;
          if(isEcho()) {
              handleOutput("Unregister MBean " + name  );
          }
          jmxServerConnection.unregisterMBean(
                  new ObjectName(name));
          return error;
      }
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to