Title: [waffle-scm] [438] trunk/waffle-core/src/main/java/org/codehaus/waffle: WAFFLE-42: Added ErrorsContext to component registry.

Diff

Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/ComponentRegistry.java (437 => 438)

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/ComponentRegistry.java	2007-11-26 19:39:22 UTC (rev 437)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/ComponentRegistry.java	2007-11-27 09:47:14 UTC (rev 438)
@@ -33,6 +33,7 @@
 import org.codehaus.waffle.monitor.ServletMonitor;
 import org.codehaus.waffle.monitor.ValidationMonitor;
 import org.codehaus.waffle.monitor.ViewMonitor;
+import org.codehaus.waffle.validation.ErrorsContext;
 import org.codehaus.waffle.validation.Validator;
 import org.codehaus.waffle.view.ViewDispatcher;
 import org.codehaus.waffle.view.ViewResolver;
@@ -88,6 +89,8 @@
 
     ValueConverterFinder getValueConverterFinder();
 
+    ErrorsContext getErrorsContext();
+
     Validator getValidator();
 
     ValidationMonitor getValidationMonitor();

Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java (437 => 438)

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java	2007-11-26 19:39:22 UTC (rev 437)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java	2007-11-27 09:47:14 UTC (rev 438)
@@ -52,7 +52,9 @@
 import org.codehaus.waffle.monitor.SilentMonitor;
 import org.codehaus.waffle.monitor.ValidationMonitor;
 import org.codehaus.waffle.monitor.ViewMonitor;
+import org.codehaus.waffle.validation.DefaultErrorsContext;
 import org.codehaus.waffle.validation.DefaultValidator;
+import org.codehaus.waffle.validation.ErrorsContext;
 import org.codehaus.waffle.validation.Validator;
 import org.codehaus.waffle.view.DefaultViewDispatcher;
 import org.codehaus.waffle.view.DefaultViewResolver;
@@ -103,6 +105,7 @@
         register(ServletMonitor.class, SilentMonitor.class, servletContext);
         register(ValidationMonitor.class, SilentMonitor.class, servletContext);
         register(ViewMonitor.class, SilentMonitor.class, servletContext);
+        register(ErrorsContext.class, DefaultErrorsContext.class, servletContext);
         register(Validator.class, DefaultValidator.class, servletContext);
         register(ViewDispatcher.class, DefaultViewDispatcher.class, servletContext);
         register(ViewResolver.class, DefaultViewResolver.class, servletContext);
@@ -286,6 +289,10 @@
         return locateByType(ServletMonitor.class);
     }
     
+    public ErrorsContext getErrorsContext() {
+        return locateByType(ErrorsContext.class);
+    }
+    
     public Validator getValidator() {
         return locateByType(Validator.class);
     }

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

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java	2007-11-26 19:39:22 UTC (rev 437)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/servlet/WaffleServlet.java	2007-11-27 09:47:14 UTC (rev 438)
@@ -34,7 +34,6 @@
 import org.codehaus.waffle.controller.ControllerDefinitionFactory;
 import org.codehaus.waffle.i18n.MessagesContext;
 import org.codehaus.waffle.monitor.ServletMonitor;
-import org.codehaus.waffle.validation.DefaultErrorsContext;
 import org.codehaus.waffle.validation.ErrorsContext;
 import org.codehaus.waffle.validation.Validator;
 import org.codehaus.waffle.view.RedirectView;
@@ -61,6 +60,7 @@
     private RequestAttributeBinder requestAttributeBinder;
     private ControllerDefinitionFactory controllerDefinitionFactory;
     private MessagesContext messagesContext;
+    private ErrorsContext errorsContext;
     private Validator validator;
     private String viewPrefix;
     private String viewSuffix;
@@ -83,6 +83,7 @@
      * @param requestAttributeBinder
      * @param controllerDefinitionFactory
      * @param messagesContext
