Title: [waffle-scm] [382] trunk/core/src/main/java/org/codehaus/waffle: Added ContextMonitor.

Diff

Modified: trunk/core/src/main/java/org/codehaus/waffle/ComponentRegistry.java (381 => 382)

--- trunk/core/src/main/java/org/codehaus/waffle/ComponentRegistry.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/main/java/org/codehaus/waffle/ComponentRegistry.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -26,6 +26,7 @@
 import org.codehaus.waffle.i18n.MessageResources;
 import org.codehaus.waffle.monitor.ActionMonitor;
 import org.codehaus.waffle.monitor.BindMonitor;
+import org.codehaus.waffle.monitor.ContextMonitor;
 import org.codehaus.waffle.monitor.RegistrarMonitor;
 import org.codehaus.waffle.monitor.ServletMonitor;
 import org.codehaus.waffle.validation.Validator;
@@ -56,7 +57,9 @@
     BindMonitor getBindMonitor();
 
     ContextContainerFactory getContextContainerFactory();
-
+    
+    ContextMonitor getContextMonitor();
+    
     ControllerDefinitionFactory getControllerDefinitionFactory();
 
     ControllerNameResolver getControllerNameResolver();

Modified: trunk/core/src/main/java/org/codehaus/waffle/context/AbstractContextContainerFactory.java (381 => 382)

--- trunk/core/src/main/java/org/codehaus/waffle/context/AbstractContextContainerFactory.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/main/java/org/codehaus/waffle/context/AbstractContextContainerFactory.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -10,14 +10,16 @@
  *****************************************************************************/
 package org.codehaus.waffle.context;
 
+import static java.text.MessageFormat.format;
+
+import javax.servlet.ServletContext;
+
 import org.codehaus.waffle.WaffleException;
 import org.codehaus.waffle.i18n.MessageResources;
+import org.codehaus.waffle.monitor.ContextMonitor;
 import org.codehaus.waffle.registrar.Registrar;
 import org.codehaus.waffle.registrar.RegistrarAssistant;
 
-import javax.servlet.ServletContext;
-import java.text.MessageFormat;
-
 /**
  * @author Michael Ward
  * @author Mauro Talevi
@@ -26,9 +28,11 @@
     protected final MessageResources messageResources;
     protected RegistrarAssistant registrarAssistant;
     protected ContextContainer applicationContextContainer;
+    private final ContextMonitor contextMonitor;
 
-    public AbstractContextContainerFactory(MessageResources messagesResources) {
+    public AbstractContextContainerFactory(MessageResources messagesResources, ContextMonitor contextMonitor) {
         this.messageResources = messagesResources;
+        this.contextMonitor = contextMonitor;
     }
 
     public RegistrarAssistant getRegistrarAssistant() {
@@ -36,25 +40,26 @@
     }
 
     public void initialize(ServletContext servletContext) throws WaffleException {
-        handleRegistrar(servletContext);
+        initializeRegistrar(servletContext);
         servletContext.setAttribute(ContextContainerFactory.class.getName(), this); // register self to context
+        contextMonitor.contextInitialized();
     }
 
     /**
-     * Locate the Registrar from the ServletContext's InitParameter.
+     * Create the Registrar from the ServletContext's InitParameter.
      *
      * @param servletContext
      */
