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

kusal pushed a commit to branch 7.0.x/merge-master-2024-07-20
in repository https://gitbox.apache.org/repos/asf/struts.git

commit b2061765325b21f6bea12316e0827c5bffd12d1c
Merge: b8f7c4b2f 9195990b5
Author: Kusal Kithul-Godage <g...@kusal.io>
AuthorDate: Sat Jul 20 13:31:20 2024 +1000

    Merge remote-tracking branch 'origin/master' into 
7.0.x/merge-master-2024-07-20

 .../org/demo/rest/example/OrdersController.java    |  24 ++---
 .../java/org/demo/rest/example/OrdersService.java  |   7 +-
 apps/showcase/pom.xml                              |   6 ++
 .../struts2/showcase/DynamicTreeSelectAction.java  |   3 +-
 .../showcase/LotsOfOptiontransferselectAction.java |  17 +++-
 .../showcase/LotsOfRichtexteditorAction.java       |   7 +-
 .../apache/struts2/showcase/MoreSelectsAction.java |  10 +-
 .../showcase/ShowAjaxDynamicTreeAction.java        |   2 +
 .../org/apache/struts2/showcase/UITagExample.java  |   8 ++
 .../showcase/action/AbstractCRUDAction.java        | 101 +++++++++++----------
 .../struts2/showcase/action/EmployeeAction.java    |   5 +-
 .../struts2/showcase/action/ExampleAction.java     |  10 +-
 .../struts2/showcase/action/JSPEvalAction.java     |   8 +-
 .../struts2/showcase/action/SkillAction.java       |   2 +
 .../showcase/actionchaining/ActionChain1.java      |   3 +
 .../showcase/actionchaining/ActionChain2.java      |   5 +-
 .../showcase/actionchaining/ActionChain3.java      |   8 +-
 .../struts2/showcase/ajax/AjaxTestAction.java      |   3 +-
 .../showcase/ajax/AutocompleterExampleAction.java  |   5 +-
 .../showcase/ajax/Example4ShowPanelAction.java     |   3 +
 .../struts2/showcase/ajax/Example5Action.java      |   3 +
 .../struts2/showcase/ajax/tree/GetCategory.java    |   3 +
 .../apache/struts2/showcase/ajax/tree/Toggle.java  |   2 +
 .../struts2/showcase/async/ChatRoomAction.java     |  13 +--
 .../struts2/showcase/chat/ChatLoginAction.java     |   5 +-
 .../struts2/showcase/chat/CrudRoomAction.java      |   3 +
 .../struts2/showcase/chat/EnterRoomAction.java     |   5 +-
 .../struts2/showcase/chat/ExitRoomAction.java      |   5 +-
 .../chat/MessagesAvailableInRoomAction.java        |   6 +-
 .../showcase/chat/SendMessageToRoomAction.java     |  10 +-
 .../showcase/chat/UsersAvailableInRoomAction.java  |   7 +-
 .../showcase/conversion/OperationsEnumAction.java  |   3 +-
 .../MultipleFileUploadUsingArrayAction.java        |   6 +-
 .../showcase/freemarker/StandardTagsAction.java    |   6 +-
 .../showcase/hangman/GuessCharacterAction.java     |   6 +-
 .../showcase/modelDriven/ModelDrivenAction.java    |   4 +
 .../showcase/modelDriven/{ => model}/Gangster.java |   2 +-
 .../struts2/showcase/person/EditPersonAction.java  |   6 +-
 .../struts2/showcase/person/ListPeopleAction.java  |   3 +-
 .../struts2/showcase/person/NewPersonAction.java   |   3 +
 .../struts2/showcase/source/ViewSourceAction.java  |  12 ++-
 .../tag/nonui/actionPrefix/SubmitAction.java       |   3 +
 .../tag/nonui/debugtag/DebugTagAction.java         |   3 +-
 .../nonui/iteratortag/AppendIteratorTagDemo.java   |   7 +-
 .../iteratortag/IteratorGeneratorTagDemo.java      |   9 +-
 .../nonui/iteratortag/MergeIteratorTagDemo.java    |   9 +-
 .../nonui/iteratortag/SubsetIteratorTagDemo.java   |  13 ++-
 .../apache/struts2/showcase/token/TokenAction.java |   2 +
 .../AbstractValidationActionSupport.java           |   1 +
 .../showcase/validation/AjaxFormSubmitAction.java  |  31 ++++---
 .../validation/BeanValidationExampleAction.java    |  13 ++-
 .../NonFieldValidatorsExampleAction.java           |   5 +
 .../struts2/showcase/validation/QuizAction.java    |   4 +
 .../showcase/validation/SubmitApplication.java     |   3 +
 .../validation/VisitorValidatorsExampleAction.java |   3 +
 .../apache/struts2/showcase/xslt/JVMAction.java    |   2 +-
 .../src/main/resources/struts-fileupload.xml       |   4 +-
 apps/showcase/src/main/resources/struts.xml        |   9 ++
 .../apache/struts2/showcase/ConventionTest.java    |  88 ++++++++++++++++++
 .../xwork2/ValidationAwareSupport.java             |  15 ++-
 .../xwork2/config/ConfigurationUtil.java           |  13 ++-
 .../providers/XmlDocConfigurationProvider.java     |  17 ++--
 .../xwork2/interceptor/annotations/Allowed.java    |   2 +
 .../AnnotationParameterFilterInterceptor.java      |   7 +-
 .../interceptor/annotations/BlockByDefault.java    |   2 +
 .../xwork2/interceptor/annotations/Blocked.java    |   2 +
 .../com/opensymphony/xwork2/ognl/OgnlUtil.java     |  11 +--
 .../xwork2/ognl/SecurityMemberAccess.java          |   6 +-
 .../struts2/dispatcher/DefaultActionSupport.java   |   5 +-
 .../org/apache/struts2/ognl/ProviderAllowlist.java |  35 +++++--
 .../com/opensymphony/xwork2/ActionSupportTest.java |   7 +-
 .../com/opensymphony/xwork2/ModelDrivenAction.java |   8 +-
 .../xwork2/ModelDrivenAnnotationAction.java        |   8 +-
 .../opensymphony/xwork2/ProxyInvocationAction.java |   2 +
 .../java/com/opensymphony/xwork2/SimpleAction.java |  26 +++---
 .../xwork2/SimpleAnnotationAction.java             |  32 +++++--
 .../opensymphony/xwork2/ValidationOrderAction.java |  36 ++++----
 .../interceptor/ModelDrivenInterceptorTest.java    |   8 +-
 .../ScopedModelDrivenInterceptorTest.java          |  10 ++
 .../annotations/AllowingByDefaultAction.java       |   9 +-
 .../annotations/BlockingByDefaultAction.java       |   9 +-
 .../xwork2/test/ModelDrivenAction2.java            |   4 +-
 .../xwork2/test/ModelDrivenAnnotationAction2.java  |   4 +-
 .../opensymphony/xwork2/test/SimpleAction2.java    |   3 +-
 .../opensymphony/xwork2/test/SimpleAction3.java    |   8 +-
 .../xwork2/test/SimpleAnnotationAction2.java       |   2 +
 .../xwork2/test/SimpleAnnotationAction3.java       |   8 +-
 .../ValidateAnnotatedMethodOnlyAction.java         |   3 +
 .../java/com/opensymphony/xwork2/util/Bar.java     |   5 +-
 .../util/StrutsLocalizedTextProviderTest.java      |  10 +-
 .../validator/ActionValidatorManagerTest.java      |   5 +-
 .../validator/AnnotationValidationAction.java      |   1 +
 .../validator/AnnotationValidationExpAction.java   |   1 +
 .../validator/StringLengthFieldValidatorTest.java  |   7 ++
 .../validator/VisitorValidatorModelAction.java     |   3 +
 .../validator/VisitorValidatorTestAction.java      |   7 +-
 .../apache/struts2/ExecutionCountTestAction.java   |   3 +-
 .../org/apache/struts2/HttpMethodsTestAction.java  |   2 +
 .../test/java/org/apache/struts2/TestAction.java   |   1 +
 .../multipart/JakartaMultiPartRequestTest.java     |   2 +-
 .../struts2/interceptor/CookieInterceptorTest.java |   4 +
 .../interceptor/FileUploadInterceptorTest.java     |   2 +
 .../apache/struts2/ognl/ProviderAllowlistTest.java |  27 +++---
 .../views/jsp/IteratorGeneratorTagTest.java        |  13 +--
 .../struts2/views/jsp/SortIteratorTagTest.java     |  23 ++---
 .../struts2/views/jsp/SubsetIteratorTagTest.java   |  29 +++---
 .../views/jsp/ui/DoubleValidationAction.java       |   2 +
 .../struts2/views/jsp/ui/FieldErrorTagTest.java    |  13 ++-
 .../struts2/views/jsp/ui/IntValidationAction.java  |   2 +
 .../struts/beanvalidation/actions/FieldAction.java |   2 +
 .../beanvalidation/actions/FieldMatchAction.java   |   5 +
 .../beanvalidation/actions/ModelDrivenAction.java  |   5 +-
 .../actions/ValidateGroupAction.java               |   7 +-
 .../struts2/config_browser/ActionNamesAction.java  |   5 +-
 .../config_browser/ListValidatorsAction.java       |   8 +-
 .../struts2/config_browser/ShowBeansAction.java    |   2 +
 .../struts2/config_browser/ShowConfigAction.java   |  25 +++--
 .../config_browser/ShowValidatorAction.java        |  24 +++--
 .../convention/ClasspathConfigurationProvider.java |  11 ++-
 .../convention/ClasspathPackageProvider.java       |  11 ++-
 .../PackageBasedActionConfigBuilder.java           |  61 +++++++++----
 .../src/test/java/actions/MessageAction.java       |   2 +-
 .../PackageBasedActionConfigBuilderTest.java       |  52 +++++++++--
 plugins/jasperreports/pom.xml                      |   2 +-
 .../json/JSONValidationInterceptorTest.java        |   5 +
 .../struts2/junit/session/SessionGetAction.java    |   1 +
 .../struts2/junit/session/SessionSetAction.java    |   1 +
 .../struts2/rest/RestActionInvocationTest.java     |   5 +-
 .../com/opensymphony/xwork2/ModelDrivenAction.java |   8 +-
 pom.xml                                            |   4 +-
 130 files changed, 893 insertions(+), 376 deletions(-)

