Title: [waffle-scm] [869] sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context: merge some interface with impl
Revision
869
Author
paul
Date
2009-01-15 05:36:17 -0600 (Thu, 15 Jan 2009)

Log Message

merge some interface with impl

Modified Paths


Removed Paths

Diff

Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/ContextContainerFactory.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/ContextContainerFactory.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/ContextContainerFactory.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -4,9 +4,26 @@
 package org.codehaus.waffle.context;
 
 import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.ComponentMonitor;
+import org.picocontainer.LifecycleStrategy;
+import org.picocontainer.PicoContainer;
+import org.picocontainer.DefaultPicoContainer;
+import org.picocontainer.monitors.NullComponentMonitor;
+import org.codehaus.waffle.context.pico.PicoLifecycleStrategy;
+import org.codehaus.waffle.context.pico.HttpSessionComponentAdapter;
+import org.codehaus.waffle.monitor.RegistrarMonitor;
+import org.codehaus.waffle.monitor.ContextMonitor;
+import org.codehaus.waffle.registrar.pico.ParameterResolver;
+import org.codehaus.waffle.registrar.pico.PicoRegistrar;
+import org.codehaus.waffle.registrar.RegistrarAssistant;
+import org.codehaus.waffle.registrar.Registrar;
+import org.codehaus.waffle.i18n.MessageResources;
+import org.codehaus.waffle.Constants;
+import org.codehaus.waffle.WaffleException;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
 
 /**
  * Implementors of this interface are responsible for maintaining the components defined in an applications Registrar.
@@ -15,15 +32,159 @@
  * 
  * @author Michael Ward
  */
