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 2015/06/21 11:37:38 UTC

struts git commit: WW-4439 Drops support for do prefix in methods

Repository: struts
Updated Branches:
  refs/heads/master 356b5c57b -> 586f770d3


WW-4439 Drops support for do prefix in methods


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/586f770d
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/586f770d
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/586f770d

Branch: refs/heads/master
Commit: 586f770d3072f668a1092e83a2f6ac47f7a713e1
Parents: 356b5c5
Author: Lukasz Lenart <lu...@apache.org>
Authored: Sun Jun 21 11:37:28 2015 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Sun Jun 21 11:37:28 2015 +0200

----------------------------------------------------------------------
 .../xwork2/DefaultActionInvocation.java         | 39 ++++-------
 .../AnnotationValidationInterceptor.java        | 27 +-------
 .../xwork2/DefaultActionInvocationTest.java     | 73 +-------------------
 .../com/opensymphony/xwork2/SimpleAction.java   |  8 ---
 .../interceptor/BeanValidationInterceptor.java  | 14 +---
 .../BeanValidationInterceptorTest.java          | 13 ----
 6 files changed, 19 insertions(+), 155 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/586f770d/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java b/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java
index 82c0eec..da9fce6 100644
--- a/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java
+++ b/core/src/main/java/com/opensymphony/xwork2/DefaultActionInvocation.java
@@ -414,33 +414,22 @@ public class DefaultActionInvocation implements ActionInvocation {
             try {
                 methodResult = ognlUtil.getValue(methodName + "()", getStack().getContext(), action);
             } catch (MethodFailedException e) {
-                // if reason is missing method, try find version with "do" prefix
+                // if reason is missing method,  try checking UnknownHandlers
                 if (e.getReason() instanceof NoSuchMethodException) {
-                    try {
-                        String altMethodName = "do" + methodName.substring(0, 1).toUpperCase() + methodName.substring(1) + "()";
-                        methodResult = ognlUtil.getValue(altMethodName, getStack().getContext(), action);
-                    } catch (MethodFailedException e1) {
-                        // if still method doesn't exist, try checking UnknownHandlers
-                        if (e1.getReason() instanceof NoSuchMethodException) {
-                            if (unknownHandlerManager.hasUnknownHandlers()) {
-                                try {
-                                    methodResult = unknownHandlerManager.handleUnknownMethod(action, methodName);
-                                } catch (NoSuchMethodException e2) {
-                                    // throw the original one
-                                    throw e;
-                                }
-                            } else {
-                                // throw the original one
-                                throw e;
-                            }
-                            // throw the original exception as UnknownHandlers weren't able to handle invocation as well
-                            if (methodResult == null) {
-                                throw e;
-                            }
-                        } else {
-                            // exception isn't related to missing action method, throw it
-                            throw e1;
+                    if (unknownHandlerManager.hasUnknownHandlers()) {
+                        try {
+                            methodResult = unknownHandlerManager.handleUnknownMethod(action, methodName);
+                        } catch (NoSuchMethodException ignore) {
+                            // throw the original one
+                            throw e;
                         }
+                    } else {
+                        // throw the original one
+                        throw e;
+                    }
+                    // throw the original exception as UnknownHandlers weren't able to handle invocation as well
+                    if (methodResult == null) {
+                        throw e;
                     }
                 } else {
                     // exception isn't related to missing action method, throw it

http://git-wip-us.apache.org/repos/asf/struts/blob/586f770d/core/src/main/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptor.java
index ddc8bbb..8344caa 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptor.java
@@ -41,13 +41,6 @@ public class AnnotationValidationInterceptor extends ValidationInterceptor {
     /** Auto-generated serialization id */
     private static final long serialVersionUID = 1813272797367431184L;
 
-    private boolean devMode;
-
-    @Inject(StrutsConstants.STRUTS_DEVMODE)
-    public void setDevMode(String devMode) {
-        this.devMode = BooleanUtils.toBoolean(devMode);
-    }
-
     protected String doIntercept(ActionInvocation invocation) throws Exception {
 
         Object action = invocation.getAction();
@@ -77,24 +70,8 @@ public class AnnotationValidationInterceptor extends ValidationInterceptor {
     }
 
     // FIXME: This is copied from DefaultActionInvocation but should be exposed through the interface
-    protected Method getActionMethod(Class actionClass, String methodName) throws NoSuchMethodException {
-        Method method = null;
-        Class[] classes = new Class[0];
-        try {
-            method = actionClass.getMethod(methodName, classes);
-        } catch (NoSuchMethodException e) {
-            // hmm -- OK, try doXxx instead
-            try {
-                String altMethodName = "do" + methodName.substring(0, 1).toUpperCase() + methodName.substring(1);
-                method = actionClass.getMethod(altMethodName, classes);
-            } catch (NoSuchMethodException e1) {
-                // throw the original one
-                if (devMode) {
-                    throw e;
-                }
-            }
-        }
-        return method;
+    protected Method getActionMethod(Class<?> actionClass, String methodName) throws NoSuchMethodException {
+        return actionClass.getMethod(methodName);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/586f770d/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java b/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
index 23e1904..b535067 100644
--- a/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/DefaultActionInvocationTest.java
@@ -106,28 +106,6 @@ public class DefaultActionInvocationTest extends XWorkTestCase {
         assertEquals("success", result);
     }
 
-    public void testInvokingExistingDoInputMethod() throws Exception {
-        // given
-        DefaultActionInvocation dai = new DefaultActionInvocation(new HashMap<String, Object>(), false) {
-            public ValueStack getStack() {
-                return new StubValueStack();
-            }
-        };
-
-        SimpleAction action = new SimpleAction();
-        MockActionProxy proxy = new MockActionProxy();
-        proxy.setMethod("with");
-
-        dai.proxy = proxy;
-        dai.ognlUtil = new OgnlUtil();
-
-        // when
-        String result = dai.invokeAction(action, null);
-
-        // then
-        assertEquals("with", result);
-    }
-
     public void testInvokingMissingMethod() throws Exception {
         // given
         DefaultActionInvocation dai = new DefaultActionInvocation(new HashMap<String, Object>(), false) {
@@ -202,48 +180,6 @@ public class DefaultActionInvocationTest extends XWorkTestCase {
         assertTrue(actual instanceof IllegalArgumentException);
     }
 
-    public void testInvokingExistingDoMethodThatThrowsException() throws Exception {
-        // given
-        DefaultActionInvocation dai = new DefaultActionInvocation(new HashMap<String, Object>(), false) {
-            public ValueStack getStack() {
-                return new StubValueStack();
-            }
-        };
-
-        UnknownHandlerManager uhm = new DefaultUnknownHandlerManager() {
-            @Override
-            public boolean hasUnknownHandlers() {
-                return false;
-            }
-        };
-
-        SimpleAction action = new SimpleAction() {
-            @Override
-            public String doWith() throws Exception {
-                throw new IllegalArgumentException();
-            }
-        };
-        MockActionProxy proxy = new MockActionProxy();
-        proxy.setMethod("with");
-
-        dai.proxy = proxy;
-        dai.ognlUtil = new OgnlUtil();
-        dai.unknownHandlerManager = uhm;
-
-        // when
-        // when
-        Throwable actual = null;
-        try {
-            dai.invokeAction(action, null);
-        } catch (Exception e) {
-            actual = e;
-        }
-
-        // then
-        assertNotNull(actual);
-        assertTrue(actual instanceof IllegalArgumentException);
-    }
-
     @Deprecated
     public void testUnknownHandlerManagerThatThrowsException() throws Exception {
         // given
@@ -265,12 +201,7 @@ public class DefaultActionInvocationTest extends XWorkTestCase {
             }
         };
 
-        SimpleAction action = new SimpleAction() {
-            @Override
-            public String doWith() throws Exception {
-                throw new IllegalArgumentException();
-            }
-        };
+        SimpleAction action = new SimpleAction();
         MockActionProxy proxy = new MockActionProxy();
         proxy.setMethod("notExists");
 
@@ -315,7 +246,7 @@ public class DefaultActionInvocationTest extends XWorkTestCase {
 
         SimpleAction action = new SimpleAction() {
             @Override
-            public String doWith() throws Exception {
+            public String execute() throws Exception {
                 throw new IllegalArgumentException();
             }
         };

http://git-wip-us.apache.org/repos/asf/struts/blob/586f770d/core/src/test/java/com/opensymphony/xwork2/SimpleAction.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/SimpleAction.java b/core/src/test/java/com/opensymphony/xwork2/SimpleAction.java
index d563ebf..7f9bb7a 100644
--- a/core/src/test/java/com/opensymphony/xwork2/SimpleAction.java
+++ b/core/src/test/java/com/opensymphony/xwork2/SimpleAction.java
@@ -243,14 +243,6 @@ public class SimpleAction extends ActionSupport {
         return SUCCESS;
     }
     
-    public String doInput() throws Exception {
-        return INPUT;
-    }
-
-    public String doWith() throws Exception {
-        return "with";
-    }
-
     public long getLongFoo() {
         return longFoo;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/586f770d/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java
----------------------------------------------------------------------
diff --git a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java
index 47ad6f3..aaed47d 100644
--- a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java
+++ b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java
@@ -177,19 +177,7 @@ public class BeanValidationInterceptor extends MethodFilterInterceptor {
     protected Method getActionMethod(Class<?> actionClass, String methodName) throws NoSuchMethodException {
         Method method;
 
-        try {
-            method = actionClass.getMethod(methodName, new Class[0]);
-        } catch (NoSuchMethodException e) {
-            // hmm -- OK, try doXxx instead
-            try {
-                String altMethodName = "do" + methodName.substring(0, 1).toUpperCase() +
-                        methodName.substring(1);
-                method = actionClass.getMethod(altMethodName, new Class[0]);
-            } catch (NoSuchMethodException e1) {
-                // throw the original one
-                throw e;
-            }
-        }
+        method = actionClass.getMethod(methodName);
 
         return method;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/586f770d/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java
----------------------------------------------------------------------
diff --git a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java
index 7571aa7..5db0b36 100644
--- a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java
+++ b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java
@@ -135,19 +135,6 @@ public class BeanValidationInterceptorTest extends XWorkTestCase {
         assertEquals(2, actionErrors.size());
     }
 
-    public void testFieldActionDoExecute() throws Exception {
-        ActionProxy baseActionProxy = actionProxyFactory.createActionProxy("bean-validation", "fieldActionDoExecute", null, null);
-        FieldActionDoExecute action = (FieldActionDoExecute) baseActionProxy.getAction();
-        action.setTest(" ");
-        baseActionProxy.execute();
-
-        Map<String, List<String>> fieldErrors = ((ValidationAware) baseActionProxy.getAction()).getFieldErrors();
-
-        assertNotNull(fieldErrors);
-        assertEquals(1, fieldErrors.size());
-        assertTrue(fieldErrors.get("test").size() > 0);
-    }
-
     @Override
     protected void setUp() throws Exception {
         super.setUp();