You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@apache.org on 2001/10/27 20:56:23 UTC

cvs commit: jakarta-tomcat-4.0/webapps/admin admin.xml

craigmcc    01/10/27 11:56:23

  Modified:    catalina/src/share/org/apache/catalina Globals.java
               catalina/src/share/org/apache/catalina/mbeans
                        ServerLifecycleListener.java
               webapps/admin admin.xml
  Log:
  Make the MBeanServer available to privileged contexts that are added
  dynamically later (via processContainerAddChild()) as well as those that
  are configured in server.xml.
  
  Make the Modeler's "Registry" implementation object available as well in
  case this is needed.
  
  Remove the two servlet context attributes when a child Context is removed.
  
  Deregister the corresponding MBeans when Context or Host components are
  removed.  (FIXME - do this for all other cases of component removal too).
  
  Revision  Changes    Path
  1.42      +14 -7     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Globals.java
  
  Index: Globals.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Globals.java,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- Globals.java	2001/10/27 02:53:01	1.41
  +++ Globals.java	2001/10/27 18:56:22	1.42
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Globals.java,v 1.41 2001/10/27 02:53:01 remm Exp $
  - * $Revision: 1.41 $
  - * $Date: 2001/10/27 02:53:01 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Globals.java,v 1.42 2001/10/27 18:56:22 craigmcc Exp $
  + * $Revision: 1.42 $
  + * $Date: 2001/10/27 18:56:22 $
    *
    * ====================================================================
    *
  @@ -69,7 +69,7 @@
    * Global constants that are applicable to multiple packages within Catalina.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.41 $ $Date: 2001/10/27 02:53:01 $
  + * @version $Revision: 1.42 $ $Date: 2001/10/27 18:56:22 $
    */
   
   public final class Globals {
  @@ -185,9 +185,16 @@
   
   
       /**
  -     * The request attribute under which the Invoker servlet will store
  -     * the invoking servlet path, if it was used to execute a servlet
  -     * indirectly instead of through a servlet mapping.
  +     * The servlet context attribute under which the managed bean Registry
  +     * will be stored for privileged contexts (if enabled).
  +     */
  +    public static final String MBEAN_REGISTRY_ATTR =
  +        "org.apache.catalina.Registry";
  +
  +
  +    /**
  +     * The servlet context attribute under which the MBeanServer will be stored
  +     * for privileged contexts (if enabled).
        */
       public static final String MBEAN_SERVER_ATTR =
           "org.apache.catalina.MBeanServer";
  
  
  
  1.4       +56 -11    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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ServerLifecycleListener.java	2001/10/27 02:58:35	1.3
  +++ ServerLifecycleListener.java	2001/10/27 18:56:23	1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v 1.3 2001/10/27 02:58:35 remm Exp $
  - * $Revision: 1.3 $
  - * $Date: 2001/10/27 02:58:35 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v 1.4 2001/10/27 18:56:23 craigmcc Exp $
  + * $Revision: 1.4 $
  + * $Date: 2001/10/27 18:56:23 $
    *
    * ====================================================================
    *
  @@ -69,6 +69,7 @@
   import java.util.Collection;
   import java.util.Iterator;
   import javax.management.MBeanException;
  +import javax.management.MBeanServer;
   import javax.management.ObjectName;
   import com.sun.jdmk.comm.AuthInfo;
   import com.sun.jdmk.comm.HtmlAdaptorServer;
  @@ -96,7 +97,7 @@
    *
    * @author Craig R. McClanahan
    * @author Amy Roh
  - * @version $Revision: 1.3 $ $Date: 2001/10/27 02:58:35 $
  + * @version $Revision: 1.4 $ $Date: 2001/10/27 18:56:23 $
    */
   
   public class ServerLifecycleListener
  @@ -315,6 +316,9 @@
                           // in a servlet context attribute
                           if (context.getPrivileged()) {
                               context.getServletContext().setAttribute
  +                                (Globals.MBEAN_REGISTRY_ATTR,
  +                                 MBeanUtils.createRegistry());
  +                            context.getServletContext().setAttribute
                                   (Globals.MBEAN_SERVER_ATTR, 
                                    MBeanUtils.createServer());
                           }
  @@ -394,15 +398,25 @@
   
           try {
               if (child instanceof Context) {
  +                Context context = (Context) child;
  +                if (context.getPrivileged()) {
  +                    context.getServletContext().setAttribute
  +                        (Globals.MBEAN_REGISTRY_ATTR, 
  +                         MBeanUtils.createRegistry());
  +                    context.getServletContext().setAttribute
  +                        (Globals.MBEAN_SERVER_ATTR, 
  +                         MBeanUtils.createServer());
  +                }
                   if (debug >= 4)
  -                    log("  Creating MBean for Context " + child);
  -                MBeanUtils.createMBean((Context) child);
  -                // child.addContainerListener(this);
  +                    log("  Creating MBean for Context " + context);
  +                MBeanUtils.createMBean(context);
  +                // context.addContainerListener(this);
               } else if (child instanceof Host) {
  +                Host host = (Host) child;
                   if (debug >= 3)
  -                    log("  Creating MBean for Host " + child);
  -                MBeanUtils.createMBean((Host) child);
  -                child.addContainerListener(this);
  +                    log("  Creating MBean for Host " + host);
  +                MBeanUtils.createMBean(host);
  +                host.addContainerListener(this);
               }
           } catch (MBeanException t) {
               Exception e = t.getTargetException();
  @@ -447,7 +461,38 @@
               log("Process removeChild[parent=" + parent + ",child=" +
                   child + "]");
   
  -        ; // FIXME - processContainerRemoveChild()
  +        try {
  +            if (child instanceof Context) {
  +                Context context = (Context) child;
  +                if (context.getPrivileged()) {
  +                    context.getServletContext().removeAttribute
  +                        (Globals.MBEAN_REGISTRY_ATTR);
  +                    context.getServletContext().removeAttribute
  +                        (Globals.MBEAN_SERVER_ATTR);
  +                }
  +                if (debug >= 4)
  +                    log("  Removing MBean for Context " + context);
  +                MBeanServer mserver = MBeanUtils.createServer();
  +                mserver.unregisterMBean
  +                    (MBeanUtils.createObjectName(mserver.getDefaultDomain(),
  +                                                 context));
  +                ; // FIXME - child component MBeans?
  +            } else if (child instanceof Host) {
  +                Host host = (Host) child;
  +                MBeanServer mserver = MBeanUtils.createServer();
  +                mserver.unregisterMBean
  +                    (MBeanUtils.createObjectName(mserver.getDefaultDomain(),
  +                                                 host));
  +                ; // FIXME - child component MBeans?
  +            }
  +        } catch (MBeanException t) {
  +            Exception e = t.getTargetException();
  +            if (e == null)
  +                e = t;
  +            log("processContainerRemoveChild: MBeanException", e);
  +        } catch (Throwable t) {
  +            log("processContainerRemoveChild: Throwable", t);
  +        }
   
       }
   
  
  
  
  1.2       +2 -2      jakarta-tomcat-4.0/webapps/admin/admin.xml
  
  Index: admin.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/admin.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- admin.xml	2001/10/25 16:36:05	1.1
  +++ admin.xml	2001/10/27 18:56:23	1.2
  @@ -2,13 +2,13 @@
   
       Context configuration file for the Tomcat Administration Web App
   
  -    $Id: admin.xml,v 1.1 2001/10/25 16:36:05 craigmcc Exp $
  +    $Id: admin.xml,v 1.2 2001/10/27 18:56:23 craigmcc Exp $
   
   -->
   
   
   <Context path="/admin" docBase="../server/webapps/admin"
  -        debug="0" privileged="false">
  +        debug="0" privileged="true">
   
     <Logger className="org.apache.catalina.logger.FileLogger"
                prefix="localhost_admin_log." suffix=".txt"
  
  
  

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