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

lukaszlenart pushed a commit to branch WW-5707-deprecate-legacy-restful-mappers
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 58e052dd71b231145aedb976059fe3028153d7e5
Author: Lukasz Lenart <[email protected]>
AuthorDate: Sun Aug 30 08:46:21 2026 +0200

    WW-5707 chore(core): deprecate legacy restful and restful2 action mappers
    
    The core restful (RestfulActionMapper) and restful2 (Restful2ActionMapper)
    mappers predate the Struts REST plugin, which is the maintained way to build
    REST-style applications. Mark both classes @Deprecated(forRemoval = true) 
and
    point their javadoc to the REST plugin; removal is tracked as WW-5708.
    
    Fixes: https://issues.apache.org/jira/browse/WW-5707
    
    Co-Authored-By: Claude Opus 4.8 <[email protected]>
    Claude-Session: https://claude.ai/code/session_016XMyQ1CRuYZkqygmD4aGHv
---
 .../org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java    | 4 ++++
 .../org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java     | 4 ++++
 core/src/main/resources/struts-beans.xml                              | 2 ++
 3 files changed, 10 insertions(+)

diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
index 988c23943..d0332c301 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
@@ -33,7 +33,11 @@ import java.util.StringTokenizer;
 /**
  * Extended version of {@link RestfulActionMapper}, see documentation for more 
details
  * <a 
href="https://struts.apache.org/core-developers/restful-action-mapper.html";>Restful2ActionMapper</a>
+ *
+ * @deprecated since 7.4.0, this legacy mapper predates the Struts REST 
plugin, which is the maintained
+ * way to build REST-style applications with Struts. Scheduled for removal in 
the next major release.
  */
+@Deprecated(forRemoval = true)
 public class Restful2ActionMapper extends DefaultActionMapper {
 
     private static final Logger LOG = 
LogManager.getLogger(Restful2ActionMapper.class);
diff --git 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
index d93d45e98..2a7735083 100644
--- 
a/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
+++ 
b/core/src/main/java/org/apache/struts2/dispatcher/mapper/RestfulActionMapper.java
@@ -34,7 +34,11 @@ import java.util.StringTokenizer;
  * Simple Restfull Action Mapper to support REST application
  * See docs for more information
  * <a 
href="https://struts.apache.org/core-developers/restful-action-mapper.html";>RestfulActionMapper</a>
+ *
+ * @deprecated since 7.4.0, this legacy mapper predates the Struts REST 
plugin, which is the maintained
+ * way to build REST-style applications with Struts. Scheduled for removal in 
the next major release.
  */
+@Deprecated(forRemoval = true)
 public class RestfulActionMapper implements ActionMapper {
 
     protected static final Logger LOG = 
LogManager.getLogger(RestfulActionMapper.class);
diff --git a/core/src/main/resources/struts-beans.xml 
b/core/src/main/resources/struts-beans.xml
index 8ad4dff8b..e53710c22 100644
--- a/core/src/main/resources/struts-beans.xml
+++ b/core/src/main/resources/struts-beans.xml
@@ -79,6 +79,8 @@
           class="org.apache.struts2.dispatcher.mapper.CompositeActionMapper"/>
     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" 
name="prefix"
           
class="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/>
+    <!-- Deprecated for removal: the legacy "restful" and "restful2" mappers 
predate the Struts REST
+         plugin, which is the maintained way to build REST-style applications. 
-->
     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" 
name="restful"
           class="org.apache.struts2.dispatcher.mapper.RestfulActionMapper"/>
     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" 
name="restful2"

Reply via email to