From: markt Date: Tue, 30 Nov 2010 16:11:23 +0000 (+0000) Subject: Switch MapperListener to the new Lifecycle X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=00b4927a0f6b034006d47095a45b31cfd1b52d28;p=tomcat7.0 Switch MapperListener to the new Lifecycle git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1040609 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/connector/Connector.java b/java/org/apache/catalina/connector/Connector.java index a3c9efe52..aeb17bd99 100644 --- a/java/org/apache/catalina/connector/Connector.java +++ b/java/org/apache/catalina/connector/Connector.java @@ -879,11 +879,9 @@ public class Connector extends LifecycleMBeanBase { onameProtocolHandler = register(protocolHandler, createObjectNameKeyProperties("ProtocolHandler")); - - mapperListener.setDomain(getDomain()); - onameMapper = register(mapperListener, - createObjectNameKeyProperties("Mapper")); + // Initialize mapper listener + mapperListener.init(); } @@ -910,8 +908,7 @@ public class Connector extends LifecycleMBeanBase { ("coyoteConnector.protocolHandlerStartFailed", e)); } - // MapperListener doesn't follow Lifecycle conventions - mapperListener.init(); + mapperListener.start(); } @@ -933,14 +930,13 @@ public class Connector extends LifecycleMBeanBase { ("coyoteConnector.protocolHandlerStopFailed", e)); } - // MapperListener doesn't follow Lifecycle conventions - mapperListener.destroy(); + mapperListener.stop(); } @Override protected void destroyInternal() throws LifecycleException { - unregister(onameMapper); + mapperListener.destroy(); unregister(onameProtocolHandler); try { @@ -977,7 +973,6 @@ public class Connector extends LifecycleMBeanBase { // -------------------- JMX registration -------------------- private ObjectName onameProtocolHandler; - private ObjectName onameMapper; @Override protected String getDomainInternal() { diff --git a/java/org/apache/catalina/connector/MapperListener.java b/java/org/apache/catalina/connector/MapperListener.java index d36b69f93..abc6f56be 100644 --- a/java/org/apache/catalina/connector/MapperListener.java +++ b/java/org/apache/catalina/connector/MapperListener.java @@ -27,6 +27,7 @@ import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleListener; import org.apache.catalina.LifecycleState; import org.apache.catalina.Wrapper; +import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.http.mapper.Mapper; @@ -39,7 +40,8 @@ import org.apache.tomcat.util.res.StringManager; * @author Remy Maucherat * @author Costin Manolache */ -public class MapperListener implements ContainerListener, LifecycleListener { +public class MapperListener extends LifecycleMBeanBase + implements ContainerListener, LifecycleListener { private static final Log log = LogFactory.getLog(MapperListener.class); @@ -82,18 +84,17 @@ public class MapperListener implements ContainerListener, LifecycleListener { // --------------------------------------------------------- Public Methods - public String getDomain() { - return domain; + public String getConnectorName() { + return this.connector.toString(); } - public void setDomain(String domain) { - this.domain = domain; - } + + // ------------------------------------------------------- Lifecycle Methods - /** - * Initialize associated mapper. - */ - public void init() { + @Override + public void startInternal() { + + setState(LifecycleState.STARTING); // Find any components that have already been initialized since the // MBean listener won't be notified as those components will have @@ -114,14 +115,25 @@ public class MapperListener implements ContainerListener, LifecycleListener { } - /** - * Clean-up. - */ - public void destroy() { - // NO-OP? + @Override + public void stopInternal() { + setState(LifecycleState.STOPPING); + } + + + @Override + protected String getDomainInternal() { + // Should be the same as the connector + return connector.getDomainInternal(); } + @Override + protected String getObjectNameKeyProperties() { + // Same as connector but Mapper rather than Connector + return connector.createObjectNameKeyProperties("Mapper"); + } + // --------------------------------------------- Container Listener methods @Override diff --git a/java/org/apache/catalina/connector/mbeans-descriptors.xml b/java/org/apache/catalina/connector/mbeans-descriptors.xml index b37d32e29..bd1da68e9 100644 --- a/java/org/apache/catalina/connector/mbeans-descriptors.xml +++ b/java/org/apache/catalina/connector/mbeans-descriptors.xml @@ -190,4 +190,15 @@ + + + + diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index a8a20a723..9b0ace2c7 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -72,6 +72,10 @@ 50358: Set the correct LifecycleState when stopping instances of the deprecated Embedded class. (markt) + + Further Lifecycle refactoring for Connectors and associated components. + (markt) +