You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2020/07/17 12:20:47 UTC
[tomcat] branch 9.0.x updated: Avoid possibly problematic default
package name
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 <re...@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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org