[picocontainer-scm] [5603] java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors: named method injection added
paul-yCVjj/[email protected]
| Newsgroups | gmane.comp.java.picocontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision 5603
Author paul
Date 2010-02-12 14:24:59 -0600 (Fri, 12 Feb 2010)
Log Message
named method injection added
Added Paths
- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/NamedMethodInjection.java
- java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/NamedInjectionTestCase.java
Diff
Added: java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/NamedMethodInjection.java (0 => 5603)
--- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/NamedMethodInjection.java (rev 0)
+++ java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/NamedMethodInjection.java 2010-02-12 20:24:59 UTC (rev 5603)
@@ -0,0 +1,26 @@
+package org.picocontainer.injectors;
+
+import org.picocontainer.ComponentAdapter;
+import org.picocontainer.ComponentMonitor;
+import org.picocontainer.LifecycleStrategy;
+import org.picocontainer.Parameter;
+import org.picocontainer.PicoCompositionException;
+
+import java.util.Properties;
+
+public class NamedMethodInjection extends AbstractInjectionFactory {
+
+ private final String prefix;
+
+ public NamedMethodInjection(String setterMethodPrefix) {
+ this.prefix = setterMethodPrefix;
+ }
+
+ public NamedMethodInjection() {
+ this("set");
+ }
+
+ public <T> ComponentAdapter<T> createComponentAdapter(ComponentMonitor monitor, LifecycleStrategy lifecycleStrategy, Properties componentProperties, Object componentKey, Class<T> componentImplementation, Parameter... parameters) throws PicoCompositionException {
+ return wrapLifeCycle(monitor.newInjector(new NamedMethodInjector(componentKey, componentImplementation, parameters, monitor, prefix)), lifecycleStrategy);
+ }
+}
Added: java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/NamedInjectionTestCase.java (0 => 5603)
--- java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/NamedInjectionTestCase.java (rev 0)
+++ java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/NamedInjectionTestCase.java 2010-02-12 20:24:59 UTC (rev 5603)
@@ -0,0 +1,50 @@
+/*****************************************************************************
+ * Copyright (C) PicoContainer Organization. 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. *
+ * *
+ *****************************************************************************/
+package org.picocontainer.injectors;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.picocontainer.ComponentFactory;
+import org.picocontainer.DefaultPicoContainer;
+import org.picocontainer.containers.EmptyPicoContainer;
+import org.picocontainer.lifecycle.NullLifecycleStrategy;
+import org.picocontainer.tck.AbstractComponentFactoryTest;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+/**
+ * @author Paul Hammant
+ */
+public class NamedInjectionTestCase extends AbstractComponentFactoryTest {
+
+ @Before
+ public void setUp() throws Exception {
+ picoContainer = new DefaultPicoContainer(createComponentFactory(), new NullLifecycleStrategy(), new EmptyPicoContainer());
+ }
+
+ protected ComponentFactory createComponentFactory() {
+ return new NamedMethodInjection();
+ }
+
+ public static class Bean {
+ private String something;
+
+ public void setSomething(String blah) {
+ this.something = blah;
+ }
+ }
+
+ @Test public void testContainerMakesNamedMethodInjector() {
+ picoContainer.addComponent(Bean.class);
+ picoContainer.addConfig("something", "hello there");
+ assertTrue(picoContainer.getComponentAdapter(Bean.class) instanceof NamedMethodInjector);
+ assertEquals("hello there", picoContainer.getComponent(Bean.class).something);
+ }
+}
\ No newline at end of file
----------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email