-    private void handleRegistrar(ServletContext servletContext) {
+    private void initializeRegistrar(ServletContext servletContext) {
         String registrarClassName = servletContext.getInitParameter(Registrar.class.getName());
 
         try {
             ClassLoader loader = this.getClass().getClassLoader();
-            Class clazz = loader.loadClass(registrarClassName);
-            registrarAssistant = new RegistrarAssistant(clazz);
+            Class<?> registrarClass = loader.loadClass(registrarClassName);
+            registrarAssistant = new RegistrarAssistant(registrarClass);
         } catch (ClassNotFoundException e) {
-            String message = MessageFormat
-                    .format("Unable to load the Registrar [{0}] defined as context-param in web.xml",
+            contextMonitor.registrarNotFound(registrarClassName);
+            String message = format("Unable to load the Registrar [{0}] defined as context-param in web.xml",
                             registrarClassName);
             throw new WaffleException(message, e);
         }
@@ -65,6 +70,7 @@
         applicationContextContainer.registerComponentInstance(messageResources);
         buildApplicationLevelRegistry();
         applicationContextContainer.start();
+        contextMonitor.applicationContextContainerStarted();
     }
 
     public void destroy() {
@@ -72,6 +78,7 @@
             applicationContextContainer.stop();
             applicationContextContainer.dispose();
             applicationContextContainer = null;
+            contextMonitor.applicationContextContainerDestroyed();
         }
     }
 
@@ -84,6 +91,10 @@
         return applicationContextContainer;
     }
 
+    protected ContextMonitor getContextMonitor(){
+        return contextMonitor;
+    }
+    
     protected abstract ContextContainer buildApplicationContextContainer();
 
     protected abstract Registrar createRegistrar(ContextContainer contextContainer);

Modified: trunk/core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java (381 => 382)

--- trunk/core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -44,6 +44,7 @@
 import org.codehaus.waffle.i18n.MessageResources;
 import org.codehaus.waffle.monitor.ActionMonitor;
 import org.codehaus.waffle.monitor.BindMonitor;
+import org.codehaus.waffle.monitor.ContextMonitor;
 import org.codehaus.waffle.monitor.RegistrarMonitor;
 import org.codehaus.waffle.monitor.ServletMonitor;
 import org.codehaus.waffle.monitor.SilentMonitor;
@@ -84,6 +85,7 @@
         register(BindMonitor.class, SilentMonitor.class, servletContext);
         register(DataBinder.class, OgnlDataBinder.class, servletContext);
         register(ContextContainerFactory.class, PicoContextContainerFactory.class, servletContext);
+        register(ContextMonitor.class, SilentMonitor.class, servletContext);
         register(ControllerDefinitionFactory.class, ContextControllerDefinitionFactory.class, servletContext);
         register(ControllerNameResolver.class, ContextPathControllerNameResolver.class, servletContext);
         register(MessageResources.class, DefaultMessageResources.class, servletContext);
@@ -219,6 +221,10 @@
         return locateByType(ContextContainerFactory.class);
     }
 
+    public ContextMonitor getContextMonitor() {
+        return locateByType(ContextMonitor.class);
+    }
+
     public ControllerNameResolver getControllerNameResolver() {
         return locateByType(ControllerNameResolver.class);
     }

Modified: trunk/core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java (381 => 382)

--- trunk/core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -18,13 +18,16 @@
 import org.codehaus.waffle.context.ContextContainer;
 import org.codehaus.waffle.context.ContextLevel;
 import org.codehaus.waffle.i18n.MessageResources;
+import org.codehaus.waffle.monitor.ContextMonitor;
 import org.codehaus.waffle.monitor.RegistrarMonitor;
 import org.codehaus.waffle.monitor.SilentMonitor;
 import org.codehaus.waffle.registrar.Registrar;
 import org.codehaus.waffle.registrar.pico.PicoRegistrar;
+import org.picocontainer.ComponentMonitor;
 import org.picocontainer.MutablePicoContainer;
 import org.picocontainer.PicoContainer;
 import org.picocontainer.defaults.DefaultPicoContainer;
