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