[picocontainer-scm] [5617] java/2.x/trunk/pico/distribution/src/site/content: Integration test of Converters with Pico-TCK (If target Pico implements Converting)

rimovm-yCVjj/[email protected]
Newsgroups gmane.comp.java.picocontainer.cvs
Message-ID <[email protected]>
Revision 5617
Author rimovm
Date 2010-02-17 03:52:22 -0600 (Wed, 17 Feb 2010)

Log Message

Integration test of Converters with Pico-TCK (If target Pico implements Converting)
Update docs to reflect latest refactory.

Modified Paths

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

- java/2.x/trunk/pico/container/src/test/org/picocontainer/tck/AbstractPicoContainerTest.java

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

Diff

Modified: java/2.x/trunk/pico/container/src/test/org/picocontainer/DefaultPicoContainerTestCase.java (5616 => 5617)

--- java/2.x/trunk/pico/container/src/test/org/picocontainer/DefaultPicoContainerTestCase.java 2010-02-17 09:29:13 UTC (rev 5616)
+++ java/2.x/trunk/pico/container/src/test/org/picocontainer/DefaultPicoContainerTestCase.java 2010-02-17 09:52:22 UTC (rev 5617)
@@ -869,6 +869,5 @@
return behavior;
}
}
-

}
\ No newline at end of file

Modified: java/2.x/trunk/pico/container/src/test/org/picocontainer/tck/AbstractPicoContainerTest.java (5616 => 5617)

--- java/2.x/trunk/pico/container/src/test/org/picocontainer/tck/AbstractPicoContainerTest.java 2010-02-17 09:29:13 UTC (rev 5616)
+++ java/2.x/trunk/pico/container/src/test/org/picocontainer/tck/AbstractPicoContainerTest.java 2010-02-17 09:52:22 UTC (rev 5617)
@@ -18,6 +18,10 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

+import org.picocontainer.parameters.ComponentParameter;
+
+import org.picocontainer.Converting;
+
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -972,4 +976,29 @@
}
}

+
+ public static class ConverterSample {
+ public final int value;
+
+ public ConverterSample(Integer value) {
+ this.value = value;
+ }
+ }
+
+ @Test
+ public void testIntegrationWithConverters() {
+ MutablePicoContainer mpc = new DefaultPicoContainer();
+ if ( !(mpc instanceof Converting)) {
+ System.out.println("Skipping 'testIntegrationWithConverters' " +
+ "because pico implementation is not Converting");
+ return;
+ }
+
+ mpc.addComponent("converterParameter", "42")
+ .addComponent(ConverterSample.class, ConverterSample.class,
+ new ComponentParameter("converterParameter"));
+ ConverterSample result = mpc.getComponent(ConverterSample.class);
+ assertEquals(42, result.value);
+ }
+
}

Modified: java/2.x/trunk/pico/distribution/src/site/content/converters.html (5616 => 5617)

--- java/2.x/trunk/pico/distribution/src/site/content/converters.html 2010-02-17 09:29:13 UTC (rev 5616)
+++ java/2.x/trunk/pico/distribution/src/site/content/converters.html 2010-02-17 09:52:22 UTC (rev 5617)
@@ -1,13 +1,11 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
-
-<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Converters</title>
</head>
<body>
-<h2>Overview<br>
-</h2>
+<h2>Overview</h2>
<p><span style="font-weight: normal;">Converters
take string instances in PicoContainer and convert the type that a
particular component requires for injection.</span>&nbsp;
@@ -24,18 +22,45 @@
<li>Short</li>
<li>File</li>
</ul>
+<h2>Integration Example</h2>
+<p>Here's a test case demonstrating a simple usage of converters</p>
+<div class="source">
+<pre>
+ public static class ConverterSample {
+ public final int value;
+
+ public ConverterSample(Integer value) {
+ this.value = value;
+ }
+ }
+
+ @Test
+ public void testIntegrationWithConverters() {
+ MutablePicoContainer mpc = new DefaultPicoContainer();
+
+ mpc.addComponent(&quot;converterParameter&quot;, &quot;42&quot;)
+ .addComponent(ConverterSample.class, ConverterSample.class,
+ new ComponentParameter(&quot;converterParameter&quot;));
+
+ ConverterSample result = mpc.getComponent(ConverterSample.class);
+ assertEquals(42, result.value);
+ }
+</pre>
+</div>
+
<h2>Custom Converters</h2>
+<p>
You can extend BuiltInConverter, or implement the Converter interface
directly.&nbsp; BuiltInConverter has a method addConverter(..) which
-you may find convenient:<br>
-<br>
+you may find convenient:
+</p>
<div class="source"><pre>BuiltInConverter bic = new
BuiltInConverter();
bic.addConverter(SomeCustomThing.class, new SomeCustomThingConverter());
-</pre></div>s
-<br>
-Alternatively, you can subclass BuildInConverter:<br>
-<br>
+</pre></div>
+<p>
+Alternatively, you can subclass BuildInConverter:
+</p>
<div class="source"><pre>BuiltInConverter bic = new BuiltInConverter() {
@Override
protected void addBuiltInConverters() {
@@ -44,38 +69,37 @@
}
};
</pre></div>
-<br>
-or:<br>
-<br>
+<p>
+or:<br/>
+</p>
<div class="source"><pre>BuiltInConverter bic = new BuiltInConverter() {
public BuiltInConverter() {
super.addConverter(SomeCustomThing.class, new SomeCustomThingConverter());
}
};
</pre></div>
+<p>
Converters themselves are easy to write.&nbsp; Here's the built in one
-for boolean:<br>
-<br>
-<div class="source"><pre>class BooleanConverter implements Converting.Converter {
- public boolean canConvert(Type type) {
- return Boolean.class == type;
- }
- public Object convert(String paramValue, Type type) {
+for boolean:</p>
+<div class="source"><pre>class BooleanConverter implements Converter<Boolean>{
+ public Boolean convert(String paramValue) {
return Boolean.valueOf(paramValue);
}
}
</pre></div>
-<br>
-Setup a container to use your converter:<br>
-<br>
-<div class="source"><pre>MutableContainer pico = new DefaultPicoContainer() {
+<p>
+Setup a container to use your converter:</p>
+<div class="source"><pre>
+ MutableContainer pico = new DefaultPicoContainer() {
@Override
- public Converting.Converter getConverter() {
- return new YourCustomConverter();
+ public ConverterSet getConverter() {
+ return new BuildInConverter() {
+ public BuiltInConverter() {
+ super.addConverter(SomeCustomThing.class, new SomeCustomThingConverter());
+ }
+ }
}
};
</pre></div>
-<br>
-<br>
</body>
</html>

----------

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.