diff --cc apps/showcase/pom.xml
index de25a7d9f,5b5f0e590..6fdc010c2
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@@ -129,17 -137,17 +129,23 @@@
             <scope>test</scope>
         </dependency>
  
+         <dependency>
+             <groupId>org.assertj</groupId>
+             <artifactId>assertj-core</artifactId>
+             <scope>test</scope>
+         </dependency>
+ 
         <dependency>
 -            <groupId>net.sourceforge.htmlunit</groupId>
 -            <artifactId>htmlunit</artifactId>
 -            <scope>test</scope>
 -        </dependency>
 +           <groupId>org.assertj</groupId>
 +           <artifactId>assertj-core</artifactId>
 +           <scope>test</scope>
 +       </dependency>
 +
 +       <dependency>
 +           <groupId>org.htmlunit</groupId>
 +           <artifactId>htmlunit</artifactId>
 +           <scope>test</scope>
 +       </dependency>
  
          <!-- BeanValidation Example -->
          <dependency>
diff --cc 
apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
index 06ceae842,bbd4bb54a..d1ba0a412
--- 
a/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
+++ 
b/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
@@@ -23,8 -23,9 +23,9 @@@ package org.apache.struts2.showcase.sou
  import com.opensymphony.xwork2.ActionSupport;
  import com.opensymphony.xwork2.util.ClassLoaderUtil;
  import org.apache.struts2.action.ServletContextAware;
