Title: [waffle-scm] [624] trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet: Added overrideable buildActionMethodFailureView() method.
Revision
624
Author
mauro
Date
2008-04-18 12:03:29 -0500 (Fri, 18 Apr 2008)

Log Message

Added overrideable buildActionMethodFailureView() method.
Renamed buildReferringView() to buildView(), more in line with View type.

Modified Paths

Diff

Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java (623 => 624)

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java	2008-04-18 16:39:57 UTC (rev 623)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java	2008-04-18 17:03:29 UTC (rev 624)
@@ -163,12 +163,12 @@
             try {
 
                 if (errorsContext.hasErrorMessages() || noMethodDefinition(controllerDefinition)) {
-                    view = buildReferringView(controllerDefinition);
+                    view = buildView(controllerDefinition);
                 } else {
                     actionMethodExecutor.execute(actionMethodResponse, controllerDefinition);
 
                     if (errorsContext.hasErrorMessages()) {
-                        view = buildReferringView(controllerDefinition);
+                        view = buildView(controllerDefinition);
                     } else if (actionMethodResponse.getReturnValue() == null) {
                         // Null or VOID indicate a Waffle convention (return to referring page)
                         // unless PRG is disabled 
@@ -178,19 +178,19 @@
                                 view = buildRedirectingView(request, controllerDefinition);
                             } else {
                                 // PRG is disabled
-                                view = buildReferringView(controllerDefinition);
+                                view = buildView(controllerDefinition);
                             }
                         } else { // was a GET
-                            view = buildReferringView(controllerDefinition);
+                            view = buildView(controllerDefinition);
                         }
                     }
                 }
 
             } catch (ActionMethodInvocationException e) {
+                servletMonitor.actionMethodInvocationFailed(e);
                 errorsContext.addErrorMessage(new GlobalErrorMessage("Action method invocation failed for controller "
                         + controllerDefinition.getName() + ", :" + e.getMessage(), e));
-                view = buildReferringView(controllerDefinition);
-                servletMonitor.actionMethodInvocationFailed(e);
+                view = buildActionMethodFailureView(controllerDefinition);
             }
             requestAttributeBinder.bind(request, controllerDefinition.getController());
         } catch (WaffleException e) {      
@@ -241,7 +241,7 @@
      * @param controllerDefinition the ControllerDefinition
      * @return The View
      */
-    protected View buildReferringView(ControllerDefinition controllerDefinition) {
+    protected View buildView(ControllerDefinition controllerDefinition) {
         String controllerValue = viewPrefix + controllerDefinition.getName() + viewSuffix;
         return new View(controllerValue, controllerDefinition.getController());
     }
@@ -259,14 +259,27 @@
     }
 
     /**
+     * Builds the view for action method failures, by default the referring view. 
+     * The user can extend and override behaviour, eg to throw a ServletException.
+     * 
+     * @param controllerDefinition the ControllerDefinition
+     * @return The referring View
+     * @throws ServletException if required
+     */
+    protected View buildActionMethodFailureView(ControllerDefinition controllerDefinition) throws ServletException {
+        return buildView(controllerDefinition);
+    }
+
+    /**
      * Builds the errors view, for cases in which the context container or the controller are not found.
      * The user can extend and override behaviour, eg to throw a ServletException.
      * 
      * @param request the HttpServletRequest
-     * @return The View
+     * @return The referring View
+     * @throws ServletException if required
      */
     protected View buildErrorsView(HttpServletRequest request) throws ServletException {
-        return buildReferringView(new ControllerDefinition(errorsView, null, null));
+        return buildView(new ControllerDefinition(errorsView, null, null));
     }
 
 }

Modified: trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java (623 => 624)

--- trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java	2008-04-18 16:39:57 UTC (rev 623)
+++ trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java	2008-04-18 17:03:29 UTC (rev 624)
@@ -572,7 +572,7 @@
         viewSuffixField.set(servlet, "-suffix");
 
         ControllerDefinition controllerDefinition = new ControllerDefinition("foobar", null, null);
-        View view = servlet.buildReferringView(controllerDefinition);
+        View view = servlet.buildView(controllerDefinition);
 
         assertEquals("prefix-foobar-suffix", view.getValue());
     }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to