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: [email protected]
For additional commands, e-mail: [email protected]