+ import org.apache.struts2.interceptor.parameter.StrutsParameter;
  
 -import javax.servlet.ServletContext;
 +import jakarta.servlet.ServletContext;
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStream;
diff --cc 
core/src/main/java/org/apache/struts2/dispatcher/DefaultActionSupport.java
index c6f07795e,0df1e3e90..555746cdb
--- a/core/src/main/java/org/apache/struts2/dispatcher/DefaultActionSupport.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/DefaultActionSupport.java
@@@ -18,11 -18,11 +18,12 @@@
   */
  package org.apache.struts2.dispatcher;
  
 -import com.opensymphony.xwork2.ActionSupport;
 +import jakarta.servlet.http.HttpServletRequest;
 +
  import org.apache.struts2.ServletActionContext;
+ import org.apache.struts2.interceptor.parameter.StrutsParameter;
  
 -import javax.servlet.http.HttpServletRequest;
 +import com.opensymphony.xwork2.ActionSupport;
  
  /**
   * A simple action support class that sets properties to be able to serve
diff --cc 
core/src/test/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequestTest.java
index c5fe42b1c,5e8f31e4e..781b7fbd0
--- 
a/core/src/test/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequestTest.java
+++ 
b/core/src/test/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequestTest.java
@@@ -16,13 -16,14 +16,13 @@@
   * specific language governing permissions and limitations
   * under the License.
   */
 -package org.apache.struts2.components;
 +package org.apache.struts2.dispatcher.multipart;
  
 -import com.opensymphony.xwork2.Action;
 +public class JakartaMultiPartRequestTest extends AbstractMultiPartRequestTest 
{
  
 -public class PortletAction {
 -
 -    public String execute() {
 -        return Action.SUCCESS;
 +    @Override
 +    protected AbstractMultiPartRequest createMultipartRequest() {
 +        return new JakartaMultiPartRequest();
      }
  
- }
+ }
diff --cc 
core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
index 3cd0e57ab,8e6f6d19d..adb5496d1
--- 
a/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
+++ 
b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
@@@ -25,12 -25,12 +25,13 @@@ import com.opensymphony.xwork2.ActionSu
  import com.opensymphony.xwork2.mock.MockActionInvocation;
  import com.opensymphony.xwork2.security.DefaultAcceptedPatternsChecker;
  import com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker;
 +import jakarta.servlet.http.Cookie;
  import org.apache.struts2.ServletActionContext;
  import org.apache.struts2.StrutsInternalTestCase;
 +import org.apache.struts2.action.CookiesAware;
+ import org.apache.struts2.interceptor.parameter.StrutsParameter;
  import org.springframework.mock.web.MockHttpServletRequest;
  
 -import javax.servlet.http.Cookie;
  import java.util.Collections;
  import java.util.HashMap;
  import java.util.Map;
diff --cc 
core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java
index 8dbd173e5,cfb305770..872122066
--- 
a/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java
+++ 
b/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java
@@@ -618,10 -590,10 +618,11 @@@ public class FileUploadInterceptorTest 
          jak.setMaxFileSize(String.valueOf(maxfilesize));
          jak.setMaxFiles(String.valueOf(maxfiles));
          jak.setMaxStringLength(String.valueOf(maxStringLength));
 -        return new MultiPartRequestWrapper(jak, req, 
tempDir.getAbsolutePath(), new DefaultLocaleProvider());
 +        jak.setDefaultEncoding(StandardCharsets.UTF_8.name());
 +        return new MultiPartRequestWrapper(jak, request, 
tempDir.getAbsolutePath(), new DefaultLocaleProvider());
      }
  
