From 53d7d042469a6cc614c698c2bb55dfdd1bbe9183 Mon Sep 17 00:00:00 2001 From: JCgH4164838Gh792C124B5 <43964333+JCgH4164838Gh792C124B5@users.noreply.github.com> Date: Mon, 12 Nov 2018 19:58:15 -0500 Subject: [PATCH] Update Struts 2.6.0 build with some newer (compatible) library versions. - Add missing multiple-success.jsp for Showcase application. - Enhance main pom.xml maven-surefire-plugin configuration to avoid some test-ng related duplication failures: "Cannot find JUnit method class junit.framework.TestSuite$1.warning". - Remove unnecessary plugins/embeddedjsp/pom.xml (struts2-embeddedjsp-plugin) maven-surefire-plugin version override (noted with preceding change). - Update Struts 2.6.0 build to use some newer (compatible) library versions. Change the main pom.xml library versions for the following: - spring.platformVersion 4.3.13.RELEASE -> 4.3.20.RELEASE - oval 1.31 -> 1.90 (Note: required unit test fix for OValValidationInterceptorTest.java AND code fix for OvalValidationInterceptor.java) (Additional Note: 1.70 was the most recent that functioned without a fix to OvalValidationInterceptor) - jackson 2.9.6 -> 2.9.7 - fluido-skin.version 1.6 -> 1.7 - slf4j (slf4j-api, slf4j-simple) 1.7.12 -> 1.7.25 - xstream 1.4.10 -> 1.4.11.1 - jetty 6.1.9 -> 6.1.26 (last in 6.1.x line) - xerces 2.10.0 - > 2.12.0 - org.owasp 3.1.1 -> 3.3.4 - versions-maven-plugin 2.5 -> 2.7 - doxia-core 1.7 -> 1.8 - doxia-module-markdown 1.3 -> 1.7 - org.apache.felix.main 4.0.3 -> 4.6.1 (Note: most recent 4.x) - easymock 3.4 -> 3.5.1 - javax.el 3.0 -> 3.0.1-b10 - jasper 6.0.18 -> 6.0.53 (Note: most recent 6.0.x) - juli 6.0.18 -> 6.0.53 (Note: most recent 6.0.x) - commons-logging 1.1.3 -> 1.2 - commons-collections4 4.1 -> 4.2 - commons-io 2.5 -> 2.6 - commons-lang3 3.6 -> 3.8.1 - commons-text 1.2 -> 1.3 (Note: most recent compatible with Java 7) - commons-validator 1.5.1 -> 1.6 - mockito 1.9.5 -> 1.10.19 (Note: most recent 1.x) - cdi-api 1.0-SP1 -> 1.0-SP4 (Note: most recent 1.0.x) - weld-core 1.0.1-Final -> 1.0.1-SP4 (Note: most recent 1.0.x) - cglib 2.2 -> 2.2.2 (Note: most recent 2.2.x) Note for cglib-nodep: Build succeeded with cglib-nodep 2.2.2 and 3.2.5. Although cglib 3.2.5 matches ASM 5.2, jmock-cglib 1.2.0 identifies cglib-nodep 2.1_3 as its requirement (on the JMock http://jmock.org/download.html download page) so it should probably remain as long as JMock 1.2.0 is used. --- .../WEB-INF/fileupload/multiple-success.jsp | 65 +++++++++++++++++ plugins/embeddedjsp/pom.xml | 1 - .../OValValidationInterceptor.java | 3 +- .../OValValidationInterceptorTest.java | 29 +++++++- pom.xml | 73 +++++++++++-------- 5 files changed, 138 insertions(+), 33 deletions(-) create mode 100644 apps/showcase/src/main/webapp/WEB-INF/fileupload/multiple-success.jsp diff --git a/apps/showcase/src/main/webapp/WEB-INF/fileupload/multiple-success.jsp b/apps/showcase/src/main/webapp/WEB-INF/fileupload/multiple-success.jsp new file mode 100644 index 000000000..3ce6d84bb --- /dev/null +++ b/apps/showcase/src/main/webapp/WEB-INF/fileupload/multiple-success.jsp @@ -0,0 +1,65 @@ + +<%@ page + language="java" + contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> +<%@ taglib prefix="s" uri="/struts-tags" %> + + + Struts2 Showcase - Fileupload sample - Multiple fileupload + + + + + +
+ + + + + + + + + + + + +
+
+ File (): +
    +
  • ContentType:
  • +
  • FileName:
  • +
  • File:
  • +
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/plugins/embeddedjsp/pom.xml b/plugins/embeddedjsp/pom.xml index 414a2a4bc..a8ce923c3 100644 --- a/plugins/embeddedjsp/pom.xml +++ b/plugins/embeddedjsp/pom.xml @@ -101,7 +101,6 @@ org.apache.maven.plugins maven-surefire-plugin - 2.19.1 ${project.build.testOutputDirectory}/jsps.jar diff --git a/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java b/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java index f7d7aa24f..e6cf60385 100644 --- a/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java +++ b/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java @@ -166,7 +166,8 @@ public class OValValidationInterceptor extends MethodFilterInterceptor { List configurers = validationManager.getConfigurers(clazz, context, validateJPAAnnotations); Validator validator = configurers.isEmpty() ? new Validator() : new Validator(configurers); - validator.addExpressionLanguage("ognl", ognlExpressionLanguage); + // Note: For Oval <= 1.70, API requires "validator.addExpressionLanguage("ognl", ognlExpressionLanguage)". + validator.getExpressionLanguageRegistry().registerExpressionLanguage("ognl", ognlExpressionLanguage); // Usage for Oval >= 1.80 due to API changes //if the method is annotated with a @Profiles annotation, use those profiles Method method = clazz.getMethod(methodName, new Class[0]); if (method != null) { diff --git a/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java b/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java index da9d34c6d..5bead8228 100644 --- a/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java +++ b/plugins/oval/src/test/java/org/apache/struts2/oval/interceptor/OValValidationInterceptorTest.java @@ -28,6 +28,8 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import junit.framework.AssertionFailedError; + public class OValValidationInterceptorTest extends XWorkTestCase { public void testSimpleFieldsXML() throws Exception { ActionProxy baseActionProxy = actionProxyFactory.createActionProxy("oval", "simpleFieldsXML", null, null); @@ -283,7 +285,18 @@ public class OValValidationInterceptorTest extends XWorkTestCase { assertEquals(5, fieldErrors.size()); // 5: as there will be field errors for 'model' and 'address' themselves assertValue(fieldErrors, "name", Arrays.asList("name cannot be null")); assertValue(fieldErrors, "email", Arrays.asList("email cannot be null")); - assertValue(fieldErrors, "address.street", Arrays.asList("street cannot be smaller than 7 characters")); + try { + // Oval version <= 1.40 validation error for invalid data reports: "net.sf.oval.constraint.AssertValid.violated". + assertValue(fieldErrors, "address", Arrays.asList("net.sf.oval.constraint.AssertValid.violated")); + // Oval version <= 1.40 validation error for minimum length reports: "street cannot be smaller than 7 characters". + assertValue(fieldErrors, "address.street", Arrays.asList("street cannot be smaller than 7 characters")); + } + catch (AssertionFailedError afe) { + // Oval version >= 1.50 validation error for invalid data reports: "address is invalid". + assertValue(fieldErrors, "address", Arrays.asList("address is invalid")); + // Oval version >= 1.50 validation error for minimum length reports: "street cannot be shorter than 7 characters". + assertValue(fieldErrors, "address.street", Arrays.asList("street cannot be shorter than 7 characters")); + } } @@ -300,7 +313,19 @@ public class OValValidationInterceptorTest extends XWorkTestCase { assertEquals(5, fieldErrors.size()); // 5: as there will be field errors for 'person' and 'person.address' themselves assertValue(fieldErrors, "person.name", Arrays.asList("name cannot be null")); assertValue(fieldErrors, "person.email", Arrays.asList("email cannot be null")); - assertValue(fieldErrors, "person.address.street", Arrays.asList("street cannot be smaller than 7 characters")); + try { + // Oval version <= 1.40 validation error for invalid data reports: "net.sf.oval.constraint.AssertValid.violated". + assertValue(fieldErrors, "person.address", Arrays.asList("net.sf.oval.constraint.AssertValid.violated")); + // Oval version <= 1.40 validation error for minimum length reports: "street cannot be smaller than 7 characters". + assertValue(fieldErrors, "person.address.street", Arrays.asList("street cannot be smaller than 7 characters")); + } + catch (AssertionFailedError afe) { + // Oval version >= 1.50 validation error for invalid data reports: "address is invalid". + assertValue(fieldErrors, "person.address", Arrays.asList("address is invalid")); + // Oval version >= 1.50 validation error for minimum length reports: "street cannot be shorter than 7 characters". + assertValue(fieldErrors, "person.address.street", Arrays.asList("street cannot be shorter than 7 characters")); + } + } diff --git a/pom.xml b/pom.xml index 6e8508e00..1b296c325 100644 --- a/pom.xml +++ b/pom.xml @@ -97,16 +97,16 @@ UTF-8 - 4.3.13.RELEASE + 4.3.20.RELEASE 3.2.8 7.0 3.0.8 1.0.7 2.11.1 - 2.9.6 + 2.9.7 - 1.6 + 1.7 https://builds.apache.org/analysis/ @@ -234,6 +234,13 @@ org.apache.maven.plugins maven-surefire-plugin 2.20.1 + + + org.apache.maven.surefire + surefire-junit47 + 2.20.1 + + -Duser.language=en -Duser.region=US @@ -242,6 +249,12 @@ **/TestBean.java + + + junit + false + + @@ -312,7 +325,7 @@ org.owasp dependency-check-maven - 3.1.1 + 3.3.4 src/etc/project-suppression.xml @@ -373,12 +386,12 @@ org.apache.maven.doxia doxia-core - 1.7 + 1.8 org.apache.maven.doxia doxia-module-markdown - 1.3 + 1.7 @@ -445,7 +458,7 @@ org.codehaus.mojo versions-maven-plugin - 2.5 + 2.7 @@ -618,7 +631,7 @@ org.apache.felix org.apache.felix.main - 4.0.3 + 4.6.1 org.apache.felix @@ -695,12 +708,13 @@ cglib cglib-nodep 2.1_3 + org.easymock easymock - 3.4 + 3.5.1 test @@ -714,7 +728,7 @@ org.glassfish javax.el - 3.0.0 + 3.0.1-b10 @@ -734,7 +748,7 @@ org.apache.tomcat jasper - 6.0.18 + 6.0.53 provided @@ -811,19 +825,19 @@ org.apache.tomcat juli - 6.0.18 + 6.0.53 commons-logging commons-logging - 1.1.3 + 1.2 org.apache.commons commons-collections4 - 4.1 + 4.2 @@ -839,17 +853,17 @@ commons-io commons-io - 2.5 + 2.6 org.apache.commons commons-lang3 - 3.6 + 3.8.1 org.apache.commons commons-text - 1.2 + 1.3 commons-digester @@ -875,7 +889,7 @@ commons-validator commons-validator - 1.5.1 + 1.6 @@ -973,7 +987,7 @@ org.mockito mockito-all - 1.9.5 + 1.10.19 test @@ -987,12 +1001,12 @@ org.slf4j slf4j-api - 1.7.12 + 1.7.25 org.slf4j slf4j-simple - 1.7.12 + 1.7.25 @@ -1012,13 +1026,13 @@ net.sf.oval oval - 1.31 + 1.90 com.thoughtworks.xstream xstream - 1.4.10 + 1.4.11.1 @@ -1030,12 +1044,12 @@ org.mortbay.jetty jetty - 6.1.9 + 6.1.26 org.mortbay.jetty jsp-2.1 - 6.1.9 + 6.1.26 @@ -1048,7 +1062,8 @@ cglib cglib - 2.2 + 2.2.2 + @@ -1078,13 +1093,13 @@ javax.enterprise cdi-api - 1.0-SP1 + 1.0-SP4 org.jboss.weld weld-core - 1.0.1-Final + 1.0.1-SP4 @@ -1096,7 +1111,7 @@ xerces xercesImpl - 2.10.0 + 2.12.0 test