(struts) branch fix/WW-5473-multipart-wraper created (now daf10e09a)

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch fix/WW-5473-multipart-wraper
in repository https://gitbox.apache.org/repos/asf/struts.git


  at daf10e09a WW-5473 Fixes examining multiple HttpServletWrappers to find 
MultiPartRequestWrapper

This branch includes the following new commits:

 new daf10e09a WW-5473 Fixes examining multiple HttpServletWrappers to find 
MultiPartRequestWrapper

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/01: WW-5473 Fixes examining multiple HttpServletWrappers to find MultiPartRequestWrapper

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch fix/WW-5473-multipart-wraper
in repository https://gitbox.apache.org/repos/asf/struts.git

commit daf10e09a4020c8ba7ef0a84bf0cd2ab3f55bd64
Author: Lukasz Lenart 
AuthorDate: Wed Oct 16 10:06:45 2024 +0200

WW-5473 Fixes examining multiple HttpServletWrappers to find 
MultiPartRequestWrapper
---
 .../interceptor/ActionFileUploadInterceptor.java   | 32 +--
 .../ActionFileUploadInterceptorTest.java   | 62 ++
 core/src/test/resources/log4j2.xml |  1 -
 3 files changed, 91 insertions(+), 4 deletions(-)

diff --git 
a/core/src/main/java/org/apache/struts2/interceptor/ActionFileUploadInterceptor.java
 
b/core/src/main/java/org/apache/struts2/interceptor/ActionFileUploadInterceptor.java
index a0197e6c3..c18ca0743 100644
--- 
a/core/src/main/java/org/apache/struts2/interceptor/ActionFileUploadInterceptor.java
+++ 
b/core/src/main/java/org/apache/struts2/interceptor/ActionFileUploadInterceptor.java
@@ -22,6 +22,7 @@ import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.ActionProxy;
 import com.opensymphony.xwork2.interceptor.ValidationAware;
 import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.struts2.action.UploadedFilesAware;
@@ -135,7 +136,11 @@ public class ActionFileUploadInterceptor extends 
AbstractFileUploadInterceptor {
 @Override
 public String intercept(ActionInvocation invocation) throws Exception {
 HttpServletRequest request = 
invocation.getInvocationContext().getServletRequest();
-if (!(request instanceof MultiPartRequestWrapper multiWrapper)) {
+MultiPartRequestWrapper multiWrapper = request instanceof 
HttpServletRequestWrapper
+? findMultipartRequestWrapper((HttpServletRequestWrapper) 
request)
+: null;
+
+if (multiWrapper == null) {
 if (LOG.isDebugEnabled()) {
 ActionProxy proxy = invocation.getProxy();
 LOG.debug(getTextMessage(STRUTS_MESSAGES_BYPASS_REQUEST_KEY, 
new String[]{proxy.getNamespace(), proxy.getActionName()}));
@@ -145,8 +150,8 @@ public class ActionFileUploadInterceptor extends 
AbstractFileUploadInterceptor {
 
 if (!(invocation.getAction() instanceof UploadedFilesAware action)) {
 LOG.debug("Action: {} doesn't implement: {}, ignoring file upload",
-invocation.getProxy().getActionName(),
-UploadedFilesAware.class.getSimpleName());
+invocation.getProxy().getActionName(),
+UploadedFilesAware.class.getSimpleName());
 return invocation.invoke();
 }
 
@@ -185,5 +190,26 @@ public class ActionFileUploadInterceptor extends 
AbstractFileUploadInterceptor {
 return invocation.invoke();
 }
 
+/**
+ * Tries to find {@link MultiPartRequestWrapper} as the request can be 
already wrapped
+ * with another {@link HttpServletRequestWrapper}.
+ * If the {@link MultiPartRequestWrapper} cannot be found, null is 
returned instead.
+ *
+ * @param request current {@link HttpServletRequestWrapper}
+ * @return {@link MultiPartRequestWrapper} or null
+ * @since 7.0.0
+ */
+protected MultiPartRequestWrapper 
findMultipartRequestWrapper(HttpServletRequestWrapper request) {
+if (request instanceof MultiPartRequestWrapper 
multiPartRequestWrapper) {
+LOG.debug("Found multipart request: {}", 
multiPartRequestWrapper.getClass().getSimpleName());
+return multiPartRequestWrapper;
+} else if (request.getRequest() instanceof HttpServletRequestWrapper 
wrappedRequest) {
+LOG.debug("Could not find multipart request wrapper, checking 
ancestor: {}",
+wrappedRequest.getClass().getSimpleName());
+return findMultipartRequestWrapper(wrappedRequest);
+}
+return null;
+}
+
 }
 
diff --git 
a/core/src/test/java/org/apache/struts2/interceptor/ActionFileUploadInterceptorTest.java
 
b/core/src/test/java/org/apache/struts2/interceptor/ActionFileUploadInterceptorTest.java
index ec1195490..178d6bfc0 100644
--- 
a/core/src/test/java/org/apache/struts2/interceptor/ActionFileUploadInterceptorTest.java
+++ 
b/core/src/test/java/org/apache/struts2/interceptor/ActionFileUploadInterceptorTest.java
@@ -25,6 +25,7 @@ import com.opensymphony.xwork2.ValidationAwareSupport;
 import com.opensymphony.xwork2.mock.MockActionInvocation;
 import com.opensymphony.xwork2.mock.MockActionProxy;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
+import jakarta.servlet.http.HttpServletRequestWrapper;
 import 
org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletDiskFileUpload;
 import 
org.apache.commons.fileupload2.jakarta.

(struts) branch fix/WW-5473-multipart-wraper deleted (was 15fb28f2d)

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch fix/WW-5473-multipart-wraper
in repository https://gitbox.apache.org/repos/asf/struts.git


 was 15fb28f2d WW-5473 Fixes examining multiple HttpServletWrappers to find 
MultiPartRequestWrapper

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts) branch feature/WW-5472-remove-sitemesh updated (cdf447813 -> ce71dab1d)

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5472-remove-sitemesh
in repository https://gitbox.apache.org/repos/asf/struts.git


omit cdf447813 WW-5472 Removes Struts Sitemesh plugin
 add 15fb28f2d WW-5473 Fixes examining multiple HttpServletWrappers to find 
MultiPartRequestWrapper
 add 5132f09bb Merge pull request #1078 from 
apache/fix/WW-5473-multipart-wraper
 add ce71dab1d WW-5472 Removes Struts Sitemesh plugin

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (cdf447813)
\
 N -- N -- N   refs/heads/feature/WW-5472-remove-sitemesh 
(ce71dab1d)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../interceptor/ActionFileUploadInterceptor.java   | 32 +--
 .../ActionFileUploadInterceptorTest.java   | 62 ++
 core/src/test/resources/log4j2.xml |  1 -
 3 files changed, 91 insertions(+), 4 deletions(-)



(struts) branch release/struts-7-0-x updated (c1b9ff4ed -> 5132f09bb)

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch release/struts-7-0-x
in repository https://gitbox.apache.org/repos/asf/struts.git


from c1b9ff4ed Merge pull request #1076 from 
apache/merge/master-to-7xx-2024-10-15
 add 15fb28f2d WW-5473 Fixes examining multiple HttpServletWrappers to find 
MultiPartRequestWrapper
 add 5132f09bb Merge pull request #1078 from 
apache/fix/WW-5473-multipart-wraper

No new revisions were added by this update.

Summary of changes:
 .../interceptor/ActionFileUploadInterceptor.java   | 32 +--
 .../ActionFileUploadInterceptorTest.java   | 62 ++
 core/src/test/resources/log4j2.xml |  1 -
 3 files changed, 91 insertions(+), 4 deletions(-)



(struts) branch fix/WW-5473-multipart-wraper updated (daf10e09a -> 15fb28f2d)

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch fix/WW-5473-multipart-wraper
in repository https://gitbox.apache.org/repos/asf/struts.git


omit daf10e09a WW-5473 Fixes examining multiple HttpServletWrappers to find 
MultiPartRequestWrapper
 add 15fb28f2d WW-5473 Fixes examining multiple HttpServletWrappers to find 
MultiPartRequestWrapper

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (daf10e09a)
\
 N -- N -- N   refs/heads/fix/WW-5473-multipart-wraper (15fb28f2d)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../org/apache/struts2/interceptor/ActionFileUploadInterceptor.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)



(struts) 01/01: WW-5472 Removes Struts Sitemesh plugin

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch feature/WW-5472-remove-sitemesh
in repository https://gitbox.apache.org/repos/asf/struts.git

commit cdf447813fb28f3db290e63449a1263cccb5dbfa
Author: Lukasz Lenart 
AuthorDate: Wed Oct 16 09:39:14 2024 +0200

WW-5472 Removes Struts Sitemesh plugin
---
 apps/showcase/pom.xml  |  28 +-
 .../src/main/webapp/WEB-INF/decorators/main.jsp|   9 +-
 .../src/main/webapp/WEB-INF/sitemesh-decorator.tld |  99 --
 .../src/main/webapp/WEB-INF/sitemesh-page.tld  | 115 ---
 apps/showcase/src/main/webapp/WEB-INF/sitemesh.xml |  75 -
 .../WEB-INF/{decorators.xml => sitemesh3.xml}  |  24 +-
 apps/showcase/src/main/webapp/WEB-INF/web.xml  |  11 +-
 assembly/pom.xml   |   5 +-
 assembly/src/main/assembly/all.xml |  11 -
 assembly/src/main/assembly/apps.xml|   7 -
 assembly/src/main/assembly/docs.xml|   4 -
 assembly/src/main/assembly/lib.xml |   7 -
 bom/pom.xml|   5 -
 jakarta/pom.xml|   1 -
 jakarta/sitemesh2-jakarta/README.md|   4 -
 jakarta/sitemesh2-jakarta/pom.xml  |  69 -
 plugins/pom.xml|   1 -
 plugins/sitemesh/README.md |   2 -
 plugins/sitemesh/pom.xml   |  62 
 .../sitemesh/FreemarkerDecoratorServlet.java   | 333 -
 .../FreemarkerMapper2DecoratorSelector.java|  56 
 .../struts2/sitemesh/FreemarkerPageFilter.java |  65 
 .../struts2/sitemesh/NoneDecoratorMapper.java  |  39 ---
 .../sitemesh/OldDecorator2NewStrutsDecorator.java  | 204 -
 .../OldDecorator2NewStrutsFreemarkerDecorator.java | 101 ---
 .../OldDecorator2NewStrutsVelocityDecorator.java   | 101 ---
 .../struts2/sitemesh/StrutsSiteMeshFactory.java|  55 
 .../struts2/sitemesh/VelocityDecoratorServlet.java | 196 
 .../sitemesh/VelocityMapper2DecoratorSelector.java |  58 
 .../struts2/sitemesh/VelocityPageFilter.java   |  55 
 plugins/sitemesh/src/main/resources/LICENSE.txt| 174 ---
 plugins/sitemesh/src/main/resources/NOTICE.txt |   8 -
 .../src/main/resources/SITEMESH-LICENSE.txt|  51 
 .../sitemesh/src/main/resources/struts-plugin.xml  |  30 --
 plugins/sitemesh/src/site/site.xml |  56 
 pom.xml|  14 +-
 36 files changed, 36 insertions(+), 2099 deletions(-)

diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index 799d9b258..802ca8421 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -48,11 +48,6 @@
 struts2-config-browser-plugin
 
 
-
-org.apache.struts
-struts2-sitemesh-plugin
-
-
 
 org.apache.struts
 struts2-tiles-plugin
@@ -126,9 +121,9 @@
 
 
 
-   org.apache.struts
-   struts2-sitemesh2-jakarta
-   ${project.version}
+   org.sitemesh
+   sitemesh
+   3.2.1
 
 

@@ -156,6 +151,17 @@
 ${hibernate-validator.version}
 
 
+
+
+org.codehaus.groovy
+groovy-jsr223
+3.0.22
+
 
 
 
@@ -174,11 +180,6 @@
   
 
${project.build.directory}/extraclasspath
 
-  
-org.apache.struts
-struts2-sitemesh2-jakarta
-
struts2-sitemesh2-jakarta.jar
-  
   
 org.apache.struts
 
struts2-velocity-tools-view-jakarta
@@ -244,7 +245,6 @@
 
${basedir}/src/main/webapp/
 
   
-
${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/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp 
b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
index 9003e52ed..9693e037a 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
@@ -49,8 +49,6 @@
 sourceUrl += "?page=" + request.getServletPath();
 }
 %>
-<%@taglib prefix="decorator" 
uri="http://www.opensymphony.com/sitemesh/decorator"; %>
-<%@taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page"; %>
 <%@taglib prefix="s" uri="/struts-

(struts) branch feature/WW-5472-remove-sitemesh created (now cdf447813)

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch feature/WW-5472-remove-sitemesh
in repository https://gitbox.apache.org/repos/asf/struts.git


  at cdf447813 WW-5472 Removes Struts Sitemesh plugin

This branch includes the following new commits:

 new cdf447813 WW-5472 Removes Struts Sitemesh plugin

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) branch kusal-depr-apis-5 updated (e978d8f3d -> bb459bfa4)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-5
in repository https://gitbox.apache.org/repos/asf/struts.git


omit e978d8f3d WW-3714 Deprecate and migrate assorted marker interfaces
omit 24dce170b WW-3714 Deprecate and migrate ValueStack
omit 421cce66c WW-3714 Deprecate and migrate ActionProxy
omit 7a05123cd WW-3714 Deprecate and migrate ActionEventListener
 add 64799b145 WW-3714 Update new ActionContext with new ActionInvocation
 add 69bd3098e WW-3714 Deprecate and migrate ActionEventListener
 add e7e01781a WW-3714 Deprecate and migrate ActionProxy
 add acf0a40dc WW-3714 Deprecate and migrate ValueStack
 add 32e3d9eaa WW-3714 Deprecate and migrate assorted marker interfaces
 add bb459bfa4 WW-3714 Update new ActionContext with new ValueStack

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (e978d8f3d)
\
 N -- N -- N   refs/heads/kusal-depr-apis-5 (bb459bfa4)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../main/java/com/opensymphony/xwork2/ActionContext.java | 16 
 core/src/main/java/org/apache/struts2/ActionContext.java |  4 +---
 2 files changed, 13 insertions(+), 7 deletions(-)



(struts) branch kusal-depr-apis-3 updated (64799b145 -> e3fbe8835)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-3
in repository https://gitbox.apache.org/repos/asf/struts.git


omit 64799b145 WW-3714 Update new ActionContext with new ActionInvocation
 add e3fbe8835 WW-3714 Update new ActionContext with new ActionInvocation

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (64799b145)
\
 N -- N -- N   refs/heads/kusal-depr-apis-3 (e3fbe8835)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)



