- Revision
- 868
- Author
- paul
- Date
- 2009-01-15 05:08:10 -0600 (Thu, 15 Jan 2009)
Log Message
merge some interface with impl
Modified Paths
- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/ContextContainerFactory.java
- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java
- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java
- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java
- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java
- sandbox/v2experiment/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java
Removed Paths
Diff
Deleted: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/AbstractContextContainerFactory.java (867 => 868)
--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/AbstractContextContainerFactory.java 2009-01-15 10:38:29 UTC (rev 867) +++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/AbstractContextContainerFactory.java 2009-01-15 11:08:10 UTC (rev 868) @@ -1,100 +0,0 @@ -/* - * Copyright (c) terms as published in http://waffle.codehaus.org/license.html - */ -package org.codehaus.waffle.context; - -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 org.picocontainer.MutablePicoContainer; - -/** - * @author Michael Ward - * @author Mauro Talevi - */ -public abstract class AbstractContextContainerFactory implements ContextContainerFactory { - protected final MessageResources messageResources; - protected RegistrarAssistant registrarAssistant; - protected ContextContainer applicationContextContainer; - private final ContextMonitor contextMonitor; - - public AbstractContextContainerFactory(MessageResources messageResources, ContextMonitor contextMonitor) { - this.messageResources = messageResources; - this.contextMonitor = contextMonitor; - } - - 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; - } - - protected abstract ContextContainer buildApplicationContextContainer(); - - protected abstract Registrar createRegistrar(MutablePicoContainer contextContainer); - -}
Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/ContextContainerFactory.java (867 => 868)
--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/ContextContainerFactory.java 2009-01-15 10:38:29 UTC (rev 867) +++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/ContextContainerFactory.java 2009-01-15 11:08:10 UTC (rev 868) @@ -25,4 +25,5 @@ MutablePicoContainer buildRequestLevelContainer(HttpServletRequest request); + MutablePicoContainer getApplicationContextContainer(); }
Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java (867 => 868)
--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java 2009-01-15 10:38:29 UTC (rev 867) +++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/context/pico/PicoContextContainerFactory.java 2009-01-15 11:08:10 UTC (rev 868) @@ -4,13 +4,15 @@ package org.codehaus.waffle.context.pico; import org.codehaus.waffle.Constants; -import org.codehaus.waffle.context.AbstractContextContainerFactory; +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; @@ -22,6 +24,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import javax.servlet.ServletContext; /** * PicoContainer-based implementation of context container factory. @@ -29,17 +32,27 @@ * @author Michael Ward * @author Mauro Talevi */ -public class PicoContextContainerFactory extends AbstractContextContainerFactory { +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) { - super(messageResources, contextMonitor); + this.messageResources = messageResources; + this.contextMonitor = contextMonitor; this.registrarMonitor = registrarMonitor; this.parameterResolver = parameterResolver; } @@ -109,4 +122,72 @@ 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/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java (867 => 868)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java 2009-01-15 10:38:29 UTC (rev 867) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java 2009-01-15 11:08:10 UTC (rev 868) @@ -1,7 +1,7 @@ package org.codehaus.waffle.context; import org.codehaus.waffle.ComponentRegistry; -import org.codehaus.waffle.testmodel.StubContextContainerFactory; +import org.codehaus.waffle.context.pico.PicoContextContainerFactory; import org.jmock.Expectations; import org.jmock.Mockery; import org.jmock.integration.junit4.JMock; @@ -39,7 +39,7 @@ mockery.checking(new Expectations() { { one(registry).getContextContainerFactory(); - will(returnValue(new StubContextContainerFactory())); + will(returnValue(new PicoContextContainerFactory(null, null, null, null))); } }); @@ -71,7 +71,7 @@ Field field = WaffleRequestFilter.class.getDeclaredField("contextContainerFactory"); field.setAccessible(true); - field.set(filter, new StubContextContainerFactory()); + field.set(filter, new PicoContextContainerFactory(null,null,null,null)); assertNotNull(field.get(filter)); filter.destroy();
Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java (867 => 868)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java 2009-01-15 10:38:29 UTC (rev 867) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoComponentRegistryTest.java 2009-01-15 11:08:10 UTC (rev 868) @@ -18,7 +18,6 @@ import org.codehaus.waffle.bind.ognl.OgnlBindErrorMessageResolver; import org.codehaus.waffle.bind.ognl.OgnlControllerDataBinder; import org.codehaus.waffle.bind.ognl.OgnlValueConverterFinder; -import org.codehaus.waffle.context.AbstractContextContainerFactory; import org.codehaus.waffle.context.ContextContainerFactory; import org.codehaus.waffle.controller.ContextControllerDefinitionFactory; import org.codehaus.waffle.controller.ContextPathControllerNameResolver; @@ -40,7 +39,6 @@ import org.codehaus.waffle.testmodel.StubActionMethodResponseHandler; import org.codehaus.waffle.testmodel.StubArgumentResolver; import org.codehaus.waffle.testmodel.StubBindErrorMessageResolver; -import org.codehaus.waffle.testmodel.StubContextContainerFactory; import org.codehaus.waffle.testmodel.StubControllerDefinitionFactory; import org.codehaus.waffle.testmodel.StubControllerNameResolver; import org.codehaus.waffle.testmodel.StubDataBinder; @@ -145,7 +143,7 @@ assertTrue(componentRegistry.getActionMonitor() instanceof AbstractWritingMonitor); assertTrue(componentRegistry.getBindErrorMessageResolver() instanceof OgnlBindErrorMessageResolver); assertTrue(componentRegistry.getBindMonitor() instanceof AbstractWritingMonitor); - assertTrue(componentRegistry.getContextContainerFactory() instanceof AbstractContextContainerFactory); + assertTrue(componentRegistry.getContextContainerFactory() instanceof ContextContainerFactory); assertTrue(componentRegistry.getContextMonitor() instanceof AbstractWritingMonitor); assertTrue(componentRegistry.getControllerMonitor() instanceof AbstractWritingMonitor); assertTrue(componentRegistry.getControllerNameResolver() instanceof ContextPathControllerNameResolver); @@ -193,7 +191,7 @@ one(servletContext).getInitParameter(BindMonitor.class.getName()); will(returnValue(StubMonitor.class.getName())); one(servletContext).getInitParameter(ContextContainerFactory.class.getName()); - will(returnValue(StubContextContainerFactory.class.getName())); + will(returnValue(PicoContextContainerFactory.class.getName())); one(servletContext).getInitParameter(ContextMonitor.class.getName()); will(returnValue(StubMonitor.class.getName())); one(servletContext).getInitParameter(ControllerDefinitionFactory.class.getName()); @@ -236,7 +234,7 @@ assertTrue(componentRegistry.getBindMonitor() instanceof StubMonitor); assertTrue(componentRegistry.getControllerNameResolver() instanceof StubControllerNameResolver); assertTrue(componentRegistry.getControllerDefinitionFactory() instanceof StubControllerDefinitionFactory); - assertTrue(componentRegistry.getContextContainerFactory() instanceof StubContextContainerFactory); + assertTrue(componentRegistry.getContextContainerFactory() instanceof PicoContextContainerFactory); 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 (867 => 868)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java 2009-01-15 10:38:29 UTC (rev 867) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoContextContainerFactoryTest.java 2009-01-15 11:08:10 UTC (rev 868) @@ -19,7 +19,6 @@ import org.codehaus.waffle.Constants; import org.codehaus.waffle.Startable; -import org.codehaus.waffle.context.AbstractContextContainerFactory; import org.codehaus.waffle.context.ContextContainer; import org.codehaus.waffle.context.ContextContainerFactory; import org.codehaus.waffle.i18n.DefaultMessageResources; @@ -132,7 +131,7 @@ @Test public void canInitializeContext() { - final AbstractContextContainerFactory contextContainerFactory + final ContextContainerFactory contextContainerFactory = new PicoContextContainerFactory(messageResources, new SilentMonitor(), new SilentMonitor(), null); // Mock ServletContext @@ -146,7 +145,7 @@ }); contextContainerFactory.initialize(servletContext); - ContextContainer container = contextContainerFactory.getApplicationContextContainer(); + MutablePicoContainer container = contextContainerFactory.getApplicationContextContainer(); ApplicationLevelComponent applicationLevelComponent = container.getComponent(ApplicationLevelComponent.class); assertTrue(applicationLevelComponent.isStarted());
Deleted: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubContextContainerFactory.java (867 => 868)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubContextContainerFactory.java 2009-01-15 10:38:29 UTC (rev 867) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubContextContainerFactory.java 2009-01-15 11:08:10 UTC (rev 868) @@ -1,25 +0,0 @@ -package org.codehaus.waffle.testmodel; - -import org.codehaus.waffle.context.ContextContainerFactory; -import org.picocontainer.MutablePicoContainer; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -public class StubContextContainerFactory implements ContextContainerFactory { - public void initialize(ServletContext servletContext) { - - } - - public void destroy() { - - } - - public MutablePicoContainer buildSessionLevelContainer() { - return null; - } - - public MutablePicoContainer buildRequestLevelContainer(HttpServletRequest request) { - return null; - } -}
Modified: sandbox/v2experiment/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java (867 => 868)
--- sandbox/v2experiment/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java 2009-01-15 10:38:29 UTC (rev 867) +++ sandbox/v2experiment/waffle-ruby/src/main/java/org/codehaus/waffle/context/pico/RubyPicoContextContainerFactory.java 2009-01-15 11:08:10 UTC (rev 868) @@ -58,7 +58,7 @@ // be refactored cleaner? RegistrarMonitor registrarMonitor = getRegistrarMonitor(); Registrar registrar = new RubyScriptedRegistrar(contextContainer, getParameterResolver(), - getPicoLifecycleStrategy(), registrarMonitor, getPicoComponentMonitor(), messageResources); + getPicoLifecycleStrategy(), registrarMonitor, getPicoComponentMonitor(), getMessageResources()); getContextMonitor().registrarCreated(registrar, registrarMonitor); return registrar; }
To unsubscribe from this list please visit:
