You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by am...@apache.org on 2002/01/14 22:42:37 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans MBeanUtils.java ServerLifecycleListener.java

amyroh      02/01/14 13:42:37

  Modified:    catalina/src/share/org/apache/catalina/mbeans
                        MBeanUtils.java ServerLifecycleListener.java
  Log:
  Add createMBean, createObjectName, and destroyMBean methods for Loader and Manager.
  
  Revision  Changes    Path
  1.7       +173 -4    jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java
  
  Index: MBeanUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- MBeanUtils.java	14 Nov 2001 03:51:06 -0000	1.6
  +++ MBeanUtils.java	14 Jan 2002 21:42:37 -0000	1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.6 2001/11/14 03:51:06 amyroh Exp $
  - * $Revision: 1.6 $
  - * $Date: 2001/11/14 03:51:06 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.7 2002/01/14 21:42:37 amyroh Exp $
  + * $Revision: 1.7 $
  + * $Date: 2002/01/14 21:42:37 $
    *
    * ====================================================================
    *
  @@ -84,7 +84,9 @@
   import org.apache.catalina.Host;
   import org.apache.catalina.LifecycleEvent;
   import org.apache.catalina.LifecycleListener;
  +import org.apache.catalina.Loader;
   import org.apache.catalina.Logger;
  +import org.apache.catalina.Manager;
   import org.apache.catalina.Realm;
   import org.apache.catalina.Server;
   import org.apache.catalina.ServerFactory;
  @@ -102,7 +104,7 @@
    *
    * @author Craig R. McClanahan
    * @author Amy Roh
  - * @version $Revision: 1.6 $ $Date: 2001/11/14 03:51:06 $
  + * @version $Revision: 1.7 $ $Date: 2002/01/14 21:42:37 $
    */
   
   public class MBeanUtils {
  @@ -261,6 +263,29 @@
   
       /**
        * Create, register, and return an MBean for this
  +     * <code>Loader</code> object.
  +     *
  +     * @param loader The Loader to be managed
  +     *
  +     * @exception Exception if an MBean cannot be created or registered
  +     */
  +    public static ModelMBean createMBean(Loader loader)
  +        throws Exception {
  +
  +        String mname = createManagedName(loader);
  +        ManagedBean managed = registry.findManagedBean(mname);
  +        String domain = managed.getDomain();
  +        if (domain == null)
  +            domain = mserver.getDefaultDomain();
  +        ModelMBean mbean = managed.createMBean(loader);
  +        ObjectName oname = createObjectName(domain, loader);
  +        mserver.registerMBean(mbean, oname);
  +        return (mbean);
  +
  +    }
  +
  +    /**
  +     * Create, register, and return an MBean for this
        * <code>Logger</code> object.
        *
        * @param logger The Logger to be managed
  @@ -285,6 +310,29 @@
   
       /**
        * Create, register, and return an MBean for this
  +     * <code>Manager</code> object.
  +     *
  +     * @param manager The Manager to be managed
  +     *
  +     * @exception Exception if an MBean cannot be created or registered
  +     */
  +    public static ModelMBean createMBean(Manager manager)
  +        throws Exception {
  +
  +        String mname = createManagedName(manager);
  +        ManagedBean managed = registry.findManagedBean(mname);
  +        String domain = managed.getDomain();
  +        if (domain == null)
  +            domain = mserver.getDefaultDomain();
  +        ModelMBean mbean = managed.createMBean(manager);
  +        ObjectName oname = createObjectName(domain, manager);
  +        mserver.registerMBean(mbean, oname);
  +        return (mbean);
  +
  +    }
  +
  +    /**
  +     * Create, register, and return an MBean for this
        * <code>Realm</code> object.
        *
        * @param realm The Realm to be managed
  @@ -498,6 +546,45 @@
   
       /**
        * Create an <code>ObjectName</code> for this
  +     * <code>Loader</code> object.
  +     *
  +     * @param domain Domain in which this name is to be created
  +     * @param loader The Loader to be named
  +     *
  +     * @exception MalformedObjectNameException if a name cannot be created
  +     */
  +    public static ObjectName createObjectName(String domain,
  +                                              Loader loader)
  +        throws MalformedObjectNameException {
  +
  +        ObjectName name = null;
  +        Container container = loader.getContainer();
  +
  +        if (container instanceof Engine) {
  +            Service service = ((Engine)container).getService();
  +            name = new ObjectName(domain + ":type=Loader,service=" +
  +                              service.getName());
  +        } else if (container instanceof Host) {
  +            Service service = ((Engine)container.getParent()).getService();
  +            name = new ObjectName(domain + ":type=Loader,host=" +
  +                              container.getName() + ",service=" +
  +                              service.getName());
  +        } else if (container instanceof Context) {
  +            String path = ((Context)container).getPath();
  +            Host host = (Host) container.getParent();
  +            Service service = ((Engine)container.getParent()).getService();
  +            name = new ObjectName(domain + ":type=Loader,path=" + path +
  +                              ",host=" + host.getName() + ",service=" +
  +                              service.getName());
  +        }
  +
  +        return (name);
  +
  +    }
  +
  +
  +    /**
  +     * Create an <code>ObjectName</code> for this
        * <code>Logger</code> object.
        *
        * @param domain Domain in which this name is to be created
  @@ -537,6 +624,45 @@
   
       /**
        * Create an <code>ObjectName</code> for this
  +     * <code>Manager</code> object.
  +     *
  +     * @param domain Domain in which this name is to be created
  +     * @param manager The Manager to be named
  +     *
  +     * @exception MalformedObjectNameException if a name cannot be created
  +     */
  +    public static ObjectName createObjectName(String domain,
  +                                              Manager manager)
  +        throws MalformedObjectNameException {
  +
  +        ObjectName name = null;
  +        Container container = manager.getContainer();
  +
  +        if (container instanceof Engine) {
  +            Service service = ((Engine)container).getService();
  +            name = new ObjectName(domain + ":type=Manager,service=" +
  +                              service.getName());
  +        } else if (container instanceof Host) {
  +            Service service = ((Engine)container.getParent()).getService();
  +            name = new ObjectName(domain + ":type=Manager,host=" +
  +                              container.getName() + ",service=" +
  +                              service.getName());
  +        } else if (container instanceof Context) {
  +            String path = ((Context)container).getPath();
  +            Host host = (Host) container.getParent();
  +            Service service = ((Engine)container.getParent()).getService();
  +            name = new ObjectName(domain + ":type=Manager,path=" + path +
  +                              ",host=" + host.getName() + ",service=" +
  +                              service.getName());
  +        }
  +
  +        return (name);
  +
  +    }
  +
  +    
  +    /**
  +     * Create an <code>ObjectName</code> for this
        * <code>Realm</code> object.
        *
        * @param domain Domain in which this name is to be created
  @@ -786,6 +912,28 @@
           mserver.unregisterMBean(oname);
   
       }
  +    
  +
  +    /**
  +     * Deregister the MBean for this
  +     * <code>Loader</code> object.
  +     *
  +     * @param loader The Loader to be managed
  +     *
  +     * @exception Exception if an MBean cannot be deregistered
  +     */
  +    public static void destroyMBean(Loader loader)
  +        throws Exception {
  +
  +        String mname = createManagedName(loader);
  +        ManagedBean managed = registry.findManagedBean(mname);
  +        String domain = managed.getDomain();
  +        if (domain == null)
  +            domain = mserver.getDefaultDomain();
  +        ObjectName oname = createObjectName(domain, loader);
  +        mserver.unregisterMBean(oname);
  +
  +    }
   
   
       /**
  @@ -809,6 +957,27 @@
   
       }
   
  +
  +    /**
  +     * Deregister the MBean for this
  +     * <code>Manager</code> object.
  +     *
  +     * @param manager The Manager to be managed
  +     *
  +     * @exception Exception if an MBean cannot be deregistered
  +     */
  +    public static void destroyMBean(Manager manager)
  +        throws Exception {
  +
  +        String mname = createManagedName(manager);
  +        ManagedBean managed = registry.findManagedBean(mname);
  +        String domain = managed.getDomain();
  +        if (domain == null)
  +            domain = mserver.getDefaultDomain();
  +        ObjectName oname = createObjectName(domain, manager);
  +        mserver.unregisterMBean(oname);
  +
  +    }
   
       /**
        * Deregister the MBean for this
  
  
  
  1.6       +24 -4     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java
  
  Index: ServerLifecycleListener.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ServerLifecycleListener.java	30 Oct 2001 23:13:55 -0000	1.5
  +++ ServerLifecycleListener.java	14 Jan 2002 21:42:37 -0000	1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v 1.5 2001/10/30 23:13:55 craigmcc Exp $
  - * $Revision: 1.5 $
  - * $Date: 2001/10/30 23:13:55 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v 1.6 2002/01/14 21:42:37 amyroh Exp $
  + * $Revision: 1.6 $
  + * $Date: 2002/01/14 21:42:37 $
    *
    * ====================================================================
    *
  @@ -81,6 +81,9 @@
   import org.apache.catalina.Engine;
   import org.apache.catalina.Globals;
   import org.apache.catalina.Host;
  +import org.apache.catalina.Loader;
  +import org.apache.catalina.Logger;
  +import org.apache.catalina.Manager;
   import org.apache.catalina.Lifecycle;
   import org.apache.catalina.LifecycleEvent;
   import org.apache.catalina.LifecycleListener;
  @@ -97,7 +100,7 @@
    *
    * @author Craig R. McClanahan
    * @author Amy Roh
  - * @version $Revision: 1.5 $ $Date: 2001/10/30 23:13:55 $
  + * @version $Revision: 1.6 $ $Date: 2002/01/14 21:42:37 $
    */
   
   public class ServerLifecycleListener
  @@ -322,6 +325,23 @@
                                   (Globals.MBEAN_SERVER_ATTR, 
                                    MBeanUtils.createServer());
                           }
  +                        Loader loader = context.getLoader();
  +                        if (loader != null) {
  +                            if (debug >= 5)
  +                                log("Creating MBean for Loader " + loader);
  +                            MBeanUtils.createMBean(loader);
  +                            // FIX ME
  +                            //loader.addLifecycleListener(this);
  +                        }
  +                        Manager manager = context.getManager();
  +                        if (manager != null) {
  +                            if (debug >= 5)
  +                                log("Creating MBean for Manager" + manager);
  +                            MBeanUtils.createMBean(manager);
  +                            // FIX ME
  +                            //manager.addLifecycleListener(this);
  +                        }
  +
                       }
   
                   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>