- Revision
- 875
- Author
- paul
- Date
- 2009-01-15 06:42:17 -0600 (Thu, 15 Jan 2009)
Log Message
merge some interface with impl
Modified Paths
- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/ComponentRegistry.java
- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/registrar/pico/ParameterResolver.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/PicoWaffleContextListenerTest.java
- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/registrar/pico/DefaultPicoContainerParameterResolverTest.java
- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/registrar/pico/PicoRegistrarTest.java
- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubParameterResolver.java
- sandbox/v2experiment/waffle-mock/src/main/java/org/codehaus/waffle/mock/PicoRegistrarMockery.java
- sandbox/v2experiment/waffle-testing/src/main/java/org/codehaus/waffle/testing/registrar/RegistrarHelper.java
Removed Paths
Diff
Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/ComponentRegistry.java (874 => 875)
--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/ComponentRegistry.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/ComponentRegistry.java 2009-01-15 12:42:17 UTC (rev 875) @@ -47,7 +47,6 @@ import org.codehaus.waffle.view.DefaultViewDispatcher; import org.codehaus.waffle.view.DefaultViewResolver; import org.codehaus.waffle.registrar.pico.ParameterResolver; -import org.codehaus.waffle.registrar.pico.DefaultParameterResolver; import org.picocontainer.MutablePicoContainer; import org.picocontainer.DefaultPicoContainer; import org.picocontainer.Characteristics; @@ -103,7 +102,7 @@ register(Validator.class, DefaultValidator.class, servletContext); register(ViewDispatcher.class, DefaultViewDispatcher.class, servletContext); register(ViewResolver.class, DefaultViewResolver.class, servletContext); - register(ParameterResolver.class, DefaultParameterResolver.class, servletContext); + register(ParameterResolver.class, ParameterResolver.class, servletContext); // register other components registerOtherComponents(servletContext);
Deleted: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/registrar/pico/DefaultParameterResolver.java (874 => 875)
--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/registrar/pico/DefaultParameterResolver.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/registrar/pico/DefaultParameterResolver.java 2009-01-15 12:42:17 UTC (rev 875) @@ -1,68 +0,0 @@ -/* - * Copyright (c) terms as published in http://waffle.codehaus.org/license.html - */ -package org.codehaus.waffle.registrar.pico; - -import org.codehaus.waffle.WaffleException; -import org.codehaus.waffle.bind.StringTransmuter; -import org.codehaus.waffle.i18n.DefaultMessageResources; -import org.codehaus.waffle.i18n.MessageResources; -import org.codehaus.waffle.registrar.ComponentReference; -import org.codehaus.waffle.registrar.Reference; -import org.codehaus.waffle.registrar.RequestAttributeReference; -import org.codehaus.waffle.registrar.RequestParameterReference; -import org.codehaus.waffle.registrar.ServletContextAttributeReference; -import org.codehaus.waffle.registrar.SessionAttributeReference; -import org.picocontainer.Parameter; -import org.picocontainer.parameters.ComponentParameter; -import org.picocontainer.parameters.ConstantParameter; - -/** - * This base implementation will determine the correct {...@code Parameter} based on the argument being resolved. - * - * @author Michael Ward - */ -public class DefaultParameterResolver implements ParameterResolver { - private final StringTransmuter stringTransmuter; - private final MessageResources messageResources; - - public DefaultParameterResolver(StringTransmuter stringTransmuter) { - this(stringTransmuter, new DefaultMessageResources()); - } - - public DefaultParameterResolver(StringTransmuter stringTransmuter, MessageResources messageResources) { - this.stringTransmuter = stringTransmuter; - this.messageResources = messageResources; - } - - /** - * An argument of type Reference will be mapped to the correct Parameter implemntation while other types - * will be treated as a constant ({...@code ConstantParameter}) - * - * @param argument the argument to be resolved - * @return the correct Parameter. - */ - public Parameter resolve(Object argument) { - if (argument instanceof Reference) { - Reference reference = (Reference) argument; - - if (reference instanceof ComponentReference) { - return new ComponentParameter(reference.getKey()); - } else if(reference instanceof RequestParameterReference) { - RequestParameterReference requestParameterReference = (RequestParameterReference) reference; - return new RequestParameterParameter(reference.getKey().toString(), stringTransmuter, requestParameterReference.getDefaultValue()); - } else if(reference instanceof RequestAttributeReference) { - return new RequestAttributeParameter(reference.getKey().toString()); - } else if(reference instanceof SessionAttributeReference) { - return new SessionAttributeParameter(reference.getKey().toString()); - } else if(reference instanceof ServletContextAttributeReference) { - return new ServletContextAttributeParameter(reference.getKey().toString()); - } - } else { - return new ConstantParameter(argument); - } - - String message = messageResources.getMessageWithDefault("parameterNotResolved", "Unable to resolve parameter for argument ''{0}''", argument); - throw new WaffleException(message); - } -}
Modified: sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/registrar/pico/ParameterResolver.java (874 => 875)
--- sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/registrar/pico/ParameterResolver.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-core/src/main/java/org/codehaus/waffle/registrar/pico/ParameterResolver.java 2009-01-15 12:42:17 UTC (rev 875) @@ -4,6 +4,18 @@ package org.codehaus.waffle.registrar.pico; import org.picocontainer.Parameter; +import org.picocontainer.parameters.ComponentParameter; +import org.picocontainer.parameters.ConstantParameter; +import org.codehaus.waffle.bind.StringTransmuter; +import org.codehaus.waffle.i18n.MessageResources; +import org.codehaus.waffle.i18n.DefaultMessageResources; +import org.codehaus.waffle.registrar.Reference; +import org.codehaus.waffle.registrar.ComponentReference; +import org.codehaus.waffle.registrar.RequestParameterReference; +import org.codehaus.waffle.registrar.RequestAttributeReference; +import org.codehaus.waffle.registrar.SessionAttributeReference; +import org.codehaus.waffle.registrar.ServletContextAttributeReference; +import org.codehaus.waffle.WaffleException; /** * Implementations of this interface will find the correct PicoContainer Parameter needed based on the @@ -11,13 +23,47 @@ * * @author Michael Ward */ -public interface ParameterResolver { +public class ParameterResolver { + private final StringTransmuter stringTransmuter; + private final MessageResources messageResources; + public ParameterResolver(StringTransmuter stringTransmuter) { + this(stringTransmuter, new DefaultMessageResources()); + } + + public ParameterResolver(StringTransmuter stringTransmuter, MessageResources messageResources) { + this.stringTransmuter = stringTransmuter; + this.messageResources = messageResources; + } + /** - * Find the correct Parameter + * An argument of type Reference will be mapped to the correct Parameter implemntation while other types + * will be treated as a constant ({...@code ConstantParameter}) * - * @param arg the argument to be resolved + * @param argument the argument to be resolved * @return the correct Parameter. */ - Parameter resolve(Object arg); + public Parameter resolve(Object argument) { + if (argument instanceof Reference) { + Reference reference = (Reference) argument; + + if (reference instanceof ComponentReference) { + return new ComponentParameter(reference.getKey()); + } else if(reference instanceof RequestParameterReference) { + RequestParameterReference requestParameterReference = (RequestParameterReference) reference; + return new RequestParameterParameter(reference.getKey().toString(), stringTransmuter, requestParameterReference.getDefaultValue()); + } else if(reference instanceof RequestAttributeReference) { + return new RequestAttributeParameter(reference.getKey().toString()); + } else if(reference instanceof SessionAttributeReference) { + return new SessionAttributeParameter(reference.getKey().toString()); + } else if(reference instanceof ServletContextAttributeReference) { + return new ServletContextAttributeParameter(reference.getKey().toString()); + } + } else { + return new ConstantParameter(argument); + } + + String message = messageResources.getMessageWithDefault("parameterNotResolved", "Unable to resolve parameter for argument ''{0}''", argument); + throw new WaffleException(message); + } }
Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java (874 => 875)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/WaffleRequestFilterTest.java 2009-01-15 12:42:17 UTC (rev 875) @@ -3,6 +3,7 @@ import org.codehaus.waffle.ComponentRegistry; import org.codehaus.waffle.WaffleException; import org.codehaus.waffle.testmodel.StubActionMethodExecutor; +import org.codehaus.waffle.testmodel.StubParameterResolver; import org.codehaus.waffle.action.ActionMethodExecutor; import org.codehaus.waffle.registrar.pico.ParameterResolver; import org.codehaus.waffle.monitor.ContextMonitor; @@ -105,7 +106,7 @@ }); // Mock ContextContainerFactory - final ContextContainerFactory contextContainerFactory = new ContextContainerFactory(mockery.mock(MessageResources.class), mockery.mock(ContextMonitor.class), mockery.mock(RegistrarMonitor.class), mockery.mock(ParameterResolver.class)) { + final ContextContainerFactory contextContainerFactory = new ContextContainerFactory(mockery.mock(MessageResources.class), mockery.mock(ContextMonitor.class), mockery.mock(RegistrarMonitor.class), new StubParameterResolver()) { public MutablePicoContainer buildRequestLevelContainer(HttpServletRequest request) { return container; }
Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoWaffleContextListenerTest.java (874 => 875)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoWaffleContextListenerTest.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/context/pico/PicoWaffleContextListenerTest.java 2009-01-15 12:42:17 UTC (rev 875) @@ -10,6 +10,7 @@ import org.codehaus.waffle.ComponentRegistry; import org.codehaus.waffle.Constants; import org.codehaus.waffle.WaffleException; +import org.codehaus.waffle.testmodel.StubParameterResolver; import org.codehaus.waffle.registrar.pico.ParameterResolver; import org.codehaus.waffle.monitor.RegistrarMonitor; import org.codehaus.waffle.monitor.ContextMonitor; @@ -40,7 +41,7 @@ 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)) { + final ContextContainerFactory contextContainerFactory = new ContextContainerFactory(mockery.mock(MessageResources.class), mockery.mock(ContextMonitor.class), mockery.mock(RegistrarMonitor.class), new StubParameterResolver()) { public void initialize(ServletContext servletContext) throws WaffleException { sb.append("init;"); } @@ -109,7 +110,7 @@ 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)) { + final ContextContainerFactory contextContainerFactory = new ContextContainerFactory(mockery.mock(MessageResources.class), mockery.mock(ContextMonitor.class), mockery.mock(RegistrarMonitor.class), new StubParameterResolver()) { public MutablePicoContainer buildSessionLevelContainer() { sb.append("bs;"); return container;
Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/registrar/pico/DefaultPicoContainerParameterResolverTest.java (874 => 875)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/registrar/pico/DefaultPicoContainerParameterResolverTest.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/registrar/pico/DefaultPicoContainerParameterResolverTest.java 2009-01-15 12:42:17 UTC (rev 875) @@ -18,13 +18,13 @@ @Test public void canResolveConstantParameters() { - ParameterResolver parameterResolver = new DefaultParameterResolver(null); + ParameterResolver parameterResolver = new ParameterResolver(null); Assert.assertTrue(parameterResolver.resolve("foobar") instanceof ConstantParameter); } @Test public void canResolveComponentParameters() { - ParameterResolver parameterResolver = new DefaultParameterResolver(null); + ParameterResolver parameterResolver = new ParameterResolver(null); Reference reference = new ComponentReference("foo"); Assert.assertTrue(parameterResolver.resolve(reference) instanceof ComponentParameter); @@ -32,7 +32,7 @@ @Test public void canResolveRequestParameterParameter() { - ParameterResolver parameterResolver = new DefaultParameterResolver(null); + ParameterResolver parameterResolver = new ParameterResolver(null); Reference reference = new RequestParameterReference("foo"); Assert.assertTrue(parameterResolver.resolve(reference) instanceof RequestParameterParameter); @@ -40,7 +40,7 @@ @Test public void canResolveRequestAttributeParameter() { - ParameterResolver parameterResolver = new DefaultParameterResolver(null); + ParameterResolver parameterResolver = new ParameterResolver(null); Reference reference = new RequestAttributeReference("foo"); Assert.assertTrue(parameterResolver.resolve(reference) instanceof RequestAttributeParameter); @@ -48,7 +48,7 @@ @Test public void canResolveSessionAttributeParameter() { - ParameterResolver parameterResolver = new DefaultParameterResolver(null); + ParameterResolver parameterResolver = new ParameterResolver(null); Reference reference = new SessionAttributeReference("foo"); Assert.assertTrue(parameterResolver.resolve(reference) instanceof SessionAttributeParameter); @@ -56,7 +56,7 @@ @Test public void canResolveServletContextAttributeParameter() { - ParameterResolver parameterResolver = new DefaultParameterResolver(null); + ParameterResolver parameterResolver = new ParameterResolver(null); Reference reference = new ServletContextAttributeReference("foo"); Assert.assertTrue(parameterResolver.resolve(reference) instanceof ServletContextAttributeParameter);
Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/registrar/pico/PicoRegistrarTest.java (874 => 875)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/registrar/pico/PicoRegistrarTest.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/registrar/pico/PicoRegistrarTest.java 2009-01-15 12:42:17 UTC (rev 875) @@ -209,7 +209,7 @@ @Test public void canRegisterComponentWithConstantParameters() { MutablePicoContainer pico = new DefaultPicoContainer(new Caching(), new NullLifecycleStrategy(), new EmptyPicoContainer(), componentMonitor); - ParameterResolver parameterResolver = new DefaultParameterResolver(null); + ParameterResolver parameterResolver = new ParameterResolver(null); Registrar registrar = new PicoRegistrar(pico, parameterResolver, lifecycleStrategy, monitor, componentMonitor, messageResources); registrar.register("component", ComponentWithParameterDependencies.class, "foo", "bar"); @@ -224,7 +224,7 @@ @Test public void canRegisterComponentWithNamedDependency() { MutablePicoContainer pico = new DefaultPicoContainer(new Caching(), new NullLifecycleStrategy(), new EmptyPicoContainer(), componentMonitor); - ParameterResolver parameterResolver = new DefaultParameterResolver(null); + ParameterResolver parameterResolver = new ParameterResolver(null); Registrar registrar = new PicoRegistrar(pico, parameterResolver, lifecycleStrategy, monitor, componentMonitor, messageResources); registrar.registerInstance("one", "foo")
Modified: sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubParameterResolver.java (874 => 875)
--- sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubParameterResolver.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-core/src/test/java/org/codehaus/waffle/testmodel/StubParameterResolver.java 2009-01-15 12:42:17 UTC (rev 875) @@ -4,9 +4,14 @@ package org.codehaus.waffle.testmodel; import org.codehaus.waffle.registrar.pico.ParameterResolver; +import org.codehaus.waffle.bind.StringTransmuter; import org.picocontainer.Parameter; -public class StubParameterResolver implements ParameterResolver { +public class StubParameterResolver extends ParameterResolver { + public StubParameterResolver() { + super(new StubStringTransmuter()); + } + public Parameter resolve(Object arg) { return null; }
Modified: sandbox/v2experiment/waffle-mock/src/main/java/org/codehaus/waffle/mock/PicoRegistrarMockery.java (874 => 875)
--- sandbox/v2experiment/waffle-mock/src/main/java/org/codehaus/waffle/mock/PicoRegistrarMockery.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-mock/src/main/java/org/codehaus/waffle/mock/PicoRegistrarMockery.java 2009-01-15 12:42:17 UTC (rev 875) @@ -6,7 +6,6 @@ import org.codehaus.waffle.context.pico.WaffleLifecycleStrategy; import org.codehaus.waffle.i18n.DefaultMessageResources; import org.codehaus.waffle.registrar.Registrar; -import org.codehaus.waffle.registrar.pico.DefaultParameterResolver; import org.codehaus.waffle.registrar.pico.ParameterResolver; import org.codehaus.waffle.registrar.pico.PicoRegistrar; import org.picocontainer.LifecycleStrategy; @@ -27,7 +26,7 @@ protected Registrar createRegistrar(ContextContainer container) { LifecycleStrategy lifecycleStrategy = new WaffleLifecycleStrategy(new NullComponentMonitor()); DefaultMessageResources messageResources = new DefaultMessageResources(); - ParameterResolver parameterResolver = new DefaultParameterResolver(new DefaultStringTransmuter( + ParameterResolver parameterResolver = new ParameterResolver(new DefaultStringTransmuter( new OgnlValueConverterFinder()), messageResources); return new PicoRegistrar((MutablePicoContainer) container.getDelegate(), parameterResolver, lifecycleStrategy, getRegistrarMonitor(container), new NullComponentMonitor(), messageResources);
Modified: sandbox/v2experiment/waffle-testing/src/main/java/org/codehaus/waffle/testing/registrar/RegistrarHelper.java (874 => 875)
--- sandbox/v2experiment/waffle-testing/src/main/java/org/codehaus/waffle/testing/registrar/RegistrarHelper.java 2009-01-15 12:31:24 UTC (rev 874) +++ sandbox/v2experiment/waffle-testing/src/main/java/org/codehaus/waffle/testing/registrar/RegistrarHelper.java 2009-01-15 12:42:17 UTC (rev 875) @@ -30,8 +30,8 @@ import org.codehaus.waffle.i18n.DefaultMessageResources; import org.codehaus.waffle.monitor.SilentMonitor; import org.codehaus.waffle.registrar.Registrar; -import org.codehaus.waffle.registrar.pico.DefaultParameterResolver; import org.codehaus.waffle.registrar.pico.PicoRegistrar; +import org.codehaus.waffle.registrar.pico.ParameterResolver; import org.picocontainer.DefaultPicoContainer; import org.picocontainer.MutablePicoContainer; import org.picocontainer.monitors.NullComponentMonitor; @@ -123,7 +123,7 @@ initContainer.addComponent(WaffleLifecycleStrategy.class); initContainer.addComponent(SilentMonitor.class); initContainer.addComponent(DefaultMessageResources.class); - initContainer.addComponent(DefaultParameterResolver.class); + initContainer.addComponent(ParameterResolver.class); initContainer.addComponent(DefaultStringTransmuter.class); initContainer.addComponent(OgnlValueConverterFinder.class); initContainer.addComponent(PicoRegistrar.class);
To unsubscribe from this list please visit:
