[picocontainer-scm] [5743] java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors: PICO-375 rebuttal to filed issue (sorry Johann)

paul-yCVjj/[email protected] Wed, 3 Nov 2010 18:46:40 -0500 (CDT)
Newsgroups gmane.comp.java.picocontainer.cvs
Message-ID <[email protected]>
Revision 5743
Author paul
Date 2010-11-03 18:46:37 -0500 (Wed, 03 Nov 2010)

Log Message

PICO-375 rebuttal to filed issue (sorry Johann)

Modified Paths

- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/ProviderAdapter.java

- java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/ProviderTestCase.java

Diff

Modified: java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/ProviderAdapter.java (5742 => 5743)

--- java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/ProviderAdapter.java 2010-08-31 02:16:03 UTC (rev 5742)
+++ java/2.x/trunk/pico/container/src/java/org/picocontainer/injectors/ProviderAdapter.java 2010-11-03 23:46:37 UTC (rev 5743)
@@ -29,7 +29,7 @@
*/
public class ProviderAdapter implements org.picocontainer.Injector, Provider, LifecycleStrategy {

- private final Object provider;
+ private final Provider provider;
private final Method provideMethod;
private final Class key;
private Properties properties;
@@ -43,19 +43,19 @@
this.lifecycleStrategy = new NullLifecycleStrategy();
}

- public ProviderAdapter(LifecycleStrategy lifecycleStrategy, Object provider) {
+ public ProviderAdapter(LifecycleStrategy lifecycleStrategy, Provider provider) {
this(lifecycleStrategy, provider, false);
}

- public ProviderAdapter(Object provider) {
+ public ProviderAdapter(Provider provider) {
this(new NullLifecycleStrategy(), provider, false);
}

- public ProviderAdapter(Object provider, boolean useNames) {
+ public ProviderAdapter(Provider provider, boolean useNames) {
this(new NullLifecycleStrategy(), provider, useNames);
}

- public ProviderAdapter(LifecycleStrategy lifecycleStrategy, Object provider, boolean useNames) {
+ public ProviderAdapter(LifecycleStrategy lifecycleStrategy, Provider provider, boolean useNames) {
this.lifecycleStrategy = lifecycleStrategy;
this.provider = provider;
provideMethod = getProvideMethod(provider.getClass());

Modified: java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/ProviderTestCase.java (5742 => 5743)

--- java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/ProviderTestCase.java 2010-08-31 02:16:03 UTC (rev 5742)
+++ java/2.x/trunk/pico/container/src/test/org/picocontainer/injectors/ProviderTestCase.java 2010-11-03 23:46:37 UTC (rev 5743)
@@ -67,8 +67,9 @@
try {
dpc.getComponent(NeedsChocolate.class);
} catch (PicoCompositionException e) {
- assertTrue(e.getMessage().contains("Parameter 0 "));
- assertTrue(e.getMessage().contains("cannot be null"));
+ String message = e.getMessage();
+ assertTrue(message.contains("Parameter 0 "));
+ assertTrue(message.contains("cannot be null"));
}
}

@@ -349,4 +350,41 @@
}

+ /**
+ * Reference Johann Burkard's
+ * http://jira.codehaus.org/browse/PICO-375
+ */
+ @Test
+ public void providerTest() {
+ DefaultPicoContainer container = new DefaultPicoContainer();
+ ProviderAdapter adapter = new ProviderAdapter(new BlorbProvider());
+ container.addAdapter(adapter);
+ assertNotNull(container.getComponent(Blorb.class));
+ }
+ // Differs from Johann's by the "implements Provider" only.
+ public static class BlorbProvider implements Provider {
+ public Blorb provide() {
+ return new Blorb();
+ }
+ }
+ public static class Blorb {}
+
+// @Test
+// public void providerAdapterMustBeHandedAnImplementationOfProvider() {
+// DefaultPicoContainer container = new DefaultPicoContainer();
+// try {
+// ProviderAdapter adapter = new ProviderAdapter(new Blorb2Provider());
+// } catch (Exception e) {
+//
+// }
+// }
+// public static class Blorb2Provider {
+// public Blorb2 provide() {
+// return new Blorb2();
+// }
+// }
+// public static class Blorb2 {}
+
+
+
}

----------

To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email