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

Reply via email to