+     * @param errorsContext
      * @param validator
      */
     public WaffleServlet(ActionMethodExecutor actionMethodExecutor,
@@ -91,7 +92,7 @@
                          DataBinder dataBinder,
                          RequestAttributeBinder requestAttributeBinder,
                          ControllerDefinitionFactory controllerDefinitionFactory, 
-                         MessagesContext messagesContext, Validator validator) {
+                         MessagesContext messagesContext, ErrorsContext errorsContext, Validator validator) {
         this.actionMethodExecutor = actionMethodExecutor;
         this.actionMethodResponseHandler = actionMethodResponseHandler;
         this.servletMonitor = servletMonitor;
@@ -99,6 +100,7 @@
         this.requestAttributeBinder = requestAttributeBinder;
         this.controllerDefinitionFactory = controllerDefinitionFactory;
         this.messagesContext = messagesContext;
+        this.errorsContext = errorsContext;
         this.validator = validator;
         componentsRetrieved = true;
     }
@@ -125,6 +127,7 @@
             requestAttributeBinder = componentRegistry.getRequestAttributeBinder();
             controllerDefinitionFactory = componentRegistry.getControllerDefinitionFactory();
             messagesContext = componentRegistry.getMessagesContext();
+            errorsContext = componentRegistry.getErrorsContext();
             validator = componentRegistry.getValidator();
         }
     }
@@ -150,9 +153,9 @@
      * @throws ServletException
      * @throws IOException
      */
-    protected void service(HttpServletRequest request,
-                           HttpServletResponse response) throws ServletException, IOException {
-        ErrorsContext errorsContext = new DefaultErrorsContext();
+    protected void service(HttpServletRequest request,            
+                           HttpServletResponse response) throws ServletException, IOException {        
+        errorsContext.clearErrorMessages();
         request.setAttribute(ERRORS_KEY, errorsContext);
         request.setAttribute(MESSAGES_KEY, messagesContext);
 

Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/DefaultErrorsContext.java (437 => 438)

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/DefaultErrorsContext.java	2007-11-26 19:39:22 UTC (rev 437)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/DefaultErrorsContext.java	2007-11-27 09:47:14 UTC (rev 438)
@@ -228,6 +228,10 @@
         return 0;
     }
 
-
+    public void clearErrorMessages() {
+        bindErrorMessages.clear();
+        fieldErrorMessages.clear();
+        globaErrorMessages.clear();        
+    }
    
 }

Modified: trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/ErrorsContext.java (437 => 438)

--- trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/ErrorsContext.java	2007-11-26 19:39:22 UTC (rev 437)
+++ trunk/waffle-core/src/main/java/org/codehaus/waffle/validation/ErrorsContext.java	2007-11-27 09:47:14 UTC (rev 438)
@@ -42,5 +42,7 @@
     
     int getErrorMessageCountForField(Type type, String fieldName);
 
+    void clearErrorMessages();
+    
 }
 

Modified: trunk/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java (437 => 438)

--- trunk/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java	2007-11-26 19:39:22 UTC (rev 437)
+++ trunk/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java	2007-11-27 09:47:14 UTC (rev 438)
@@ -59,6 +59,7 @@
 import org.codehaus.waffle.testmodel.StubControllerDefinitionFactory;
 import org.codehaus.waffle.testmodel.StubControllerNameResolver;
 import org.codehaus.waffle.testmodel.StubDataBinder;
+import org.codehaus.waffle.testmodel.StubErrorsContext;
 import org.codehaus.waffle.testmodel.StubMessageResources;
 import org.codehaus.waffle.testmodel.StubMessagesContext;
 import org.codehaus.waffle.testmodel.StubMethodDefinitionFinder;
@@ -68,7 +69,9 @@
 import org.codehaus.waffle.testmodel.StubValidator;
 import org.codehaus.waffle.testmodel.StubViewDispatcher;
 import org.codehaus.waffle.testmodel.StubViewResolver;
+import org.codehaus.waffle.validation.DefaultErrorsContext;
 import org.codehaus.waffle.validation.DefaultValidator;
+import org.codehaus.waffle.validation.ErrorsContext;
 import org.codehaus.waffle.validation.Validator;
 import org.codehaus.waffle.view.DefaultViewDispatcher;
 import org.codehaus.waffle.view.DefaultViewResolver;
