This is an automated email from the ASF dual-hosted git repository.

remm pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 658425c  Avoid possibly problematic default package name
658425c is described below

commit 658425c8213ee7af4b822e4804bf61ecf87a89ca
Author: remm <r...@apache.org>
AuthorDate: Fri Jul 17 14:16:27 2020 +0200

    Avoid possibly problematic default package name
    
    Allow future configuration if needed.
---
 java/org/apache/catalina/startup/Catalina.java     | 22 +++++++++++++++++++---
 .../org/apache/catalina/startup/ContextConfig.java | 20 +++++++++++++++-----
 webapps/docs/changelog.xml                         |  5 +++++
 3 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/java/org/apache/catalina/startup/Catalina.java 
b/java/org/apache/catalina/startup/Catalina.java
index aa8fe4c..9683df9 100644
--- a/java/org/apache/catalina/startup/Catalina.java
+++ b/java/org/apache/catalina/startup/Catalina.java
@@ -152,6 +152,12 @@ public class Catalina {
 
 
     /**
+     * Top package name for generated source.
+     */
+    protected String generatedCodePackage = "catalinaembedded";
+
+
+    /**
      * Use generated code as a replacement for configuration files.
      */
     protected boolean useGeneratedCode = false;
@@ -217,6 +223,16 @@ public class Catalina {
     }
 
 
+    public String getGeneratedCodePackage() {
+        return this.generatedCodePackage;
+    }
+
+
+    public void setGeneratedCodePackage(String generatedCodePackage) {
+        this.generatedCodePackage = generatedCodePackage;
+    }
+
+
     /**
      * Set the shared extensions class loader.
      *
@@ -549,7 +565,7 @@ public class Catalina {
             } else {
                 generatedCodeLocation = new 
File(Bootstrap.getCatalinaHomeFile(), "work");
             }
-            serverXmlLocation = new File(generatedCodeLocation, "catalina");
+            serverXmlLocation = new File(generatedCodeLocation, 
generatedCodePackage);
             if (!serverXmlLocation.isDirectory() && 
!serverXmlLocation.mkdirs()) {
                 log.warn(sm.getString("catalina.generatedCodeLocationError", 
generatedCodeLocation.getAbsolutePath()));
                 // Disable code generation
@@ -559,7 +575,7 @@ public class Catalina {
 
         ServerXml serverXml = null;
         if (useGeneratedCode) {
-            String xmlClassName = start ? "catalina.ServerXml" : 
"catalina.ServerXmlStop";
+            String xmlClassName = start ? generatedCodePackage + ".ServerXml" 
: generatedCodePackage + ".ServerXmlStop";
             try {
                 serverXml = (ServerXml) 
Catalina.class.getClassLoader().loadClass(xmlClassName).newInstance();
             } catch (Exception e) {
@@ -894,7 +910,7 @@ public class Catalina {
 
     protected void generateClassHeader(Digester digester, boolean start) {
         StringBuilder code = digester.getGeneratedCode();
-        code.append("package catalina;").append(System.lineSeparator());
+        code.append("package 
").append(generatedCodePackage).append(";").append(System.lineSeparator());
         code.append("public class ServerXml");
         if (!start) {
             code.append("Stop");
diff --git a/java/org/apache/catalina/startup/ContextConfig.java 
b/java/org/apache/catalina/startup/ContextConfig.java
index ebb65b0..4a79c2c 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -474,7 +474,17 @@ public class ContextConfig implements LifecycleListener {
     }
 
 
-    protected static String getContextXmlPackageName(Container container) {
+    protected String getGeneratedCodePackage() {
+        Catalina catalina = 
Container.getService(context).getServer().getCatalina();
+        if (catalina != null) {
+            return catalina.getGeneratedCodePackage();
+        } else {
+            return "generatedCodePackage";
+        }
+    }
+
+
+    protected static String getContextXmlPackageName(String 
generatedCodePackge, Container container) {
         StringBuilder result = new StringBuilder();
         Container host = null;
         Container engine = null;
@@ -486,7 +496,7 @@ public class ContextConfig implements LifecycleListener {
             }
             container = container.getParent();
         }
-        result.append("catalina");
+        result.append(generatedCodePackge);
         if (engine != null) {
             result.append('.');
         }
@@ -574,7 +584,7 @@ public class ContextConfig implements LifecycleListener {
         if (!context.getOverride()) {
 
             if (useGeneratedCode || generateCode) {
-                contextXmlPackageName = "catalina";
+                contextXmlPackageName = getGeneratedCodePackage();
                 contextXmlSimpleClassName = "ContextXmlDefault";
                 contextXmlClassName = contextXmlPackageName + "." + 
contextXmlSimpleClassName;
             }
@@ -613,7 +623,7 @@ public class ContextConfig implements LifecycleListener {
             }
 
             if (useGeneratedCode || generateCode) {
-                contextXmlPackageName = getContextXmlPackageName(context);
+                contextXmlPackageName = 
getContextXmlPackageName(getGeneratedCodePackage(), context);
                 contextXmlSimpleClassName = "ContextXmlDefault";
                 contextXmlClassName = contextXmlPackageName + "." + 
contextXmlSimpleClassName;
             }
@@ -655,7 +665,7 @@ public class ContextConfig implements LifecycleListener {
 
         if (context.getConfigFile() != null) {
             if (useGeneratedCode || generateCode) {
-                contextXmlPackageName = getContextXmlPackageName(context);
+                contextXmlPackageName = 
getContextXmlPackageName(getGeneratedCodePackage(), context);
                 contextXmlSimpleClassName = "ContextXml_" + 
context.getName().replace('/', '_').replace("-", "__");
                 contextXmlClassName = contextXmlPackageName + "." + 
contextXmlSimpleClassName;
             }
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 7d6d826..1637975 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -57,6 +57,11 @@
         issuing the 404 response to give the rewrite valve, if configured, an
         opportunity to rewrite the request. (remm/markt)
       </fix>
+      <fix>
+        Change top package name for generated emebedded classes to avoid
+        conflict with default host name on case insensitive filesystems.
+        (remm)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to