(struts) branch kusal-depr-apis-5 updated (41792fc98 -> b12292c84)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-5
in repository https://gitbox.apache.org/repos/asf/struts.git


from 41792fc98 WW-3714 Update new ActionContext with new ValueStack
 add b12292c84 WW-3714 Shortcut adapters

No new revisions were added by this update.

Summary of changes:
 core/src/main/java/com/opensymphony/xwork2/ActionContext.java  | 3 +++
 core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java| 3 +++
 core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java   | 3 +++
 core/src/main/java/com/opensymphony/xwork2/ActionProxy.java| 3 +++
 core/src/main/java/com/opensymphony/xwork2/Result.java | 3 +++
 .../java/com/opensymphony/xwork2/interceptor/PreResultListener.java| 3 +++
 core/src/main/java/com/opensymphony/xwork2/util/ValueStack.java| 3 +++
 7 files changed, 21 insertions(+)



(struts) branch kusal-depr-apis-6 updated (b4153996b -> 882eb16d3)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-6
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard b4153996b WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor
 discard 43f750302 WW-3714 Shortcut adapters
 discard 76ac1dfbc WW-3714 Deprecate and migrate ActionSupport
 add b12292c84 WW-3714 Shortcut adapters
 add d148a22e8 WW-3714 Deprecate and migrate ActionSupport
 add 882eb16d3 WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (b4153996b)
\
 N -- N -- N   refs/heads/kusal-depr-apis-6 (882eb16d3)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:



(struts) branch kusal-depr-apis-3 updated (272c2e7bb -> 64799b145)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-3
in repository https://gitbox.apache.org/repos/asf/struts.git


from 272c2e7bb WW-3714 Deprecate and migrate PreResultListener
 add 64799b145 WW-3714 Update new ActionContext with new ActionInvocation

No new revisions were added by this update.

Summary of changes:
 core/src/main/java/com/opensymphony/xwork2/ActionContext.java | 8 ++--
 core/src/main/java/org/apache/struts2/ActionContext.java  | 2 --
 2 files changed, 6 insertions(+), 4 deletions(-)



(struts) branch kusal-depr-apis-4 updated (421cce66c -> e7e01781a)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-4
in repository https://gitbox.apache.org/repos/asf/struts.git


