You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/02/17 10:21:00 UTC

svn commit: r910877 - in /tomcat/trunk: java/org/apache/catalina/ java/org/apache/catalina/core/ java/org/apache/catalina/ha/deploy/ java/org/apache/catalina/manager/ java/org/apache/catalina/manager/host/ java/org/apache/catalina/startup/ java/org/apa...

Author: markt
Date: Wed Feb 17 09:20:59 2010
New Revision: 910877

URL: http://svn.apache.org/viewvc?rev=910877&view=rev
Log:
Add Lifecycle to Container, Server and Service
Remove casts instanceof tests and any other code this makes unnecessary

Modified:
    tomcat/trunk/java/org/apache/catalina/Container.java
    tomcat/trunk/java/org/apache/catalina/Server.java
    tomcat/trunk/java/org/apache/catalina/Service.java
    tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java
    tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
    tomcat/trunk/java/org/apache/catalina/core/StandardHost.java
    tomcat/trunk/java/org/apache/catalina/core/StandardServer.java
    tomcat/trunk/java/org/apache/catalina/core/StandardService.java
    tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java
    tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java
    tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java
    tomcat/trunk/java/org/apache/catalina/startup/Catalina.java
    tomcat/trunk/java/org/apache/catalina/startup/Embedded.java
    tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
    tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
    tomcat/trunk/java/org/apache/catalina/startup/UserConfig.java
    tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java
    tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java

Modified: tomcat/trunk/java/org/apache/catalina/Container.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Container.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Container.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Container.java Wed Feb 17 09:20:59 2010
@@ -81,7 +81,7 @@
  * @version $Revision$ $Date$
  */
 
