From a7145d695e134e7b3191f9895bf259a95039e41a Mon Sep 17 00:00:00 2001
From: Lukasz Lenart
Date: Fri, 21 Jun 2024 08:13:07 +0200
Subject: [PATCH] WW-5430 Uses Freemarker native support for JakartaEE instead
of manually transforming the artifacts
---
apps/showcase/pom.xml | 6 --
core/pom.xml | 4 +-
.../views/freemarker/FreemarkerManager.java | 12 ++--
jakarta/freemarker-jakarta/README.md | 4 --
jakarta/freemarker-jakarta/pom.xml | 69 -------------------
jakarta/pom.xml | 1 -
.../sitemesh/FreemarkerDecoratorServlet.java | 6 +-
.../request/freemarker/FreemarkerRequest.java | 2 +-
.../freemarker/FreemarkerRequestUtil.java | 6 +-
.../servlet/WebappClassTemplateLoader.java | 2 +-
pom.xml | 11 ---
11 files changed, 16 insertions(+), 107 deletions(-)
delete mode 100644 jakarta/freemarker-jakarta/README.md
delete mode 100644 jakarta/freemarker-jakarta/pom.xml
diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index 877cf124a..3f4e4fcdd 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -166,11 +166,6 @@
${project.build.directory}/extraclasspath
-
- org.apache.struts
- struts2-freemarker-jakarta
- struts2-freemarker-jakarta.jar
-
org.apache.struts
struts2-sitemesh2-jakarta
@@ -241,7 +236,6 @@
${basedir}/src/main/webapp/
- ${project.build.directory}/extraclasspath/struts2-freemarker-jakarta.jar,
${project.build.directory}/extraclasspath/struts2-sitemesh2-jakarta.jar,
${project.build.directory}/extraclasspath/struts2-velocity-tools-view-jakarta.jar,
${project.build.directory}/extraclasspath/struts2-velocity-tools-jsp-jakarta
diff --git a/core/pom.xml b/core/pom.xml
index d84b7770e..778cf2605 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -136,8 +136,8 @@
- org.apache.struts
- struts2-freemarker-jakarta
+ org.freemarker
+ freemarker
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
index 2d76cd2ca..567417174 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
@@ -28,14 +28,14 @@ import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.FileTemplateLoader;
import freemarker.cache.MultiTemplateLoader;
import freemarker.cache.TemplateLoader;
-import freemarker.cache.WebappTemplateLoader;
+import freemarker.ext.jakarta.servlet.WebappTemplateLoader;
import freemarker.core.HTMLOutputFormat;
import freemarker.core.TemplateClassResolver;
-import freemarker.ext.jsp.TaglibFactory;
-import freemarker.ext.servlet.HttpRequestHashModel;
-import freemarker.ext.servlet.HttpRequestParametersHashModel;
-import freemarker.ext.servlet.HttpSessionHashModel;
-import freemarker.ext.servlet.ServletContextHashModel;
+import freemarker.ext.jakarta.jsp.TaglibFactory;
+import freemarker.ext.jakarta.servlet.HttpRequestHashModel;
+import freemarker.ext.jakarta.servlet.HttpRequestParametersHashModel;
+import freemarker.ext.jakarta.servlet.HttpSessionHashModel;
+import freemarker.ext.jakarta.servlet.ServletContextHashModel;
import freemarker.template.Configuration;
import freemarker.template.ObjectWrapper;
import freemarker.template.TemplateException;
diff --git a/jakarta/freemarker-jakarta/README.md b/jakarta/freemarker-jakarta/README.md
deleted file mode 100644
index b3bf61124..000000000
--- a/jakarta/freemarker-jakarta/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Struts 2 Freemarker Jakarta
-
-This uses the eclipse transformer maven plugin to make the Freemarker dependency Jakarta EE 9+ compatible.
-
diff --git a/jakarta/freemarker-jakarta/pom.xml b/jakarta/freemarker-jakarta/pom.xml
deleted file mode 100644
index 3bf9f5aa7..000000000
--- a/jakarta/freemarker-jakarta/pom.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
- 4.0.0
-
- org.apache.struts
- struts2-jakarta
- 7.0.0-M8-SNAPSHOT
-
- struts2-freemarker-jakarta
- jar
- Struts 2 Jakarta EE Compatible Freemarker
-
-
- UTF-8
- true
- true
-
-
-
-
-
- org.eclipse.transformer
- transformer-maven-plugin
- 0.5.0
- true
-
-
- true
-
-
-
-
- eclipse-transformer-freemarker-jar
-
- jar
-
-
-
- org.freemarker
- freemarker
- ${freemarker.version}
-
-
-
-
-
-
-
-
diff --git a/jakarta/pom.xml b/jakarta/pom.xml
index e338cf263..7a1f30fd1 100644
--- a/jakarta/pom.xml
+++ b/jakarta/pom.xml
@@ -37,7 +37,6 @@
- freemarker-jakarta
sitemesh2-jakarta
velocity-tools-view-jakarta
velocity-tools-jsp-jakarta
diff --git a/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/FreemarkerDecoratorServlet.java b/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/FreemarkerDecoratorServlet.java
index 235680799..767286819 100644
--- a/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/FreemarkerDecoratorServlet.java
+++ b/plugins/sitemesh/src/main/java/org/apache/struts2/sitemesh/FreemarkerDecoratorServlet.java
@@ -22,6 +22,7 @@ import com.opensymphony.module.sitemesh.HTMLPage;
import com.opensymphony.module.sitemesh.RequestConstants;
import com.opensymphony.xwork2.ActionContext;
import freemarker.core.InvalidReferenceException;
+import freemarker.ext.jakarta.servlet.FreemarkerServlet;
import freemarker.template.Configuration;
import freemarker.template.ObjectWrapper;
import freemarker.template.SimpleHash;
@@ -54,10 +55,9 @@ import java.util.Locale;
* Freemarker Manager in Struts instead of creating it's
* own manager
*/
-public class FreemarkerDecoratorServlet extends freemarker.ext.servlet.FreemarkerServlet {
+public class FreemarkerDecoratorServlet extends FreemarkerServlet {
private static final Logger LOG = LogManager.getLogger(FreemarkerDecoratorServlet.class);
- public static final long serialVersionUID = -2440216393145762479L;
protected FreemarkerManager freemarkerManager;
protected String templatePath;
@@ -273,7 +273,7 @@ public class FreemarkerDecoratorServlet extends freemarker.ext.servlet.Freemarke
* @param response the actual HTTP response
* @param template the template that will get executed
* @return true to process the template, false to suppress template processing.
- * @see freemarker.ext.servlet.FreemarkerServlet#preTemplateProcess(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, freemarker.template.Template, freemarker.template.TemplateModel)
+ * @see FreemarkerServlet#preTemplateProcess(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse, freemarker.template.Template, freemarker.template.TemplateModel)
*/
protected boolean preTemplateProcess(HttpServletRequest request, HttpServletResponse response, Template template, TemplateModel templateModel) throws ServletException, IOException {
boolean result = super.preTemplateProcess(request, response, template, templateModel);
diff --git a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java
index fdb57458a..e27275b3d 100644
--- a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java
+++ b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequest.java
@@ -20,7 +20,7 @@
package org.apache.tiles.request.freemarker;
import freemarker.core.Environment;
-import freemarker.ext.servlet.HttpRequestHashModel;
+import freemarker.ext.jakarta.servlet.HttpRequestHashModel;
import org.apache.tiles.request.AbstractViewRequest;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.DispatchRequest;
diff --git a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtil.java b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtil.java
index 6c43f231e..774b33265 100644
--- a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtil.java
+++ b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/FreemarkerRequestUtil.java
@@ -19,9 +19,9 @@
package org.apache.tiles.request.freemarker;
import freemarker.core.Environment;
-import freemarker.ext.servlet.FreemarkerServlet;
-import freemarker.ext.servlet.HttpRequestHashModel;
-import freemarker.ext.servlet.ServletContextHashModel;
+import freemarker.ext.jakarta.servlet.FreemarkerServlet;
+import freemarker.ext.jakarta.servlet.HttpRequestHashModel;
+import freemarker.ext.jakarta.servlet.ServletContextHashModel;
import freemarker.template.TemplateModelException;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.servlet.ServletUtil;
diff --git a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
index f3bbbb881..d6b841697 100644
--- a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
+++ b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
@@ -21,7 +21,7 @@ package org.apache.tiles.request.freemarker.servlet;
import freemarker.cache.ClassTemplateLoader;
import freemarker.cache.TemplateLoader;
-import freemarker.cache.WebappTemplateLoader;
+import freemarker.ext.jakarta.servlet.WebappTemplateLoader;
import jakarta.servlet.ServletContext;
import java.io.IOException;
diff --git a/pom.xml b/pom.xml
index f81d03591..c06783f7e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -506,19 +506,8 @@
org.apache.struts
struts-annotations
1.0.8
-
-
- org.freemarker
- freemarker
-
-
-
- org.apache.struts
- struts2-freemarker-jakarta
- ${project.version}
-
org.apache.struts
struts2-core