omit 421cce66c WW-3714 Deprecate and migrate ActionProxy
omit 7a05123cd WW-3714 Deprecate and migrate ActionEventListener
 add 64799b145 WW-3714 Update new ActionContext with new ActionInvocation
 add 69bd3098e WW-3714 Deprecate and migrate ActionEventListener
 add e7e01781a WW-3714 Deprecate and migrate ActionProxy

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (421cce66c)
\
 N -- N -- N   refs/heads/kusal-depr-apis-4 (e7e01781a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 core/src/main/java/com/opensymphony/xwork2/ActionContext.java | 8 ++--
 core/src/main/java/org/apache/struts2/ActionContext.java  | 2 --
 2 files changed, 6 insertions(+), 4 deletions(-)



(struts) branch kusal-depr-apis-7 created (now e4d2877b6)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-7
in repository https://gitbox.apache.org/repos/asf/struts.git


  at e4d2877b6 WW-3714 Deprecate and migrate assorted Interceptors

This branch includes the following new commits:

 new e4d2877b6 WW-3714 Deprecate and migrate assorted Interceptors

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/01: WW-3714 Deprecate and migrate assorted Interceptors

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis-7
in repository https://gitbox.apache.org/repos/asf/struts.git

commit e4d2877b609d11329f076c1bb582fd7d02a65040
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 17:53:30 2024 +1100

WW-3714 Deprecate and migrate assorted Interceptors
---
 .../xwork2/conversion/impl/XWorkConverter.java |  19 +-
 .../interceptor/PrefixMethodInvocationUtil.java|  51 ++--
 .../opensymphony/xwork2/util/TextParseUtil.java|   3 +
 .../xwork2/util/ValueStackFactory.java |   7 +-
 .../struts2/interceptor/AliasInterceptor.java  | 294 +++
 .../struts2/interceptor/ChainingInterceptor.java   | 275 +
 .../interceptor/ConversionErrorInterceptor.java| 150 ++
 .../interceptor/DefaultWorkflowInterceptor.java| 248 
 .../interceptor/ExceptionMappingInterceptor.java   | 324 +
 .../struts2/interceptor/LoggingInterceptor.java|  90 ++
 .../interceptor/ModelDrivenInterceptor.java| 148 ++
 .../interceptor/ParameterRemoverInterceptor.java   | 124 
 .../struts2/interceptor/PrepareInterceptor.java| 177 +++
 .../interceptor/ScopedModelDrivenInterceptor.java  | 166 +++
 .../interceptor/StaticParametersInterceptor.java   | 243 
 15 files changed, 2290 insertions(+), 29 deletions(-)

diff --git 
a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
 
b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
index 3cda3e34d..5d16d0e4d 100644
--- 
a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
+++ 
b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
@@ -18,12 +18,21 @@
  */
 package com.opensymphony.xwork2.conversion.impl;
 
-import com.opensymphony.xwork2.*;
-import com.opensymphony.xwork2.conversion.*;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.FileManager;
+import com.opensymphony.xwork2.FileManagerFactory;
+import com.opensymphony.xwork2.LocalizedTextProvider;
+import com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor;
+import com.opensymphony.xwork2.conversion.ConversionFileProcessor;
+import com.opensymphony.xwork2.conversion.TypeConverter;
+import com.opensymphony.xwork2.conversion.TypeConverterHolder;
 import com.opensymphony.xwork2.conversion.annotations.Conversion;
 import com.opensymphony.xwork2.conversion.annotations.TypeConversion;
 import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.*;
+import com.opensymphony.xwork2.util.AnnotationUtils;
+import com.opensymphony.xwork2.util.ClassLoaderUtil;
+import com.opensymphony.xwork2.util.CompoundRoot;
+import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.reflection.ReflectionContextState;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
@@ -220,6 +229,10 @@ public class XWorkConverter extends DefaultTypeConverter {
 return message;
 }
 
+public static String getConversionErrorMessage(String propertyName, Class 
toClass, org.apache.struts2.util.ValueStack stack) {
+return getConversionErrorMessage(propertyName, toClass, 
ValueStack.adapt(stack));
+}
+
 private static String removeAllIndexesInPropertyName(String propertyName) {
 return propertyName.replaceAll(MESSAGE_INDEX_PATTERN, PERIOD);
 }
diff --git 
a/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java
 
b/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java
index 040080824..0ac840c7a 100644
--- 
a/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java
+++ 
b/core/src/main/java/com/opensymphony/xwork2/interceptor/PrefixMethodInvocationUtil.java
@@ -19,8 +19,8 @@
 package com.opensymphony.xwork2.interceptor;
 
 import com.opensymphony.xwork2.ActionInvocation;
-import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -28,7 +28,7 @@ import java.lang.reflect.Method;
 /**
  * 
  * A utility class for invoking prefixed methods in action class.
- * 
+ *
  * Interceptors that made use of this class are:
  * 
  * 
@@ -37,7 +37,7 @@ import java.lang.reflect.Method;
  * 
  *  *
  * 
- * 
+ *
  * In DefaultWorkflowInterceptor
  * applies only when action implements {@link 
com.opensymphony.xwork2.Validateable}
  * 
@@ -45,12 +45,12 @@ import java.lang.reflect.Method;
  *else if the action class have validateDo{MethodName}(), it will be 
invoked
  *no matter if 1] or 2] is performed, if alwaysInvokeValidate property 
of the interceptor is "true" (which is by default "true"), validate() will be

(struts) branch kusal-depr-apis-6 updated (89c093088 -> da0934f69)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-6
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 89c093088 WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor
 discard 8db6533d5 WW-3714 Deprecate and migrate ActionSupport
 add 1042a62e3 WW-3714 Deprecate and migrate ActionSupport
 add d057ca34c WW-3714 Shortcut adapters
 add da0934f69 WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (89c093088)
\
 N -- N -- N   refs/heads/kusal-depr-apis-6 (da0934f69)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../com/opensymphony/xwork2/ActionContext.java |  3 +++
 .../opensymphony/xwork2/ActionEventListener.java   |  3 +++
 .../com/opensymphony/xwork2/ActionInvocation.java  |  3 +++
 .../java/com/opensymphony/xwork2/ActionProxy.java  |  3 +++
 .../main/java/com/opensymphony/xwork2/Result.java  |  3 +++
 .../xwork2/interceptor/AbstractInterceptor.java| 29 --
 .../xwork2/interceptor/PreResultListener.java  |  3 +++
 .../com/opensymphony/xwork2/util/ValueStack.java   |  3 +++
 .../ConfigurationProviderOgnlAllowlistTest.java|  3 +++
 9 files changed, 29 insertions(+), 24 deletions(-)



(struts) branch kusal-depr-apis-4 updated (e7e01781a -> f4dec5955)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-4
in repository https://gitbox.apache.org/repos/asf/struts.git


omit e7e01781a WW-3714 Deprecate and migrate ActionProxy
omit 69bd3098e WW-3714 Deprecate and migrate ActionEventListener
omit 64799b145 WW-3714 Update new ActionContext with new ActionInvocation
 add e3fbe8835 WW-3714 Update new ActionContext with new ActionInvocation
 add 93c77cfbd WW-3714 Deprecate and migrate ActionEventListener
 add f4dec5955 WW-3714 Deprecate and migrate ActionProxy

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (e7e01781a)
\
 N -- N -- N   refs/heads/kusal-depr-apis-4 (f4dec5955)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)



(struts) branch kusal-depr-apis-5 updated (bb459bfa4 -> 41792fc98)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-5
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard bb459bfa4 WW-3714 Update new ActionContext with new ValueStack
 discard 32e3d9eaa WW-3714 Deprecate and migrate assorted marker interfaces
 discard acf0a40dc WW-3714 Deprecate and migrate ValueStack
 discard e7e01781a WW-3714 Deprecate and migrate ActionProxy
 discard 69bd3098e WW-3714 Deprecate and migrate ActionEventListener
 discard 64799b145 WW-3714 Update new ActionContext with new ActionInvocation
 add e3fbe8835 WW-3714 Update new ActionContext with new ActionInvocation
 add 93c77cfbd WW-3714 Deprecate and migrate ActionEventListener
 add f4dec5955 WW-3714 Deprecate and migrate ActionProxy
 add da564e463 WW-3714 Deprecate and migrate ValueStack
 add 967b00872 WW-3714 Deprecate and migrate assorted marker interfaces
 add 41792fc98 WW-3714 Update new ActionContext with new ValueStack

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (bb459bfa4)
\
 N -- N -- N   refs/heads/kusal-depr-apis-5 (41792fc98)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 core/src/test/java/org/apache/struts2/views/jsp/ActionTagTest.java | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)



(struts) branch kusal-depr-apis-6 updated (da0934f69 -> b4153996b)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-6
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard da0934f69 WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor
 discard d057ca34c WW-3714 Shortcut adapters
 discard 1042a62e3 WW-3714 Deprecate and migrate ActionSupport
 discard e978d8f3d WW-3714 Deprecate and migrate assorted marker interfaces
 discard 24dce170b WW-3714 Deprecate and migrate ValueStack
 discard 421cce66c WW-3714 Deprecate and migrate ActionProxy
 discard 7a05123cd WW-3714 Deprecate and migrate ActionEventListener
 add e3fbe8835 WW-3714 Update new ActionContext with new ActionInvocation
 add 93c77cfbd WW-3714 Deprecate and migrate ActionEventListener
 add f4dec5955 WW-3714 Deprecate and migrate ActionProxy
 add da564e463 WW-3714 Deprecate and migrate ValueStack
 add 967b00872 WW-3714 Deprecate and migrate assorted marker interfaces
 add 41792fc98 WW-3714 Update new ActionContext with new ValueStack
 add 76ac1dfbc WW-3714 Deprecate and migrate ActionSupport
 add 43f750302 WW-3714 Shortcut adapters
 add b4153996b WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (da0934f69)
\
 N -- N -- N   refs/heads/kusal-depr-apis-6 (b4153996b)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../main/java/com/opensymphony/xwork2/ActionContext.java | 16 
 core/src/main/java/org/apache/struts2/ActionContext.java |  4 +---
 .../ConfigurationProviderOgnlAllowlistTest.java  |  3 +++
 .../java/org/apache/struts2/views/jsp/ActionTagTest.java |  6 --
 4 files changed, 20 insertions(+), 9 deletions(-)



(struts) branch kusal-depr-apis-3 updated (352c2e9e1 -> 272c2e7bb)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-3
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 352c2e9e1 WW-3714 Deprecate and migrate ActionInvocation
 add 60095a693 WW-3714 Deprecate and migrate ActionInvocation
 add 272c2e7bb WW-3714 Deprecate and migrate PreResultListener

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (352c2e9e1)
\
 N -- N -- N   refs/heads/kusal-depr-apis-3 (272c2e7bb)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../com/opensymphony/xwork2/ActionInvocation.java  |  7 
 .../main/java/com/opensymphony/xwork2/Result.java  |  1 +
 .../xwork2/interceptor/Interceptor.java|  1 +
 .../xwork2/interceptor/PreResultListener.java  | 40 +++---
 .../java/org/apache/struts2/ActionInvocation.java  |  2 +-
 .../struts2}/interceptor/PreResultListener.java|  4 +--
 6 files changed, 39 insertions(+), 16 deletions(-)
 copy core/src/main/java/{com/opensymphony/xwork2 => 
org/apache/struts2}/interceptor/PreResultListener.java (94%)



(struts) branch kusal-depr-apis-3 created (now 352c2e9e1)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-3
in repository https://gitbox.apache.org/repos/asf/struts.git


  at 352c2e9e1 WW-3714 Deprecate and migrate ActionInvocation

This branch includes the following new commits:

 new 352c2e9e1 WW-3714 Deprecate and migrate ActionInvocation

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/01: WW-3714 Deprecate and migrate ActionInvocation

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis-3
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 352c2e9e18a0844e6258220b673293feac8aabb3
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 14:49:22 2024 +1100

WW-3714 Deprecate and migrate ActionInvocation
---
 .../com/opensymphony/xwork2/ActionContext.java |   2 +-
 .../com/opensymphony/xwork2/ActionInvocation.java  | 231 -
 .../main/java/com/opensymphony/xwork2/Result.java  |  24 +++
 .../xwork2/interceptor/ConditionalInterceptor.java |   8 +
 .../xwork2/interceptor/Interceptor.java|   8 +
 .../apache/struts2}/ActionInvocation.java  |  11 +-
 core/src/main/java/org/apache/struts2/Result.java  |   3 -
 .../interceptor/ConditionalInterceptor.java|   2 +-
 .../apache/struts2/interceptor/Interceptor.java|   2 +-
 9 files changed, 134 insertions(+), 157 deletions(-)

diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionContext.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
index c2a4a39c2..d62da3219 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
@@ -43,7 +43,7 @@ public class ActionContext extends 
org.apache.struts2.ActionContext {
 super(actualContext.getContextMap());
 }
 
-private static ActionContext adapt(org.apache.struts2.ActionContext 
actualContext) {
+static ActionContext adapt(org.apache.struts2.ActionContext actualContext) 
{
 return actualContext != null ? new ActionContext(actualContext) : null;
 }
 
diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
index 472f23ea7..6f70f993f 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
@@ -22,158 +22,95 @@ import 
com.opensymphony.xwork2.interceptor.PreResultListener;
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
- * An {@link ActionInvocation} represents the execution state of an {@link 
Action}. It holds the Interceptors and the Action instance.
- * By repeated re-entrant execution of the invoke() method, 
initially by the {@link ActionProxy}, then by the Interceptors, the
- * Interceptors are all executed, and then the {@link Action} and the {@link 
Result}.
+ * {@inheritDoc}
  *
- * @author Jason Carreira
- * @see com.opensymphony.xwork2.ActionProxy
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.ActionInvocation} 
instead.
  */
-public interface ActionInvocation {
-
-/**
- * Get the Action associated with this ActionInvocation.
- *
- * @return the Action
- */
-Object getAction();
-
-/**
- * Gets whether this ActionInvocation has executed before.
- * This will be set after the Action and the Result have executed.
- *
- * @return true if this ActionInvocation has executed before.
- */
-boolean isExecuted();
-
-/**
- * Gets the ActionContext associated with this ActionInvocation. The 
ActionProxy is
- * responsible for setting this ActionContext onto the ThreadLocal before 
invoking
- * the ActionInvocation and resetting the old ActionContext afterwards.
- *
- * @return the ActionContext.
- */
+@Deprecated
+public interface ActionInvocation extends org.apache.struts2.ActionInvocation {
+
+@Override
 ActionContext getInvocationContext();
 
-/**
- * Get the ActionProxy holding this ActionInvocation.
- *
- * @return the ActionProxy.
- */
-ActionProxy getProxy();
-
-/**
- * If the ActionInvocation has been executed before and the Result is an 
instance of {@link ActionChainResult}, this method
- * will walk down the chain of ActionChainResults until it 
finds a non-chain result, which will be returned. If the
- * ActionInvocation's result has not been executed before, the Result 
instance will be created and populated with
- * the result params.
- *
- * @return the result.
- * @throws Exception can be thrown.
- */
+@Override
 Result getResult() throws Exception;
 
-/**
- * Gets the result code returned from this ActionInvocation.
- *
- * @return the result code
- */
-String getResultCode();
-
-/**
- * Sets the result code, possibly overriding the one returned by the
- * action.
- *
- * 
- * The "intended" purpose of this method is to allow PreResultListeners to
- * override the result code returned by the Action.
- * 
- *
- * 
- * If this method is used before the Action executes, the Action's returned
- * result code will override what was set. However the Action could (if
- * specifically coded to do so) inspect the ActionInvocation to see that
- * someone

(struts) branch kusal-depr-apis-4 created (now 7a05123cd)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-4
in repository https://gitbox.apache.org/repos/asf/struts.git


  at 7a05123cd WW-3714 Deprecate and migrate ActionEventListener

This branch includes the following new commits:

 new 7a05123cd WW-3714 Deprecate and migrate ActionEventListener

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/01: WW-3714 Deprecate and migrate ActionEventListener

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis-4
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 7a05123cd9ec4902dbb9dcd626805f85e4a2b174
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 15:17:14 2024 +1100

WW-3714 Deprecate and migrate ActionEventListener
---
 .../opensymphony/xwork2/ActionEventListener.java   | 47 +-
 .../com/opensymphony/xwork2/ActionInvocation.java  |  7 
 .../apache/struts2}/ActionEventListener.java   | 18 -
 .../java/org/apache/struts2/ActionInvocation.java  |  1 -
 4 files changed, 44 insertions(+), 29 deletions(-)

diff --git 
a/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java
index 00690a7f4..4d2143848 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java
@@ -21,24 +21,33 @@ package com.opensymphony.xwork2;
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
- * Provides hooks for handling key action events
+ * {@inheritDoc}
+ *
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.ActionEventListener} 
instead.
  */
-public interface ActionEventListener {
-/**
- * Called after an action has been created. 
- * 
- * @param action The action
- * @param stack The current value stack
- * @return The action to use
- */
-public Object prepare(Object action, ValueStack stack);
-
-/**
- * Called when an exception is thrown by the action
- * 
- * @param t The exception/error that was thrown
- * @param stack The current value stack
- * @return A result code to execute, can be null
- */
-public String handleException(Throwable t, ValueStack stack);
+@Deprecated
+public interface ActionEventListener extends 
org.apache.struts2.ActionEventListener {
+
+static ActionEventListener adapt(org.apache.struts2.ActionEventListener 
actualListener) {
+return actualListener != null ? new LegacyAdapter(actualListener) : 
null;
+}
+
+class LegacyAdapter implements ActionEventListener {
+
+private final org.apache.struts2.ActionEventListener adaptee;
+
+private LegacyAdapter(org.apache.struts2.ActionEventListener adaptee) {
+this.adaptee = adaptee;
+}
+
+@Override
+public Object prepare(Object action, ValueStack stack) {
+return adaptee.prepare(action, stack);
+}
+
+@Override
+public String handleException(Throwable t, ValueStack stack) {
+return adaptee.handleException(t, stack);
+}
+}
 }
diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
index 1d6e34859..56ea6ad6e 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
@@ -42,6 +42,13 @@ public interface ActionInvocation extends 
org.apache.struts2.ActionInvocation {
 
 void addPreResultListener(PreResultListener listener);
 
+@Override
+default void setActionEventListener(org.apache.struts2.ActionEventListener 
listener) {
+setActionEventListener(ActionEventListener.adapt(listener));
+}
+
+void setActionEventListener(ActionEventListener listener);
+
 static ActionInvocation adapt(org.apache.struts2.ActionInvocation 
actualInvocation) {
 return actualInvocation != null ? new LegacyAdapter(actualInvocation) 
: null;
 }
diff --git 
a/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java 
b/core/src/main/java/org/apache/struts2/ActionEventListener.java
similarity index 78%
copy from core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java
copy to core/src/main/java/org/apache/struts2/ActionEventListener.java
index 00690a7f4..8c01a9a23 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java
+++ b/core/src/main/java/org/apache/struts2/ActionEventListener.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package com.opensymphony.xwork2;
+package org.apache.struts2;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -25,20 +25,20 @@ import com.opensymphony.xwork2.util.ValueStack;
  */
 public interface ActionEventListener {
 /**
- * Called after an action has been created. 
- * 
+ * Called after an action has been created.
+ *
  * @param action The action
- * @param stack The current value stack
+ * @param stack  The current value stack
  * @return The action to use
  */
-public Object prepare(Object action, ValueStack stack);
-
+Object prepare(Object action, ValueStack stack);
+
 /**
  * Called when an exception is thrown by the actio

(struts) branch kusal-depr-apis-4 updated (7a05123cd -> 421cce66c)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-4
in repository https://gitbox.apache.org/repos/asf/struts.git


from 7a05123cd WW-3714 Deprecate and migrate ActionEventListener
 add 421cce66c WW-3714 Deprecate and migrate ActionProxy

No new revisions were added by this update.

Summary of changes:
 .../com/opensymphony/xwork2/ActionInvocation.java  |  12 +-
 .../java/com/opensymphony/xwork2/ActionProxy.java  | 148 +
 .../java/org/apache/struts2/ActionInvocation.java  |   3 +-
 .../xwork2 => org/apache/struts2}/ActionProxy.java |  11 +-
 4 files changed, 81 insertions(+), 93 deletions(-)
 copy core/src/main/java/{com/opensymphony/xwork2 => 
org/apache/struts2}/ActionProxy.java (94%)



(struts) branch example/ignore-jakarta-modules deleted (was 780b3cae1)

2024-10-16 Thread lukaszlenart
This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a change to branch example/ignore-jakarta-modules
in repository https://gitbox.apache.org/repos/asf/struts.git


 was 780b3cae1 Ignores JakartaEE modules to allow run test in IDE

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts) branch kusal-depr-apis-5 created (now 24dce170b)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-5
in repository https://gitbox.apache.org/repos/asf/struts.git


  at 24dce170b WW-3714 Deprecate and migrate ValueStack

This branch includes the following new commits:

 new 24dce170b WW-3714 Deprecate and migrate ValueStack

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/01: WW-3714 Deprecate and migrate ValueStack

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis-5
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 24dce170b5bad4a5cf298ab1177aab7e3609e24e
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 15:46:25 2024 +1100

WW-3714 Deprecate and migrate ValueStack
---
 .../com/opensymphony/xwork2/ActionContext.java |   2 +-
 .../opensymphony/xwork2/ActionEventListener.java   |  14 ++
 .../com/opensymphony/xwork2/ActionInvocation.java  |   5 +-
 .../com/opensymphony/xwork2/util/ValueStack.java   | 254 ++---
 .../org/apache/struts2/ActionEventListener.java|   2 +-
 .../java/org/apache/struts2/ActionInvocation.java  |   2 +-
 .../apache/struts2}/util/ValueStack.java   |   7 +-
 7 files changed, 142 insertions(+), 144 deletions(-)

diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionContext.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
index d62da3219..4d042ad3d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
@@ -43,7 +43,7 @@ public class ActionContext extends 
org.apache.struts2.ActionContext {
 super(actualContext.getContextMap());
 }
 
-static ActionContext adapt(org.apache.struts2.ActionContext actualContext) 
{
+public static ActionContext adapt(org.apache.struts2.ActionContext 
actualContext) {
 return actualContext != null ? new ActionContext(actualContext) : null;
 }
 
diff --git 
a/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java
index 4d2143848..5bd4f86d5 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionEventListener.java
@@ -28,6 +28,20 @@ import com.opensymphony.xwork2.util.ValueStack;
 @Deprecated
 public interface ActionEventListener extends 
org.apache.struts2.ActionEventListener {
 
+@Override
+default Object prepare(Object action, org.apache.struts2.util.ValueStack 
stack) {
+return prepare(action, ValueStack.adapt(stack));
+}
+
+@Override
+default String handleException(Throwable t, 
org.apache.struts2.util.ValueStack stack) {
+return handleException(t, ValueStack.adapt(stack));
+}
+
+Object prepare(Object action, ValueStack stack);
+
+String handleException(Throwable t, ValueStack stack);
+
 static ActionEventListener adapt(org.apache.struts2.ActionEventListener 
actualListener) {
 return actualListener != null ? new LegacyAdapter(actualListener) : 
null;
 }
diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
index 82020bbe1..76929a647 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionInvocation.java
@@ -38,6 +38,9 @@ public interface ActionInvocation extends 
org.apache.struts2.ActionInvocation {
 @Override
 ActionProxy getProxy();
 
+@Override
+ValueStack getStack();
+
 @Override
 default void 
addPreResultListener(org.apache.struts2.interceptor.PreResultListener listener) 
{
 addPreResultListener(PreResultListener.adapt(listener));
@@ -108,7 +111,7 @@ public interface ActionInvocation extends 
org.apache.struts2.ActionInvocation {
 
 @Override
 public ValueStack getStack() {
-return adaptee.getStack();
+return ValueStack.adapt(adaptee.getStack());
 }
 
 @Override
diff --git a/core/src/main/java/com/opensymphony/xwork2/util/ValueStack.java 
b/core/src/main/java/com/opensymphony/xwork2/util/ValueStack.java
index 4d02b235f..9e3e98b57 100644
--- a/core/src/main/java/com/opensymphony/xwork2/util/ValueStack.java
+++ b/core/src/main/java/com/opensymphony/xwork2/util/ValueStack.java
@@ -23,144 +23,124 @@ import com.opensymphony.xwork2.ActionContext;
 import java.util.Map;
 
 /**
- * ValueStack allows multiple beans to be pushed in and dynamic EL expressions 
to be evaluated against it. When
- * evaluating an expression, the stack will be searched down the stack, from 
the latest objects pushed in to the
- * earliest, looking for a bean with a getter or setter for the given property 
or a method of the given name (depending
- * on the expression being evaluated).
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.util.ValueStack} 
instead.
  */
-public interface ValueStack {
-
-String VALUE_STACK = "com.opensymphony.xwork2.util.ValueStack.ValueStack";
-
-String REPORT_ERRORS_ON_NO_PROP = 
"com.opensymphony.xwork2.util.ValueStack.ReportErrorsOnNoProp";
-
-/**
- * Gets the context for this value stack. The context holds all the 
information in the value stack and it's surroundings.
- *
- * @return  th

(struts) branch kusal-depr-apis updated (fc009fd54 -> fd3463c73)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard fc009fd54 WW-3714 Deprecate and migrate ActionContext
 add fd3463c73 WW-3714 Deprecate and migrate ActionContext

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (fc009fd54)
\
 N -- N -- N   refs/heads/kusal-depr-apis (fd3463c73)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../main/java/com/opensymphony/xwork2/ActionContext.java  | 15 ++-
 1 file changed, 10 insertions(+), 5 deletions(-)



(struts) branch kusal-depr-apis updated (fd3463c73 -> 74af7e7ab)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard fd3463c73 WW-3714 Deprecate and migrate ActionContext
 add 74af7e7ab WW-3714 Deprecate and migrate ActionContext

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (fd3463c73)
\
 N -- N -- N   refs/heads/kusal-depr-apis (74af7e7ab)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 core/src/main/java/org/apache/struts2/ActionContext.java | 10 ++
 1 file changed, 10 insertions(+)



(struts) branch kusal-depr-apis updated (74af7e7ab -> 8da6a7992)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 74af7e7ab WW-3714 Deprecate and migrate ActionContext
 discard bcb66a0e4 WW-3714 Deprecate and migrate Action, Interceptor, Result
 add 7deb48129 WW-3714 Deprecate and migrate Action, Interceptor, Result
 add 8da6a7992 WW-3714 Deprecate and migrate ActionContext

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (74af7e7ab)
\
 N -- N -- N   refs/heads/kusal-depr-apis (8da6a7992)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../providers/ConfigurationProviderOgnlAllowlistTest.java | 15 ---
 1 file changed, 12 insertions(+), 3 deletions(-)



(struts) 01/01: WW-3714 Deprecate and migrate ActionFactory

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis-2
in repository https://gitbox.apache.org/repos/asf/struts.git

commit e7da68ac47b8b96ca5de4af1f8b79db3c03f896f
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 14:03:44 2024 +1100

WW-3714 Deprecate and migrate ActionFactory
---
 .../com/opensymphony/xwork2/ObjectFactory.java | 15 -
 .../opensymphony/xwork2/factory/ActionFactory.java | 26 +-
 .../config/AbstractBeanSelectionProvider.java  | 10 -
 .../config/StrutsBeanSelectionProvider.java|  3 ++-
 .../apache/struts2}/factory/ActionFactory.java |  2 +-
 core/src/main/resources/struts-beans.xml   |  2 ++
 6 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java 
b/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
index 3a5c8f266..9ea62bb9d 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ObjectFactory.java
@@ -23,7 +23,11 @@ import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.entities.InterceptorConfig;
 import com.opensymphony.xwork2.config.entities.ResultConfig;
 import com.opensymphony.xwork2.conversion.TypeConverter;
-import com.opensymphony.xwork2.factory.*;
+import com.opensymphony.xwork2.factory.ConverterFactory;
+import com.opensymphony.xwork2.factory.InterceptorFactory;
+import com.opensymphony.xwork2.factory.ResultFactory;
+import com.opensymphony.xwork2.factory.UnknownHandlerFactory;
+import com.opensymphony.xwork2.factory.ValidatorFactory;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.Interceptor;
@@ -32,16 +36,17 @@ import com.opensymphony.xwork2.validator.Validator;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.factory.ActionFactory;
 
 import java.io.Serializable;
 import java.util.Map;
 
 /**
- * ObjectFactory is responsible for building the core framework objects. Users 
may register their 
+ * ObjectFactory is responsible for building the core framework objects. Users 
may register their
  * own implementation of the ObjectFactory to control instantiation of these 
Objects.
  *
  * 
- * This default implementation uses the {@link #buildBean(Class,java.util.Map) 
buildBean} 
+ * This default implementation uses the {@link #buildBean(Class,java.util.Map) 
buildBean}
  * method to create all classes (interceptors, actions, results, etc).
  * 
  *
@@ -178,7 +183,7 @@ public class ObjectFactory implements Serializable {
 public Object buildBean(String className, Map 
extraContext) throws Exception {
 return buildBean(className, extraContext, true);
 }
-
+
 /**
  * Build a generic Java object of the given type.
  *
@@ -260,5 +265,5 @@ public class ObjectFactory implements Serializable {
 public UnknownHandler buildUnknownHandler(String unknownHandlerName, 
Map extraContext) throws Exception {
 return unknownHandlerFactory.buildUnknownHandler(unknownHandlerName, 
extraContext);
 }
-
+
 }
diff --git 
a/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java 
b/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java
index 15a0f780f..c920faa97 100644
--- a/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java
+++ b/core/src/main/java/com/opensymphony/xwork2/factory/ActionFactory.java
@@ -18,28 +18,12 @@
  */
 package com.opensymphony.xwork2.factory;
 
-import com.opensymphony.xwork2.config.entities.ActionConfig;
-
-import java.util.Map;
-
 /**
- * Used by {@link com.opensymphony.xwork2.ObjectFactory} to build actions
+ * {@inheritDoc}
+ *
+ * @deprecated since 6.7.0, use {@link 
org.apache.struts2.factory.ActionFactory} instead.
  */
-public interface ActionFactory {
-
-/**
- * Builds action instance
- *
- * @param actionName name of the action
- * @param namespace namespace for the action
- * @param config action config
- * @param extraContext extra context map
- *
- * @return action object
- *
- * @throws Exception in case of any errors
- */
-Object buildAction(String actionName, String namespace, ActionConfig 
config, Map extraContext) throws Exception;
-
+@Deprecated
+public interface ActionFactory extends 
org.apache.struts2.factory.ActionFactory {
 }
 
diff --git 
a/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
 
b/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
index f672ae041..037558c4e 100644
--- 
a/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
+++ 
b/core/src/main/java/org/apache/struts2/config/AbstractB

(struts) branch kusal-depr-apis-2 created (now e7da68ac4)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-2
in repository https://gitbox.apache.org/repos/asf/struts.git


  at e7da68ac4 WW-3714 Deprecate and migrate ActionFactory

This branch includes the following new commits:

 new e7da68ac4 WW-3714 Deprecate and migrate ActionFactory

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) branch kusal-depr-apis-2 updated (e7da68ac4 -> 398e071f5)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-2
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard e7da68ac4 WW-3714 Deprecate and migrate ActionFactory
 add 398e071f5 WW-3714 Deprecate and migrate ActionFactory

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (e7da68ac4)
\
 N -- N -- N   refs/heads/kusal-depr-apis-2 (398e071f5)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)



(struts) branch kusal-depr-apis-2 deleted (was 398e071f5)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-2
in repository https://gitbox.apache.org/repos/asf/struts.git


 was 398e071f5 WW-3714 Deprecate and migrate ActionFactory

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



(struts) branch kusal-depr-apis updated (8da6a7992 -> 66aaea697)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis
in repository https://gitbox.apache.org/repos/asf/struts.git


from 8da6a7992 WW-3714 Deprecate and migrate ActionContext
 add 66aaea697 WW-3714 Deprecate and migrate ConditionalInterceptor

No new revisions were added by this update.

Summary of changes:
 .../xwork2/interceptor/ConditionalInterceptor.java| 19 ---
 .../struts2}/interceptor/ConditionalInterceptor.java  |  2 +-
 2 files changed, 5 insertions(+), 16 deletions(-)
 copy core/src/main/java/{com/opensymphony/xwork2 => 
org/apache/struts2}/interceptor/ConditionalInterceptor.java (97%)



(struts) branch kusal-depr-apis updated (66aaea697 -> ae9dc42da)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 66aaea697 WW-3714 Deprecate and migrate ConditionalInterceptor
 add ae9dc42da WW-3714 Deprecate and migrate ConditionalInterceptor

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (66aaea697)
\
 N -- N -- N   refs/heads/kusal-depr-apis (ae9dc42da)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../config/providers/ConfigurationProviderOgnlAllowlistTest.java   | 3 +++
 1 file changed, 3 insertions(+)



(struts) branch kusal-depr-apis-5 updated: WW-3714 Deprecate and migrate assorted marker interfaces

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis-5
in repository https://gitbox.apache.org/repos/asf/struts.git


The following commit(s) were added to refs/heads/kusal-depr-apis-5 by this push:
 new 07ca408f4 WW-3714 Deprecate and migrate assorted marker interfaces
07ca408f4 is described below

commit 07ca408f448f4911eb86ff318ab3fc122eee8df4
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 16:12:01 2024 +1100

WW-3714 Deprecate and migrate assorted marker interfaces
---
 .../java/com/opensymphony/xwork2/ModelDriven.java  |  16 +--
 .../java/com/opensymphony/xwork2/Preparable.java   |  17 +---
 .../java/com/opensymphony/xwork2/Unchainable.java  |   7 +-
 .../java/com/opensymphony/xwork2/Validateable.java |  15 +--
 .../xwork2/interceptor/ScopedModelDriven.java  |  21 +---
 .../xwork2/interceptor/ValidationAware.java| 111 +
 .../xwork2/interceptor/ValidationErrorAware.java   |  20 +---
 .../interceptor/ValidationWorkflowAware.java   |  10 +-
 .../xwork2 => org/apache/struts2}/ModelDriven.java |   2 +-
 .../xwork2 => org/apache/struts2}/Preparable.java  |   4 +-
 .../xwork2 => org/apache/struts2}/Unchainable.java |   2 +-
 .../apache/struts2}/Validateable.java  |   4 +-
 .../struts2}/interceptor/ScopedModelDriven.java|   8 +-
 .../struts2}/interceptor/ValidationAware.java  |   2 +-
 .../struts2}/interceptor/ValidationErrorAware.java |   2 +-
 .../interceptor/ValidationWorkflowAware.java   |   2 +-
 16 files changed, 37 insertions(+), 206 deletions(-)

