You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2021/12/19 18:53:00 UTC

[struts-examples] branch master updated: Upgrades to Struts 6.0.0-RC1

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

lukaszlenart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts-examples.git


The following commit(s) were added to refs/heads/master by this push:
     new f4552e2  Upgrades to Struts 6.0.0-RC1
f4552e2 is described below

commit f4552e26ccd7ad335ea1cb2a5c5ac4e0f2c874f9
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Sun Dec 19 19:52:55 2021 +0100

    Upgrades to Struts 6.0.0-RC1
---
 blank/src/test/java/example/ConfigTest.java        | 46 +++++++++-------------
 blank/src/test/java/example/LoginTest.java         |  7 ++--
 pom.xml                                            |  2 +-
 rest-angular/pom.xml                               |  5 +++
 rest-angular/src/main/resources/struts.xml         |  4 --
 .../struts/example/ThemeDescriptorConverter.java   |  7 ++--
 .../strutsexamples/web/TilesUnknownHandler.java    | 12 +++---
 7 files changed, 38 insertions(+), 45 deletions(-)

diff --git a/blank/src/test/java/example/ConfigTest.java b/blank/src/test/java/example/ConfigTest.java
index 171cafc..006f87b 100644
--- a/blank/src/test/java/example/ConfigTest.java
+++ b/blank/src/test/java/example/ConfigTest.java
@@ -25,40 +25,37 @@ import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.entities.ResultConfig;
 import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
 import org.apache.struts2.StrutsTestCase;