+import org.picocontainer.defaults.LifecycleStrategy;
 import org.picocontainer.monitors.NullComponentMonitor;
 
 /**
@@ -32,11 +35,11 @@
  * @author Mauro Talevi
  */
 public class PicoContextContainerFactory extends AbstractContextContainerFactory {
-    private final NullComponentMonitor nullComponentMonitor = new NullComponentMonitor();
-    private final PicoLifecycleStrategy picoLifecycleStrategy = new PicoLifecycleStrategy(nullComponentMonitor);
+    private final ComponentMonitor picoComponentMonitor = new NullComponentMonitor();
+    private final LifecycleStrategy picoLifecycleStrategy = new PicoLifecycleStrategy(picoComponentMonitor);
 
-    public PicoContextContainerFactory(MessageResources messageResources) {
-        super(messageResources);
+    public PicoContextContainerFactory(MessageResources messageResources, ContextMonitor contextMonitor) {
+        super(messageResources, contextMonitor);
     }
 
     protected ContextContainer buildApplicationContextContainer() {
@@ -49,6 +52,7 @@
 
         PicoContextContainer sessionContextContainer = new PicoContextContainer(delegate);
         registrarAssistant.executeDelegatingRegistrar(createRegistrar(sessionContextContainer), ContextLevel.SESSION);
+        getContextMonitor().sessionContextContainerCreated(applicationContextContainer);
         return sessionContextContainer;
     }
 
@@ -66,6 +70,7 @@
 
             ContextContainer requestContextContainer = new PicoContextContainer(buildMutablePicoContainer(delegate));
             registrarAssistant.executeDelegatingRegistrar(createRegistrar(requestContextContainer), ContextLevel.REQUEST);
+            getContextMonitor().requestContextContainerCreated(sessionContextContainer);
             return requestContextContainer;
         } finally {
             messageResources.useLocale(request.getLocale());
@@ -76,12 +81,13 @@
         RegistrarMonitor registrarMonitor = contextContainer.getComponentInstanceOfType(RegistrarMonitor.class);
         if ( registrarMonitor == null ){
             registrarMonitor = new SilentMonitor();
-            // TODO monitor it
         }
-        return new PicoRegistrar((MutablePicoContainer) contextContainer.getDelegate(), registrarMonitor);
+        Registrar registrar = new PicoRegistrar((MutablePicoContainer) contextContainer.getDelegate(), registrarMonitor);
+        getContextMonitor().registrarCreated(registrar, registrarMonitor);
+        return registrar;
     }
 
     private MutablePicoContainer buildMutablePicoContainer(PicoContainer parent) {
-        return new DefaultPicoContainer(nullComponentMonitor, picoLifecycleStrategy, parent);
+        return new DefaultPicoContainer(picoComponentMonitor, picoLifecycleStrategy, parent);
     }
 }

Modified: trunk/core/src/main/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactory.java (381 => 382)

--- trunk/core/src/main/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactory.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/main/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactory.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -1,20 +1,21 @@
 package org.codehaus.waffle.context.pico;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
 import org.codehaus.waffle.WaffleException;
 import org.codehaus.waffle.context.ContextContainer;
 import org.codehaus.waffle.i18n.MessageResources;