-public interface Container {
+public interface Container extends Lifecycle {
 
 
     // ----------------------------------------------------- Manifest Constants

Modified: tomcat/trunk/java/org/apache/catalina/Server.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Server.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Server.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Server.java Wed Feb 17 09:20:59 2010
@@ -45,7 +45,7 @@
  * @version $Revision$ $Date$
  */
 
-public interface Server {
+public interface Server extends Lifecycle {
 
 
     // ------------------------------------------------------------- Properties

Modified: tomcat/trunk/java/org/apache/catalina/Service.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Service.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Service.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Service.java Wed Feb 17 09:20:59 2010
@@ -34,7 +34,7 @@
  * @version $Revision$ $Date$
  */
 
-public interface Service {
+public interface Service extends Lifecycle {
 
     // ------------------------------------------------------------- Properties
 

Modified: tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java Wed Feb 17 09:20:59 2010
@@ -787,10 +787,10 @@
             children.put(child.getName(), child);
 
             // Start child
-            if (started && startChildren && (child instanceof Lifecycle)) {
+            if (started && startChildren) {
                 boolean success = false;
                 try {
-                    ((Lifecycle) child).start();
+                    child.start();
                     success = true;
                 } catch (LifecycleException e) {
                     log.error("ContainerBase.addChild: start: ", e);
@@ -919,14 +919,14 @@
             children.remove(child.getName());
         }
         
-        if (started && (child instanceof Lifecycle)) {
+        if (started) {
             try {
                 if( child instanceof ContainerBase ) {
                     if( ((ContainerBase)child).started ) {
-                        ((Lifecycle) child).stop();
+                        child.stop();
                     }
                 } else {
-                    ((Lifecycle) child).stop();
+                    child.stop();
                 }
             } catch (LifecycleException e) {
                 log.error("ContainerBase.removeChild: stop: ", e);
@@ -1043,8 +1043,7 @@
         // Start our child containers, if any
         Container children[] = findChildren();
         for (int i = 0; i < children.length; i++) {
-            if (children[i] instanceof Lifecycle)
-                ((Lifecycle) children[i]).start();
+            children[i].start();
         }
 
         // Start the Valves in our pipeline (including the basic), if any
@@ -1096,8 +1095,7 @@
         // Stop our child containers, if any
         Container children[] = findChildren();
         for (int i = 0; i < children.length; i++) {
-            if (children[i] instanceof Lifecycle)
-                ((Lifecycle) children[i]).stop();
+            children[i].stop();
         }
         // Remove children - so next start can work
         children = findChildren();

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Wed Feb 17 09:20:59 2010
@@ -2835,9 +2835,8 @@
                 try {
                     Class<?> clazz = Class.forName(wrapperLifecycles[i]);
                     LifecycleListener listener =
-                      (LifecycleListener) clazz.newInstance();
-                    if (wrapper instanceof Lifecycle)
-                        ((Lifecycle) wrapper).addLifecycleListener(listener);
+                        (LifecycleListener) clazz.newInstance();
+                    wrapper.addLifecycleListener(listener);
                 } catch (Throwable t) {
                     log.error("createWrapper", t);
                     return (null);
@@ -4491,8 +4490,7 @@
                 // Start our child containers, if any
                 Container children[] = findChildren();
                 for (int i = 0; i < children.length; i++) {
-                    if (children[i] instanceof Lifecycle)
-                        ((Lifecycle) children[i]).start();
+                    children[i].start();
                 }
 
                 // Start the Valves in our pipeline (including the basic),
@@ -4752,8 +4750,7 @@
             // Stop our child containers, if any
             Container[] children = findChildren();
             for (int i = 0; i < children.length; i++) {
-                if (children[i] instanceof Lifecycle)
-                    ((Lifecycle) children[i]).stop();
+                children[i].stop();
             }
 
             // Stop our filters

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardHost.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardHost.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardHost.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardHost.java Wed Feb 17 09:20:59 2010
@@ -578,10 +578,7 @@
     @Override
     public void addChild(Container child) {
 
-        if (child instanceof Lifecycle) {
-            ((Lifecycle) child).addLifecycleListener(
-                    new MemoryLeakTrackingListener());
-        }
+        child.addLifecycleListener(new MemoryLeakTrackingListener());
 
         if (!(child instanceof Context))
             throw new IllegalArgumentException

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardServer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardServer.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardServer.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardServer.java Wed Feb 17 09:20:59 2010
@@ -342,9 +342,9 @@
                 }
             }
 
-            if (started && (service instanceof Lifecycle)) {
+            if (started) {
                 try {
-                    ((Lifecycle) service).start();
+                    service.start();
                 } catch (LifecycleException e) {
                     // Ignore
                 }
@@ -525,12 +525,10 @@
             }
             if (j < 0)
                 return;
-            if (services[j] instanceof Lifecycle) {
-                try {
-                    ((Lifecycle) services[j]).stop();
-                } catch (LifecycleException e) {
-                    // Ignore
-                }
+            try {
+                services[j].stop();
+            } catch (LifecycleException e) {
+                // Ignore
             }
             int k = 0;
             Service results[] = new Service[services.length - 1];
@@ -723,8 +721,7 @@
         // Start our defined Services
         synchronized (services) {
             for (int i = 0; i < services.length; i++) {
-                if (services[i] instanceof Lifecycle)
-                    ((Lifecycle) services[i]).start();
+                services[i].start();
             }
         }
 
@@ -757,8 +754,7 @@
 
         // Stop our defined Services
         for (int i = 0; i < services.length; i++) {
-            if (services[i] instanceof Lifecycle)
-                ((Lifecycle) services[i]).stop();
+            services[i].stop();
         }
 
         // Notify our interested LifecycleListeners

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardService.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardService.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardService.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardService.java Wed Feb 17 09:20:59 2010
@@ -152,10 +152,9 @@
         this.container = container;
         if ((this.container != null) && (this.container instanceof Engine))
             ((Engine) this.container).setService(this);
-        if (started && (this.container != null) &&
-            (this.container instanceof Lifecycle)) {
+        if (started && (this.container != null)) {
             try {
-                ((Lifecycle) this.container).start();
+                this.container.start();
             } catch (LifecycleException e) {
                 // Ignore
             }
@@ -164,10 +163,9 @@
             for (int i = 0; i < connectors.length; i++)
                 connectors[i].setContainer(this.container);
         }
-        if (started && (oldContainer != null) &&
-            (oldContainer instanceof Lifecycle)) {
+        if (started && (oldContainer != null)) {
             try {
-                ((Lifecycle) oldContainer).stop();
+                oldContainer.stop();
             } catch (LifecycleException e) {
                 // Ignore
             }
@@ -515,9 +513,7 @@
         // Start our defined Container first
         if (container != null) {
             synchronized (container) {
-                if (container instanceof Lifecycle) {
-                    ((Lifecycle) container).start();
-                }
+                container.start();
             }
         }
 
@@ -582,9 +578,7 @@
         // Stop our defined Container second
         if (container != null) {
             synchronized (container) {
-                if (container instanceof Lifecycle) {
-                    ((Lifecycle) container).stop();
-                }
+                container.stop();
             }
         }
         // FIXME pero -- Why container stop first? KeepAlive connections can send request! 

Modified: tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java Wed Feb 17 09:20:59 2010
@@ -28,7 +28,6 @@
 import org.apache.catalina.Context;
 import org.apache.catalina.Engine;
 import org.apache.catalina.Host;
-import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.ha.CatalinaCluster;
 import org.apache.catalina.ha.ClusterDeployer;
@@ -559,7 +558,7 @@
         if (context != null) {
             if(log.isDebugEnabled())
                 log.debug("Undeploy local context " +path );
-            ((Lifecycle) context).stop();
+            context.stop();
             File war = new File(getAppBase(), getDocBase(path) + ".war");
             File dir = new File(getAppBase(), getDocBase(path));
             File xml = new File(configBase, getConfigFile(path) + ".xml");

Modified: tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java Wed Feb 17 09:20:59 2010
@@ -1245,7 +1245,7 @@
                                             RequestUtil.filter(displayPath)));
                 return;
             }
-            ((Lifecycle) context).start();
+            context.start();
             if (context.getAvailable())
                 writer.println
                     (sm.getString("managerServlet.started", displayPath));
@@ -1296,7 +1296,7 @@
                 writer.println(sm.getString("managerServlet.noSelf"));
                 return;
             }
-            ((Lifecycle) context).stop();
+            context.stop();
             writer.println(sm.getString("managerServlet.stopped", displayPath));
         } catch (Throwable t) {
             log("ManagerServlet.stop[" + displayPath + "]", t);
@@ -1347,7 +1347,7 @@
                 addServiced(path);
                 try {
                     // Try to stop the context first to be nicer
-                    ((Lifecycle) context).stop();
+                    context.stop();
                 } catch (Throwable t) {
                     // Ignore
                 }

Modified: tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/host/HostManagerServlet.java Wed Feb 17 09:20:59 2010
@@ -39,7 +39,6 @@
 import org.apache.catalina.Context;
 import org.apache.catalina.Engine;
 import org.apache.catalina.Host;
-import org.apache.catalina.Lifecycle;
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.core.StandardHost;
 import org.apache.catalina.startup.HostConfig;
@@ -581,7 +580,7 @@
 
         // Start host
         try {
-            ((Lifecycle) engine.findChild(name)).start();
+            engine.findChild(name).start();
             writer.println
                 (sm.getString("hostManagerServlet.started", name));
         } catch (Throwable t) {
@@ -631,7 +630,7 @@
 
         // Start host
         try {
-            ((Lifecycle) engine.findChild(name)).stop();
+            engine.findChild(name).stop();
             writer.println
                 (sm.getString("hostManagerServlet.stopped", name));
         } catch (Throwable t) {

Modified: tomcat/trunk/java/org/apache/catalina/startup/Catalina.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Catalina.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Catalina.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Catalina.java Wed Feb 17 09:20:59 2010
@@ -498,16 +498,14 @@
         initStreams();
 
         // Start the new server
-        if (getServer() instanceof Lifecycle) {
-            try {
-                getServer().initialize();
-            } catch (LifecycleException e) {
-                if (Boolean.getBoolean("org.apache.catalina.startup.EXIT_ON_INIT_FAILURE"))
-                    throw new java.lang.Error(e);
-                else   
-                    log.error("Catalina.start", e);
-                
-            }
+        try {
+            getServer().initialize();
+        } catch (LifecycleException e) {
+            if (Boolean.getBoolean("org.apache.catalina.startup.EXIT_ON_INIT_FAILURE"))
+                throw new java.lang.Error(e);
+            else   
+                log.error("Catalina.start", e);
+            
         }
 
         long t2 = System.nanoTime();
@@ -557,12 +555,10 @@
         long t1 = System.nanoTime();
         
         // Start the new server
-        if (getServer() instanceof Lifecycle) {
-            try {
-                ((Lifecycle) getServer()).start();
-            } catch (LifecycleException e) {
-                log.error("Catalina.start: ", e);
-            }
+        try {
+            getServer().start();
+        } catch (LifecycleException e) {
+            log.error("Catalina.start: ", e);
         }
 
         long t2 = System.nanoTime();
@@ -608,12 +604,10 @@
         }
 
         // Shut down the server
-        if (getServer() instanceof Lifecycle) {
-            try {
-                ((Lifecycle) getServer()).stop();
-            } catch (LifecycleException e) {
-                log.error("Catalina.stop", e);
-            }
+        try {
+            getServer().stop();
+        } catch (LifecycleException e) {
+            log.error("Catalina.stop", e);
         }
 
     }

Modified: tomcat/trunk/java/org/apache/catalina/startup/Embedded.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Embedded.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Embedded.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Embedded.java Wed Feb 17 09:20:59 2010
@@ -347,9 +347,9 @@
         engines = results;
 
         // Start this Engine if necessary
-        if (started && (engine instanceof Lifecycle)) {
+        if (started) {
             try {
-                ((Lifecycle) engine).start();
+                engine.start();
             } catch (LifecycleException e) {
                 log.error("Engine.start", e);
             }
@@ -484,7 +484,7 @@
 
         ContextConfig config = new ContextConfig();
         config.setCustomAuthenticators(authenticators);
-        ((Lifecycle) context).addLifecycleListener(config);
+        context.addLifecycleListener(config);
 
         return (context);
 
@@ -666,14 +666,12 @@
         }
 
         // Stop this Engine if necessary
-        if (engine instanceof Lifecycle) {
-            if( log.isDebugEnabled() )
-                log.debug(" Stopping this Engine");
-            try {
-                ((Lifecycle) engine).stop();
-            } catch (LifecycleException e) {
-                log.error("Engine.stop", e);
-            }
+        if( log.isDebugEnabled() )
+            log.debug(" Stopping this Engine");
+        try {
+            engine.stop();
+        } catch (LifecycleException e) {
+            log.error("Engine.stop", e);
         }
 
         // Remove this Engine from our set of defined Engines
@@ -827,8 +825,7 @@
 
         // Start our defined Engines first
         for (int i = 0; i < engines.length; i++) {
-            if (engines[i] instanceof Lifecycle)
-                ((Lifecycle) engines[i]).start();
+            engines[i].start();
         }
 
         // Start our defined Connectors second
@@ -868,8 +865,7 @@
 
         // Stop our defined Engines second
         for (int i = 0; i < engines.length; i++) {
-            if (engines[i] instanceof Lifecycle)
-                ((Lifecycle) engines[i]).stop();
+            engines[i].stop();
         }
 
     }

Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Wed Feb 17 09:20:59 2010
@@ -608,12 +608,12 @@
                     digester.reset();
                 }
             }
-            if (context instanceof Lifecycle) {
-                Class<?> clazz = Class.forName(host.getConfigClass());
-                LifecycleListener listener =
-                    (LifecycleListener) clazz.newInstance();
-                ((Lifecycle) context).addLifecycleListener(listener);
-            }
+
+            Class<?> clazz = Class.forName(host.getConfigClass());
+            LifecycleListener listener =
+                (LifecycleListener) clazz.newInstance();
+            context.addLifecycleListener(listener);
+
             context.setConfigFile(contextXml.getAbsolutePath());
             context.setPath(contextPath);
             // Add the associated docBase to the redeployed list if it's a WAR
@@ -901,12 +901,11 @@
                 (xml.getAbsolutePath(), new Long(xml.lastModified()));
             }
 
-            if (context instanceof Lifecycle) {
-                Class<?> clazz = Class.forName(host.getConfigClass());
-                LifecycleListener listener =
-                    (LifecycleListener) clazz.newInstance();
-                ((Lifecycle) context).addLifecycleListener(listener);
-            }
+            Class<?> clazz = Class.forName(host.getConfigClass());
+            LifecycleListener listener =
+                (LifecycleListener) clazz.newInstance();
+            context.addLifecycleListener(listener);
+
             context.setPath(contextPath);
             context.setDocBase(file);
             host.addChild(context);
@@ -1036,12 +1035,11 @@
                 context = (Context) Class.forName(contextClass).newInstance();
             }
 
-            if (context instanceof Lifecycle) {
-                Class<?> clazz = Class.forName(host.getConfigClass());
-                LifecycleListener listener =
-                    (LifecycleListener) clazz.newInstance();
-                ((Lifecycle) context).addLifecycleListener(listener);
-            }
+            Class<?> clazz = Class.forName(host.getConfigClass());
+            LifecycleListener listener =
+                (LifecycleListener) clazz.newInstance();
+            context.addLifecycleListener(listener);
+
             context.setPath(contextPath);
             context.setDocBase(file);
             host.addChild(context);
@@ -1240,7 +1238,7 @@
                     log.info(sm.getString("hostConfig.reload", app.name));
                 Container context = host.findChild(app.name);
                 try {
-                    ((Lifecycle) context).stop();
+                    context.stop();
                 } catch (Exception e) {
                     log.warn(sm.getString
                              ("hostConfig.context.restart", app.name), e);
@@ -1248,7 +1246,7 @@
                 // If the context was not started (for example an error 
                 // in web.xml) we'll still get to try to start
                 try {
-                    ((Lifecycle) context).start();
+                    context.start();
                 } catch (Exception e) {
                     log.warn(sm.getString
                              ("hostConfig.context.restart", app.name), e);

Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Wed Feb 17 09:20:59 2010
@@ -108,11 +108,6 @@
 tldConfig.webxmlFail=Failed to process TLD with path [{1}] and URI [{0}]
 tldConfig.webxmlSkip=Path [{1}] skipped since URI [{0}] is a duplicate
 tldConfig.webxmlStart=Scanning <taglib> elements in web.xml
-tomcat.addContextNotLifecycle=Tomcat.addContext() was called but the Context implementation does not implement Lifecycle. The functionality provided by the FixContextListener must be provided by other means.
-tomcat.addWebappNotLifecycle=Tomcat.addWebapp() was called but the Context implementation does not implement Lifecycle. The functionality provided by the DefaultWebXmlListener and ContextConfig must be provided by other means.
-tomcat.namingNotLifecycle=Tomcat.enableNaming() was called but the Server implementation does not implement Lifecycle. The functionality provided by the NamingContextListener must be provided by other means.
-tomcat.startNotLifecycle=Tomcat.start() was called but the Server implementation does not implement Lifecycle. The Server must be started by other means.
-tomcat.stopNotLifecycle=Tomcat.stop() was called but the Server implementation does not implement Lifecycle. The Server must be stopped by other means.
 userConfig.database=Exception loading user database
 userConfig.deploy=Deploying web application for user {0}
 userConfig.deploying=Deploying user web applications

Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Wed Feb 17 09:20:59 2010
@@ -52,9 +52,6 @@
 import org.apache.catalina.realm.GenericPrincipal;
 import org.apache.catalina.realm.RealmBase;
 import org.apache.catalina.session.StandardManager;
-import org.apache.juli.logging.Log;
-import org.apache.juli.logging.LogFactory;
-import org.apache.tomcat.util.res.StringManager;
 
 // TODO: lazy init for the temp dir - only when a JSP is compiled or 
 // get temp dir is called we need to create it. This will avoid the 
@@ -91,9 +88,6 @@
  * @author Costin Manolache
  */
 public class Tomcat {
-	private static final Log log = LogFactory.getLog(Tomcat.class);
-    private static final StringManager sm = StringManager.getManager(Constants.Package);
-
     // Single engine, service, server, connector - few cases need more,
     // they can use server.xml
     protected Server server;
@@ -295,11 +289,7 @@
         getServer();
         getConnector();
         server.initialize();
-        if (server instanceof Lifecycle) {
-            ((Lifecycle) server).start();
-        } else {
-            log.warn(sm.getString("tomcat.startNotLifecycle"));
-        }
+        server.start();
     }
 
     /** 
@@ -310,11 +300,7 @@
      */
     public void stop() throws LifecycleException {
         getServer();
-        if (server instanceof Lifecycle) {
-            ((Lifecycle) server).stop();
-        } else {
-            log.warn(sm.getString("tomcat.stopNotLifecycle"));
-        }
+        server.stop();
     }
 
 
@@ -454,11 +440,7 @@
         Context ctx = new StandardContext();
         ctx.setPath( contextPath );
         ctx.setDocBase(dir);
-        if (ctx instanceof Lifecycle) {
-            ((Lifecycle) ctx).addLifecycleListener(new FixContextListener());
-        } else {
-            log.warn(sm.getString("tomcat.addContextNotLifecycle"));
-        }
+        ctx.addLifecycleListener(new FixContextListener());
         
         if (host == null) {
             getHost().addChild(ctx);
@@ -478,17 +460,14 @@
             initSimpleAuth();
         }
         ctx.setRealm(defaultRealm);
-        if (ctx instanceof Lifecycle) {
-            ((Lifecycle) ctx).addLifecycleListener(new DefaultWebXmlListener());
-            
-            ContextConfig ctxCfg = new ContextConfig();
-            ((Lifecycle) ctx).addLifecycleListener(ctxCfg);
-            
-            // prevent it from looking ( if it finds one - it'll have dup error )
-            ctxCfg.setDefaultWebXml("org/apache/catalin/startup/NO_DEFAULT_XML");
-        } else {
-            log.warn(sm.getString("tomcat.addWebappNotLifecycle"));
-        }
+
+        ctx.addLifecycleListener(new DefaultWebXmlListener());
+        
+        ContextConfig ctxCfg = new ContextConfig();
+        ctx.addLifecycleListener(ctxCfg);
+        
+        // prevent it from looking ( if it finds one - it'll have dup error )
+        ctxCfg.setDefaultWebXml("org/apache/catalin/startup/NO_DEFAULT_XML");
         
         if (host == null) {
             getHost().addChild(ctx);
@@ -609,12 +588,7 @@
         // Make sure getServer() has been called as that is where naming is
         // disabled
         getServer();
-        if (server instanceof Lifecycle) {
-            ((Lifecycle) server).addLifecycleListener(
-                    new NamingContextListener());
-        } else {
-            log.warn(sm.getString("tomcat.namingNotLifecycle"));
-        }
+        server.addLifecycleListener(new NamingContextListener());
         
         System.setProperty("catalina.useNaming", "true");
 

Modified: tomcat/trunk/java/org/apache/catalina/startup/UserConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/UserConfig.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/UserConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/UserConfig.java Wed Feb 17 09:20:59 2010
@@ -298,12 +298,10 @@
               (Context) clazz.newInstance();
             context.setPath(contextPath);
             context.setDocBase(app.toString());
-            if (context instanceof Lifecycle) {
-                clazz = Class.forName(configClass);
-                LifecycleListener listener =
-                  (LifecycleListener) clazz.newInstance();
-                ((Lifecycle) context).addLifecycleListener(listener);
-            }
+            clazz = Class.forName(configClass);
+            LifecycleListener listener =
+                (LifecycleListener) clazz.newInstance();
+            context.addLifecycleListener(listener);
             host.addChild(context);
         } catch (Exception e) {
             host.getLogger().error(sm.getString("userConfig.error", user), e);

Modified: tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java (original)
+++ tomcat/trunk/java/org/apache/catalina/valves/CometConnectionManagerValve.java Wed Feb 17 09:20:59 2010
@@ -166,7 +166,7 @@
         started = true;
 
         if (container instanceof Context) {
-            ((Lifecycle) container).addLifecycleListener(this);
+            container.addLifecycleListener(this);
         }
         
     }
@@ -190,7 +190,7 @@
         started = false;
 
         if (container instanceof Context) {
-            ((Lifecycle) container).removeLifecycleListener(this);
+            container.removeLifecycleListener(this);
         }
 
     }

Modified: tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java?rev=910877&r1=910876&r2=910877&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java (original)
+++ tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java Wed Feb 17 09:20:59 2010
@@ -10,7 +10,6 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.Context;
-import org.apache.catalina.Lifecycle;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.startup.TomcatBaseTest;
 
@@ -32,11 +31,7 @@
         getUrl("http://localhost:" + getPort() + "/");
         
         // Stop the context
-        if (ctx instanceof Lifecycle) {
-            ((Lifecycle) ctx).stop();
-        } else {
-            fail("Test requires context implements Lifecycle");
-        }
+        ctx.stop();
         
         // If the thread still exists, we have a thread/memory leak
         Thread[] threads = getThreads();



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org