@@ -134,7 +137,7 @@
             {
                 one(servletContext).getInitParameterNames();
                 will(returnValue(EMPTY_ENUMERATION));
-                exactly(25).of(servletContext).getInitParameter(with(any(String.class)));
+                exactly(26).of(servletContext).getInitParameter(with(any(String.class)));
             }
         });
 
@@ -157,6 +160,7 @@
         assertTrue(componentRegistry.getRegistrarMonitor() instanceof AbstractWritingMonitor);
         assertTrue(componentRegistry.getServletMonitor() instanceof AbstractWritingMonitor);
         assertTrue(componentRegistry.getValueConverterFinder() instanceof OgnlValueConverterFinder);
+        assertTrue(componentRegistry.getErrorsContext() instanceof DefaultErrorsContext);
         assertTrue(componentRegistry.getValidator() instanceof DefaultValidator);
         assertTrue(componentRegistry.getValidationMonitor() instanceof AbstractWritingMonitor);
         assertTrue(componentRegistry.getViewDispatcher() instanceof DefaultViewDispatcher);
@@ -214,7 +218,9 @@
                 will(returnValue(StubMonitor.class.getName()));
                 one(servletContext).getInitParameter(ValueConverterFinder.class.getName());
                 will(returnValue(OgnlValueConverterFinder.class.getName()));
-// TODO fails for some reason                
+                one(servletContext).getInitParameter(ErrorsContext.class.getName());
+                will(returnValue(StubErrorsContext.class.getName()));
+//TODO fails for some reason                
 //                one(servletContext).getInitParameter(Validator.class.getName());
 //                will(returnValue(StubValidator.class.getName()));
                 one(servletContext).getInitParameter(ValidationMonitor.class.getName());

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

--- trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java	2007-11-26 19:39:22 UTC (rev 437)
+++ trunk/waffle-core/src/test/java/org/codehaus/waffle/servlet/WaffleServletTest.java	2007-11-27 09:47:14 UTC (rev 438)
@@ -44,6 +44,7 @@
 import org.codehaus.waffle.i18n.MessagesContext;
 import org.codehaus.waffle.monitor.ServletMonitor;
 import org.codehaus.waffle.monitor.SilentMonitor;
+import org.codehaus.waffle.validation.DefaultErrorsContext;
 import org.codehaus.waffle.validation.ErrorsContext;
 import org.codehaus.waffle.validation.Validator;
 import org.codehaus.waffle.view.View;
@@ -87,6 +88,7 @@
             one(componentRegistry).getRequestAttributeBinder();
             one(componentRegistry).getControllerDefinitionFactory();
             one(componentRegistry).getMessagesContext();
+            one(componentRegistry).getErrorsContext();
             one(componentRegistry).getValidator();
         }});
 
@@ -155,7 +157,7 @@
                                                         monitor,
                                                         new OgnlDataBinder(new OgnlValueConverterFinder(), null, monitor),
                                                         requestAttributeBinder,