+import org.codehaus.waffle.monitor.ContextMonitor;
 import org.jruby.Ruby;
 import org.picocontainer.MutablePicoContainer;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
 public class RubyAwarePicoContextContainerFactory extends PicoContextContainerFactory {
 
-    public RubyAwarePicoContextContainerFactory(MessageResources messageResources) {
-        super(messageResources);
+    public RubyAwarePicoContextContainerFactory(MessageResources messageResources, ContextMonitor contextMonitor) {
+        super(messageResources, contextMonitor);
     }
 
     @Override

Modified: trunk/core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java (381 => 382)

--- trunk/core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -29,6 +29,8 @@
 import org.codehaus.waffle.action.ActionMethodResponse;
 import org.codehaus.waffle.action.MethodDefinition;
 import org.codehaus.waffle.action.HierarchicalArgumentResolver.Scope;
+import org.codehaus.waffle.context.ContextContainer;
+import org.codehaus.waffle.registrar.Registrar;
 import org.codehaus.waffle.validation.BindErrorMessage;
 import org.codehaus.waffle.view.View;
 
@@ -37,7 +39,7 @@
  * 
  * @author Mauro Talevi
  */
-public abstract class AbstractWritingMonitor implements ActionMonitor, BindMonitor, RegistrarMonitor, ServletMonitor {
+public abstract class AbstractWritingMonitor implements ActionMonitor, BindMonitor, ContextMonitor, RegistrarMonitor, ServletMonitor {
 
     private Map<String, Level> levels;
     private Map<String, String> templates;
@@ -59,14 +61,21 @@
         levels.put("methodIntercepted", INFO);
         levels.put("argumentNameResolved", INFO);
         levels.put("argumentNameNotMatched", INFO);
+        levels.put("responseIsCommitted", INFO);
+        levels.put("viewDispatched", INFO);
         levels.put("bindFailedForModel", INFO);
         levels.put("bindFailedForController", INFO);
-        levels.put("responseIsCommitted", INFO);
-        levels.put("viewDispatched", INFO);
-        levels.put("servletServiceFailed", WARN);
+        levels.put("registrarCreated", INFO);
+        levels.put("registrarNotFound", WARN);
+        levels.put("contextInitialized", DEBUG);
+        levels.put("applicationContextContainerStarted", DEBUG);
+        levels.put("applicationContextContainerDestroyed", DEBUG);
+        levels.put("sessionContextContainerCreated", DEBUG);
+        levels.put("requestContextContainerCreated", DEBUG);
         levels.put("componentRegistered", DEBUG);
         levels.put("instanceRegistered", DEBUG);
         levels.put("nonCachingComponentRegistered", DEBUG);
+        levels.put("servletServiceFailed", WARN);
         return levels;
     }
 
@@ -82,10 +91,17 @@
         templates.put("methodIntercepted", "Method ''{0}'' intercepted with arguments {1} and returned value ''{2}''");
         templates.put("argumentNameResolved", "Argument name ''{0}'' resolved to ''{1}'' in scope ''{2}''");
         templates.put("argumentNameNotMatched", "Argument name ''{0}'' not matched by pattern ''{1}''");
+        templates.put("responseIsCommitted", "Response is committed for response: {0}");
+        templates.put("viewDispatched", "View dispatched: {0}");
         templates.put("bindFailedForModel", "Bind failed for model ''{0}'': {1}");
         templates.put("bindFailedForController", "Bind failed for controller ''{0}'': {1}");
-        templates.put("responseIsCommitted", "Response is committed for response: {0}");
-        templates.put("viewDispatched", "View dispatched: {0}");
+        templates.put("registrarCreated", "Registrar created {0} with monitor {1}");
+        templates.put("registrarNotFound", "Registrar not found {0}");
+        templates.put("contextInitialized", "Context initialized");
+        templates.put("applicationContextContainerStarted", "Application context container started");
+        templates.put("applicationContextContainerDestroyed", "Application context container destroyed");
+        templates.put("sessionContextContainerCreated", "Session context container created with parent application container {0}");
+        templates.put("requestContextContainerCreated", "Request context container created with parent session container {0}");
         templates.put("componentRegistered", "Registered component of type {1} with key {0} and parameters {2}");
         templates.put("instanceRegistered", "Registered instance {1} with key {0}");
         templates.put("nonCachingComponentRegistered", "Registered non-caching component of type {1} with key {0} and parameters {2}");
@@ -165,6 +181,14 @@
         write("argumentNameNotMatched", name, pattern);                
     }
     
+    public void responseIsCommitted(HttpServletResponse response) {
+        write("responseIsCommitted", response);        
+    }
+
+    public void viewDispatched(View view) {
+        write("viewDispatched", view);        
+    }
+
     public void bindFailedForModel(Object bindModel, BindErrorMessage errorMessage){
         write("bindFailedForModel", bindModel, errorMessage);
     }
@@ -173,14 +197,34 @@
         write("bindFailedForController", controller, cause);
     }
     
-    public void responseIsCommitted(HttpServletResponse response) {
-        write("responseIsCommitted", response);        
+    public void registrarCreated(Registrar registrar, RegistrarMonitor registrarMonitor) {
+        write("registrarCreated", registrar, registrarMonitor);         
     }
 
-    public void viewDispatched(View view) {
-        write("viewDispatched", view);
+    public void registrarNotFound(String registrarClassName) {
+        write("registrarNotFound", registrarClassName); 
     }
+
+    public void contextInitialized() {
+        write("contextInitialized");        
+    }
     
+    public void applicationContextContainerStarted() {
+        write("applicationContextContainerStarted");        
+    }
+
+    public void applicationContextContainerDestroyed() {
+        write("applicationContextContainerDestroyed");                
+    }
+
+    public void sessionContextContainerCreated(ContextContainer applicationContextContainer) {
+        write("sessionContextContainerCreated", applicationContextContainer);                        
+    }
+
+    public void requestContextContainerCreated(ContextContainer sessionContextContainer){
+        write("requestContextContainerCreated", sessionContextContainer);                                
+    }
+
     public void componentRegistered(Object key, Class<?> type, Object[] parameters) {
         write("componentRegistered", key, type, asList(parameters));
     }
@@ -196,7 +240,7 @@
     public void servletServiceFailed(Exception cause){
         write("servletServiceFailed", cause);        
     }
-
+    
     /**
      * Writes message for a given level. Concrete implementations should provide writing functionality.
      * 

Added: trunk/core/src/main/java/org/codehaus/waffle/monitor/ContextMonitor.java (0 => 382)

--- trunk/core/src/main/java/org/codehaus/waffle/monitor/ContextMonitor.java	                        (rev 0)
+++ trunk/core/src/main/java/org/codehaus/waffle/monitor/ContextMonitor.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * Copyright (C) 2005,2006 Michael Ward                                      *
+ * All rights reserved.                                                      *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD      *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file.                                                     *
+ *                                                                           *
+ * Original code by: Mauro Talevi                                            *
+ *****************************************************************************/
+package org.codehaus.waffle.monitor;
+
+import org.codehaus.waffle.context.ContextContainer;
+import org.codehaus.waffle.registrar.Registrar;
+
+/**
+ * A monitor for context-related events
+ * 
+ * @author Mauro Talevi
+ */
+public interface ContextMonitor extends Monitor {
+
+    void registrarCreated(Registrar registrar, RegistrarMonitor registrarMonitor);
+
+    void registrarNotFound(String registrarClassName);
+
+    void contextInitialized();
+
+    void applicationContextContainerStarted();
+
+    void applicationContextContainerDestroyed();
+
+    void sessionContextContainerCreated(ContextContainer applicationContextContainer);
+
+    void requestContextContainerCreated(ContextContainer sessionContextContainer);
+
+}

Modified: trunk/core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java (381 => 382)

--- trunk/core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -45,6 +45,7 @@
 import org.codehaus.waffle.monitor.AbstractWritingMonitor;
 import org.codehaus.waffle.monitor.ActionMonitor;
 import org.codehaus.waffle.monitor.BindMonitor;
+import org.codehaus.waffle.monitor.ContextMonitor;
 import org.codehaus.waffle.monitor.RegistrarMonitor;
 import org.codehaus.waffle.monitor.ServletMonitor;
 import org.codehaus.waffle.testmodel.StubActionMethodExecutor;
@@ -129,7 +130,7 @@
             {
                 one(servletContext).getInitParameterNames();
                 will(returnValue(EMPTY_ENUMERATION));
-                exactly(20).of(servletContext).getInitParameter(with(any(String.class)));
+                exactly(21).of(servletContext).getInitParameter(with(any(String.class)));
             }
         });
 
@@ -140,9 +141,10 @@
         assertTrue(componentRegistry.getActionMonitor() instanceof AbstractWritingMonitor);
         assertTrue(componentRegistry.getBindErrorMessageResolver() instanceof DefaultBindErrorMessageResolver);
         assertTrue(componentRegistry.getBindMonitor() instanceof AbstractWritingMonitor);
+        assertTrue(componentRegistry.getContextContainerFactory() instanceof AbstractContextContainerFactory);
+        assertTrue(componentRegistry.getContextMonitor() instanceof AbstractWritingMonitor);
         assertTrue(componentRegistry.getControllerNameResolver() instanceof ContextPathControllerNameResolver);
         assertTrue(componentRegistry.getControllerDefinitionFactory() instanceof ContextControllerDefinitionFactory);
-        assertTrue(componentRegistry.getContextContainerFactory() instanceof AbstractContextContainerFactory);
         assertTrue(componentRegistry.getDataBinder() instanceof OgnlDataBinder);
         assertTrue(componentRegistry.getMethodNameResolver() instanceof RequestParameterMethodNameResolver);
         assertTrue(componentRegistry.getMessageResources() instanceof DefaultMessageResources);
@@ -182,10 +184,12 @@
                 will(returnValue(StubBindErrorMessageResolver.class.getName()));
                 one(servletContext).getInitParameter(BindMonitor.class.getName());
                 will(returnValue(StubMonitor.class.getName()));
+                one(servletContext).getInitParameter(ContextContainerFactory.class.getName());
+                will(returnValue(StubContextContainerFactory.class.getName()));
+                one(servletContext).getInitParameter(ContextMonitor.class.getName());
+                will(returnValue(StubMonitor.class.getName()));
                 one(servletContext).getInitParameter(ControllerDefinitionFactory.class.getName());
                 will(returnValue(StubControllerDefinitionFactory.class.getName()));
-                one(servletContext).getInitParameter(ContextContainerFactory.class.getName());
-                will(returnValue(StubContextContainerFactory.class.getName()));
                 one(servletContext).getInitParameter(ControllerNameResolver.class.getName());
                 will(returnValue(StubControllerNameResolver.class.getName()));
                 one(servletContext).getInitParameter(DataBinder.class.getName());

Modified: trunk/core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java (381 => 382)

--- trunk/core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -30,6 +30,7 @@
 import org.codehaus.waffle.context.ContextContainerFactory;
 import org.codehaus.waffle.i18n.DefaultMessageResources;
 import org.codehaus.waffle.i18n.MessageResources;
+import org.codehaus.waffle.monitor.SilentMonitor;
 import org.codehaus.waffle.registrar.Registrar;
 import org.codehaus.waffle.testmodel.ApplicationLevelComponent;
 import org.codehaus.waffle.testmodel.CustomRegistrar;
@@ -61,7 +62,7 @@
 
     @Test
     public void canBuildEachContextLevelContainer() {
-        final PicoContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources);
+        final PicoContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources, new SilentMonitor());
 
 
         // Mock ServletContext
