This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5450-use-contstants
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 9292dc2d07dfd4341e3fc78e21483fe5175ea2ca
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Fri Aug 30 13:41:43 2024 +0200

    WW-5450 Uses existing Jakarta constants instead of free hand strings
---
 core/src/main/java/org/apache/struts2/RequestUtils.java        |  3 ++-
 core/src/main/java/org/apache/struts2/components/Include.java  | 10 +++++-----
 .../java/org/apache/struts2/components/ServletUrlRenderer.java |  3 ++-
 .../struts2/dispatcher/DefaultDispatcherErrorHandler.java      |  3 ++-
 .../org/apache/struts2/result/ServletDispatcherResult.java     | 10 +++++-----
 .../org/apache/struts2/views/freemarker/FreemarkerManager.java |  3 ++-
 .../java/org/apache/struts2/views/util/DefaultUrlHelper.java   |  5 +++--
 .../java/org/apache/tiles/web/util/TilesDispatchServlet.java   |  3 ++-
 8 files changed, 23 insertions(+), 17 deletions(-)

diff --git a/core/src/main/java/org/apache/struts2/RequestUtils.java 
b/core/src/main/java/org/apache/struts2/RequestUtils.java
index 46b1dac8f..5840ff06b 100644
--- a/core/src/main/java/org/apache/struts2/RequestUtils.java
+++ b/core/src/main/java/org/apache/struts2/RequestUtils.java
@@ -18,6 +18,7 @@
  */
 package org.apache.struts2;
 
+import jakarta.servlet.RequestDispatcher;
 import jakarta.servlet.http.HttpServletRequest;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.FastDateFormat;