+     @Override
      protected void setUp() throws Exception {
          super.setUp();
  
@@@ -629,11 -600,13 +630,12 @@@
          interceptor = new FileUploadInterceptor();
          container.inject(interceptor);
          tempDir = File.createTempFile("struts", "fileupload");
 -        tempDir.delete();
 -        tempDir.mkdirs();
 +        assertThat(tempDir.delete()).isTrue();
 +        assertThat(tempDir.mkdirs()).isTrue();
      }
  
+     @Override
      protected void tearDown() throws Exception {
 -        tempDir.delete();
          interceptor.destroy();
          super.tearDown();
      }
diff --cc 
core/src/test/java/org/apache/struts2/views/jsp/SortIteratorTagTest.java
index 51b8b7a81,700e6e80a..ea37888a4
--- a/core/src/test/java/org/apache/struts2/views/jsp/SortIteratorTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/SortIteratorTagTest.java
@@@ -18,17 -18,15 +18,16 @@@
   */
  package org.apache.struts2.views.jsp;
  
- import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.Iterator;
- import java.util.List;
- 
 +import jakarta.servlet.jsp.JspException;
 +
- import org.apache.struts2.views.jsp.iterator.SortIteratorTag;
- 
  import com.opensymphony.xwork2.Action;
  import com.opensymphony.xwork2.ActionSupport;
+ import org.apache.struts2.views.jsp.iterator.SortIteratorTag;
+ 
 -import javax.servlet.jsp.JspException;