@@ -132,7 +133,7 @@
 
     @Test
     public void canInitializeContext() {
-        final AbstractContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources);
+        final AbstractContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources, new SilentMonitor());
 
         // Mock ServletContext
         final ServletContext servletContext = mockery.mock(ServletContext.class);
@@ -230,7 +231,7 @@
 
     @Test
     public void canBuildApplicationContextContainerWithLifecycle() {
-        PicoContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources);
+        PicoContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources, new SilentMonitor());
         ContextContainer container = contextContainerFactory.buildApplicationContextContainer();
 
         StubStartable startable = new StubStartable();
@@ -249,7 +250,7 @@
 
     @Test
     public void canBuildSessionLevelContainerWithLifecycle() {
-        final PicoContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources);
+        final PicoContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources, new SilentMonitor());
 
         // Mock ServletContext
         final ServletContext servletContext = mockery.mock(ServletContext.class);
@@ -280,7 +281,7 @@
 
     @Test
     public void canBuildRequestLevelContainerWithLifecycle() {
-        final PicoContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources);
+        final PicoContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources, new SilentMonitor());
 
         // Mock ServletContext
         final ServletContext servletContext = mockery.mock(ServletContext.class);

Modified: trunk/core/src/test/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactoryTest.java (381 => 382)

