costin      2003/01/16 13:38:25

  Modified:    catalina/src/share/org/apache/catalina/core
                        StandardContext.java
  Log:
  - remove unused imports
  
  - converted to commons-logging
  
  - Implement the JSR77 "servlets" attribute ( required for WebModule )
  
  - Use JSR77 name for the context.
  
  The old name is still available, until someone updates the admin
  to use the new name.
  
  Note that the last 2 components of the name default to "none",
  if tomcat is run inside a J2EEserver, the integration code will need
  to set the name of the server and the name of the application for the
  context.
  
  Revision  Changes    Path
  1.13      +65 -29    
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- StandardContext.java      8 Dec 2002 13:42:09 -0000       1.12
  +++ StandardContext.java      16 Jan 2003 21:38:25 -0000      1.13
  @@ -69,48 +69,30 @@
   import java.io.IOException;
   import java.util.ArrayList;
   import java.util.HashMap;
  -import java.net.URL;
   import java.util.Iterator;
   import java.util.TreeMap;
   import java.util.Hashtable;
   import java.util.Stack;
  -import java.util.Enumeration;
  -import java.util.StringTokenizer;
   import javax.servlet.FilterConfig;
   import javax.servlet.ServletContext;
   import javax.servlet.ServletContextEvent;
   import javax.servlet.ServletContextListener;
   import javax.servlet.ServletException;
   import javax.servlet.ServletRequestListener;
  -import javax.servlet.http.HttpServletRequest;
  -import javax.servlet.http.HttpServletResponse;
   import javax.naming.NamingException;
  -import javax.naming.InitialContext;
  -import javax.naming.Reference;
  -import javax.naming.StringRefAddr;
  -import javax.naming.NamingEnumeration;
  -import javax.naming.Binding;
  -import javax.naming.StringRefAddr;
   import javax.naming.directory.DirContext;
  -import org.apache.naming.NamingContext;
  +import javax.management.ObjectName;
   import org.apache.naming.ContextBindings;
  -import org.apache.naming.ContextAccessController;
  -import org.apache.naming.EjbRef;
  -import org.apache.naming.ResourceRef;
  -import org.apache.naming.ResourceEnvRef;
  -import org.apache.naming.TransactionRef;
   import org.apache.naming.resources.BaseDirContext;
   import org.apache.naming.resources.FileDirContext;
   import org.apache.naming.resources.ProxyDirContext;
   import org.apache.naming.resources.WARDirContext;
   import org.apache.naming.resources.DirContextURLStreamHandler;
  -import org.apache.catalina.Cluster;
   import org.apache.catalina.Container;
   import org.apache.catalina.ContainerListener;
   import org.apache.catalina.Context;
   import org.apache.catalina.Host;
   import org.apache.catalina.Globals;
  -import org.apache.catalina.HttpRequest;
   import org.apache.catalina.InstanceListener;
   import org.apache.catalina.Lifecycle;
   import org.apache.catalina.LifecycleEvent;
  @@ -139,7 +121,6 @@
   import org.apache.catalina.deploy.ResourceParams;
   import org.apache.catalina.deploy.SecurityCollection;
   import org.apache.catalina.deploy.SecurityConstraint;
  -import org.apache.catalina.loader.StandardClassLoader;
   import org.apache.catalina.loader.WebappLoader;
   import org.apache.catalina.session.StandardManager;
   import org.apache.catalina.util.CharsetMapper;
  @@ -147,6 +128,9 @@
   import org.apache.catalina.util.RequestUtil;
   
   import org.apache.tomcat.util.log.SystemLogHandler;
  +import org.apache.commons.modeler.Registry;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   /**
    * Standard implementation of the <b>Context</b> interface.  Each
  @@ -160,7 +144,10 @@
   
   public class StandardContext
       extends ContainerBase
  -    implements Context {
  +    implements Context
  + {
  +    private static Log log = LogFactory.getLog(StandardContext.class);
  +
   
   
       // ----------------------------------------------------------- Constructors
  @@ -512,6 +499,7 @@
        */
       private DirContext webappResources = null;
   
  +    private ArrayList wrappers=new ArrayList();
   
       // ----------------------------------------------------- Context Properties
   
  @@ -874,7 +862,7 @@
           String loginPage = config.getLoginPage();
           if ((loginPage != null) && !loginPage.startsWith("/")) {
               if (isServlet22()) {
  -                log(sm.getString("standardContext.loginConfig.loginWarning",
  +                log.info(sm.getString("standardContext.loginConfig.loginWarning",
                                    loginPage));
                   config.setLoginPage("/" + loginPage);
               } else {
  @@ -886,7 +874,7 @@
           String errorPage = config.getErrorPage();
           if ((errorPage != null) && !errorPage.startsWith("/")) {
               if (isServlet22()) {
  -                log(sm.getString("standardContext.loginConfig.errorWarning",
  +                log.info(sm.getString("standardContext.loginConfig.errorWarning",
                                    errorPage));
                   config.setErrorPage("/" + errorPage);
               } else {
  @@ -1367,7 +1355,7 @@
           String jspFile = wrapper.getJspFile();
           if ((jspFile != null) && !jspFile.startsWith("/")) {
               if (isServlet22()) {
  -                log(sm.getString("standardContext.wrapper.warning", jspFile));
  +                log.info(sm.getString("standardContext.wrapper.warning", jspFile));
                   wrapper.setJspFile("/" + jspFile);
               } else {
                   throw new IllegalArgumentException
  @@ -1469,7 +1457,7 @@
           String location = errorPage.getLocation();
           if ((location != null) && !location.startsWith("/")) {
               if (isServlet22()) {
  -                log(sm.getString("standardContext.errorPage.warning",
  +                log.info(sm.getString("standardContext.errorPage.warning",
                                    location));
                   errorPage.setLocation("/" + location);
               } else {
  @@ -1886,6 +1874,7 @@
       public Wrapper createWrapper() {
   
           Wrapper wrapper = new StandardWrapper();
  +        wrappers.add(wrapper);
   
           synchronized (instanceListeners) {
               for (int i = 0; i < instanceListeners.length; i++) {
  @@ -3634,6 +3623,7 @@
   
           if (debug >= 1)
               log("Starting");
  +        registerJMX();
   
           // Notify our interested LifecycleListeners
           lifecycle.fireLifecycleEvent(BEFORE_START_EVENT, null);
  @@ -4354,5 +4344,51 @@
           return ok;
   
       }
  +
  +    // -------------------- JMX methods  --------------------
  +
  +    /** JSR77 servlets attribute
  +     *
  +     * @return list of all servlets ( we know about )
  +     */
  +    public ObjectName[] getServlets() {
  +        int size=wrappers.size();
  +        ObjectName result[]=new ObjectName[size];
  +        for( int i=0; i< size; i++ ) {
  +            result[i]=((StandardWrapper)wrappers.get(i)).getObjectName();
  +        }
  +        return result;
  +    }
  +
  +    private void registerJMX() {
  +        String onameStr=null;
  +        try {
  +            if( oname==null || oname.getKeyProperty("WebModule")==null ) {
  +                ContainerBase ctx=(ContainerBase)parent;
  +                String pathName=getName();
  +                String hostName=getParent().getName();
  +                String name= ((hostName==null)? "DEFAULT" : hostName) +
  +                        (("".equals(pathName))?"/":pathName );
  +
  +                onameStr="j2eeType=WebModule,name=" + name +
  +                        ctx.getJSR77Suffix();
  +                if( log.isDebugEnabled())
  +                    log.debug("Registering " + onameStr );
  +
  +                Registry.getRegistry().registerComponent(this,
  +                        ctx.getDomain(),
  +                        "StandardContext", onameStr);
  +            }
  +            for( Iterator it=wrappers.iterator(); it.hasNext() ; ) {
  +                StandardWrapper wrapper=(StandardWrapper)it.next();
  +                // XXX prevent duplicated registration
  +                wrapper.registerJMX( this, wrapper );
  +            }
  +        } catch( Exception ex ) {
  +            log.info("Error registering context with jmx " + this + " " +
  +                    onameStr + " " + ex.toString() );
  +        }
  +    }
  +
   
   }
  
  
  

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

Reply via email to