[picocontainer-scm] [5808] java/2.x/trunk/pico/container/src/java/org/picocontainer: Patch applied for issue #384
paul-yCVjj/[email protected] Wed, 9 Nov 2011 19:24:49 -0600 (CST)
| Newsgroups | gmane.comp.java.picocontainer.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision 5808
Author paul
Date 2011-11-09 19:24:48 -0600 (Wed, 09 Nov 2011)
Log Message
Patch applied for issue #384
Modified Paths
- java/2.x/trunk/pico/container/src/java/org/picocontainer/DefaultPicoContainer.java
Added Paths
- java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0384TestCase.java
Diff
Modified: java/2.x/trunk/pico/container/src/java/org/picocontainer/DefaultPicoContainer.java (5807 => 5808)
--- java/2.x/trunk/pico/container/src/java/org/picocontainer/DefaultPicoContainer.java 2011-11-10 00:53:18 UTC (rev 5807)
+++ java/2.x/trunk/pico/container/src/java/org/picocontainer/DefaultPicoContainer.java 2011-11-10 01:24:48 UTC (rev 5808)
@@ -704,7 +704,11 @@
return instance;
} else if (parent != null) {
- return getParent().getComponent(componentAdapter.getComponentKey());
+ Object key = componentKey;
+ if (key == null) {
+ key = componentAdapter.getComponentKey();
+ }
+ return getParent().getComponent(key);
}
return null;
Added: java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0384TestCase.java (0 => 5808)
--- java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0384TestCase.java (rev 0)
+++ java/2.x/trunk/pico/container/src/test/org/picocontainer/defaults/issues/Issue0384TestCase.java 2011-11-10 01:24:48 UTC (rev 5808)
@@ -0,0 +1,42 @@
+package org.picocontainer.defaults.issues;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+import org.picocontainer.DefaultPicoContainer;
+import org.picocontainer.containers.CompositePicoContainer;
+
+public class Issue0384TestCase {
+
+ public static interface AnInterface {
+
+ }
+ public static interface AnInterface2 {
+
+ }
+
+ public static class Impl1 implements AnInterface {
+
+ }
+
+ public static class Impl2 implements AnInterface {
+
+ }
+
+ @Test
+ public void testComposition() throws Exception {
+ DefaultPicoContainer primary = new DefaultPicoContainer();
+ primary.addComponent(AnInterface.class, Impl1.class);
+
+ DefaultPicoContainer secondary = new DefaultPicoContainer();
+ secondary.addComponent(AnInterface.class, Impl2.class);
+
+ CompositePicoContainer composite = new CompositePicoContainer(primary, secondary);
+ DefaultPicoContainer child = new DefaultPicoContainer(composite);
+
+ assertEquals(Impl1.class, child.getComponent(Impl1.class).getClass());
+ assertEquals(Impl2.class, child.getComponent(Impl2.class).getClass());
+ assertEquals(Impl1.class, child.getComponent(AnInterface.class).getClass());
+ }
+
+}
----------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email