Author: kkolinko Date: Wed Jun 22 23:39:58 2011 New Revision: 1138693 URL: http://svn.apache.org/viewvc?rev=1138693&view=rev Log: Followup to r1138573 Improve support for embedding Tomcat 7.
Expose the string that was used to suppress loading default web.xml as a constant. Short-circuit the attempt to load the web.xml file when this magic value is used. Thus saving us from unneeded getResourceAsStream() call. Modified: tomcat/trunk/java/org/apache/catalina/startup/Constants.java tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/startup/Constants.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Constants.java?rev=1138693&r1=1138692&r2=1138693&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/Constants.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/Constants.java Wed Jun 22 23:39:58 2011 @@ -38,6 +38,18 @@ public final class Constants { public static final String HostContextXml = "context.xml.default"; public static final String HostWebXml = "web.xml.default"; + /** + * A dummy value used to suppress loading the default web.xml file. + * + * <p> + * It is useful when embedding Tomcat, when the default configuration is + * done programmatically, e.g. by calling + * <code>Tomcat.initWebappDefaults(context)</code>. + * + * @see Tomcat + */ + public static final String NoDefaultWebXml = "org/apache/catalina/startup/NO_DEFAULT_XML"; + // J2EE public static final String J2eeSchemaPublicId_14 = "j2ee_1_4.xsd"; Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1138693&r1=1138692&r2=1138693&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Wed Jun 22 23:39:58 2011 @@ -1589,6 +1589,10 @@ public class ContextConfig // Set the default if we don't have any overrides if (defaultWebXml == null) getDefaultWebXml(); + // Is it explicitly suppressed, e.g. in embedded environment? + if (Constants.NoDefaultWebXml.equals(defaultWebXml)) { + return null; + } return getWebXmlSource(defaultWebXml, getBaseDir()); } 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=1138693&r1=1138692&r2=1138693&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Wed Jun 22 23:39:58 2011 @@ -531,8 +531,8 @@ public class Tomcat { 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"); - + ctxCfg.setDefaultWebXml(noDefaultWebXmlPath()); + if (host == null) { getHost().addChild(ctx); } else { @@ -560,7 +560,7 @@ public class Tomcat { * {@link #getDefaultWebXmlListener()}. */ public String noDefaultWebXmlPath() { - return "org/apache/catalin/startup/NO_DEFAULT_XML"; + return Constants.NoDefaultWebXml; } /** Modified: tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java?rev=1138693&r1=1138692&r2=1138693&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java (original) +++ tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java Wed Jun 22 23:39:58 2011 @@ -33,6 +33,7 @@ import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleListener; import org.apache.catalina.deploy.WebXml; +import org.apache.catalina.startup.Constants; import org.apache.catalina.startup.ContextConfig; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; @@ -124,7 +125,7 @@ public class TestStandardContextResource } }; // prevent it from looking ( if it finds one - it'll have dup error ) - config.setDefaultWebXml("org/apache/catalin/startup/NO_DEFAULT_XML"); + config.setDefaultWebXml(Constants.NoDefaultWebXml); listener[1] = config; Tomcat.addServlet(ctx, "getresource", new GetResourceServlet()); ctx.addServletMapping("/getresource", "getresource"); @@ -149,7 +150,7 @@ public class TestStandardContextResource } }; // prevent it from looking ( if it finds one - it'll have dup error ) - config1.setDefaultWebXml("org/apache/catalin/startup/NO_DEFAULT_XML"); + config1.setDefaultWebXml(Constants.NoDefaultWebXml); listener1[1] = config1; // Need to init since context won't call init config1.lifecycleEvent( Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1138693&r1=1138692&r2=1138693&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Wed Jun 22 23:39:58 2011 @@ -128,7 +128,7 @@ </fix> <add> <bug>51418</bug>: Provide more control over Context creation when - embedding Tomcat. Based on a patch by Benson Margulies. (markt) + embedding Tomcat. Based on a patch by Benson Margulies. (markt/kkolinko) </add> </changelog> </subsection> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org