+import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.util.List;
 import java.util.Map;
 
 public class ConfigTest extends StrutsTestCase {
 
-    protected void assertSuccess(String result) throws Exception {
-        assertTrue("Expected a success result!",
-                ActionSupport.SUCCESS.equals(result));
+    protected void assertSuccess(String result) {
+        assertEquals("Expected a success result!", ActionSupport.SUCCESS, result);
     }
 
-    protected void assertInput(String result) throws Exception {
-        assertTrue("Expected an input result!",
-                ActionSupport.INPUT.equals(result));
+    protected void assertInput(String result) {
+        assertEquals("Expected an input result!", ActionSupport.INPUT, result);
     }
 
-    protected Map<String, List<String>> assertFieldErrors(ActionSupport action) throws Exception {
+    protected Map<String, List<String>> assertFieldErrors(ActionSupport action) {
         assertTrue(action.hasFieldErrors());
         return action.getFieldErrors();
     }
 
-    protected void assertFieldError(Map field_errors, String field_name, String error_message) {
-
-        List errors = (List) field_errors.get(field_name);
+    protected void assertFieldError(Map<String, List<String>> field_errors, String field_name, String error_message) {
+        List<String> errors = field_errors.get(field_name);
         assertNotNull("Expected errors for " + field_name, errors);
         assertTrue("Expected errors for " + field_name, errors.size()>0);
         // TODO: Should be a loop
         assertEquals(error_message,errors.get(0));
-
     }
 
     protected void setUp() throws Exception {
         super.setUp();
-        XmlConfigurationProvider c = new XmlConfigurationProvider("struts.xml");
+        XmlConfigurationProvider c = new StrutsXmlConfigurationProvider("struts.xml");
         configurationManager.addContainerProvider(c);
         configurationManager.reload();
     }
@@ -67,27 +64,22 @@ public class ConfigTest extends StrutsTestCase {
         RuntimeConfiguration configuration = configurationManager.getConfiguration().getRuntimeConfiguration();
         ActionConfig config = configuration.getActionConfig(namespace, action_name);
         assertNotNull("Mssing action", config);
-        assertTrue("Wrong class name: [" + config.getClassName() + "]",
-                class_name.equals(config.getClassName()));
+        assertEquals("Wrong class name: [" + config.getClassName() + "]", class_name, config.getClassName());
         return config;
     }
 
-    protected ActionConfig assertClass(String action_name, String class_name) {
-        return assertClass("", action_name, class_name);
-    }
-
     protected void assertResult(ActionConfig config, String result_name, String result_value) {
-        Map results = config.getResults();
-        ResultConfig result = (ResultConfig) results.get(result_name);
-        Map params = result.getParams();
-        String value = (String) params.get("actionName");
-        if (value == null)
-            value = (String) params.get("location");
-        assertTrue("Wrong result value: [" + value + "]",
-                result_value.equals(value));
+        Map<String, ResultConfig> results = config.getResults();
+        ResultConfig result = results.get(result_name);
+        Map<String, String> params = result.getParams();
+        String value = params.get("actionName");
+        if (value == null) {
+            value = params.get("location");
+        }
+        assertEquals("Wrong result value: [" + value + "]", result_value, value);
     }
 
-    public void testConfig() throws Exception {
+    public void testConfig() {
         assertNotNull(configurationManager);
     }
 
diff --git a/blank/src/test/java/example/LoginTest.java b/blank/src/test/java/example/LoginTest.java
index 5c372d3..e4acf4c 100644
--- a/blank/src/test/java/example/LoginTest.java
+++ b/blank/src/test/java/example/LoginTest.java
@@ -22,6 +22,7 @@ package example;
 import com.opensymphony.xwork2.ActionSupport;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 
+import java.util.List;
 import java.util.Map;
 
 public class LoginTest extends ConfigTest {
@@ -45,9 +46,9 @@ public class LoginTest extends ConfigTest {
         Login login = new Login();
         String result = login.execute();
         assertInput(result);
-        Map errors = assertFieldErrors(login);
-        assertFieldError(errors,"username","Username is required.");
-        assertFieldError(errors,"password","Password is required.");
+        Map<String, List<String>> errors = assertFieldErrors(login);
+        assertFieldError(errors, "username", "Username is required.");
+        assertFieldError(errors, "password", "Password is required.");
     }
 
 }
diff --git a/pom.xml b/pom.xml
index 9f6ba0f..1d42226 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <struts2.version>2.5.28</struts2.version>
+        <struts2.version>6.0.0-RC1</struts2.version>
         <log4j2.version>2.15.0</log4j2.version>
         <jetty-plugin.version>9.4.35.v20201120</jetty-plugin.version>
         <maven.javadoc.skip>true</maven.javadoc.skip>
diff --git a/rest-angular/pom.xml b/rest-angular/pom.xml
index effc885..f7d004a 100644
--- a/rest-angular/pom.xml
+++ b/rest-angular/pom.xml
@@ -81,6 +81,11 @@
             <artifactId>jackson-databind</artifactId>
             <version>${jackson.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.dataformat</groupId>
+            <artifactId>jackson-dataformat-xml</artifactId>
+            <version>${jackson.version}</version>
+        </dependency>
 
         <dependency>
             <groupId>junit</groupId>
diff --git a/rest-angular/src/main/resources/struts.xml b/rest-angular/src/main/resources/struts.xml
index 950f0f2..36d8e2c 100644
--- a/rest-angular/src/main/resources/struts.xml
+++ b/rest-angular/src/main/resources/struts.xml
@@ -21,10 +21,6 @@
 
     <constant name="struts.mapper.class" value="rest"/>
 
-    <!-- Use Jackson lib as content handler for all JSON requests -->
-    <bean type="org.apache.struts2.rest.handler.ContentTypeHandler" name="jackson" class="org.apache.struts2.rest.handler.JacksonLibHandler"/>
-    <constant name="struts.rest.handlerOverride.json" value="jackson"/>
-
     <!-- Set to false if the json content can be returned for any kind of http method -->
     <constant name="struts.rest.content.restrictToGET" value="false"/>
 
diff --git a/type-conversion/src/main/java/org/apache/struts/example/ThemeDescriptorConverter.java b/type-conversion/src/main/java/org/apache/struts/example/ThemeDescriptorConverter.java
index 388495f..9a5ebac 100644
--- a/type-conversion/src/main/java/org/apache/struts/example/ThemeDescriptorConverter.java
+++ b/type-conversion/src/main/java/org/apache/struts/example/ThemeDescriptorConverter.java
@@ -1,10 +1,11 @@
 package org.apache.struts.example;
 
-import com.opensymphony.xwork2.conversion.TypeConversionException;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.message.ParameterizedMessage;
 import org.apache.struts.model.ThemeDescriptor;
 import org.apache.struts.model.Themes;
+import org.apache.struts2.conversion.TypeConversionException;
 import org.apache.struts2.util.StrutsTypeConverter;
 
 import java.util.Map;
@@ -13,7 +14,6 @@ public class ThemeDescriptorConverter extends StrutsTypeConverter {
 
     private static final Logger LOG = LogManager.getLogger(ThemeDescriptorConverter.class);
 
-    @SuppressWarnings("rawtypes")
     @Override
     public Object convertFromString(final Map context, final String[] values, final Class toClass) {
         if ((values != null) && (values.length > 0)) {
@@ -29,13 +29,12 @@ public class ThemeDescriptorConverter extends StrutsTypeConverter {
         return null;
     }
 
-    @SuppressWarnings("rawtypes")
     @Override
     public String convertToString(final Map context, final Object value) {
         try {
             return ((ThemeDescriptor) value).getId();
         } catch (Exception e) {
-            LOG.error("Unable to convert {0} into a string", e, value);
+            LOG.error(new ParameterizedMessage("Unable to convert {} into a string", value), e);
         }
         return null;
     }
diff --git a/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java b/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
index a8884b5..2930e8e 100644
--- a/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
+++ b/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
@@ -3,11 +3,11 @@ package org.apache.strutsexamples.web;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.Result;
 import com.opensymphony.xwork2.UnknownHandler;
-import com.opensymphony.xwork2.XWorkException;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.StrutsException;
 import org.apache.struts2.views.tiles.TilesResult;
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.access.TilesAccess;
@@ -23,13 +23,13 @@ import java.util.Set;
 
 public class TilesUnknownHandler implements UnknownHandler {
 
-    private static Logger LOG = LogManager.getLogger(TilesUnknownHandler.class);
+    private static final Logger LOG = LogManager.getLogger(TilesUnknownHandler.class);
 
-    public ActionConfig handleUnknownAction(String namespace, String actionName) throws XWorkException {
+    public ActionConfig handleUnknownAction(String namespace, String actionName) throws StrutsException {
         return null;
     }
 
-    public Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) throws XWorkException {
+    public Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) throws StrutsException {
 
         ServletContext servletContext = ServletActionContext.getServletContext();
         HttpServletRequest request = ServletActionContext.getRequest();
@@ -54,7 +54,7 @@ public class TilesUnknownHandler implements UnknownHandler {
     }
 
     protected Set<String> buildDefinitionNames(String namespace, String actionName, String resultCode) {
-        Set<String> definitions = new LinkedHashSet<String>();
+        Set<String> definitions = new LinkedHashSet<>();
 
         if (namespace.startsWith("/")) {
             namespace = namespace.substring(1);
@@ -83,4 +83,4 @@ public class TilesUnknownHandler implements UnknownHandler {
     public Object handleUnknownActionMethod(Object action, String methodName) {
         return null;
     }
-}
\ No newline at end of file
+}