--- trunk/core/src/test/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactoryTest.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/test/java/org/codehaus/waffle/context/pico/RubyAwarePicoContextContainerFactoryTest.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -4,6 +4,7 @@
 import static org.junit.Assert.assertTrue;
 
 import org.codehaus.waffle.context.ContextContainer;
+import org.codehaus.waffle.monitor.SilentMonitor;
 import org.jruby.Ruby;
 import org.jruby.RubyBoolean;
 import org.jruby.javasupport.JavaEmbedUtils;
@@ -15,7 +16,7 @@
 
     @Test
     public void canBuildApplicationContextContainer() {
-        RubyAwarePicoContextContainerFactory factory = new RubyAwarePicoContextContainerFactory(null);
+        RubyAwarePicoContextContainerFactory factory = new RubyAwarePicoContextContainerFactory(null, new SilentMonitor());
         ContextContainer contextContainer = factory.buildApplicationContextContainer();
         PicoContainer picoContainer = (MutablePicoContainer)contextContainer.getDelegate();
         Ruby runtime = (Ruby) picoContainer.getComponentInstance(Ruby.class);

Modified: trunk/core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java (381 => 382)

--- trunk/core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java	2007-11-15 16:20:53 UTC (rev 381)
+++ trunk/core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java	2007-11-15 17:07:11 UTC (rev 382)
@@ -8,14 +8,17 @@
 import org.codehaus.waffle.action.ActionMethodResponse;
 import org.codehaus.waffle.action.MethodDefinition;
 import org.codehaus.waffle.action.HierarchicalArgumentResolver.Scope;
+import org.codehaus.waffle.context.ContextContainer;
 import org.codehaus.waffle.monitor.ActionMonitor;
 import org.codehaus.waffle.monitor.BindMonitor;
+import org.codehaus.waffle.monitor.ContextMonitor;
 import org.codehaus.waffle.monitor.RegistrarMonitor;
 import org.codehaus.waffle.monitor.ServletMonitor;
+import org.codehaus.waffle.registrar.Registrar;
 import org.codehaus.waffle.validation.BindErrorMessage;
 import org.codehaus.waffle.view.View;
 
-public class StubMonitor implements ActionMonitor, BindMonitor, RegistrarMonitor, ServletMonitor {
+public class StubMonitor implements ActionMonitor, BindMonitor, ContextMonitor, RegistrarMonitor, ServletMonitor {
 
     public void defaultActionMethodFound(MethodDefinition methodDefinition) {
     }
@@ -46,22 +49,40 @@
 
     public void argumentNameResolved(String name, Object value, Scope scope) {
     }
+    
+    public void responseIsCommitted(HttpServletResponse response) {
+    }
 
+    public void viewDispatched(View view) {
+    }
+
     public void bindFailedForModel(Object bindModel, BindErrorMessage errorMessage) {
     }
 
     public void bindFailedForController(Object controller, Throwable cause) {
     }
 
-    public void responseIsCommitted(HttpServletResponse response) {
+    public void contextInitialized() {
     }
 
-    public void viewDispatched(View view) {
+    public void applicationContextContainerDestroyed() {
     }
 
-    public void servletServiceFailed(Exception cause) {
+    public void applicationContextContainerStarted() {
     }
 
+    public void registrarCreated(Registrar registrar, RegistrarMonitor registrarMonitor) {
+    }
+
+    public void registrarNotFound(String registrarClassName) {
+    }
+
+    public void requestContextContainerCreated(ContextContainer sessionContextContainer) {
+    }
+
+    public void sessionContextContainerCreated(ContextContainer applicationContextContainer) {
+    }
+
     public void componentRegistered(Object key, Class<?> clazz, Object[] parameters) {
     }
 
@@ -71,4 +92,7 @@
     public void nonCachingComponentRegistered(Object key, Class<?> clazz, Object[] parameters) {
     }
 
+    public void servletServiceFailed(Exception cause) {
+    }
+
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to