[picocontainer-scm] [5605] java/2.x/trunk/pico/distribution/src/site/content: some words on named method injection

paul-yCVjj/[email protected]
Newsgroups gmane.comp.java.picocontainer.cvs
Message-ID <[email protected]>
Revision 5605
Author paul
Date 2010-02-12 15:18:14 -0600 (Fri, 12 Feb 2010)

Log Message

some words on named method injection

Modified Paths

- java/2.x/trunk/pico/distribution/src/site/content/injection.html

- java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html

- java/2.x/trunk/pico/distribution/src/site/content/sitemap.xml

Added Paths

- java/2.x/trunk/pico/distribution/src/site/content/named-method-injection.html

Diff

Modified: java/2.x/trunk/pico/distribution/src/site/content/injection.html (5604 => 5605)

--- java/2.x/trunk/pico/distribution/src/site/content/injection.html 2010-02-12 20:58:43 UTC (rev 5604)
+++ java/2.x/trunk/pico/distribution/src/site/content/injection.html 2010-02-12 21:18:14 UTC (rev 5605)
@@ -60,6 +60,10 @@
<td>Fields of a certain name should be injected into</td>
</tr>
<tr>
+ <td>Named Method Injection</td>
+ <td>If method names match other component names, injection happens</td>
+ </tr>
+ <tr>
<td>Typed Field Injection</td>
<td>Fields of a certain type should be injected into</td>
</tr>

Modified: java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html (5604 => 5605)

--- java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html 2010-02-12 20:58:43 UTC (rev 5604)
+++ java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html 2010-02-12 21:18:14 UTC (rev 5605)
@@ -14,7 +14,7 @@
container after instantiation.</p>

<div class="source">
- <pre>public class Apple {
+ <pre>public class FruitBasket {
private Orange orange;
private Pear pear;
private Banana banana;
@@ -26,9 +26,9 @@
<div class="source"><pre>
import static org.picocontainer.injectors.NamedFieldInjection.injectionFieldNames;
pico = new DefaultPicoContainer(new NamedFieldInjection();
-pico.as(injectionFieldNames("orange", "pear", "banana")).addComponent(Apple.class);
+pico.as(injectionFieldNames("orange", "pear", "banana")).addComponent(FruitBasket.class);
// etc
-Apple apple = pico.getComponent(Apple.class);</pre>
+FruitBasket fruitBasket = pico.getComponent(FruitBasket.class);</pre>
</div>
<p>
Yes that's right, there's no constructor needed. It means that for a
@@ -36,7 +36,7 @@
populate the dependency fields.</p>

<p>The component factory for this is a class<strong>
- TypedFieldInjection</strong>. It only handles typed-field
+ NamedFieldInjection</strong>. It only handles named-field
injection for components.</p>
</body>
</html>

Copied: java/2.x/trunk/pico/distribution/src/site/content/named-method-injection.html (from rev 5598, java/2.x/trunk/pico/distribution/src/site/content/named-field-injection.html) (0 => 5605)

--- java/2.x/trunk/pico/distribution/src/site/content/named-method-injection.html (rev 0)
+++ java/2.x/trunk/pico/distribution/src/site/content/named-method-injection.html 2010-02-12 21:18:14 UTC (rev 5605)
@@ -0,0 +1,41 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <title>Named Method Injection</title></head>
+<body>
+<h3>Overview</h3>
+
+<p>This is where a component has an empty constructor with
+ dependencies passed in via setters and matching done via the method name (after 'set'). Matches are against named components.</p>
+
+<div class="source">
+ <pre>public class FruitBasket {
+ public void setOrange(String orange) { ... }
+ public void setPear(String pear) { ... }
+ public void setBanana(String banana) { ... }
+ // other methods
+}</pre>
+</div>
+<h3>Usage</h3>
+
+<div class="source"><pre>
+pico = new DefaultPicoContainer(new NamedMethodInjection();
+pico.addConfig("orange" , new Seville());
+pico.addConfig("pear" , new Bartlett());
+pico.addConfig("Banana" , new Cavendish());
+pico.addComponent(FruitBasket.class);
+// etc
+FruitBasket basket = pico.getComponent(FruitBasket.class);</pre>
+</div>
+<p>
+ Yes that's right, there's no constructor needed. It means that for a
+ Unit Test, you cannot simply 'new' the class without some lines of code to
+ populate the dependency fields via setters.</p>
+
+<p>The component factory for this is a class<strong>
+ NamedMethodInjection</strong>. It only handles named-method
+ injection for components.</p>
+</body>
+</html>

Modified: java/2.x/trunk/pico/distribution/src/site/content/sitemap.xml (5604 => 5605)

--- java/2.x/trunk/pico/distribution/src/site/content/sitemap.xml 2010-02-12 20:58:43 UTC (rev 5604)
+++ java/2.x/trunk/pico/distribution/src/site/content/sitemap.xml 2010-02-12 21:18:14 UTC (rev 5605)
@@ -25,6 +25,7 @@
<page>typed-field-injection.html</page>
<page>named-field-injection.html</page>
<page>method-injection.html</page>
+ <page>named-method-injection.html</page>
<page>multi-injection.html</page>
<page>composite-injection.html</page>
<page>factory-injection.html</page>

----------

To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.