Author: markt Date: Mon Jul 30 21:53:56 2012 New Revision: 1367329 URL: http://svn.apache.org/viewvc?rev=1367329&view=rev Log: Move Mapper from Connector to Service removing potential duplication.
Added: tomcat/trunk/java/org/apache/catalina/mapper/Constants.java (with props) tomcat/trunk/java/org/apache/catalina/mapper/MapperListener.java - copied, changed from r1367313, tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java Removed: tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java Modified: tomcat/trunk/TOMCAT-NEXT.txt tomcat/trunk/java/org/apache/catalina/Service.java tomcat/trunk/java/org/apache/catalina/connector/Connector.java tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_fr.properties tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_ja.properties tomcat/trunk/java/org/apache/catalina/core/StandardService.java tomcat/trunk/java/org/apache/catalina/mapper/LocalStrings.properties tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/TOMCAT-NEXT.txt URL: http://svn.apache.org/viewvc/tomcat/trunk/TOMCAT-NEXT.txt?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/TOMCAT-NEXT.txt (original) +++ tomcat/trunk/TOMCAT-NEXT.txt Mon Jul 30 21:53:56 2012 @@ -43,7 +43,7 @@ but possibly 7.1.x). 7. Rip out all the JNDI code in resource handling and replace it with straight URLs (File or WAR). Supporting re-factoring to consider arising from the above - - Move Mapper from Connector to Service/Engine (saves duplication) + - Move Mapper from Connector to Service (saves duplication) - Remove Mapper from Context - use Mapper from Service 8. Review the connector shutdown code for timing and threading issues Modified: tomcat/trunk/java/org/apache/catalina/Service.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Service.java?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Service.java (original) +++ tomcat/trunk/java/org/apache/catalina/Service.java Mon Jul 30 21:53:56 2012 @@ -19,6 +19,7 @@ package org.apache.catalina; import org.apache.catalina.connector.Connector; +import org.apache.catalina.mapper.Mapper; /** * A <strong>Service</strong> is a group of one or more @@ -147,4 +148,8 @@ public interface Service extends Lifecyc */ public void removeExecutor(Executor ex); + /** + * The mapper associated with this Service. + */ + Mapper getMapper(); } Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Mon Jul 30 21:53:56 2012 @@ -27,7 +27,6 @@ import org.apache.catalina.LifecycleExce import org.apache.catalina.LifecycleState; import org.apache.catalina.Service; import org.apache.catalina.core.AprLifecycleListener; -import org.apache.catalina.mapper.Mapper; import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.coyote.Adapter; import org.apache.coyote.ProtocolHandler; @@ -223,19 +222,6 @@ public class Connector extends Lifecycle /** - * Mapper. - */ - protected final Mapper mapper = new Mapper(); - - - /** - * Mapper listener. - */ - protected final MapperListener mapperListener = - new MapperListener(mapper, this); - - - /** * URI encoding. */ protected String URIEncoding = null; @@ -390,14 +376,6 @@ public class Connector extends Lifecycle /** - * Return the mapper. - */ - public Mapper getMapper() { - return (mapper); - } - - - /** * Return the maximum number of headers that are allowed by the container. A * value of less than 0 means no limit. */ @@ -970,9 +948,6 @@ public class Connector extends Lifecycle (sm.getString ("coyoteConnector.protocolHandlerInitializationFailed"), e); } - - // Initialize mapper listener - mapperListener.init(); } @@ -1004,8 +979,6 @@ public class Connector extends Lifecycle (errPrefix + " " + sm.getString ("coyoteConnector.protocolHandlerStartFailed"), e); } - - mapperListener.start(); } @@ -1026,15 +999,11 @@ public class Connector extends Lifecycle (sm.getString ("coyoteConnector.protocolHandlerStopFailed"), e); } - - mapperListener.stop(); } @Override protected void destroyInternal() throws LifecycleException { - mapperListener.destroy(); - try { protocolHandler.destroy(); } catch (Exception e) { Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Mon Jul 30 21:53:56 2012 @@ -672,8 +672,8 @@ public class CoyoteAdapter implements Ad mapRequired = false; } // This will map the the latest version by default - connector.getMapper().map(serverName, decodedURI, version, - request.getMappingData()); + connector.getService().getMapper().map(serverName, decodedURI, + version, request.getMappingData()); request.setContext((Context) request.getMappingData().context); request.setWrapper((Wrapper) request.getMappingData().wrapper); Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings.properties Mon Jul 30 21:53:56 2012 @@ -70,14 +70,4 @@ responseFacade.nullResponse=The response cometEvent.nullRequest=The event object has been recycled and is no longer associated with a request -# -# MapperListener -# -mapperListener.unknownDefaultHost=Unknown default host [{0}] for connector [{1}] -mapperListener.registerHost=Register host [{0}] at domain [{1}] for connector [{2}] -mapperListener.unregisterHost=Unregister host [{0}] at domain [{1}] for connector [{2}] -mapperListener.registerContext=Register Context [{0}] for connector [{1}] -mapperListener.unregisterContext=Unregister Context [{0}] for connector [{1}] -mapperListener.registerWrapper=Register Wrapper [{0}] in Context [{1}] for connector [{2}] -mapperListener.unregisterWrapper=Unregister Wrapper [{0}] in Context [{1}] for connector [{2}] inputBuffer.streamClosed=Stream closed Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_es.properties Mon Jul 30 21:53:56 2012 @@ -55,10 +55,5 @@ cometEvent.nullRequest = El objeto de ev mapperListener.unknownDefaultHost = M\u00E1quina por defecto desconocida\: {0} para el conector [{1}] mapperListener.registerHost = Registrar m\u00E1quina {0} en dominio {1} para el conector [{2}] mapperListener.unregisterHost = Desregistrar m\u00E1quina {0} en dominio {1} para el conector [{2}] -# -# MapperListener -mapperListener.registerContext = Registrar Contexto {0} para el conector [{1}] -mapperListener.unregisterContext = Desregistrar Contexto {0} para el conector [{1}] -mapperListener.registerWrapper = Registrar Arropador (Wrapper) {0} en Contexto {1} -mapperListener.unregisterWrapper = Desregistrar Arropador (Wrapper) {0} en Contexto {1} + inputBuffer.streamClosed = Flujo cerrado Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_fr.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_fr.properties?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_fr.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_fr.properties Mon Jul 30 21:53:56 2012 @@ -46,15 +46,3 @@ coyoteRequest.sessionCreateCommitted=Imp coyoteRequest.setAttribute.namenull=Impossible d''appeler "setAttribute" avec un nom nul coyoteRequest.attributeEvent=Une exception a \u00e9t\u00e9 lanc\u00e9e par l''instance d''\u00e9coute pour l''\u00e9v\u00e8nement attributs (attributes) coyoteRequest.postTooLarge=Les param\u00e8tres n''ont pas \u00e9t\u00e9 \u00e9valu\u00e9s car la taille des donn\u00e9es post\u00e9es est trop important. Utilisez l''attribut maxPostSize du connecteur pour corriger ce probl\u00e8me si votre application doit accepter des POSTs importants. - - -# -# MapperListener -# - -mapperListener.registerContext=Enregistrement du contexte {0} -mapperListener.unregisterContext=D\u00e9senregistrement du contexte {0} -mapperListener.registerWrapper=Enregistrement de l''enrobeur (wrapper) {0} dans le contexte {1} - - - Modified: tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_ja.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_ja.properties?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_ja.properties (original) +++ tomcat/trunk/java/org/apache/catalina/connector/LocalStrings_ja.properties Mon Jul 30 21:53:56 2012 @@ -46,15 +46,3 @@ coyoteRequest.sessionCreateCommitted=\u3 coyoteRequest.setAttribute.namenull=setAttribute\u3092\u540d\u524d\u3092\u6307\u5b9a\u305b\u305a\u306b\u547c\u3073\u51fa\u3059\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093 coyoteRequest.attributeEvent=\u5c5e\u6027\u30a4\u30d9\u30f3\u30c8\u30ea\u30b9\u30ca\u306b\u3088\u3063\u3066\u4f8b\u5916\u304c\u6295\u3052\u3089\u308c\u307e\u3057\u305f coyoteRequest.postTooLarge=POST\u3055\u308c\u305f\u30c7\u30fc\u30bf\u304c\u5927\u304d\u3059\u304e\u305f\u306e\u3067\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u69cb\u6587\u89e3\u6790\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u305d\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u5de8\u5927\u306aPOST\u3092\u53d7\u3051\u4ed8\u3051\u306d\u3070\u306a\u3089\u306a\u3044\u5834\u5408\u306b\u306f\u3001\u3053\u308c\u3092\u89e3\u6c7a\u3059\u308b\u305f\u3081\u306b\u30b3\u30cd\u30af\u30bf\u306emaxPostSize\u5c5e\u6027\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002 - - -# -# MapperListener -# - -mapperListener.registerContext=\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 {0}\u3000\u3092\u767b\u9332\u3057\u307e\u3059 -mapperListener.unregisterContext=\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 {0} \u306e\u767b\u9332\u3092\u62b9\u6d88\u3057\u307e\u3059 -mapperListener.registerWrapper=\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 {1} \u306b\u30e9\u30c3\u30d1 {0} \u3092\u767b\u9332\u3057\u307e\u3059 - - - 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=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardService.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardService.java Mon Jul 30 21:53:56 2012 @@ -32,6 +32,8 @@ import org.apache.catalina.LifecycleStat import org.apache.catalina.Server; import org.apache.catalina.Service; import org.apache.catalina.connector.Connector; +import org.apache.catalina.mapper.Mapper; +import org.apache.catalina.mapper.MapperListener; import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -94,8 +96,26 @@ public class StandardService extends Lif private ClassLoader parentClassLoader = null; + /** + * Mapper. + */ + protected final Mapper mapper = new Mapper(); + + + /** + * Mapper listener. + */ + protected final MapperListener mapperListener = + new MapperListener(mapper, this); + + // ------------------------------------------------------------- Properties + @Override + public Mapper getMapper() { + return mapper; + } + /** * Return the <code>Container</code> that handles requests for all @@ -426,6 +446,9 @@ public class StandardService extends Lif } } + + mapperListener.start(); + // Start our defined Connectors second synchronized (connectorsLock) { for (Connector connector: connectors) { @@ -499,6 +522,8 @@ public class StandardService extends Lif } } + mapperListener.stop(); + synchronized (executors) { for (Executor executor: executors) { executor.stop(); @@ -528,6 +553,9 @@ public class StandardService extends Lif executor.init(); } + // Initialize mapper listener + mapperListener.init(); + // Initialize our defined Connectors synchronized (connectorsLock) { for (Connector connector : connectors) { @@ -547,6 +575,8 @@ public class StandardService extends Lif @Override protected void destroyInternal() throws LifecycleException { + mapperListener.destroy(); + // Destroy our defined Connectors synchronized (connectorsLock) { for (Connector connector : connectors) { Added: tomcat/trunk/java/org/apache/catalina/mapper/Constants.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mapper/Constants.java?rev=1367329&view=auto ============================================================================== --- tomcat/trunk/java/org/apache/catalina/mapper/Constants.java (added) +++ tomcat/trunk/java/org/apache/catalina/mapper/Constants.java Mon Jul 30 21:53:56 2012 @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.catalina.mapper; + +/** + * Static constants for this package. + */ +public final class Constants { + + public static final String Package = "org.apache.catalina.mapper"; + +} Propchange: tomcat/trunk/java/org/apache/catalina/mapper/Constants.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/trunk/java/org/apache/catalina/mapper/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mapper/LocalStrings.properties?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/mapper/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/mapper/LocalStrings.properties Mon Jul 30 21:53:56 2012 @@ -13,4 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -mapper.removeWrapper=Removing wrapper from Context [{0}] with path [{1}] \ No newline at end of file +mapper.removeWrapper=Removing wrapper from Context [{0}] with path [{1}] + +mapperListener.unknownDefaultHost=Unknown default host [{0}] for service [{1}] +mapperListener.registerHost=Register host [{0}] at domain [{1}] for service [{2}] +mapperListener.unregisterHost=Unregister host [{0}] at domain [{1}] for service [{2}] +mapperListener.registerContext=Register Context [{0}] for service [{1}] +mapperListener.unregisterContext=Unregister Context [{0}] for service [{1}] +mapperListener.registerWrapper=Register Wrapper [{0}] in Context [{1}] for service [{2}] +mapperListener.unregisterWrapper=Unregister Wrapper [{0}] in Context [{1}] for service [{2}] Copied: tomcat/trunk/java/org/apache/catalina/mapper/MapperListener.java (from r1367313, tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java) URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mapper/MapperListener.java?p2=tomcat/trunk/java/org/apache/catalina/mapper/MapperListener.java&p1=tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java&r1=1367313&r2=1367329&rev=1367329&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/MapperListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/mapper/MapperListener.java Mon Jul 30 21:53:56 2012 @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.catalina.connector; +package org.apache.catalina.mapper; import org.apache.catalina.Container; import org.apache.catalina.ContainerEvent; @@ -27,8 +27,8 @@ import org.apache.catalina.LifecycleEven import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleListener; import org.apache.catalina.LifecycleState; +import org.apache.catalina.Service; import org.apache.catalina.Wrapper; -import org.apache.catalina.mapper.Mapper; import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; @@ -55,9 +55,9 @@ public class MapperListener extends Life private final Mapper mapper; /** - * Associated connector + * Associated service */ - private final Connector connector; + private final Service service; /** @@ -77,9 +77,9 @@ public class MapperListener extends Life /** * Create mapper listener. */ - public MapperListener(Mapper mapper, Connector connector) { + public MapperListener(Mapper mapper, Service service) { this.mapper = mapper; - this.connector = connector; + this.service = service; } @@ -95,7 +95,7 @@ public class MapperListener extends Life // already registered their MBeans findDefaultHost(); - Engine engine = (Engine) connector.getService().getContainer(); + Engine engine = (Engine) service.getContainer(); addListeners(engine); Container[] conHosts = engine.findChildren(); @@ -117,15 +117,18 @@ public class MapperListener extends Life @Override protected String getDomainInternal() { - // Should be the same as the connector - return connector.getDomainInternal(); + if (service instanceof LifecycleMBeanBase) { + return ((LifecycleMBeanBase) service).getDomain(); + } else { + return null; + } } @Override protected String getObjectNameKeyProperties() { // Same as connector but Mapper rather than Connector - return connector.createObjectNameKeyProperties("Mapper"); + return ("type=Mapper"); } // --------------------------------------------- Container Listener methods @@ -240,7 +243,7 @@ public class MapperListener extends Life private void findDefaultHost() { - Engine engine = (Engine) connector.getService().getContainer(); + Engine engine = (Engine) service.getContainer(); String defaultHost = engine.getDefaultHost(); boolean found = false; @@ -269,7 +272,7 @@ public class MapperListener extends Life mapper.setDefaultHostName(defaultHost); } else { log.warn(sm.getString("mapperListener.unknownDefaultHost", - defaultHost, connector)); + defaultHost, service)); } } @@ -289,7 +292,7 @@ public class MapperListener extends Life } if(log.isDebugEnabled()) { log.debug(sm.getString("mapperListener.registerHost", - host.getName(), domain, connector)); + host.getName(), domain, service)); } } @@ -305,7 +308,7 @@ public class MapperListener extends Life if(log.isDebugEnabled()) { log.debug(sm.getString("mapperListener.unregisterHost", hostname, - domain, connector)); + domain, service)); } } @@ -332,7 +335,7 @@ public class MapperListener extends Life if(log.isDebugEnabled()) { log.debug(sm.getString("mapperListener.unregisterWrapper", - wrapperName, contextPath, connector)); + wrapperName, contextPath, service)); } } @@ -360,7 +363,7 @@ public class MapperListener extends Life if(log.isDebugEnabled()) { log.debug(sm.getString("mapperListener.registerContext", - contextPath, connector)); + contextPath, service)); } } @@ -383,7 +386,7 @@ public class MapperListener extends Life if(log.isDebugEnabled()) { log.debug(sm.getString("mapperListener.unregisterContext", - contextPath, connector)); + contextPath, service)); } mapper.removeContextVersion(hostName, contextPath, @@ -417,7 +420,7 @@ public class MapperListener extends Life if(log.isDebugEnabled()) { log.debug(sm.getString("mapperListener.registerWrapper", - wrapperName, contextPath, connector)); + wrapperName, contextPath, service)); } } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1367329&r1=1367328&r2=1367329&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Mon Jul 30 21:53:56 2012 @@ -80,6 +80,13 @@ states (and has done for some time) that Context is the only valid location for these nested components. (markt) </scode> + <scode> + Move the Mapper from the Connector to the Service since the Mapper is + identical for all Connectors of a given Service and it is common for + there to be multiple Connectors for a Service (http, https and ajp). + This means there is now only ever one Mapper per Service rather than + possibly multiple identically configured Mapper obejcts. (markt) + </scode> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org