-                                                        null, new DefaultMessagesContext(), validator) {
+                                                        null, new DefaultMessagesContext(), new DefaultErrorsContext(), validator) {
             @Override
             protected ControllerDefinition getControllerDefinition(HttpServletRequest request, HttpServletResponse response) {
                 return new ControllerDefinition("no name", nonDispatchingController, methodDefinition);
@@ -218,7 +220,7 @@
                                                         monitor,
                                                         new OgnlDataBinder(new OgnlValueConverterFinder(), null, monitor),
                                                         requestAttributeBinder,
-                                                        null, new DefaultMessagesContext(), validator) {
+                                                        null, new DefaultMessagesContext(), new DefaultErrorsContext(), validator) {
             @Override
             protected ControllerDefinition getControllerDefinition(HttpServletRequest request, HttpServletResponse response) {
                 return new ControllerDefinition("no name", nonDispatchingController, methodDefinition);
@@ -254,6 +256,10 @@
         actionFactoryField.setAccessible(true);
         actionFactoryField.set(waffleServlet, controllerDefinitionFactory);
 
+        Field errorsContextField = WaffleServlet.class.getDeclaredField("errorsContext");
+        errorsContextField.setAccessible(true);
+        errorsContextField.set(waffleServlet, new DefaultErrorsContext());
+
         waffleServlet.service(request, null);
     }
 
@@ -300,7 +306,7 @@
                 new SilentMonitor(),
                 new OgnlDataBinder(new OgnlValueConverterFinder(), null, new SilentMonitor()),
                 requestAttributeBinder,
-                null, new DefaultMessagesContext(), validator) {
+                null, new DefaultMessagesContext(), new DefaultErrorsContext(), validator) {
             @Override
             protected ControllerDefinition getControllerDefinition(HttpServletRequest request, HttpServletResponse response) {
                 return new ControllerDefinition("no name", nonDispatchingController, null);
@@ -375,14 +381,18 @@
         dataBinderField.setAccessible(true);
         dataBinderField.set(waffleServlet, new OgnlDataBinder(new OgnlValueConverterFinder(), null, new SilentMonitor()));
 
-        Field mockMethodExecutorField = WaffleServlet.class.getDeclaredField("actionMethodExecutor");
-        mockMethodExecutorField.setAccessible(true);
-        mockMethodExecutorField.set(waffleServlet, actionMethodExecutor);
+        Field actionMethodExecutorField = WaffleServlet.class.getDeclaredField("actionMethodExecutor");
+        actionMethodExecutorField.setAccessible(true);
+        actionMethodExecutorField.set(waffleServlet, actionMethodExecutor);
 
-        Field mockMonitorField = WaffleServlet.class.getDeclaredField("servletMonitor");
-        mockMonitorField.setAccessible(true);
-        mockMonitorField.set(waffleServlet, servletMonitor);
-        
+        Field servletMonitorField = WaffleServlet.class.getDeclaredField("servletMonitor");
+        servletMonitorField.setAccessible(true);
+        servletMonitorField.set(waffleServlet, servletMonitor);
+
+        Field errorsContextField = WaffleServlet.class.getDeclaredField("errorsContext");
+        errorsContextField.setAccessible(true);
+        errorsContextField.set(waffleServlet, new DefaultErrorsContext());
+
         Field validatorFactoryField = WaffleServlet.class.getDeclaredField("validator");
         validatorFactoryField.setAccessible(true);
         validatorFactoryField.set(waffleServlet, validator);

Added: trunk/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubErrorsContext.java (0 => 438)

--- trunk/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubErrorsContext.java	                        (rev 0)
+++ trunk/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubErrorsContext.java	2007-11-27 09:47:14 UTC (rev 438)
@@ -0,0 +1,53 @@
+package org.codehaus.waffle.testmodel;
+
+import java.util.List;
+
+import org.codehaus.waffle.validation.ErrorMessage;
+import org.codehaus.waffle.validation.ErrorsContext;
+import org.codehaus.waffle.validation.ErrorMessage.Type;
+
+public class StubErrorsContext implements ErrorsContext {
+
+    public void addErrorMessage(ErrorMessage message) {
+    }
+
+    public List<ErrorMessage> getAllErrorMessages() {
+        return null;
+    }
+
+    public int getErrorMessageCount() {        
+        return 0;
+    }
+
+    public int getErrorMessageCountForField(Type type, String fieldName) {
+        return 0;
+    }
+
+    public int getErrorMessageCountOfType(Type type) {
+        return 0;
+    }
+
+    public List<? extends ErrorMessage> getErrorMessagesForField(Type type, String fieldName) {
+        return null;
+    }
+
+    public List<? extends ErrorMessage> getErrorMessagesOfType(Type type) {
+        return null;
+    }
+
+    public boolean hasErrorMessages() {
+        return false;
+    }
+
+    public boolean hasErrorMessagesForField(Type type, String fieldName) {
+        return false;
+    }
+
+    public boolean hasErrorMessagesOfType(Type type) {
+        return false;
+    }
+
+    public void clearErrorMessages() {
+    }
+    
+}


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to