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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org