-public interface ContextContainerFactory {
+public class ContextContainerFactory {
+    private final ComponentMonitor picoComponentMonitor = new NullComponentMonitor();
+    private final LifecycleStrategy picoLifecycleStrategy = new PicoLifecycleStrategy(picoComponentMonitor);
+    private final RegistrarMonitor registrarMonitor;
+    private final ParameterResolver parameterResolver;
 
-    void initialize(ServletContext servletContext);
+    protected MessageResources getMessageResources() {
+        return messageResources;
+    }
 
-    void destroy();
+    private final MessageResources messageResources;
+    private RegistrarAssistant registrarAssistant;
+    private MutablePicoContainer applicationContextContainer;
+    private final ContextMonitor contextMonitor;
 
-    MutablePicoContainer buildSessionLevelContainer();
+    public ContextContainerFactory(MessageResources messageResources,
+                                       ContextMonitor contextMonitor,
+                                       RegistrarMonitor registrarMonitor,
+                                       ParameterResolver parameterResolver) {
+        this.messageResources = messageResources;
+        this.contextMonitor = contextMonitor;
+        this.registrarMonitor = registrarMonitor;
+        this.parameterResolver = parameterResolver;
+    }
 
-    MutablePicoContainer buildRequestLevelContainer(HttpServletRequest request);
+    public MutablePicoContainer buildApplicationContextContainer() {
+        return new ContextContainer(buildMutablePicoContainer(null), messageResources);
+    }
 
-    MutablePicoContainer getApplicationContextContainer();
+    public MutablePicoContainer buildSessionLevelContainer() {
+        MutablePicoContainer delegate = buildMutablePicoContainer(applicationContextContainer);
+        delegate.addComponent(new HttpSessionComponentAdapter());
+
+        ContextContainer sessionContextContainer = new ContextContainer(delegate, messageResources);
+        registrarAssistant.executeDelegatingRegistrar(createRegistrar(sessionContextContainer), ContextLevel.SESSION);
+        getContextMonitor().sessionContextContainerCreated(applicationContextContainer);
+        return sessionContextContainer;
+    }
+
+    public MutablePicoContainer buildRequestLevelContainer(HttpServletRequest request) {
+        try {
+            HttpSession session = request.getSession();
+            ContextContainer sessionContextContainer = (ContextContainer) session.getAttribute(Constants.SESSION_CONTAINER_KEY);
+            if (sessionContextContainer == null) {
+                sessionContextContainer = (ContextContainer) buildSessionLevelContainer();
+                session.setAttribute(Constants.SESSION_CONTAINER_KEY, sessionContextContainer);
+                sessionContextContainer.start();
+            }
+            MutablePicoContainer delegate = sessionContextContainer.getDelegate();
+
+            ContextContainer requestContextContainer = new ContextContainer(buildMutablePicoContainer(delegate), messageResources);
+            registrarAssistant.executeDelegatingRegistrar(createRegistrar(requestContextContainer), ContextLevel.REQUEST);
+            getContextMonitor().requestContextContainerCreated(sessionContextContainer);
+            return requestContextContainer;
+        } finally {
+//TODO: setting the locale from the request (which will by default return the server default locale)
+//      does not seem necessary given a default locale is already configured out-of-the-box
+//      but more seriously it overrides any configuration set via the MessageResourcesConfiguration
+//      hence impeding any real configurability.  Need a clearer usecase for enabling this (MT)
+//            messageResources.useLocale(request.getLocale());
+        }
+    }
+
+    public Registrar createRegistrar(MutablePicoContainer contextContainer) {
+        Registrar registrar = new PicoRegistrar(contextContainer, parameterResolver, picoLifecycleStrategy,
+                registrarMonitor, picoComponentMonitor, messageResources);
+        getContextMonitor().registrarCreated(registrar, registrarMonitor);
+        return registrar;
+    }
+
+    private MutablePicoContainer buildMutablePicoContainer(PicoContainer parent) {
+        return new DefaultPicoContainer(picoComponentMonitor, picoLifecycleStrategy, parent);
+    }
+
+    protected ComponentMonitor getPicoComponentMonitor() {
+        return picoComponentMonitor;
+    }
+
+    protected LifecycleStrategy getPicoLifecycleStrategy() {
+        return picoLifecycleStrategy;
+    }
+
+    protected RegistrarMonitor getRegistrarMonitor() {
+        return registrarMonitor;
+    }
+
+    protected ParameterResolver getParameterResolver() {
+        return parameterResolver;
+    }
+
+    public RegistrarAssistant getRegistrarAssistant() {
+        return registrarAssistant;
+    }
+
+    public void initialize(ServletContext servletContext) throws WaffleException {
+        try {
+            initializeRegistrar(servletContext);
+            servletContext.setAttribute(ContextContainerFactory.class.getName(), this); // register self to context
+            contextMonitor.contextInitialized();
+        } catch (WaffleException e) {
+            contextMonitor.contextInitializationFailed(e);
+            throw e; // re-throwing exception after failure event has been monitored
+        }
+    }
+
+    /**
+     * Create the Registrar from the ServletContext's InitParameter.
+     *
+     * @param servletContext
+     */
+    private void initializeRegistrar(ServletContext servletContext) {
+        String registrarClassName = servletContext.getInitParameter(Registrar.class.getName());
+
+        try {
+            ClassLoader loader = this.getClass().getClassLoader();
+            Class<?> registrarClass = loader.loadClass(registrarClassName);
+            registrarAssistant = new RegistrarAssistant(registrarClass, messageResources);
+        } catch (ClassNotFoundException e) {
+            contextMonitor.registrarNotFound(registrarClassName);
+            String message = messageResources.getMessageWithDefault("registrarNotFound",
+                    "Registrar ''{0}'' defined as context-param in web.xml could not be found.", registrarClassName);
+            throw new WaffleException(message, e);
+        }
+
+        // build application context container
+        applicationContextContainer = buildApplicationContextContainer();
+        applicationContextContainer.addComponent(servletContext);
+        applicationContextContainer.addComponent(messageResources);
+
+        buildApplicationLevelRegistry();
+        applicationContextContainer.start();
+        contextMonitor.applicationContextContainerStarted();
+    }
+
+    public void destroy() {
+        if (applicationContextContainer != null) {
+            applicationContextContainer.stop();
+            applicationContextContainer.dispose();
+            applicationContextContainer = null;
+            contextMonitor.applicationContextContainerDestroyed();
+        }
+    }
+
+    private void buildApplicationLevelRegistry() {
+        Registrar registrar = createRegistrar(applicationContextContainer);
+        registrarAssistant.executeDelegatingRegistrar(registrar, ContextLevel.APPLICATION);
+    }
+
+    public MutablePicoContainer getApplicationContextContainer() {
+        return applicationContextContainer;
+    }
+
+    protected ContextMonitor getContextMonitor() {
+        return contextMonitor;
+    }
 }

Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoComponentRegistry.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -85,7 +85,7 @@
         register(ViewDataBinder.class, IntrospectingViewDataBinder.class, servletContext);
         register(StringTransmuter.class, DefaultStringTransmuter.class, servletContext);
         register(ValueConverterFinder.class, OgnlValueConverterFinder.class, servletContext);
-        register(ContextContainerFactory.class, PicoContextContainerFactory.class, servletContext);
+        register(ContextContainerFactory.class, ContextContainerFactory.class, servletContext);
         register(ControllerDefinitionFactory.class, ContextControllerDefinitionFactory.class, servletContext);
         register(ControllerNameResolver.class, ContextPathControllerNameResolver.class, servletContext);
         register(MessageResources.class, DefaultMessageResources.class, servletContext);

Deleted: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -1,193 +0,0 @@
-/*
- * Copyright (c) terms as published in http://waffle.codehaus.org/license.html
- */
-package org.codehaus.waffle.context.pico;
-
-import org.codehaus.waffle.Constants;
-import org.codehaus.waffle.WaffleException;
-import org.codehaus.waffle.context.ContextContainer;
-import org.codehaus.waffle.context.ContextLevel;
-import org.codehaus.waffle.context.ContextContainerFactory;
-import org.codehaus.waffle.i18n.MessageResources;
-import org.codehaus.waffle.monitor.ContextMonitor;
-import org.codehaus.waffle.monitor.RegistrarMonitor;
-import org.codehaus.waffle.registrar.Registrar;
-import org.codehaus.waffle.registrar.RegistrarAssistant;
-import org.codehaus.waffle.registrar.pico.ParameterResolver;
-import org.codehaus.waffle.registrar.pico.PicoRegistrar;
-import org.picocontainer.ComponentMonitor;
-import org.picocontainer.DefaultPicoContainer;
-import org.picocontainer.LifecycleStrategy;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.PicoContainer;
-import org.picocontainer.monitors.NullComponentMonitor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.servlet.ServletContext;
-
-/**
- * PicoContainer-based implementation of context container factory.
- * 
- * @author Michael Ward
- * @author Mauro Talevi
- */
-public class PicoContextContainerFactory implements ContextContainerFactory {
-    private final ComponentMonitor picoComponentMonitor = new NullComponentMonitor();
-    private final LifecycleStrategy picoLifecycleStrategy = new PicoLifecycleStrategy(picoComponentMonitor);
-    private final RegistrarMonitor registrarMonitor;
-    private final ParameterResolver parameterResolver;
-
-    protected MessageResources getMessageResources() {
-        return messageResources;
-    }
-
-    private final MessageResources messageResources;
-    private RegistrarAssistant registrarAssistant;
-    private ContextContainer applicationContextContainer;
-    private final ContextMonitor contextMonitor;
-
-    public PicoContextContainerFactory(MessageResources messageResources,
-                                       ContextMonitor contextMonitor,
-                                       RegistrarMonitor registrarMonitor,
-                                       ParameterResolver parameterResolver) {
-        this.messageResources = messageResources;
-        this.contextMonitor = contextMonitor;
-        this.registrarMonitor = registrarMonitor;
-        this.parameterResolver = parameterResolver;
-    }
-
-    protected ContextContainer buildApplicationContextContainer() {
-        return new ContextContainer(buildMutablePicoContainer(null), messageResources);
-    }
-
-    public MutablePicoContainer buildSessionLevelContainer() {
-        MutablePicoContainer parentContainer = (MutablePicoContainer) applicationContextContainer.getDelegate();
-        MutablePicoContainer delegate = buildMutablePicoContainer(parentContainer);
-        delegate.addComponent(new HttpSessionComponentAdapter());
-
-        ContextContainer sessionContextContainer = new ContextContainer(delegate, messageResources);
-        registrarAssistant.executeDelegatingRegistrar(createRegistrar(sessionContextContainer), ContextLevel.SESSION);
-        getContextMonitor().sessionContextContainerCreated(applicationContextContainer);
-        return sessionContextContainer;
-    }
-
-    public MutablePicoContainer buildRequestLevelContainer(HttpServletRequest request) {
-        try {
-            HttpSession session = request.getSession();
-            ContextContainer sessionContextContainer = (ContextContainer) session.getAttribute(Constants.SESSION_CONTAINER_KEY);
-            if (sessionContextContainer == null) {
-                sessionContextContainer = (ContextContainer) buildSessionLevelContainer();
-                session.setAttribute(Constants.SESSION_CONTAINER_KEY, sessionContextContainer);
-                sessionContextContainer.start();
-            }
-            MutablePicoContainer delegate = sessionContextContainer.getDelegate();
-
-            ContextContainer requestContextContainer = new ContextContainer(buildMutablePicoContainer(delegate), messageResources);
-            registrarAssistant.executeDelegatingRegistrar(createRegistrar(requestContextContainer), ContextLevel.REQUEST);
-            getContextMonitor().requestContextContainerCreated(sessionContextContainer);
-            return requestContextContainer;
-        } finally {
-//TODO: setting the locale from the request (which will by default return the server default locale) 
-//      does not seem necessary given a default locale is already configured out-of-the-box 
-//      but more seriously it overrides any configuration set via the MessageResourcesConfiguration
-//      hence impeding any real configurability.  Need a clearer usecase for enabling this (MT)
-//            messageResources.useLocale(request.getLocale());
-        }
-    }
-
-    protected Registrar createRegistrar(MutablePicoContainer contextContainer) {
-        Registrar registrar = new PicoRegistrar(contextContainer, parameterResolver, picoLifecycleStrategy,
-                registrarMonitor, picoComponentMonitor, messageResources);
-        getContextMonitor().registrarCreated(registrar, registrarMonitor);        
-        return registrar;
-    }
-
-    private MutablePicoContainer buildMutablePicoContainer(PicoContainer parent) {
-        return new DefaultPicoContainer(picoComponentMonitor, picoLifecycleStrategy, parent);
-    }
-
-    protected ComponentMonitor getPicoComponentMonitor() {
-        return picoComponentMonitor;
-    }
-
-    protected LifecycleStrategy getPicoLifecycleStrategy() {
-        return picoLifecycleStrategy;
-    }
-
-    protected RegistrarMonitor getRegistrarMonitor() {
-        return registrarMonitor;
-    }
-
-    protected ParameterResolver getParameterResolver() {
-        return parameterResolver;
-    }
-
-    public RegistrarAssistant getRegistrarAssistant() {
-        return registrarAssistant;
-    }
-
-    public void initialize(ServletContext servletContext) throws WaffleException {
-        try {
-            initializeRegistrar(servletContext);
-            servletContext.setAttribute(ContextContainerFactory.class.getName(), this); // register self to context
-            contextMonitor.contextInitialized();
-        } catch (WaffleException e) {
-            contextMonitor.contextInitializationFailed(e);
-            throw e; // re-throwing exception after failure event has been monitored
-        }
-    }
-
-    /**
-     * Create the Registrar from the ServletContext's InitParameter.
-     *
-     * @param servletContext
-     */
-    private void initializeRegistrar(ServletContext servletContext) {
-        String registrarClassName = servletContext.getInitParameter(Registrar.class.getName());
-
-        try {
-            ClassLoader loader = this.getClass().getClassLoader();
-            Class<?> registrarClass = loader.loadClass(registrarClassName);
-            registrarAssistant = new RegistrarAssistant(registrarClass, messageResources);
-        } catch (ClassNotFoundException e) {
-            contextMonitor.registrarNotFound(registrarClassName);
-            String message = messageResources.getMessageWithDefault("registrarNotFound",
-                    "Registrar ''{0}'' defined as context-param in web.xml could not be found.", registrarClassName);
-            throw new WaffleException(message, e);
-        }
-
-        // build application context container
-        applicationContextContainer = buildApplicationContextContainer();
-        applicationContextContainer.addComponent(servletContext);
-        applicationContextContainer.addComponent(messageResources);
-
-        buildApplicationLevelRegistry();
-        applicationContextContainer.start();
-        contextMonitor.applicationContextContainerStarted();
-    }
-
-    public void destroy() {
-        if (applicationContextContainer != null) {
-            applicationContextContainer.stop();
-            applicationContextContainer.dispose();
-            applicationContextContainer = null;
-            contextMonitor.applicationContextContainerDestroyed();
-        }
-    }
-
-    private void buildApplicationLevelRegistry() {
-        Registrar registrar = createRegistrar(applicationContextContainer);
-        registrarAssistant.executeDelegatingRegistrar(registrar, ContextLevel.APPLICATION);
-    }
-
-    public ContextContainer getApplicationContextContainer() {
-        return applicationContextContainer;
-    }
-
-    protected ContextMonitor getContextMonitor() {
-        return contextMonitor;
-    }
-
-
-}

Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/ScriptedPicoContextContainerFactory.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/ScriptedPicoContextContainerFactory.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/ScriptedPicoContextContainerFactory.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -4,12 +4,14 @@
 package org.codehaus.waffle.context.pico;
 
 import org.codehaus.waffle.context.ContextContainer;
+import org.codehaus.waffle.context.ContextContainerFactory;
 import org.codehaus.waffle.i18n.MessageResources;
 import org.codehaus.waffle.monitor.ContextMonitor;
 import org.codehaus.waffle.monitor.RegistrarMonitor;
 import org.codehaus.waffle.registrar.pico.ParameterResolver;
+import org.picocontainer.MutablePicoContainer;
 
-public abstract class ScriptedPicoContextContainerFactory extends PicoContextContainerFactory {
+public abstract class ScriptedPicoContextContainerFactory extends ContextContainerFactory {
 
     public ScriptedPicoContextContainerFactory(MessageResources messageResources,
                                                 ContextMonitor contextMonitor,
@@ -19,14 +21,14 @@
     }
 
     @Override
-    public ContextContainer buildApplicationContextContainer() {
-        ContextContainer contextContainer = super.buildApplicationContextContainer();
+    public MutablePicoContainer buildApplicationContextContainer() {
+        MutablePicoContainer contextContainer = super.buildApplicationContextContainer();
 
         registerScriptComponents(contextContainer);
 
         return contextContainer;
     }
 
-    protected abstract void registerScriptComponents(ContextContainer contextContainer);
+    protected abstract void registerScriptComponents(MutablePicoContainer contextContainer);
 
 }

Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/monitor/AbstractWritingMonitor.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -26,13 +26,13 @@
 import org.codehaus.waffle.action.MethodDefinition;
 import org.codehaus.waffle.action.HierarchicalArgumentResolver.Scope;
 import org.codehaus.waffle.bind.ValueConverter;
-import org.codehaus.waffle.context.ContextContainer;
 import org.codehaus.waffle.controller.ControllerDefinition;
 import org.codehaus.waffle.registrar.Registrar;
 import org.codehaus.waffle.validation.BindErrorMessage;
 import org.codehaus.waffle.view.RedirectView;
 import org.codehaus.waffle.view.ResponderView;
 import org.codehaus.waffle.view.View;
+import org.picocontainer.MutablePicoContainer;
 
 /**
  * Abstract implementation of Monitor that delegates writing to concrete subclasses.
@@ -320,11 +320,11 @@
         write("applicationContextContainerDestroyed");                
     }
 
-    public void sessionContextContainerCreated(ContextContainer applicationContextContainer) {
+    public void sessionContextContainerCreated(MutablePicoContainer applicationContextContainer) {
         write("sessionContextContainerCreated", applicationContextContainer);                        
     }
 
-    public void requestContextContainerCreated(ContextContainer sessionContextContainer){
+    public void requestContextContainerCreated(MutablePicoContainer sessionContextContainer){
         write("requestContextContainerCreated", sessionContextContainer);                                
     }
 

Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/monitor/ContextMonitor.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/monitor/ContextMonitor.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/monitor/ContextMonitor.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -6,6 +6,7 @@
 import org.codehaus.waffle.WaffleException;
 import org.codehaus.waffle.context.ContextContainer;
 import org.codehaus.waffle.registrar.Registrar;
+import org.picocontainer.MutablePicoContainer;
 
 /**
  * A monitor for context-related events
@@ -26,8 +27,8 @@
 
     void applicationContextContainerDestroyed();
 
-    void sessionContextContainerCreated(ContextContainer applicationContextContainer);
+    void sessionContextContainerCreated(MutablePicoContainer applicationContextContainer);
 
-    void requestContextContainerCreated(ContextContainer sessionContextContainer);
+    void requestContextContainerCreated(MutablePicoContainer sessionContextContainer);
 
 }

Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -1,7 +1,10 @@
 package org.codehaus.waffle.context;
 
 import org.codehaus.waffle.ComponentRegistry;
-import org.codehaus.waffle.context.pico.PicoContextContainerFactory;
+import org.codehaus.waffle.registrar.pico.ParameterResolver;
+import org.codehaus.waffle.monitor.ContextMonitor;
+import org.codehaus.waffle.monitor.RegistrarMonitor;
+import org.codehaus.waffle.i18n.MessageResources;
 import org.jmock.Expectations;
 import org.jmock.Mockery;
 import org.jmock.integration.junit4.JMock;
@@ -39,7 +42,7 @@
         mockery.checking(new Expectations() {
             {
                 one(registry).getContextContainerFactory();
-                will(returnValue(new PicoContextContainerFactory(null, null, null, null)));
+                will(returnValue(new ContextContainerFactory(null, null, null, null)));
             }
         });
 
@@ -71,7 +74,7 @@
 
         Field field = WaffleRequestFilter.class.getDeclaredField("contextContainerFactory");
         field.setAccessible(true);
-        field.set(filter, new PicoContextContainerFactory(null,null,null,null));
+        field.set(filter, new ContextContainerFactory(null,null,null,null));
 
         assertNotNull(field.get(filter));
         filter.destroy();
@@ -97,13 +100,11 @@
         });
 
         // Mock ContextContainerFactory
-        final ContextContainerFactory contextContainerFactory = mockery.mock(ContextContainerFactory.class);
-        mockery.checking(new Expectations() {
-            {
-                one(contextContainerFactory).buildRequestLevelContainer((HttpServletRequest) with(an(HttpServletRequest.class)));
-                will(returnValue(container));
+        final ContextContainerFactory contextContainerFactory = new ContextContainerFactory(mockery.mock(MessageResources.class), mockery.mock(ContextMonitor.class), mockery.mock(RegistrarMonitor.class), mockery.mock(ParameterResolver.class)) {
+            public MutablePicoContainer buildRequestLevelContainer(HttpServletRequest request) {
+                return container;
             }
-        });
+        };
 
         // Mock HttpServletRequest
         final HttpServletRequest request = mockery.mock(HttpServletRequest.class);

Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -191,7 +191,7 @@
                 one(servletContext).getInitParameter(BindMonitor.class.getName());
                 will(returnValue(StubMonitor.class.getName()));
                 one(servletContext).getInitParameter(ContextContainerFactory.class.getName());
-                will(returnValue(PicoContextContainerFactory.class.getName()));
+                will(returnValue(ContextContainerFactory.class.getName()));
                 one(servletContext).getInitParameter(ContextMonitor.class.getName());
                 will(returnValue(StubMonitor.class.getName()));
                 one(servletContext).getInitParameter(ControllerDefinitionFactory.class.getName());
@@ -234,7 +234,7 @@
         assertTrue(componentRegistry.getBindMonitor() instanceof StubMonitor);
         assertTrue(componentRegistry.getControllerNameResolver() instanceof StubControllerNameResolver);
         assertTrue(componentRegistry.getControllerDefinitionFactory() instanceof StubControllerDefinitionFactory);
-        assertTrue(componentRegistry.getContextContainerFactory() instanceof PicoContextContainerFactory);
+        assertTrue(componentRegistry.getContextContainerFactory() instanceof ContextContainerFactory);
         assertFalse(componentRegistry.getControllerDataBinder() instanceof OgnlControllerDataBinder);
         assertTrue(componentRegistry.getMethodDefinitionFinder() instanceof StubMethodDefinitionFinder);
         assertTrue(componentRegistry.getMethodNameResolver() instanceof StubMethodNameResolver);

Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -61,8 +61,8 @@
 
     @Test
     public void canBuildEachContextLevelContainer() {
-        final PicoContextContainerFactory contextContainerFactory
-                = new PicoContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
+        final ContextContainerFactory contextContainerFactory
+                = new ContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
 
         // Mock ServletContext
         final ServletContext servletContext = mockery.mock(ServletContext.class);
@@ -76,7 +76,7 @@
         contextContainerFactory.initialize(servletContext);
 
         // Application
-        ContextContainer applicationContainer = contextContainerFactory.getApplicationContextContainer();
+        MutablePicoContainer applicationContainer = contextContainerFactory.getApplicationContextContainer();
         Assert.assertNotNull(applicationContainer.getComponent(ServletContext.class));
         assertSame(messageResources, applicationContainer.getComponent(MessageResources.class));
         ApplicationLevelComponent applicationLevelComponent =
@@ -132,7 +132,7 @@
     @Test
     public void canInitializeContext() {
         final ContextContainerFactory contextContainerFactory
-                = new PicoContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
+                = new ContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
 
         // Mock ServletContext
         final ServletContext servletContext = mockery.mock(ServletContext.class);
@@ -230,28 +230,27 @@
 
     @Test
     public void canBuildApplicationContextContainerWithLifecycle() {
-        PicoContextContainerFactory contextContainerFactory
-                = new PicoContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
-        ContextContainer container = contextContainerFactory.buildApplicationContextContainer();
+        ContextContainerFactory contextContainerFactory
+                = new ContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
+        MutablePicoContainer container = contextContainerFactory.buildApplicationContextContainer();
 
         StubStartable startable = new StubStartable();
         container.addComponent(startable);
 
         // Test lifecycle
-        MutablePicoContainer picoContainer = (MutablePicoContainer) container.getDelegate();
-        picoContainer.start();
+        container.start();
 
         assertTrue(startable.started);
         assertFalse(startable.stopped);
 
-        picoContainer.stop();
+        container.stop();
         assertTrue(startable.stopped);
     }
 
     @Test
     public void canBuildSessionLevelContainerWithLifecycle() {
-        final PicoContextContainerFactory contextContainerFactory
-                = new PicoContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
+        final ContextContainerFactory contextContainerFactory
+                = new ContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
 
         // Mock ServletContext
         final ServletContext servletContext = mockery.mock(ServletContext.class);
@@ -280,8 +279,8 @@
 
     @Test
     public void canBuildRequestLevelContainerWithLifecycle() {
-        final PicoContextContainerFactory contextContainerFactory
-                = new PicoContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
+        final ContextContainerFactory contextContainerFactory
+                = new ContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null);
 
         // Mock ServletContext
         final ServletContext servletContext = mockery.mock(ServletContext.class);
@@ -341,8 +340,8 @@
     public void canBuildRegistrar() throws Exception {
         ParameterResolver parameterResolver = new StubParameterResolver();
         SilentMonitor registrarMonitor = new SilentMonitor();
-        final PicoContextContainerFactory contextContainerFactory
-                = new PicoContextContainerFactory(messageResources, new SilentMonitor(), registrarMonitor, parameterResolver);
+        final ContextContainerFactory contextContainerFactory
+                = new ContextContainerFactory(messageResources, new SilentMonitor(), registrarMonitor, parameterResolver);
 
         // Mock ContextContainer
         final MutablePicoContainer contextContainer = mockery.mock(MutablePicoContainer.class);

Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoWaffleContextListenerTest.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoWaffleContextListenerTest.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoWaffleContextListenerTest.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -9,6 +9,11 @@
 
 import org.codehaus.waffle.ComponentRegistry;
 import org.codehaus.waffle.Constants;
+import org.codehaus.waffle.WaffleException;
+import org.codehaus.waffle.registrar.pico.ParameterResolver;
+import org.codehaus.waffle.monitor.RegistrarMonitor;
+import org.codehaus.waffle.monitor.ContextMonitor;
+import org.codehaus.waffle.i18n.MessageResources;
 import org.codehaus.waffle.context.ContextContainer;
 import org.codehaus.waffle.context.ContextContainerFactory;
 import org.codehaus.waffle.context.WaffleContextListener;
@@ -16,6 +21,7 @@
 import org.jmock.Mockery;
 import org.jmock.integration.junit4.JMock;
 import org.junit.Test;
+import static org.junit.Assert.assertEquals;
 import org.junit.runner.RunWith;
 import org.picocontainer.MutablePicoContainer;
 
@@ -32,15 +38,18 @@
     @Test
     public void canInvokeServletContextListenerMethods() {
 
-        // Mock ContextContainerFactory
-        final ContextContainerFactory contextContainerFactory = mockery.mock(ContextContainerFactory.class);
-        mockery.checking(new Expectations() {
-            {
-                one(contextContainerFactory).initialize((ServletContext) with(an(ServletContext.class)));
-                one(contextContainerFactory).destroy();
+        final StringBuilder sb = new StringBuilder();
+        
+        final ContextContainerFactory contextContainerFactory = new ContextContainerFactory(mockery.mock(MessageResources.class), mockery.mock(ContextMonitor.class), mockery.mock(RegistrarMonitor.class), mockery.mock(ParameterResolver.class)) {
+            public void initialize(ServletContext servletContext) throws WaffleException {
+                sb.append("init;");
             }
-        });
 
+            public void destroy() {
+                sb.append("destroy;");
+            }
+        };
+
         // Mock ComponentRegistry
         final ComponentRegistry registry = mockery.mock(ComponentRegistry.class);
         mockery.checking(new Expectations() {
@@ -72,6 +81,8 @@
 
         // test the destroy
         waffleContextListener.contextDestroyed(event);
+
+        assertEquals("init;destroy;", sb.toString());
     }
 
     @Test
@@ -89,15 +100,14 @@
             }
         });
 
-        // Mock ContextContainerFactory
-        final ContextContainerFactory contextContainerFactory = mockery.mock(ContextContainerFactory.class);
-        mockery.checking(new Expectations() {
-            {
-                one(contextContainerFactory).buildSessionLevelContainer();
-                will(returnValue(container));
+        final StringBuilder sb = new StringBuilder();
+
+        final ContextContainerFactory contextContainerFactory = new ContextContainerFactory(mockery.mock(MessageResources.class), mockery.mock(ContextMonitor.class), mockery.mock(RegistrarMonitor.class), mockery.mock(ParameterResolver.class)) {
+            public MutablePicoContainer buildSessionLevelContainer() {
+                sb.append("bs;");
+                return container;
             }
-        });
-        
+        };
         setContextManager(waffleContextListener, contextContainerFactory);
 
         // Mock HttpSession
@@ -115,6 +125,7 @@
 
         // destroy
         waffleContextListener.sessionDestroyed(new HttpSessionEvent(httpSession));
+        assertEquals("bs;", sb.toString());
     }
 
     /**

Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java (868 => 869)

--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubMonitor.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -14,7 +14,6 @@
 import org.codehaus.waffle.action.MethodDefinition;
 import org.codehaus.waffle.action.HierarchicalArgumentResolver.Scope;
 import org.codehaus.waffle.bind.ValueConverter;
-import org.codehaus.waffle.context.ContextContainer;
 import org.codehaus.waffle.controller.ControllerDefinition;
 import org.codehaus.waffle.monitor.ActionMonitor;
 import org.codehaus.waffle.monitor.BindMonitor;
@@ -29,6 +28,7 @@
 import org.codehaus.waffle.view.RedirectView;
 import org.codehaus.waffle.view.ResponderView;
 import org.codehaus.waffle.view.View;
+import org.picocontainer.MutablePicoContainer;
 
 public class StubMonitor implements ActionMonitor, BindMonitor, ContextMonitor, ControllerMonitor, RegistrarMonitor,
         ServletMonitor, ValidationMonitor, ViewMonitor {
@@ -111,10 +111,10 @@
     public void registrarNotFound(String registrarClassName) {
     }
 
-    public void requestContextContainerCreated(ContextContainer sessionContextContainer) {
+    public void requestContextContainerCreated(MutablePicoContainer sessionContextContainer) {
     }
 
-    public void sessionContextContainerCreated(ContextContainer applicationContextContainer) {
+    public void sessionContextContainerCreated(MutablePicoContainer applicationContextContainer) {
     }
 
     public void controllerNameResolved(String name, String path) {

Modified: sandbox/v2experiment/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java (868 => 869)

--- sandbox/v2experiment/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -12,7 +12,6 @@
 import java.util.ArrayList;
 
 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.codehaus.waffle.monitor.RegistrarMonitor;
@@ -33,9 +32,8 @@
         super(messageResources, contextMonitor, registrarMonitor, parameterResolver);
     }
 
-    protected void registerScriptComponents(ContextContainer contextContainer) {
+    protected void registerScriptComponents(MutablePicoContainer contextContainer) {
         // Register Ruby Runtime at Application level
-        MutablePicoContainer picoContainer = (MutablePicoContainer) contextContainer.getDelegate();
         Ruby runtime = Ruby.newInstance();
         runtime.getLoadService().init(new ArrayList<Object>()); // this must be called, else we won't be able to load
                                                                 // scripts!!
@@ -49,12 +47,12 @@
         // <script>:1:in `require': JAR entry string.rb not found in ~/jruby-example/exploded/WEB-INF/lib/core.jar
         // (IOError)
 
-        picoContainer.addComponent(Ruby.class, runtime);
-        picoContainer.as(CACHE).addComponent(RubyScriptLoader.class);
+        contextContainer.addComponent(Ruby.class, runtime);
+        contextContainer.as(CACHE).addComponent(RubyScriptLoader.class);
     }
 
     @Override
-    protected Registrar createRegistrar(MutablePicoContainer contextContainer) { // todo we need tests for this ... can this
+    public Registrar createRegistrar(MutablePicoContainer contextContainer) { // todo we need tests for this ... can this
                                                                              // be refactored cleaner?
         RegistrarMonitor registrarMonitor = getRegistrarMonitor();
         Registrar registrar = new RubyScriptedRegistrar(contextContainer, getParameterResolver(),

Modified: sandbox/v2experiment/waffle-ruby/src/test/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactoryTest.java (868 => 869)

--- sandbox/v2experiment/waffle-ruby/src/test/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactoryTest.java	2009-01-15 11:08:10 UTC (rev 868)
+++ sandbox/v2experiment/waffle-ruby/src/test/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactoryTest.java	2009-01-15 11:36:17 UTC (rev 869)
@@ -18,12 +18,11 @@
     public void canBuildApplicationContextContainer() {
         RubyPicoContextContainerFactory factory
                 = new RubyPicoContextContainerFactory(null, new SilentMonitor(), new SilentMonitor(), null);
-        ContextContainer contextContainer = factory.buildApplicationContextContainer();
-        PicoContainer picoContainer = (MutablePicoContainer)contextContainer.getDelegate();
-        Ruby runtime = picoContainer.getComponent(Ruby.class);
+        MutablePicoContainer contextContainer = factory.buildApplicationContextContainer();
+        Ruby runtime = contextContainer.getComponent(Ruby.class);
         assertNotNull(runtime);
 
-        assertNotNull(picoContainer.getComponentAdapter(RubyScriptLoader.class));
+        assertNotNull(contextContainer.getComponentAdapter(RubyScriptLoader.class));
 
         // ensure mixin occurred
         RubyBoolean rubyBoolean = (RubyBoolean) runtime.evalScriptlet("Waffle::Controller.is_a? Module");


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to