diff --git a/core/src/main/java/com/opensymphony/xwork2/ModelDriven.java 
b/core/src/main/java/com/opensymphony/xwork2/ModelDriven.java
index c07c6bbe7..f3ae25cab 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ModelDriven.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ModelDriven.java
@@ -19,18 +19,8 @@
 package com.opensymphony.xwork2;
 
 /**
- * ModelDriven Actions provide a model object to be pushed onto the ValueStack
- * in addition to the Action itself, allowing a FormBean type approach like 
Struts.
- *
- * @author Jason Carreira
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.ModelDriven} instead.
  */
-public interface ModelDriven {
-
-/**
- * Gets the model to be pushed onto the ValueStack instead of the Action 
itself.
- *
- * @return the model
- */
-T getModel();
-
+@Deprecated
+public interface ModelDriven extends org.apache.struts2.ModelDriven {
 }
diff --git a/core/src/main/java/com/opensymphony/xwork2/Preparable.java 
b/core/src/main/java/com/opensymphony/xwork2/Preparable.java
index 23fdf68ae..2c03088e8 100644
--- a/core/src/main/java/com/opensymphony/xwork2/Preparable.java
+++ b/core/src/main/java/com/opensymphony/xwork2/Preparable.java
@@ -19,19 +19,8 @@
 package com.opensymphony.xwork2;
 
 /**
- * Preparable Actions will have their prepare() method called if 
the {@link com.opensymphony.xwork2.interceptor.PrepareInterceptor}
- * is applied to the ActionConfig.
- *
- * @author Jason Carreira
- * @see com.opensymphony.xwork2.interceptor.PrepareInterceptor
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.Preparable} instead.
  */
-public interface Preparable {
-
-/**
- * This method is called to allow the action to prepare itself.
- *
- * @throws Exception thrown if a system level exception occurs.
- */
-void prepare() throws Exception;
-
+@Deprecated
+public interface Preparable extends org.apache.struts2.Preparable {
 }
diff --git a/core/src/main/java/com/opensymphony/xwork2/Unchainable.java 
b/core/src/main/java/com/opensymphony/xwork2/Unchainable.java
index 9f96b92dc..506f4f283 100644
--- a/core/src/main/java/com/opensymphony/xwork2/Unchainable.java
+++ b/core/src/main/java/com/opensymphony/xwork2/Unchainable.java
@@ -19,9 +19,8 @@
 package com.opensymphony.xwork2;
 
 /**
- * Simple marker interface to indicate an object should not have its 
properties copied during chaining.
- *
- * @see com.opensymphony.xwork2.interceptor.ChainingInterceptor
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.Unchainable} instead.
  */
-public interface Unchainable {
+@Deprecated
+public interface Unchainable extends org.apache.struts2.Unchainable {
 }
diff --git a/core/src/main/java/com/opensymphony/xwork2/Validateable.java 
b/core/src/main/java/com/opensymphony/xwork2/Validateable.java
index ed7226380..c92170e73 100644
--- a/core/src/main/java/com/opensymphony/xwork2/Validateable.java
+++ b/core/src/main/java/com/opensymphony/xwork2/Validateable.java
@@ -19,17 +19,8 @@
 package com.opensymphony.xwork2;
 
 /**
- * Provides an interface in which a call for a validation check can be done.
- *
- * @author Jason Carreira
- * @see ActionSupport
- * @see com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.Validateable} 
instead.
  */
-public interface Validatea

(struts) branch kusal-depr-apis-5 updated (07ca408f4 -> e978d8f3d)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-5
in repository https://gitbox.apache.org/repos/asf/struts.git


 discard 07ca408f4 WW-3714 Deprecate and migrate assorted marker interfaces
 add e978d8f3d WW-3714 Deprecate and migrate assorted marker interfaces

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (07ca408f4)
\
 N -- N -- N   refs/heads/kusal-depr-apis-5 (e978d8f3d)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .../providers/ConfigurationProviderOgnlAllowlistTest.java| 12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)



(struts) 02/02: WW-3714 Deprecate and migrate AbstractInterceptor and MethodFilterInterceptor

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis-6
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 89c093088df03ee66d14d831ede8c3ab15ea44fb
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 16:26:01 2024 +1100

WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor
---
 .../xwork2/interceptor/AbstractInterceptor.java|   3 +-
 .../interceptor/MethodFilterInterceptor.java   |  45 
 .../interceptor/MethodFilterInterceptorUtil.java   | 128 +
 .../struts2}/interceptor/AbstractInterceptor.java  |   4 +-
 .../interceptor/MethodFilterInterceptor.java   |  50 
 .../interceptor/MethodFilterInterceptorUtil.java   |  38 +++---
 6 files changed, 75 insertions(+), 193 deletions(-)

diff --git 
a/core/src/main/java/com/opensymphony/xwork2/interceptor/AbstractInterceptor.java
 
b/core/src/main/java/com/opensymphony/xwork2/interceptor/AbstractInterceptor.java
index 21e459c29..27b91e20d 100644
--- 
a/core/src/main/java/com/opensymphony/xwork2/interceptor/AbstractInterceptor.java
+++ 
b/core/src/main/java/com/opensymphony/xwork2/interceptor/AbstractInterceptor.java
@@ -21,8 +21,9 @@ package com.opensymphony.xwork2.interceptor;
 import com.opensymphony.xwork2.ActionInvocation;
 
 /**
- * Provides default implementations of optional lifecycle methods
+ * @deprecated since 6.7.0, use {@link 
org.apache.struts2.interceptor.AbstractInterceptor} instead.
  */
+@Deprecated
 public abstract class AbstractInterceptor implements ConditionalInterceptor {
 
 private boolean disabled;
diff --git 
a/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java
 
b/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java
index e96951cfa..bcce3da12 100644
--- 
a/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java
+++ 
b/core/src/main/java/com/opensymphony/xwork2/interceptor/MethodFilterInterceptor.java
@@ -31,56 +31,59 @@ import java.util.Set;
  *
  * 
  * MethodFilterInterceptor is an abstract Interceptor used as
- * a base class for interceptors that will filter execution based on method 
+ * a base class for interceptors that will filter execution based on method
  * names according to specified included/excluded method lists.
- * 
+ *
  * 
- * 
+ *
  * Settable parameters are as follows:
- * 
+ *
  * 
  * excludeMethods - method names to be excluded from 
interceptor processing
  * includeMethods - method names to be included in interceptor 
processing
  * 
- * 
+ *
  * 
- * 
- * NOTE: If method name are available in both includeMethods and 
- * excludeMethods, it will be considered as an included method: 
+ *
+ * NOTE: If method name are available in both includeMethods and
+ * excludeMethods, it will be considered as an included method:
  * includeMethods takes precedence over excludeMethods.
- * 
+ *
  * 
- * 
+ *
  * Interceptors that extends this capability include:
- * 
+ *
  * 
  *TokenInterceptor
  *TokenSessionStoreInterceptor
  *DefaultWorkflowInterceptor
  *ValidationInterceptor
  * 
- * 
+ *
  * 
- * 
+ *
  * @author Alexandru 
Popescu
  * @author Rainer Hermanns
- * 
+ *
  * @see org.apache.struts2.interceptor.TokenInterceptor
  * @see org.apache.struts2.interceptor.TokenSessionStoreInterceptor
  * @see com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor
  * @see com.opensymphony.xwork2.validator.ValidationInterceptor
+ *
+ * @deprecated since 6.7.0, use {@link 
org.apache.struts2.interceptor.MethodFilterInterceptor} instead.
  */
+@Deprecated
 public abstract class MethodFilterInterceptor extends AbstractInterceptor {
 
 private static final Logger LOG = 
LogManager.getLogger(MethodFilterInterceptor.class);
-
+
 protected Set excludeMethods = Collections.emptySet();
 protected Set includeMethods = Collections.emptySet();
 
 public void setExcludeMethods(String excludeMethods) {
 this.excludeMethods = 
TextParseUtil.commaDelimitedStringToSet(excludeMethods);
 }
-
+
 public Set getExcludeMethodsSet() {
return excludeMethods;
 }
@@ -88,7 +91,7 @@ public abstract class MethodFilterInterceptor extends 
AbstractInterceptor {
 public void setIncludeMethods(String includeMethods) {
 this.includeMethods = 
TextParseUtil.commaDelimitedStringToSet(includeMethods);
 }
-
+
 public Set getIncludeMethodsSet() {
return includeMethods;
 }
@@ -97,7 +100,7 @@ public abstract class MethodFilterInterceptor extends 
AbstractInterceptor {
 public String intercept(ActionInvocation invocation) throws Exception {
 if (applyInterceptor(invocation)) {
 return doIntercept(invocation);
-} 
+}
 return invocation.invoke();
 }
 
@@ -110,14 +113,14 @@ public abstract class MethodFilterInterceptor extends 
AbstractIntercep

(struts) 01/02: WW-3714 Deprecate and migrate ActionSupport

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis-6
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 8db6533d5d87adaea1d528dade104bb6996c4ca1
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 16:19:33 2024 +1100

WW-3714 Deprecate and migrate ActionSupport
---
 .../com/opensymphony/xwork2/ActionSupport.java | 339 +
 .../apache/struts2}/ActionSupport.java |  34 ++-
 2 files changed, 26 insertions(+), 347 deletions(-)

diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java
index ab1a18099..a775c9bb7 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java
@@ -18,342 +18,9 @@
  */
 package com.opensymphony.xwork2;
 
-import com.opensymphony.xwork2.conversion.impl.ConversionData;
-import com.opensymphony.xwork2.inject.Container;
-import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.interceptor.ValidationAware;
-import com.opensymphony.xwork2.util.ValueStack;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.struts2.StrutsConstants;
-
-import java.io.Serializable;
-import java.util.*;
-
 /**
- * Provides a default implementation for the most common actions.
- * See the documentation for all the interfaces this class implements for more 
detailed information.
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.ActionSupport} 
instead.
  */
-public class ActionSupport implements Action, Validateable, ValidationAware, 
TextProvider, LocaleProvider, Serializable {
-
-private static final Logger LOG = 
LogManager.getLogger(ActionSupport.class);
-
-private final ValidationAwareSupport validationAware = new 
ValidationAwareSupport();
-
-private transient TextProvider textProvider;
-private transient LocaleProvider localeProvider;
-
-protected Container container;
-
-@Override
-public void setActionErrors(Collection errorMessages) {
-validationAware.setActionErrors(errorMessages);
-}
-
-@Override
-public Collection getActionErrors() {
-return validationAware.getActionErrors();
-}
-
-@Override
-public void setActionMessages(Collection messages) {
-validationAware.setActionMessages(messages);
-}
-
-@Override
-public Collection getActionMessages() {
-return validationAware.getActionMessages();
-}
-
-@Override
-public void setFieldErrors(Map> errorMap) {
-validationAware.setFieldErrors(errorMap);
-}
-
-@Override
-public Map> getFieldErrors() {
-return validationAware.getFieldErrors();
-}
-
-@Override
-public Locale getLocale() {
-return getLocaleProvider().getLocale();
-}
-
-@Override
-public boolean isValidLocaleString(String localeStr) {
-return getLocaleProvider().isValidLocaleString(localeStr);
-}
-
-@Override
-public boolean isValidLocale(Locale locale) {
-return getLocaleProvider().isValidLocale(locale);
-}
-
-@Override
-public Locale toLocale(String localeStr) {
-return getLocaleProvider().toLocale(localeStr);
-}
-
-@Override
-public boolean hasKey(String key) {
-return getTextProvider().hasKey(key);
-}
-
-@Override
-public String getText(String aTextName) {
-return getTextProvider().getText(aTextName);
-}
-
-@Override
-public String getText(String aTextName, String defaultValue) {
-return getTextProvider().getText(aTextName, defaultValue);
-}
-
-@Override
-public String getText(String aTextName, String defaultValue, String obj) {
-return getTextProvider().getText(aTextName, defaultValue, obj);
-}
-
-@Override
-public String getText(String aTextName, List args) {
-return getTextProvider().getText(aTextName, args);
-}
-
-@Override
-public String getText(String key, String[] args) {
-return getTextProvider().getText(key, args);
-}
-
-@Override
-public String getText(String aTextName, String defaultValue, List args) 
{
-return getTextProvider().getText(aTextName, defaultValue, args);
-}
-
-@Override
-public String getText(String key, String defaultValue, String[] args) {
-return getTextProvider().getText(key, defaultValue, args);
-}
-
-@Override
-public String getText(String key, String defaultValue, List args, 
ValueStack stack) {
-return getTextProvider().getText(key, defaultValue, args, stack);
-}
-
-@Override
-public String getText(String key, String defaultValue, String[] args, 
ValueStack stack) {
-return getTextProvider().getText(key, defaultValue, args, stack);
-}
-
-/**
- * Dedicated method to support I10N and 

(struts) branch kusal-depr-apis-6 created (now 89c093088)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis-6
in repository https://gitbox.apache.org/repos/asf/struts.git


  at 89c093088 WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor

This branch includes the following new commits:

 new 8db6533d5 WW-3714 Deprecate and migrate ActionSupport
 new 89c093088 WW-3714 Deprecate and migrate AbstractInterceptor and 
MethodFilterInterceptor

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) branch kusal-depr-apis created (now fc009fd54)

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a change to branch kusal-depr-apis
in repository https://gitbox.apache.org/repos/asf/struts.git


  at fc009fd54 WW-3714 Deprecate and migrate ActionContext

This branch includes the following new commits:

 new bcb66a0e4 WW-3714 Deprecate and migrate Action, Interceptor, Result
 new fc009fd54 WW-3714 Deprecate and migrate ActionContext

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




(struts) 01/02: WW-3714 Deprecate and migrate Action, Interceptor, Result

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis
in repository https://gitbox.apache.org/repos/asf/struts.git

commit bcb66a0e4cfebc3a43bcde4146fd347118455583
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 13:12:57 2024 +1100

WW-3714 Deprecate and migrate Action, Interceptor, Result
---
 .../main/java/com/opensymphony/xwork2/Action.java  |  70 +--
 .../main/java/com/opensymphony/xwork2/Result.java  |  30 +--
 .../xwork2/interceptor/Interceptor.java| 202 +
 .../xwork2 => org/apache/struts2}/Action.java  |  14 +-
 .../xwork2 => org/apache/struts2}/Result.java  |   5 +-
 .../apache/struts2}/interceptor/Interceptor.java   |   4 +-
 6 files changed, 26 insertions(+), 299 deletions(-)

diff --git a/core/src/main/java/com/opensymphony/xwork2/Action.java 
b/core/src/main/java/com/opensymphony/xwork2/Action.java
index 4c96617c4..57d767834 100644
--- a/core/src/main/java/com/opensymphony/xwork2/Action.java
+++ b/core/src/main/java/com/opensymphony/xwork2/Action.java
@@ -19,70 +19,10 @@
 package com.opensymphony.xwork2;
 
 /**
- * All actions may implement this interface, which exposes the 
execute() method.
- * 
- * However, as of XWork 1.1, this is not required and is only here to 
assist users. You are free to create POJOs
- * that honor the same contract defined by this interface without actually 
implementing the interface.
- * 
+ * {@inheritDoc}
+ *
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.Action} instead.
  */
-public interface Action {
-
-/**
- * The action execution was successful. Show result
- * view to the end user.
- */
-public static final String SUCCESS = "success";
-
-/**
- * The action execution was successful but do not
- * show a view. This is useful for actions that are
- * handling the view in another fashion like redirect.
- */
-public static final String NONE = "none";
-
-/**
- * The action execution was a failure.
- * Show an error view, possibly asking the
- * user to retry entering data.
- */
-public static final String ERROR = "error";
-
-/**
- * 
- * The action execution require more input
- * in order to succeed.
- * This result is typically used if a form
- * handling action has been executed so as
- * to provide defaults for a form. The
- * form associated with the handler should be
- * shown to the end user.
- * 
- *
- * 
- * This result is also used if the given input
- * params are invalid, meaning the user
- * should try providing input again.
- * 
- */
-public static final String INPUT = "input";
-
-/**
- * The action could not execute, since the
- * user most was not logged in. The login view
- * should be shown.
- */
-public static final String LOGIN = "login";
-
-
-/**
- * Where the logic of the action is executed.
- *
- * @return a string representing the logical result of the execution.
- * See constants in this interface for a list of standard result 
values.
- * @throws Exception thrown if a system level exception occurs.
- *   Note: Application level exceptions should be 
handled by returning
- *   an error value, such as Action.ERROR.
- */
-public String execute() throws Exception;
-
+@Deprecated
+public interface Action extends org.apache.struts2.Action {
 }
diff --git a/core/src/main/java/com/opensymphony/xwork2/Result.java 
b/core/src/main/java/com/opensymphony/xwork2/Result.java
index 8c1687e5a..ccd238751 100644
--- a/core/src/main/java/com/opensymphony/xwork2/Result.java
+++ b/core/src/main/java/com/opensymphony/xwork2/Result.java
@@ -18,33 +18,11 @@
  */
 package com.opensymphony.xwork2;
 
-import java.io.Serializable;
-
 /**
- * All results (except for Action.NONE) of an {@link Action} are 
mapped to a View implementation.
- *
- * 
- * Examples of Views might be:
- * 
- *
- * 
- * SwingPanelView - pops up a new Swing panel
- * ActionChainView - executes another action
- * SerlvetRedirectView - redirects the HTTP response to a URL
- * ServletDispatcherView - dispatches the HTTP response to a URL
- * 
+ * {@inheritDoc}
  *
- * @author plightbo
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.Result} instead.
  */
-public interface Result extends Serializable {
-
-/**
- * Represents a generic interface for all action execution results.
- * Whether that be displaying a webpage, generating an email, sending a 
JMS message, etc.
- *
- * @param invocation  the invocation context.
- * @throws Exception can be thrown.
- */
-void execute(ActionInvocation invocation) throws Exception;
-
+@Deprecated
+public interface Result extends org.apache.struts2.Result {
 }
diff --git 
a/core/src/main/java/com/opensymphony/xwork2/interceptor/Interceptor.java 
b/core/src/

(struts) 02/02: WW-3714 Deprecate and migrate ActionContext

2024-10-16 Thread kusal
This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch kusal-depr-apis
in repository https://gitbox.apache.org/repos/asf/struts.git

commit fc009fd5401cdaf22a3de3e402c564cf3b0dd02c
Author: Kusal Kithul-Godage 
AuthorDate: Thu Oct 17 13:13:28 2024 +1100

WW-3714 Deprecate and migrate ActionContext
---
 .../com/opensymphony/xwork2/ActionContext.java | 462 -
 .../apache/struts2}/ActionContext.java |  12 +-
 2 files changed, 95 insertions(+), 379 deletions(-)

diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionContext.java 
b/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
index fb7b0abcb..d2f78e87a 100644
--- a/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
+++ b/core/src/main/java/com/opensymphony/xwork2/ActionContext.java
@@ -21,8 +21,6 @@ package com.opensymphony.xwork2;
 import com.opensymphony.xwork2.conversion.impl.ConversionData;
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.util.ValueStack;
-import org.apache.struts2.StrutsException;
-import org.apache.struts2.StrutsStatics;
 import org.apache.struts2.dispatcher.HttpParameters;
 import org.apache.struts2.dispatcher.mapper.ActionMapping;
 
@@ -30,515 +28,233 @@ import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.jsp.PageContext;
-import java.io.Serializable;
-import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 
 /**
- * 
- * The ActionContext is the context in which an {@link Action} is executed. 
Each context is basically a
- * container of objects an action needs for execution like the session, 
parameters, locale, etc.
- * 
+ * {@inheritDoc}
  *
- * 
- * The ActionContext is thread local which means that values stored in the 
ActionContext are
- * unique per thread. See the {@link ThreadLocal} class for more information. 
The benefit of
- * this is you don't need to worry about a user specific action context, you 
just get it:
- * 
- *
- * ActionContext context = ActionContext.getContext();
- *
- * 
- * Finally, because of the thread local usage you don't need to worry about 
making your actions thread safe.
- * 
- *
- * @author Patrick Lightbody
- * @author Bill Lynch (docs)
+ * @deprecated since 6.7.0, use {@link org.apache.struts2.ActionContext} 
instead.
  */
-public class ActionContext implements Serializable {
-
-private static final ThreadLocal actionContext = new 
ThreadLocal<>();
-
-/**
- * Constant for the name of the action being executed.
- */
-private static final String ACTION_NAME = 
"org.apache.struts2.ActionContext.name";
-
-/**
- * Constant for the {@link com.opensymphony.xwork2.util.ValueStack OGNL 
value stack}.
- */
-private static final String VALUE_STACK = ValueStack.VALUE_STACK;
-
-/**
- * Constant for the action's session.
- */
-private static final String SESSION = 
"org.apache.struts2.ActionContext.session";
-
-/**
- * Constant for the action's application context.
- */
-private static final String APPLICATION = 
"org.apache.struts2.ActionContext.application";
-
-/**
- * Constant for the action's parameters.
- */
-private static final String PARAMETERS = 
"org.apache.struts2.ActionContext.parameters";
-
-/**
- * Constant for the action's locale.
- */
-private static final String LOCALE = 
"org.apache.struts2.ActionContext.locale";
-
-/**
- * Constant for the action's {@link 
com.opensymphony.xwork2.ActionInvocation invocation} context.
- */
-private static final String ACTION_INVOCATION = 
"org.apache.struts2.ActionContext.actionInvocation";
-
-/**
- * Constant for the map of type conversion errors.
- */
-private static final String CONVERSION_ERRORS = 
"org.apache.struts2.ActionContext.conversionErrors";
-
-/**
- * Constant for the container
- */
-private static final String CONTAINER = 
"org.apache.struts2.ActionContext.container";
-
-private final Map context;
-
-/**
- * Creates a new ActionContext initialized with another context.
- *
- * @param context a context map.
- */
-protected ActionContext(Map context) {
-this.context = context;
-}
-
-/**
- * Creates a new ActionContext based on passed in Map
- *
- * @param context a map with context values
- * @return new ActionContext
- */
+@Deprecated
+public class ActionContext extends org.apache.struts2.ActionContext {
+
+private ActionContext(org.apache.struts2.ActionContext actualContext) {
+super(actualContext.getContextMap());
+}
+
 public static ActionContext of(Map context) {
-if (context == null) {
-throw new IllegalArgumentException("Context cannot be null!");
-}
-return new ActionContext(context);
+return new A