SLING-9217 - The JSPC Maven plugin should allow configuring the package name under which JSPs are compiled
diff --git a/pom.xml b/pom.xml
index ec7d14a..ac4c4ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -108,7 +108,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.jsp</artifactId>
- <version>2.4.3-SNAPSHOT</version>
+ <version>2.5.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
diff --git a/src/main/java/org/apache/sling/maven/jspc/JspcMojo.java b/src/main/java/org/apache/sling/maven/jspc/JspcMojo.java
index 0d22b64..7080afb 100644
--- a/src/main/java/org/apache/sling/maven/jspc/JspcMojo.java
+++ b/src/main/java/org/apache/sling/maven/jspc/JspcMojo.java
@@ -44,6 +44,7 @@
import org.apache.sling.commons.classloader.ClassLoaderWriter;
import org.apache.sling.commons.compiler.JavaCompiler;
import org.apache.sling.commons.compiler.impl.EclipseJavaCompiler;
+import org.apache.sling.scripting.jsp.jasper.Constants;
import org.apache.sling.scripting.jsp.jasper.IOProvider;
import org.apache.sling.scripting.jsp.jasper.JasperException;
import org.apache.sling.scripting.jsp.jasper.JspCompilationContext;
@@ -142,10 +143,10 @@
private String jspFileExtensions;
/**
- * @deprecated Due to internal refactoring, this is not longer supported.
+ * When defined, this will set the value for the {@link org.apache.sling.scripting.jsp.jasper.Constants#JSP_PACKAGE_NAME_PROPERTY_NAME}
+ * system property of the Jasper compiler, which defines the prefix package under which compiled JSPs will be generated.
*/
- @Deprecated
- @Parameter ( property = "jspc.servletPackage", defaultValue = "org.apache.jsp")
+ @Parameter(property = "jspc.servletPackage")
private String servletPackage;
/**
@@ -209,10 +210,13 @@
}
// have the files compiled
+ String previousJasperPackageName = null;
String oldValue = System.getProperty(LogFactoryImpl.LOG_PROPERTY);
try {
// ensure the JSP Compiler does not try to use Log4J
System.setProperty(LogFactoryImpl.LOG_PROPERTY, SimpleLog.class.getName());
+ previousJasperPackageName =
+ System.setProperty(Constants.JSP_PACKAGE_NAME_PROPERTY_NAME, (servletPackage != null ? servletPackage : ""));
executeInternal();
if (printCompilationReport) {
printCompilationReport();
@@ -226,6 +230,11 @@
} else {
System.setProperty(LogFactoryImpl.LOG_PROPERTY, oldValue);
}
+ if (previousJasperPackageName == null) {
+ System.clearProperty(Constants.JSP_PACKAGE_NAME_PROPERTY_NAME);
+ } else {
+ System.setProperty(Constants.JSP_PACKAGE_NAME_PROPERTY_NAME, previousJasperPackageName);
+ }
}
project.addCompileSourceRoot(outputDirectory);