@@ -89,7 +90,7 @@ public class RequestUtils {
      */
     public static String getUri(HttpServletRequest request) {
         // handle http dispatcher includes.
-        String uri = (String) 
request.getAttribute("jakarta.servlet.include.servlet_path");
+        String uri = (String) 
request.getAttribute(RequestDispatcher.INCLUDE_SERVLET_PATH);
         if (uri != null) {
             return uri;
         }
diff --git a/core/src/main/java/org/apache/struts2/components/Include.java 
b/core/src/main/java/org/apache/struts2/components/Include.java
index 02867d890..5d2f61a4c 100644
--- a/core/src/main/java/org/apache/struts2/components/Include.java
+++ b/core/src/main/java/org/apache/struts2/components/Include.java
@@ -42,6 +42,7 @@ import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.io.Writer;
 import java.net.URLEncoder;
+import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
@@ -100,7 +101,7 @@ public class Include extends Component {
 
     private static final Logger LOG = LogManager.getLogger(Include.class);
 
-    private static final String systemEncoding = 
System.getProperty("file.encoding");
+    private static final String systemEncoding = 
Charset.defaultCharset().displayName();
 
     protected String value;
     private final HttpServletRequest req;
@@ -149,8 +150,7 @@ public class Include extends Component {
             String concat = "";
 
             // Set parameters
-            for (Object next : parameters.entrySet()) {
-                Map.Entry entry = (Map.Entry) next;
+            for (Map.Entry<String, Object> entry : parameters.entrySet()) {
                 Object name = entry.getKey();
                 List values = (List) entry.getValue();
 
@@ -191,7 +191,7 @@ public class Include extends Component {
         } else if (!(request instanceof HttpServletRequest hrequest)) {
             returnValue = relativePath;
         } else {
-            String uri = (String) 
request.getAttribute("jakarta.servlet.include.servlet_path");
+            String uri = (String) 
request.getAttribute(RequestDispatcher.INCLUDE_SERVLET_PATH);
 
             if (uri == null) {
                 uri = RequestUtils.getServletPath(hrequest);
@@ -203,7 +203,7 @@ public class Include extends Component {
         // .. is illegal in an absolute path according to the Servlet Spec and 
will cause
         // known problems on Orion application servers.
         if (returnValue.contains("..")) {
-            Stack stack = new Stack();
+            Stack<String> stack = new Stack<>();
             StringTokenizer pathParts = new 
StringTokenizer(returnValue.replace('\\', '/'), "/");
 
             while (pathParts.hasMoreTokens()) {
diff --git 
a/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java 
b/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
index fcca60538..ab87b77ad 100644
--- a/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
+++ b/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
@@ -23,6 +23,7 @@ import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ValueStack;
+import jakarta.servlet.RequestDispatcher;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -302,7 +303,7 @@ public class ServletUrlRenderer implements UrlRenderer {
         // Parse the query string to make sure that the parameters come from 
the query, and not some posted data
         String query = urlComponent.getHttpServletRequest().getQueryString();
         if (query == null) {
-            query = (String) 
urlComponent.getHttpServletRequest().getAttribute("jakarta.servlet.forward.query_string");
+            query = (String) 
urlComponent.getHttpServletRequest().getAttribute(RequestDispatcher.FORWARD_QUERY_STRING);
         }
 
         if (query != null) {
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java
index 423d188f8..00cc4ff10 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/DefaultDispatcherErrorHandler.java
@@ -22,6 +22,7 @@ import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.location.Location;
 import com.opensymphony.xwork2.util.location.LocationUtils;
 import freemarker.template.Template;
+import jakarta.servlet.RequestDispatcher;
 import jakarta.servlet.ServletContext;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
@@ -87,7 +88,7 @@ public class DefaultDispatcherErrorHandler implements 
DispatcherErrorHandler {
                 LOG.error("Exception occurred during processing request: {}", 
e.getMessage(), e);
                 // send a http error response to use the servlet defined error 
handler
                 // make the exception available to the web.xml defined error 
page
-                request.setAttribute("jakarta.servlet.error.exception", e);
+                request.setAttribute(RequestDispatcher.ERROR_EXCEPTION, e);
 
                 // for compatibility
                 request.setAttribute("jakarta.servlet.jsp.jspException", e);
diff --git 
a/core/src/main/java/org/apache/struts2/result/ServletDispatcherResult.java 
b/core/src/main/java/org/apache/struts2/result/ServletDispatcherResult.java
index a283aba5c..68605eb06 100644
--- a/core/src/main/java/org/apache/struts2/result/ServletDispatcherResult.java
+++ b/core/src/main/java/org/apache/struts2/result/ServletDispatcherResult.java
@@ -55,7 +55,7 @@ import java.io.Serial;
  * {@link PageContext#include(String) include} method is called.</li>
  *
  * <li>If there is no PageContext and we're not in any sort of include (there 
is no
- * "jakarta.servlet.include.servlet_path" in the request attributes), then a 
call to
+ * {@link RequestDispatcher#INCLUDE_SERVLET_PATH} in the request attributes), 
then a call to
  * {@link RequestDispatcher#forward(jakarta.servlet.ServletRequest, 
jakarta.servlet.ServletResponse) forward}
  * is made.</li>
  *
@@ -125,7 +125,7 @@ public class ServletDispatcherResult extends 
StrutsResultSupport {
      *                   HTTP request.
      */
     public void doExecute(String finalLocation, ActionInvocation invocation) 
throws Exception {
-        LOG.debug("Forwarding to location: {}", finalLocation);
+        LOG.debug("Processing location: {}", finalLocation);
 
         PageContext pageContext = ServletActionContext.getPageContext();
 
@@ -145,8 +145,6 @@ public class ServletDispatcherResult extends 
StrutsResultSupport {
                 if (!queryParams.isEmpty()) {
                     parameters = 
HttpParameters.create(queryParams.getQueryParams()).withParent(parameters).build();
                     
invocation.getInvocationContext().withParameters(parameters);
-                    // put to extraContext, see Dispatcher#createContextMap
-                    
invocation.getInvocationContext().getContextMap().put("parameters", parameters);
                 }
             }
 
@@ -163,12 +161,14 @@ public class ServletDispatcherResult extends 
StrutsResultSupport {
             // If we're included, then include the view
             // Otherwise do forward
             // This allow the page to, for example, set content type
-            if (!insideActionTag && !response.isCommitted() && 
(request.getAttribute("jakarta.servlet.include.servlet_path") == null)) {
+            if (!insideActionTag && !response.isCommitted() && 
(request.getAttribute(RequestDispatcher.INCLUDE_SERVLET_PATH) == null)) {
+                LOG.debug("Forwarding to location: {}", finalLocation);
                 request.setAttribute("struts.view_uri", finalLocation);
                 request.setAttribute("struts.request_uri", 
request.getRequestURI());
 
                 dispatcher.forward(request, response);
             } else {
+                LOG.debug("Including location: {}", finalLocation);
                 dispatcher.include(request, response);
             }
         }
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 0cb14b117..6f0594769 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
@@ -43,6 +43,7 @@ import freemarker.template.TemplateExceptionHandler;
 import freemarker.template.Version;
 import freemarker.template.utility.StringUtil;
 import jakarta.servlet.GenericServlet;
+import jakarta.servlet.RequestDispatcher;
 import jakarta.servlet.ServletContext;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
@@ -550,7 +551,7 @@ public class FreemarkerManager {
         model.putAll(standard);
 
         // support for JSP exception pages, exposing the servlet or JSP 
exception
-        Throwable exception = (Throwable) 
request.getAttribute("jakarta.servlet.error.exception");
+        Throwable exception = (Throwable) 
request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
 
         if (exception == null) {
             exception = (Throwable) 
request.getAttribute("jakarta.servlet.error.JspException");
diff --git 
a/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java 
b/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
index 888e946e3..37f013b11 100644
--- a/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
+++ b/core/src/main/java/org/apache/struts2/views/util/DefaultUrlHelper.java
@@ -19,6 +19,7 @@
 package org.apache.struts2.views.util;
 
 import com.opensymphony.xwork2.inject.Inject;
+import jakarta.servlet.RequestDispatcher;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.text.StringEscapeUtils;
 import org.apache.logging.log4j.LogManager;
@@ -126,7 +127,7 @@ public class DefaultUrlHelper implements UrlHelper {
 
                 // (Applicable to Servlet 2.4 containers)
                 // If the request was forwarded, the attribute below will be 
set with the original URL
-                String uri = (String) 
request.getAttribute("jakarta.servlet.forward.request_uri");
+                String uri = (String) 
request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
 
                 // If the attribute wasn't found, default to the value in the 
request object
                 if (uri == null) {
@@ -145,7 +146,7 @@ public class DefaultUrlHelper implements UrlHelper {
             // (Applicable to Servlet 2.4 containers)
             // If the request was forwarded, the attribute below will be set 
with the original URL
             if (requestURI == null) {
-                requestURI = (String) 
request.getAttribute("jakarta.servlet.forward.request_uri");
+                requestURI = (String) 
request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
             }
 
             // If neither request attributes were found, default to the value 
in the request object
diff --git 
a/plugins/tiles/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java
 
b/plugins/tiles/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java
index 1542b4102..decdd607b 100644
--- 
a/plugins/tiles/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java
+++ 
b/plugins/tiles/src/main/java/org/apache/tiles/web/util/TilesDispatchServlet.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tiles.web.util;
 
+import jakarta.servlet.RequestDispatcher;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.tiles.api.AttributeContext;
@@ -113,7 +114,7 @@ public class TilesDispatchServlet extends HttpServlet {
      * @return The definition name to render.
      */
     protected String getDefinitionName(HttpServletRequest request) {
-        String path = (String) 
request.getAttribute("jakarta.servlet.include.servlet_path");
+        String path = (String) 
request.getAttribute(RequestDispatcher.INCLUDE_SERVLET_PATH);
         if (path == null) {
             path = request.getServletPath();
         }

Reply via email to