+ import java.util.ArrayList;
+ import java.util.Comparator;
+ import java.util.Iterator;
+ import java.util.List;
  
  /**
   * Test case to test SortIteratorTag.
diff --cc 
plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/ModelDrivenAction.java
index c2fe152e1,9b32fa24b..296f42c62
--- 
a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/ModelDrivenAction.java
+++ 
b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/ModelDrivenAction.java
@@@ -21,8 -21,9 +21,9 @@@ package org.apache.struts.beanvalidatio
  import com.opensymphony.xwork2.ActionSupport;
  import com.opensymphony.xwork2.ModelDriven;
  import org.apache.struts.beanvalidation.models.Person;
+ import org.apache.struts2.interceptor.parameter.StrutsParameter;
  
 -import javax.validation.Valid;
 +import jakarta.validation.Valid;
  
  public class ModelDrivenAction extends ActionSupport implements 
ModelDriven<Person>, ModelDrivenActionInterface {
  
diff --cc 
plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/ValidateGroupAction.java
index be4693463,7d3540551..20aabf15b
--- 
a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/ValidateGroupAction.java
+++ 
b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/ValidateGroupAction.java
@@@ -22,8 -22,9 +22,9 @@@ import com.opensymphony.xwork2.ActionSu
  import com.opensymphony.xwork2.ModelDriven;
  import org.apache.struts.beanvalidation.constraints.ValidationGroup;
  import org.apache.struts.beanvalidation.models.Person;
+ import org.apache.struts2.interceptor.parameter.StrutsParameter;
  
 -import javax.validation.Valid;
 +import jakarta.validation.Valid;
  
  public class ValidateGroupAction extends ActionSupport implements 
ModelDriven<Person> {
  
diff --cc 
plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
index 4733abfad,1643ce7ae..5fef87760
--- 
a/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
+++ 
b/plugins/convention/src/test/java/org/apache/struts2/convention/PackageBasedActionConfigBuilderTest.java
@@@ -72,12 -101,20 +101,20 @@@ import org.apache.struts2.ognl.Provider
  import org.apache.struts2.result.ServletDispatcherResult;
  import org.easymock.EasyMock;
  
 -import javax.servlet.ServletContext;
 +import jakarta.servlet.ServletContext;
  import java.net.MalformedURLException;
- import java.util.*;
+ import java.util.ArrayList;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
  
  import static org.apache.struts2.convention.ReflectionTools.getAnnotation;
- import static org.easymock.EasyMock.*;
+ import static org.easymock.EasyMock.checkOrder;
+ import static org.easymock.EasyMock.createStrictMock;
+ import static org.easymock.EasyMock.expect;
+ import static org.easymock.EasyMock.verify;
  
  /**
   * <p>
diff --cc 
plugins/rest/src/test/java/org/apache/struts2/rest/RestActionInvocationTest.java
index b567801c7,6f22a583e..0e64f2ef8
--- 
a/plugins/rest/src/test/java/org/apache/struts2/rest/RestActionInvocationTest.java
+++ 
b/plugins/rest/src/test/java/org/apache/struts2/rest/RestActionInvocationTest.java
@@@ -28,14 -28,11 +28,15 @@@ import com.opensymphony.xwork2.config.e
  import com.opensymphony.xwork2.config.entities.ResultConfig;
  import com.opensymphony.xwork2.mock.MockActionProxy;
  import com.opensymphony.xwork2.mock.MockInterceptor;
 +import com.opensymphony.xwork2.ognl.DefaultOgnlBeanInfoCacheFactory;
 +import com.opensymphony.xwork2.ognl.DefaultOgnlExpressionCacheFactory;
  import com.opensymphony.xwork2.ognl.OgnlUtil;
  import com.opensymphony.xwork2.util.XWorkTestCaseHelper;
 +import jakarta.servlet.http.HttpServletResponse;
  import junit.framework.TestCase;
  import org.apache.struts2.ServletActionContext;
+ import org.apache.struts2.interceptor.parameter.StrutsParameter;
 +import org.apache.struts2.ognl.StrutsOgnlGuard;
  import org.apache.struts2.result.HttpHeaderResult;
  import org.springframework.mock.web.MockHttpServletRequest;
  import org.springframework.mock.web.MockHttpServletResponse;
diff --cc pom.xml
index 6490ad4ea,cbca9161c..ab259db29
--- a/pom.xml
+++ b/pom.xml
@@@ -111,20 -110,16 +111,20 @@@
  
          <!-- dependency versions in alphanumeric order -->
          <asm.version>9.7</asm.version>
 +        <byte-buddy.version>1.14.11</byte-buddy.version>
 +        <freemarker.version>2.3.33</freemarker.version>
 +        <hibernate-validator.version>8.0.1.Final</hibernate-validator.version>
-         <jackson.version>2.17.1</jackson.version>
+         <jackson.version>2.17.2</jackson.version>
          <log4j2.version>2.23.1</log4j2.version>
-         <maven-surefire-plugin.version>3.2.5</maven-surefire-plugin.version>
++        <maven-surefire-plugin.version>3.3.1</maven-surefire-plugin.version>
 +        <mockito.version>5.8.0</mockito.version>
          <ognl.version>3.3.5</ognl.version>
 +        <sitemesh.version>2.5.0</sitemesh.version>
          <slf4j.version>2.0.13</slf4j.version>
 -        <spring.platformVersion>5.3.37</spring.platformVersion>
 +        <spring.platformVersion>6.0.13</spring.platformVersion>
          <tiles.version>3.0.8</tiles.version>
          <tiles-request.version>1.0.7</tiles-request.version>
 -        <maven-surefire-plugin.version>3.3.1</maven-surefire-plugin.version>
 -        <hibernate-validator.version>6.2.4.Final</hibernate-validator.version>
 -        <freemarker.version>2.3.33</freemarker.version>
 +        <velocity-tools.version>3.1</velocity-tools.version>
  
          <!-- Site generation -->
          <fluido-skin.version>1.9</fluido-skin.version>

Reply via email to