diff --git a/core/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/Tomcat8xStandaloneLocalConfiguration.java b/core/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/Tomcat8xStandaloneLocalConfiguration.java index e4879dd70f..7afd8fe39d 100644 --- a/core/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/Tomcat8xStandaloneLocalConfiguration.java +++ b/core/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/Tomcat8xStandaloneLocalConfiguration.java @@ -203,10 +203,16 @@ private void writeDirectoryPostResource(Element postResourceEl, String path) */ private void writeJarPostResource(StringBuilder sb, String path) { + if (Boolean.parseBoolean(getPropertyValue(TomcatPropertySet.CONTEXT_MAPJARSTOWEBINFCLASSES))) { + sb.append("className=\"" + JAR_RESOURCE_SET + "\" base=\""); + sb.append(path.replace("&", "&")); + sb.append("\" webAppMount=\"/WEB-INF/classes/"); + } else { sb.append("className=\"" + FILE_RESOURCE_SET + "\" base=\""); sb.append(path.replace("&", "&")); sb.append("\" webAppMount=\"/WEB-INF/lib/"); sb.append(getFileHandler().getName(path).replace("&", "&")); + } } /** @@ -217,10 +223,16 @@ private void writeJarPostResource(StringBuilder sb, String path) */ private void writeJarPostResource(Element postResourceEl, String path) { + if (Boolean.parseBoolean(getPropertyValue(TomcatPropertySet.CONTEXT_MAPJARSTOWEBINFCLASSES))) { + postResourceEl.setAttribute("className", JAR_RESOURCE_SET); + postResourceEl.setAttribute("base", path.replace("&", "&")); + postResourceEl.setAttribute("webAppMount", "/WEB-INF/classes/"); + } else { postResourceEl.setAttribute("className", FILE_RESOURCE_SET); postResourceEl.setAttribute("base", path.replace("&", "&")); postResourceEl.setAttribute("webAppMount", "/WEB-INF/lib/" + getFileHandler().getName(path).replace("&", "&")); + } } /** diff --git a/core/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/TomcatPropertySet.java b/core/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/TomcatPropertySet.java index 4b8f555e49..b2ce6723ef 100644 --- a/core/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/TomcatPropertySet.java +++ b/core/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/TomcatPropertySet.java @@ -54,6 +54,11 @@ public interface TomcatPropertySet */ String CONTEXT_ALLOWWEBJARS = "cargo.tomcat.context.addWebinfClassesResources"; + /** + * Whether the contexts for deployed webapplications should map JARs to WEB-INF/classes + */ + String CONTEXT_MAPJARSTOWEBINFCLASSES = "cargo.tomcat.context.mapJarToWebinfClasses"; + /** * Whether WAR deployables should be copied or referenced. */