<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>eSoftHead, a Vietnam Software Outsourcing Company&#187; Testing</title>
	<atom:link href="http://blog.esofthead.com/category/testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.esofthead.com</link>
	<description>The official blog of eSoftHead Company</description>
	<lastBuildDate>Thu, 01 Jul 2010 21:17:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Develop Restful application with RESTeasy</title>
		<link>http://blog.esofthead.com/develop-restful-application-with-resteasy/</link>
		<comments>http://blog.esofthead.com/develop-restful-application-with-resteasy/#comments</comments>
		<pubDate>Thu, 07 May 2009 04:12:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Engroup]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Engineer]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Resteasy]]></category>
		<category><![CDATA[Restful]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Unit test]]></category>
		<category><![CDATA[Web service]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/develop-restful-application-with-resteasy/</guid>
		<description><![CDATA[Web service is complicated, to understand web service you must know SOAP, WSDL, XML schema etc. CORBA is even more completed than Web service. Our team have many years experience of developing web services by using various libraries like Axis, XFire and Cxf .We spent nearly month to understand and practice each type of SOAP [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="W" class="cap"><span>W</span></span>eb service is complicated, to understand web service you must know SOAP, WSDL, XML schema etc. CORBA is even more completed than Web service. Our team have many years experience of developing web services by using various libraries like Axis, XFire and Cxf .We spent nearly month to understand and practice each type of SOAP message, parts of WSDL and tricks to keep the interoperability follows WS-I guidelines. However, we only need several days to learn REST and practice it in our project. Recently, we have a task of providing the API allows third-party application could get data from our application, though we have many experience in web service but we would like to investigate REST option. After several days for evaluating, REST is our choice. We are very pleased with the simplicity of REST - a lightweight web service, simple and powerful. In java world, RESTeasy (<a href="http://www.jboss.org/resteasy/">http://www.jboss.org/resteasy/</a>) provides frameworks to help you build Restful Web Services. With RESTeasy, we could deploy Restful solution without impacting to existing code-base, ease to write unit test and ease to extend its functionalities, and the last RESTeasy documentation is comprehensive - you can learn to use RESTeasy in several hours only.</p>
<p>Our sample project is an existing application that uses Spring as IOC container, we would like to expose service <span id="more-241"></span>method to third-party applications. We have the interface and its implementation already.</p>
<pre class="java5"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> FileSystemService <span style="color: #66cc66;">&#123;</span>
    SimpleFile getFileByPath<span style="color: #66cc66;">&#40;</span><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html"><span style="color: #aaaadd; font-weight: bold;">String</span></a> filePath<span style="color: #66cc66;">&#41;</span>;
    ...
<span style="color: #66cc66;">&#125;</span></pre>
<h2><strong><strong>Enable Restful service</strong></strong></h2>
<p>The request /filesystem/getFile/&lt;path of file&gt; will return the file information if it is existed. To make it happen, we add java REST annotation to our service:</p>
<pre class="java5">@Path<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;/filesystem&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">interface</span> FileSystemService <span style="color: #66cc66;">&#123;</span>
    @GET
    @Path<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;/getFile/{filePath:.*}&quot;</span><span style="color: #66cc66;">&#41;</span>
    @Produces<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;application/xml&quot;</span><span style="color: #66cc66;">&#41;</span>
    SimpleFile getFileByPath<span style="color: #66cc66;">&#40;</span>@PathParam<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;filePath&quot;</span><span style="color: #66cc66;">&#41;</span> <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html"><span style="color: #aaaadd; font-weight: bold;">String</span></a> filePath<span style="color: #66cc66;">&#41;</span>;
    ...
<span style="color: #66cc66;">&#125;</span></pre>
<p>Because the path of file may contains the '/' character, '/' is also the special characters of Http request, thus in line 4 we must use regular expression * to tell RESTeasy that all requests starts with /getFille is mapped to method getFileByPath (for example: /getFile/content/A or /getFile/content/A/B/C is valid path). @Produces("application/xml") annotation tells RESTeasy that the output must be in XML form.</p>
<h2><strong><strong>Content marshalling/unmarshalling</strong></strong></h2>
<p>Class SimpleFile is the complex type, to force RESTeasy produces XML data to client you must instruct RESTeasy how to marshal SimpleFile class.</p>
<pre class="java5">@XmlRootElement<span style="color: #66cc66;">&#40;</span>namespace=<span style="color: #ff0000;">&quot;http://www.esofthead.com/engroup&quot;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SimpleFile <span style="color: #000000; font-weight: bold;">extends</span> Content <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #993333;">long</span> size;
        ...
<span style="color: #66cc66;">&#125;</span></pre>
<h2><strong><strong>Installation</strong></strong></h2>
<p>It is easy to install RESTeasy in java application, read the Installation section of RESTeasy documentation. Read more Spring integration section if you want to integrate RESTeasy with Spring. And we finish enable RESTful support in our Java application! Like its name, it is easy to deploy Restful solution by using RESTeasy.</p>
<h2><strong><strong>Unit test</strong></strong></h2>
<p>After all above tasks, it is time to look unit test solution. RESTeasy provides two approaches to write unit test:</p>
<ul>
<li>Embedded Container:RESTeasy packages TJWS embeddable servlet container with JAX-RS. You can start the embedded server in your unit test and use Apache HttpClient to test your code. See the sample in attachment files for detail.</li>
<li>Server side - Mock framework:If you are not comfortable with starting the embedded server and would like a simpler solution, RESTeasy Mock framework would be a good option.
<p><strong>Create Dispatcher mock object and integrate RESTeasy with Spring</strong></p>
<pre class="java5">dispatcher = MockDispatcherFactory.<span style="color: #006600;">createDispatcher</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
SpringBeanProcessor processor = <span style="color: #000000; font-weight: bold;">new</span> SpringBeanProcessor<span style="color: #66cc66;">&#40;</span>dispatcher,
                <span style="color: #b13366;">null</span>, <span style="color: #b13366;">null</span><span style="color: #66cc66;">&#41;</span>;
factory = <span style="color: #000000; font-weight: bold;">new</span> ClassPathXmlApplicationContext<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;ecm-context-test.xml&quot;</span><span style="color: #66cc66;">&#41;</span>;
factory.<span style="color: #006600;">addBeanFactoryPostProcessor</span><span style="color: #66cc66;">&#40;</span>processor<span style="color: #66cc66;">&#41;</span>;
&nbsp;
SpringResourceFactory noDefaults = <span style="color: #000000; font-weight: bold;">new</span> SpringResourceFactory<span style="color: #66cc66;">&#40;</span>
                <span style="color: #ff0000;">&quot;fileSystemService&quot;</span>, factory, FileSystemService.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #66cc66;">&#41;</span>;
dispatcher.<span style="color: #006600;">getRegistry</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">addResourceFactory</span><span style="color: #66cc66;">&#40;</span>noDefaults<span style="color: #66cc66;">&#41;</span>;</pre>
<p><strong>Send the request and test expected output</strong></p>
<pre class="java5">MockHttpRequest request = MockHttpRequest
                .<span style="color: #006600;">get</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;/filesystem/getFile/content/A&quot;</span><span style="color: #66cc66;">&#41;</span>;
MockHttpResponse response = <span style="color: #000000; font-weight: bold;">new</span> MockHttpResponse<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
dispatcher.<span style="color: #006600;">invoke</span><span style="color: #66cc66;">&#40;</span>request, response<span style="color: #66cc66;">&#41;</span>;
&nbsp;
Assert.<span style="color: #006600;">assertEquals</span><span style="color: #66cc66;">&#40;</span>HttpServletResponse.<span style="color: #006600;">SC_OK</span>, response.<span style="color: #006600;">getStatus</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html"><span style="color: #aaaadd; font-weight: bold;">String</span></a> responseBodyAsString = response.<span style="color: #006600;">getContentAsString</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
JAXBContext jaxbContext = JAXBContext.<span style="color: #006600;">newInstance</span><span style="color: #66cc66;">&#40;</span>SimpleFile.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #66cc66;">&#41;</span>;
Unmarshaller unmarshaller = jaxbContext.<span style="color: #006600;">createUnmarshaller</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
SimpleFile resultFile = <span style="color: #66cc66;">&#40;</span>SimpleFile<span style="color: #66cc66;">&#41;</span> unmarshaller
                .<span style="color: #006600;">unmarshal</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/StringReader.html"><span style="color: #aaaadd; font-weight: bold;">StringReader</span></a><span style="color: #66cc66;">&#40;</span>responseBodyAsString<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
Assert.<span style="color: #006600;">assertEquals</span><span style="color: #66cc66;">&#40;</span>ContentConstants.<span style="color: #006600;">FILE_ROOT_PATH</span> + <span style="color: #ff0000;">&quot;/A&quot;</span>, resultFile
                .<span style="color: #006600;">getPath</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</pre>
<p>The result of request method is a XML string, the result of marshaling SimpleFile object to XML. To avoid testing base on XML data, we use JAXB to unmarshal XML data to SimpleFile object and validate data on this POJO.</li>
</ul>
<p class="zoundry_raven_tags">I include two samples unit test for two approaches <a href="http://blog.esofthead.com/content/files/FileSystemRestTest-EmbeddedServer.java">FileSystemRestTest-EmbeddedServer.java</a> and <a href="http://blog.esofthead.com/content/files/FileSystemRestTest-MockFramework.java">FileSystemRestTest-MockFramework.java</a>.This unit test sample is gotten from our engroup ECM module (you can get the Engroup product at <a href="http://esofthead.com/node/25">http://esofthead.com/node/25</a>), the unit test can not run because it lacks some classes of Engroup ECM module (this module is released in upcoming Engroup 1.5 version) but it provides the detail how to write unit test with RESTeasy.<!-- Tag links generated by Zoundry Raven. Do not manually edit. http://www.zoundryraven.com --></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;bodytext=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;notes=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;t=Develop%20Restful%20application%20with%20RESTeasy" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;annotation=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Develop%20Restful%20application%20with%20RESTeasy&amp;story=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;Title=Develop%20Restful%20application%20with%20RESTeasy" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;description=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;desc=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Develop%20Restful%20application%20with%20RESTeasy&amp;body=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Develop%20Restful%20application%20with%20RESTeasy&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;type=Article&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Develop%20Restful%20application%20with%20RESTeasy&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;headline=Develop%20Restful%20application%20with%20RESTeasy&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;bm_description=Develop%20Restful%20application%20with%20RESTeasy&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;bm_description=Develop%20Restful%20application%20with%20RESTeasy&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;desc=Develop%20Restful%20application%20with%20RESTeasy" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;t=Develop%20Restful%20application%20with%20RESTeasy" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Develop%20Restful%20application%20with%20RESTeasy&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;h=Develop%20Restful%20application%20with%20RESTeasy" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Develop%20Restful%20application%20with%20RESTeasy&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;b=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy&amp;body=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;=Develop%20Restful%20application%20with%20RESTeasy" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Develop%20Restful%20application%20with%20RESTeasy&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;story_title=Develop%20Restful%20application%20with%20RESTeasy" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;name=Develop%20Restful%20application%20with%20RESTeasy" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;t=Develop%20Restful%20application%20with%20RESTeasy&amp;s=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;title=Develop%20Restful%20application%20with%20RESTeasy" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;submitHeadline=Develop%20Restful%20application%20with%20RESTeasy&amp;submitSummary=Web%20service%20is%20complicated%2C%20to%20understand%20web%20service%20you%20must%20know%20SOAP%2C%20WSDL%2C%20XML%20schema%20etc.%20CORBA%20is%20even%20more%20completed%20than%20Web%20service.%20Our%20team%20have%20many%20years%20experience%20of%20developing%20web%20services%20by%20using%20various%20libraries%20like%20Axis%2C%20XFire%20&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Fdevelop-restful-application-with-resteasy%2F&amp;exttitle=Develop%20Restful%20application%20with%20RESTeasy" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/develop-restful-application-with-resteasy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Testing Spring beans against database with DbUnit</title>
		<link>http://blog.esofthead.com/testing-spring-beans-against-database-with-dbunit/</link>
		<comments>http://blog.esofthead.com/testing-spring-beans-against-database-with-dbunit/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 02:59:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Engroup]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Engineer]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[DbUnit]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=198</guid>
		<description><![CDATA[This is another post of testing series we wrote so far and it discusses how to write testing against database. We prefer writing unit test for whole kind of our services, it includes the testing against POJO, LDAP, database, content repository, email. Here the topics relate to testing in our site:

Some questions and answers of [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="T" class="cap"><span>T</span></span>his is another post of testing series we wrote so far and it discusses how to write testing against database. We prefer writing unit test for whole kind of our services, it includes the testing against POJO, LDAP, database, content repository, email. Here the topics relate to testing in our site:</p>
<ul>
<li>Some questions and answers of unit test (<a href="http://blog.esofthead.com/?p=51">http://blog.esofthead.com/?p=51</a>)</li>
<li>Enhance the unit test using Annotation approach (<a href="http://blog.esofthead.com/?p=67">http://blog.esofthead.com/?p=67</a>)</li>
<li>Unitils - enhance unit test using Annotation approach (<a href="http://blog.esofthead.com/?p=77">http://blog.esofthead.com/?p=77</a>) - Unit test spring bean and database testing with unitils library.</li>
<li>Unit test with Spring Dynamic Modules (<a href="http://blog.esofthead.com/?p=106">http://blog.esofthead.com/?p=106</a>) - Unit &amp; Integration test for Spring DM.</li>
<li>Integration Jackrabbit OCM and Spring (<a href="http://blog.esofthead.com/?p=174">http://blog.esofthead.com/?p=174</a>) - Unit test against content repository.<span id="more-198"></span></li>
</ul>
<p><strong style="FONT-SIZE: 1.2em">Introduction</strong><br />
There are some techniques to write testing application services interact with database. There are:</p>
<p><strong>Using Mock Object</strong></p>
<p><strong>Mock object</strong> are simulated objects that mimic the behavior of real objects in controlled ways. Using the mock object could be increase the performance of unit test, reduce the cost of maintenance also reduce the complexity of setting the test objects. In java world, easymock (<a href="http://easymock.org/">http://easymock.org/</a>) is the good mock library to help developers write mock easily.</p>
<p><strong>Using Development Database</strong></p>
<p>Testing runs against the development database. It has separated testing database per each workspace. It takes more time in setting testing environment, more time to execution, but it is useful in case we need to write the testing for database test script (not focus on business on service layer).<br />
<strong style="FONT-SIZE: 1.2em">Database testing with DbUnit</strong></p>
<p>DbUnit (<a href="http://www.dbunit.org/">http://www.dbunit.org/</a>) is a JUnit extension targeted at database-driven projects that, among other things, puts your database into a known state between test runs. You should use dbUnit to write unit/integration testing on service layer. However, dbUnit could not be use in:</p>
<ul>
<li><strong>Performance testing</strong>: development performance could say nothing about the performance of database.</li>
<li><strong>Stress/Volume testing</strong>: you could not write millions of database records using xml format.</li>
</ul>
<p>With the completed database schema which has many foreign keys, it may takes you much time to maintain the known state of database, so one practice is omitting all foreign keys in testing database. It will reduce much time of maintaining database test script.</p>
<p><strong style="FONT-SIZE: 1.2em">Integrate DbUnit and Spring Testing</strong></p>
<p>Spring provides the excellent testing framework since 2.5 supports java annotation (<a href="http://static.springframework.org/spring/docs/2.5.x/reference/testing.html">http://static.springframework.org/spring/docs/2.5.x/reference/testing.html</a>). To configure the Test Context, Spring use the test runner is <em>SpringJUnit4ClassRunner</em>. So in order to integrate DbUnit with Spring Testing framework, we extended this runner by our own class <em>EngroupClassRunner</em> and our testing has format:</p>
<pre lang="java5" xml:lang="java">@RunWith(EngroupClassRunner.class)
@ContextConfiguration(locations = { "/spring-service-test.xml" })
public class ExtendedTest{
    ...
    @DataSet
    @Test
    public void testSave() {
        ...
    }
}</pre>
<p>With <em>EngroupClassRunner,</em> it would use the database script locates in the same location in testing class (for example: the database script would be located at com/engroup/module/hr/service/EducationTest.xml if the test class has the full name com.engroup.module.hr.service.EducationTest).</p>
<p><strong>Override the database source to database testing configuration</strong></p>
<p>Replace the spring configuration file by another spring configuration file in testing. For example: replace the code</p>
<pre lang="xml" xml:lang="xml">&lt;osgi:reference id="dataSource" interface="javax.sql.DataSource" /&gt;
&lt;bean id="hrSqlMapClient"
    class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"&gt;
    &lt;property name="configLocation"
        value="classpath:hr-sqlmap-config.xml" /&gt;
    &lt;property name="dataSource" ref="dataSource" /&gt;
&lt;/bean&gt;</pre>
<p>By</p>
<pre lang="xml" xml:lang="xml">&lt;bean id="dataSource"
  class="com.engroup.test.DataSourceFactoryBean" /&gt;</pre>
<pre lang="xml" xml:lang="xml">&lt;bean id="commonSqlMapClient"
        class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"&gt;
    &lt;property name="configLocation"
        value="classpath:common-sqlmap-config.xml" /&gt;
    &lt;property name="dataSource" ref="dataSource" /&gt;
&lt;/bean&gt;</pre>
<p>with <em>com.engroup.test.DataSourceFactoryBean</em> is the factory bean creates the data source from testing configuration and points to testing database.</p>
<p>and you write the database script in xml format as usual dbUnit format:</p>
<pre lang="xml" xml:lang="xml">&lt;!DOCTYPE dataset SYSTEM "../../../../../../engroup.dtd" &gt;
&lt;dataset&gt;
    &lt;m_hr_education id="1" course="Java" durationinmonth="10" institute="USA"/&gt;
    &lt;m_hr_education id="2" course="C#" durationinmonth="5" institute="VN"/&gt;
&lt;/dataset&gt;</pre>
<p>Finally, you run the test to see whether your service is ok.</p>
<p class="zoundry_bw_tags">I include the some core classes of Engroup testing, not the whole package could be testable (because if I do so, you must have the testing database at your side). Here is the <a href="http://blog.esofthead.com/content/files/engroup_testing.zip">attachment</a>.<!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;bodytext=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;notes=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;t=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;annotation=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;story=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;Title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;description=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;desc=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;body=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;u=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;type=Article&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;headline=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;bm_description=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;bm_description=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;desc=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;t=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;h=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;u=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;b=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;body=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;story_title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;name=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;t=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;s=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;title=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;submitHeadline=Testing%20Spring%20beans%20against%20database%20with%20DbUnit&amp;submitSummary=This%20is%20another%20post%20of%20testing%20series%20we%20wrote%20so%20far%20and%20it%20discusses%20how%20to%20write%20testing%20against%20database.%20We%20prefer%20writing%20unit%20test%20for%20whole%20kind%20of%20our%20services%2C%20it%20includes%20the%20testing%20against%20POJO%2C%20LDAP%2C%20database%2C%20content%20repository%2C%20email&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Ftesting-spring-beans-against-database-with-dbunit%2F&amp;exttitle=Testing%20Spring%20beans%20against%20database%20with%20DbUnit" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/testing-spring-beans-against-database-with-dbunit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Integration of Jackrabbit OCM and Spring (updated version)</title>
		<link>http://blog.esofthead.com/integration-of-jackrabbit-ocm-and-spring-newer-version/</link>
		<comments>http://blog.esofthead.com/integration-of-jackrabbit-ocm-and-spring-newer-version/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 10:04:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Engroup]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Object Oriented and Design]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[ECM]]></category>
		<category><![CDATA[Jackrabbit]]></category>
		<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=174</guid>
		<description><![CDATA[In the previous post Jackrabbit OCM and Spring, I have outlined the way of integrating between Jacckrabbit OCM (jackrabbit 1.5.0-snapshot) and Spring. The time flies help us have more JCR knowledge, jackrabbit api becomes more stable and our Engroup ECM implementation is changed. Instead of creating the total new JCR node types for our domain [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="I" class="cap"><span>I</span></span>n the previous post <a href="http://blog.esofthead.com/?p=90">Jackrabbit OCM and Spring</a>, I have outlined the way of integrating between Jacckrabbit OCM (jackrabbit 1.5.0-snapshot) and Spring. The time flies help us have more JCR knowledge, jackrabbit api becomes more stable and our Engroup ECM implementation is changed. Instead of creating the total new JCR node types for our domain classes in the previous version, we extends our node types base on the standard JCR node types as nt:file, nt:folder. In addition, our unit test is re-written for simpleness and make higher coverage rate. <span id="more-174"></span><br />
You can download our example in <a href="http://blog.esofthead.com/content/files/engroup_ecm.zip">example zip file</a> with note that this example is the cut-off version of Engroup ECM API that limits handling simple file, folder instances. Because <a href="http://esofthead.com/node/25">Engroup</a> runs on Osgi platform, and we already<br />
packaged our libraries as Osgi bundles. To reduce our efforts in editing this cut-off version, we use our libraries<br />
at <a href="http://engroup.sourceforge.net/maven2/">http://engroup.sourceforge.net/maven2/</a> instead the libraries in standard maven repository. It will takes your time to download Engroup libraries at the first time.</p>
<p><strong style="FONT-SIZE: 1.2em">Basic Jackrabbit OCM and Spring configuration</strong></p>
<pre lang="xml" xml:lang="xml">&lt;bean id="repository"
  class="org.springmodules.jcr.jackrabbit.RepositoryFactoryBean"&gt;
    &lt;property name="configuration"
      value="classpath:jackrabbit-repo-test.xml" /&gt;
    &lt;property name="homeDir" value="." /&gt;
 &lt;/bean&gt;</pre>
<pre lang="xml" xml:lang="xml"> &lt;bean id="jcrSessionFactory"
  class="org.springmodules.jcr.jackrabbit.ocm.JackrabbitSessionFactory"&gt;
     &lt;property name="repository" ref="repository" /&gt;
     &lt;property name="credentials"&gt;
         &lt;bean class="javax.jcr.SimpleCredentials"&gt;
             &lt;constructor-arg index="0" value="superuser" /&gt;
             &lt;!-- create the credentials using a bean factory --&gt;
             &lt;constructor-arg index="1"&gt;
                 &lt;bean factory-bean="password" factory-method="toCharArray" /&gt;
             &lt;/constructor-arg&gt;
         &lt;/bean&gt;
     &lt;/property&gt;
     &lt;property name="skipExistingNamespaces" value="true"/&gt;
     &lt;property name="namespaces"&gt;
         &lt;props&gt;
             &lt;prop key="engroup"&gt;http://esofthead.com/engroup&lt;/prop&gt;
         &lt;/props&gt;
     &lt;/property&gt;
     &lt;property name="nodeTypes2Import" value="custom_nodetypes_test.xml" /&gt;
 &lt;/bean&gt;
 &lt;!-- create the password to return it as a char[] --&gt;
 &lt;bean id="password" class="java.lang.String"&gt;
     &lt;constructor-arg index="0" value="superuser" /&gt;
 &lt;/bean&gt;
 &lt;bean id="jcrMappingTemplate"
  class="org.springmodules.jcr.jackrabbit.ocm.JcrMappingTemplate"&gt;
     &lt;constructor-arg index="0" ref="jcrSessionFactory" /&gt;
     &lt;constructor-arg index="1" ref="jcrMappingDescriptor" /&gt;
 &lt;/bean&gt;</pre>
<p><br/><br />
<strong style="FONT-SIZE: 1.2em">Declaring annotation classes</strong></p>
<pre lang="xml" xml:lang="xml">&lt;bean id="jcrMappingDescriptor"
  class="org.apache.jackrabbit.ocm.mapper.impl.annotation.AnnotationMapperImpl"&gt;
    &lt;constructor-arg index="0"&gt;
        &lt;list&gt;
            &lt;value&gt;com.engroup.module.ecm.domain.Content&lt;/value&gt;
            &lt;value&gt;com.engroup.module.ecm.domain.File&lt;/value&gt;
            &lt;value&gt;com.engroup.module.ecm.domain.Folder&lt;/value&gt;
            &lt;value&gt;com.engroup.module.ecm.domain.Resource&lt;/value&gt;
        &lt;/list&gt;
     &lt;/constructor-arg&gt;
 &lt;/bean&gt;</pre>
<p><br/><br />
<span style="FONT-SIZE: 1.2em"><strong>Transaction support</strong></span></p>
<pre lang="xml" xml:lang="xml"> &lt;bean id="jcrTransactionManager"
  class="org.springmodules.jcr.jackrabbit.LocalTransactionManager"&gt;
     &lt;property name="sessionFactory" ref="jcrSessionFactory" /&gt;
 &lt;/bean&gt;
 &lt;bean id="baseTransactionProxy"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  abstract="true"&gt;
     &lt;property name="transactionManager"&gt;
         &lt;ref bean="jcrTransactionManager" /&gt;
     &lt;/property&gt;
     &lt;property name="transactionAttributes"&gt;
         &lt;props&gt;
             &lt;prop key="save*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt;
             &lt;prop key="*"&gt;PROPAGATION_REQUIRED,readonly&lt;/prop&gt;
         &lt;/props&gt;
     &lt;/property&gt;
 &lt;/bean&gt;</pre>
<pre lang="xml" xml:lang="xml"> &lt;bean id="internalFileSystemService"
  class="com.engroup.module.ecm.service.impl.FileSystemServiceImpl"&gt;
     &lt;property name="jcrTemplate" ref="jcrMappingTemplate" /&gt;
 &lt;/bean&gt;</pre>
<pre lang="xml" xml:lang="xml"> &lt;bean id="fileSystemService" parent="baseTransactionProxy"&gt;
     &lt;qualifier value="proxy" /&gt;
     &lt;property name="proxyInterfaces"&gt;
         &lt;value&gt;
             com.engroup.module.ecm.service.FileSystemService
         &lt;/value&gt;
      &lt;/property&gt;
      &lt;property name="target"&gt;
          &lt;ref bean="internalFileSystemService" /&gt;
      &lt;/property&gt;
      &lt;property name="transactionAttributes"&gt;
          &lt;props&gt;
              &lt;prop key="*"&gt;PROPAGATION_REQUIRED&lt;/prop&gt;
          &lt;/props&gt;
      &lt;/property&gt;
 &lt;/bean&gt;</pre>
<p><br/><br />
<strong style="FONT-SIZE: 1.2em">Custom JCR node types</strong></p>
<p>Depends on your context, you could want to write custom JCR node types such as add description field into File class. Fairly easy to do so by declaring custom node types in custom_nodetypes_test.xml file:</p>
<pre lang="xml" xml:lang="xml">&lt;!--It is a must node type for OCM support--&gt;
&lt;nodeType name="ocm:discriminator" isMixin="true"&gt;
    &lt;supertypes&gt;
        &lt;supertype&gt;nt:base&lt;/supertype&gt;
    &lt;/supertypes&gt;
    &lt;propertyDefinition name="ocm_classname" requiredType="String"
        autoCreated="false" mandatory="true" onParentVersion="COPY"
        protected="false" multiple="false" /&gt;
 &lt;/nodeType&gt; 

 &lt;nodeType name="engroup:hierarchyNode" isMixin="false"
  hasOrderableChildNodes="false" primaryItemName=""&gt;
     &lt;supertypes&gt;
         &lt;supertype&gt;nt:hierarchyNode&lt;/supertype&gt;
     &lt;/supertypes&gt;
     &lt;propertyDefinition name="jcr:description" requiredType="String"
         autoCreated="false" mandatory="false" onParentVersion="COPY"
         protected="false" multiple="false" /&gt;
     &lt;propertyDefinition name="jcr:owner" requiredType="String"
         autoCreated="false" mandatory="false" onParentVersion="COPY"
         protected="false" multiple="false" /&gt;
 &lt;/nodeType&gt;</pre>
<p><br/><br />
<strong style="FONT-SIZE: 1.2em">Writing unit test</strong></p>
<p>Unit test is our standard and it is time to write some test cases to test Engroup ECM API. We will use the Spring<br />
Test Framework to test our spring bean. One more concern is choosing appropriate Jackrabbit Persistent Manager for<br />
testing. Jackrabbit supports various Persistent Manager such as File System, Database, InMemory. In our product, we<br />
use Database Persistent Manager, but for testing purpose the InMemory Persistent Manager is the good choice for fast<br />
and cleaning data after running test. You could configure it in Jackrabbit configuration file</p>
<pre lang="xml" xml:lang="xml">&lt;FileSystem class="org.apache.jackrabbit.core.fs.mem.MemoryFileSystem"/&gt;
...Workspace section
    &lt;PersistenceManager class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager"&gt;
        &lt;param name="persistent" value="false"/&gt;
    &lt;/PersistenceManager&gt;
...Version section
    &lt;PersistenceManager class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager"&gt;
        &lt;param name="persistent" value="false"/&gt;
    &lt;/PersistenceManager&gt;</pre>
<p>Write FileSystemService unit test:</p>
<pre lang="java5" xml:lang="java5">@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/ecm-context-test.xml" })
public class FileSystemServiceTest {
    @Autowired
    @Qualifier("proxy")
    protected FileSystemService fileSystemService;
...
}</pre>
<p><br/><br />
And add some test method:</p>
<pre lang="java5" xml:lang="java5">@Test
public void testUpdateFileWithVersion() {
    Resource resource = new Resource();
    resource.setData(new ByteArrayInputStream("this is the content"
            .getBytes()));
    resource.setLastModified(Calendar.getInstance());
    resource.setMimeType("plain/text");
    File file = new File();
    file.setPath("/A");
    file.setResource(resource);
    fileSystemService.save(file);

    Resource resource2 = new Resource();
    resource2.setData(new ByteArrayInputStream("this is the content 2"
            .getBytes()));
    resource2.setLastModified(Calendar.getInstance());
    resource2.setMimeType("plain/x");
    file.setResource(resource2);
    fileSystemService.update(file);
    Collection&lt;Version&gt; versions = fileSystemService
            .getVersionHistory(ContentConstants.FILE_ROOT_PATH + "/A");
    Assert.assertEquals(2, versions.size());
    File latestFileVersion = fileSystemService.getFileByVersion(
            ContentConstants.FILE_ROOT_PATH + "/A", "1.0");
    Assert.assertEquals("plain/x", latestFileVersion.getResource()
            .getMimeType());
    fileSystemService.remove(file);
}</pre>
<p>You could download the <a href="http://blog.esofthead.com/content/files/engroup_ecm.zip">example</a>, see more details how to integrate Jackrabbit OCM and Spring, run the test and provide your feedbacks if any.</p>
<p class="zoundry_bw_tags"><a href="http://blog.esofthead.com/content/files/engroup_ecm.zip">Source code</a><br />
<!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;bodytext=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;notes=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;t=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;annotation=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;story=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;Title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;description=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;desc=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;body=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;type=Article&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;headline=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;bm_description=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;bm_description=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;desc=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;t=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;h=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;b=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;body=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;story_title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;name=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;t=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;s=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;title=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;submitHeadline=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29&amp;submitSummary=In%20the%20previous%20post%20Jackrabbit%20OCM%20and%20Spring%2C%20I%20have%20outlined%20the%20way%20of%20integrating%20between%20Jacckrabbit%20OCM%20%28jackrabbit%201.5.0-snapshot%29%20and%20Spring.%20The%20time%20flies%20help%20us%20have%20more%20JCR%20knowledge%2C%20jackrabbit%20api%20becomes%20more%20stable%20and%20our%20Engroup%20&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Fintegration-of-jackrabbit-ocm-and-spring-newer-version%2F&amp;exttitle=Integration%20of%20Jackrabbit%20OCM%20and%20Spring%20%28updated%20version%29" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/integration-of-jackrabbit-ocm-and-spring-newer-version/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Unitils &#8211; library for enhance unit test by using annotation approach</title>
		<link>http://blog.esofthead.com/unitils-library-for-enhance-unit-test-by-using-annotation-approach/</link>
		<comments>http://blog.esofthead.com/unitils-library-for-enhance-unit-test-by-using-annotation-approach/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 03:25:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Unit test]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=77</guid>
		<description><![CDATA[In the post Enhance the Unit test using Annotation approach, I outlined the approach of using annotation to reduce the redundant code and avoid the inheritance (like JUnit3). Annotation RunWith of JUnit4 is a powerful class help us to custom the approach of running unit test, we can create the class inherits from class TestRunner. [...]]]></description>
			<content:encoded><![CDATA[<p class="first-child "><span title="I" class="cap"><span>I</span></span>n the post <a href="http://www.haiphucnguyen.net/blog/?p=51">Enhance the Unit test using Annotation approach</a>, I outlined the approach of using annotation to reduce the redundant code and avoid the inheritance (like JUnit3). Annotation RunWith of JUnit4 is a powerful class help us to custom the approach of running unit test, we can create the class inherits from class TestRunner. Unitils is the unit test framework for Spring, Hibernate and Database testing but it provide the mechanism to enhance unit testing via annotation by using its modules. Actually, I do not use the standard modules provide by Unitils like Hibernate mapping testing, Spring bean testing but I mostly write new modules to serve my testing purposes. In this post, I will give an example of extending Unitils for Ldap unit test purpose.<span id="more-77"></span></p>
<p><strong>Scenario:</strong> I would like to test login function of some application use Ldap server as user information database. The unit test will launch the embedded LdapServer in each test method as the excellent guideline describe here <a href="http://directory.apache.org/apacheds/1.5/using-apacheds-for-unit-tests.html">http://directory.apache.org/apacheds/1.5/using-apacheds-for-unit-tests.html</a>. Typically, I would like each test class launch embedded ldap server use the annotation EmbeddingServer:</p>
<p style="text-align: left;"><span style="font-size: 0.75em; color: #646464;">@RunWith<br />
</span> <span style="font-size: 0.75em;">(UnitilsJUnit4TestClassRunner.</span><strong><span style="font-size: 0.75em; color: #7f0055;">class</span></strong><span style="font-size: 0.75em;">)<br />
</span> <span style="font-size: 0.75em; color: #646464;">@EmbeddingLdapServer<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">public</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">class</span></strong><span style="font-size: 0.75em;">RoleLdapServiceTest <a href="mailto:{@Test">{<br />
<span style="font-size: 0.75em; color: #646464;">@Test</span></a><br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">public</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">void</span></strong><strong><span style="font-size: 0.75em; color: #000080;">testFindRole</span></strong><span style="font-size: 0.75em;">() {<br />
Assert.<em>assertNotNull</em>(</span><span style="font-size: 0.75em; color: #0000c0;">roleLdapService.</span><strong><span style="font-size: 0.75em; color: #000080;">findRoleName</span></strong><span style="font-size: 0.75em;">(</span><span style="font-size: 0.75em; color: #2a00ff;">"ROLE_ADMINISTRATOR"</span><span style="font-size: 0.75em;">));<br />
Assert.<em>assertNull</em>(</span><span style="font-size: 0.75em; color: #0000c0;">roleLdapService</span><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #000080;">findRoleName</span></strong> <span style="font-size: 0.75em;">(</span><span style="font-size: 0.75em; color: #2a00ff;">"ROLE_TEST"</span><span style="font-size: 0.75em;">));<br />
...</span><span style="font-size: 0.75em;"><br />
}<br />
...<br />
}</span></p>
<p>To add the new module to Unitils is very simple:</p>
<ol>
<li>Add the new module name in unitils.properties (you can see how to use unitils.properties to configure modules at <a href="http://unitils.sourceforge.net/tutorial.html#Unitils%20Modules">http://unitils.sourceforge.net/tutorial.html#Unitils%20Modules</a>):<br />
<strong>unitils.modules</strong>=database,dbunit,hibernate,easymock,inject,spring, ldap (Note that database, dbunit, hibernate, easymock,inject and spring are the built-in modules of Unitils, and I add ldap module for my ldap unit testing).</li>
<li>Add the related information for initializing our module in the same unitils.properties file<br />
<strong>unitils.module.ldap.className</strong>=org.nextss.util.test.ldap.LdapModule<br />
<strong>unitils.module.ldap.enabled</strong>=true<br />
<strong>ldap.username</strong>=uid=admin,ou=system<br />
<strong>ldap.password</strong>=secret<br />
<strong>ldap.authentication.method</strong>=simple<br />
<strong>ldap.factory.classname</strong>=org.apache.directory.server.jndi.ServerContextFactory</li>
<li>Create the annotation class that new module supports
<p style="text-align: left;"><span style="font-size: 0.75em; color: #646464;">@Target</span><span style="font-size: 0.75em;">(ElementType.</span><em><span style="font-size: 0.75em; color: #0000c0;">TYPE</span></em><span style="font-size: 0.75em;">)<br />
</span> <span style="font-size: 0.75em; color: #646464;">@Retention</span><span style="font-size: 0.75em;">(RetentionPolicy.</span><em><span style="font-size: 0.75em; color: #0000c0;">RUNTIME</span></em><span style="font-size: 0.75em;">)<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">public</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">@interface</span></strong><span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span> <span style="font-size: 0.75em;">{<br />
}</span></p>
<p>EmbeddingLdapServer is annotated to class and it is retained in runtime as we define in requirement</li>
<li>Create Module class corresponds the new module. This class must inherit the interface <span style="font-size: 0.75em;">org.unitils.core.Module</span> and override two methods <strong><span style="font-size: 0.75em; color: #7f0055;">void</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">init</span></strong><span style="font-size: 0.75em;">(Properties configuration)</span> and <span style="font-size: 0.75em;">TestListener</span> <strong><span style="font-size: 0.75em; color: #000080;">createTestListener</span></strong><span style="font-size: 0.75em;">().</span> The usage of these two classes are:<br />
- init is used to load any pre-defined configuration of defined module (in unitils.properties file)<br />
- createTestListener creates the TestListener for test events with the following orders:</li>
<li style="list-style-type: none;">
<p style="margin-left: 2em;">
<ul>
<li>[Unitils] beforeAll</li>
<li>[Unitils] beforeTestClass - TestClass1</li>
<li>[Test] testBeforeClass - TestClass1 (not for JUnit3)</li>
<li>[Unitils] beforeTestSetUp - TestClass1</li>
<li>[Test] testSetUp - TestClass1</li>
<li>[Unitils] beforeTestMethod - TestClass1 - test1</li>
<li>[Test] testMethod - TestClass1 - test1</li>
<li>[Unitils] afterTestMethod - TestClass1 - test1</li>
<li>[Test] testTearDown - TestClass1</li>
<li>[Unitils] afterTestTearDown - TestClass1</li>
<li>[Unitils] beforeTestSetUp - TestClass1</li>
<li>[Test] testSetUp - TestClass1</li>
<li>[Unitils] beforeTestMethod - TestClass1 - test2</li>
<li>[Test] testMethod - TestClass1 - test2</li>
<li>[Unitils] afterTestMethod - TestClass1 - test2</li>
<li>[Test] testTearDown - TestClass1</li>
<li>[Unitils] afterTestTearDown - TestClass1</li>
<li>[Test] testAfterClass - TestClass1 (not for JUnit3)</li>
<li>[Unitils] afterTestClass - TestClass1</li>
<li>[Unitils] afterAll</li>
</ul>
</li>
</ol>
<p>In our case, we write the new module names LdapListener. Because, we want unitils read the annotation EmbeddingLdapServer at the beginning of running test class, we will override the method <strong><span style="font-size: 0.75em; color: #000080;">beforeTestClass</span></strong>:</p>
<p><span style="font-size: 0.75em; color: #646464;">@Override<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">public</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">void</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">beforeTestClass</span></strong><span style="font-size: 0.75em;">(Class&lt;?&gt; testClass) {<br />
</span> <span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span><span style="font-size: 0.75em;">classAnnotation = <em>getClassLevelAnnotation</em>(</span><span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #7f0055;">class</span></strong><span style="font-size: 0.75em;">, testClass);<br />
</span> <span><strong>if</strong></span>(classAnnotation != <strong><span style="font-size: 0.75em; color: #7f0055;">null</span></strong><span>) {<br />
<em>log</em></span><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #000080;">debug</span></strong><span style="font-size: 0.75em;">(</span><span style="font-size: 0.75em; color: #2a00ff;">"before test class"</span><span style="font-size: 0.75em;">);<br />
</span> <span style="font-size: 0.75em; color: #0000c0;">serverOnline</span><span style="font-size: 0.75em;">=</span> <strong><span style="font-size: 0.75em; color: #7f0055;">false</span></strong><span style="font-size: 0.75em;">;<br />
</span> <span style="font-size: 0.75em; color: #0000c0;">doDelete</span><span style="font-size: 0.75em;">=</span> <strong><span style="font-size: 0.75em; color: #7f0055;">true</span></strong><span style="font-size: 0.75em;">;<br />
</span> <span style="font-size: 0.75em; color: #0000c0;">configuration</span><span style="font-size: 0.75em;">=</span> <strong><span style="font-size: 0.75em; color: #7f0055;">new</span></strong><strong><span style="font-size: 0.75em; color: #000080;">LdapServerConfigDecorator</span></strong><span style="font-size: 0.75em;">();<br />
</span> <span style="font-size: 0.75em; color: #0000c0;">port</span><span style="font-size: 0.75em;">= -1;<br />
</span> <span>}<br />
<strong>super</strong></span><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #000080;">beforeTestClass</span></strong><span style="font-size: 0.75em;">(testClass);<br />
}</span></p>
<p>Next, we setup the partition'nextss' for ldapServer in method <strong><span style="font-size: 0.75em; color: #000080;">beforeTestSetUp</span></strong> after ldap server is started:<br />
<span style="font-size: 0.75em; color: #646464;">@Override<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">public</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">void</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">beforeTestSetUp</span></strong><span style="font-size: 0.75em;">(Object testObject) {<br />
</span> <span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span><span style="font-size: 0.75em;">classAnnotation = <em>getClassLevelAnnotation</em>(</span><span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #7f0055;">class</span></strong><span style="font-size: 0.75em;">, testObject.</span><strong><span style="font-size: 0.75em; color: #000080;">getClass</span></strong><span style="font-size: 0.75em;">());<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">if</span></strong><span style="font-size: 0.75em;">(classAnnotation !=</span> <strong><span style="font-size: 0.75em; color: #7f0055;">null</span></strong><span style="font-size: 0.75em;">) {<br />
</span> <span style="font-size: 0.75em; color: #3f7f5f;">// Add partition 'nextss'<br />
</span> <span style="font-size: 0.75em;">MutablePartitionConfiguration pcfg =</span> <strong><span style="font-size: 0.75em; color: #7f0055;">new</span></strong><strong><span style="font-size: 0.75em; color: #000080;">MutablePartitionConfiguration</span></strong><span style="font-size: 0.75em;">();<br />
pcfg.</span><strong><span style="font-size: 0.75em; color: #000080;">setId</span></strong><span style="font-size: 0.75em;">(</span><span style="font-size: 0.75em; color: #2a00ff;">"nextss"</span><span style="font-size: 0.75em;">);<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">try</span></strong><span style="font-size: 0.75em;">{<br />
pcfg.</span><strong><span style="font-size: 0.75em; color: #000080;">setSuffix</span></strong><span style="font-size: 0.75em;">(</span><span style="font-size: 0.75em; color: #2a00ff;">"dc=nextss"</span><span style="font-size: 0.75em;">);<br />
}</span> <strong><span style="font-size: 0.75em; color: #7f0055;">catch</span></strong><span style="font-size: 0.75em;">(NamingException e) {<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">throw</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">new</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">RuntimeException</span></strong><span style="font-size: 0.75em;">(e);<br />
}<br />
....<br />
}</span></p>
<p>After creating the partition, we import the data by using ldif file:<br />
<span style="font-size: 0.75em; color: #646464;">@Override<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">public</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">void</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">beforeTestMethod</span></strong><span style="font-size: 0.75em;">(Object testObject, Method testMethod) {<br />
Class&lt;?&gt; testClass = testObject.</span><strong><span style="font-size: 0.75em; color: #000080;">getClass</span></strong><span style="font-size: 0.75em;">();<br />
</span> <span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span><span style="font-size: 0.75em;">classAnnotation = <em>getClassLevelAnnotation</em>(</span><span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #7f0055;">class</span></strong><span style="font-size: 0.75em;">, testClass);<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">if</span></strong><span style="font-size: 0.75em;">(classAnnotation !=</span> <strong><span style="font-size: 0.75em; color: #7f0055;">null</span></strong><span style="font-size: 0.75em;">) {<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">try</span></strong><span style="font-size: 0.75em;">{<br />
</span> <strong><span style="font-size: 0.75em; color: #000080;">setUp</span></strong><span style="font-size: 0.75em;">();<br />
}</span> <strong><span style="font-size: 0.75em; color: #7f0055;">catch</span></strong><span style="font-size: 0.75em;">(Exception e) {<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">throw</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">new</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">RuntimeException</span></strong><span style="font-size: 0.75em;">(e);<br />
}<br />
InputStream ldifStream = testClass.</span><strong><span style="font-size: 0.75em; color: #000080;">getResourceAsStream</span></strong><span style="font-size: 0.75em;">(testClass.</span><strong><span style="font-size: 0.75em; color: #000080;">getSimpleName</span></strong><span style="font-size: 0.75em;">()+</span> <span style="font-size: 0.75em; color: #2a00ff;">".ldif"</span><span style="font-size: 0.75em;">);<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">if</span></strong><span style="font-size: 0.75em;">(ldifStream ==</span> <strong><span style="font-size: 0.75em; color: #7f0055;">null</span></strong><span style="font-size: 0.75em;">) {<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">throw</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">new</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">NextssException</span></strong><span style="font-size: 0.75em;">(</span><span style="font-size: 0.75em; color: #2a00ff;">"File: "</span><span style="font-size: 0.75em;">+ testClass.</span><strong><span style="font-size: 0.75em; color: #000080;">getSimpleName</span></strong><span style="font-size: 0.75em;">() +</span> <span style="font-size: 0.75em; color: #2a00ff;">".ldif is not found"</span><span style="font-size: 0.75em;">);<br />
}<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">try</span></strong><span style="font-size: 0.75em;">{<br />
</span> <strong><span style="font-size: 0.75em; color: #000080;">importLdif</span></strong><span style="font-size: 0.75em;">(ldifStream);<br />
}</span> <strong><span style="font-size: 0.75em; color: #7f0055;">catch</span></strong><span style="font-size: 0.75em;">(NamingException e) {<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">throw</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">new</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">NextssException</span></strong><span style="font-size: 0.75em;">(e);<br />
}<br />
}<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">super</span></strong><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #000080;">beforeTestMethod</span></strong><span style="font-size: 0.75em;">(testObject, testMethod);<br />
}</span></p>
<p>And the last, not miss to clean up data after each test method <img src='http://blog.esofthead.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  :<br />
<span style="font-size: 0.75em; color: #646464;">@Override<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">public</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">void</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">afterTestMethod</span></strong><span style="font-size: 0.75em;">(Object testObject, Method testMethod,Throwable testThrowable) {<br />
</span> <span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span><span style="font-size: 0.75em;">classAnnotation = <em>getClassLevelAnnotation</em>(</span><span style="font-size: 0.75em; color: #646464;">EmbeddingLdapServer</span><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #7f0055;">class</span></strong><span style="font-size: 0.75em;">, testObject.</span><strong><span style="font-size: 0.75em; color: #000080;">getClass</span></strong><span style="font-size: 0.75em;">());<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">if</span></strong><span style="font-size: 0.75em;">(classAnnotation !=</span> <strong><span style="font-size: 0.75em; color: #7f0055;">null</span></strong><span style="font-size: 0.75em;">) {<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">try</span></strong><span style="font-size: 0.75em;">{<br />
</span> <strong><span style="font-size: 0.75em; color: #000080;">tearDown</span></strong><span style="font-size: 0.75em;">();<br />
}</span> <strong><span style="font-size: 0.75em; color: #7f0055;">catch</span></strong><span style="font-size: 0.75em;">(Exception e) {<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">throw</span></strong> <strong><span style="font-size: 0.75em; color: #7f0055;">new</span></strong> <strong><span style="font-size: 0.75em; color: #000080;">RuntimeException</span></strong><span style="font-size: 0.75em;">();<br />
}<br />
}<br />
</span> <strong><span style="font-size: 0.75em; color: #7f0055;">super</span></strong><span style="font-size: 0.75em;">.</span><strong><span style="font-size: 0.75em; color: #000080;">afterTestMethod</span></strong><span style="font-size: 0.75em;">(testObject, testMethod, testThrowable);<br />
}</span></p>
<p>It is very simple, right? <img src='http://blog.esofthead.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . You can start writing test with Embedded Ldap Server will run and import data before each test method.<br />
<a id="urn:zoundry:jid:UserLdapServiceTest.java" title="UserLdapServiceTest.java" href="http://www.haiphucnguyen.net/blog/UserLdapServiceTest.java">UserLdapServiceTest.java</a><a id="urn:zoundry:jid:LdapModule.java" title="LdapModule.java" href="http://www.haiphucnguyen.net/blog/LdapModule.java">LdapModule.java</a><a id="urn:zoundry:jid:LdapServerConfigDecorator.java" title="LdapServerConfigDecorator.java" href="http://www.haiphucnguyen.net/blog/LdapServerConfigDecorator.java">LdapServerConfigDecorator.java</a><a id="urn:zoundry:jid:EmbeddingLdapServer.java" title="EmbeddingLdapServer.java" href="http://www.haiphucnguyen.net/blog/EmbeddingLdapServer.java">EmbeddingLdapServer.java</a></p>
<p><a class="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/subscribe?linkname=eSoftHead%20Blog%20Feed&amp;linkurl=http%3A%2F%2Fblog.esofthead.com%2F%3Ffeed%3Drss2"><img src="http://static.addtoany.com/buttons/subscribe_120_16.gif" border="0" alt="Subscribe" width="120" height="16" /></a><script type="text/javascript">// <![CDATA[
a2a_linkname="eSoftHead Blog Feed";a2a_linkurl="http://blog.esofthead.com/?feed=rss2";
// ]]&gt;</script><script src="http://static.addtoany.com/menu/feed.js" type="text/javascript"></script></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;bodytext=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;notes=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;t=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;annotation=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;story=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;Title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;description=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;desc=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;body=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;u=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;type=Article&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;headline=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;bm_description=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;bm_description=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;desc=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;t=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;h=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;u=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;b=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;body=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;story_title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;name=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;t=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;s=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;title=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;submitHeadline=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach&amp;submitSummary=In%20the%20post%20Enhance%20the%20Unit%20test%20using%20Annotation%20approach%2C%20I%20outlined%20the%20approach%20of%20using%20annotation%20to%20reduce%20the%20redundant%20code%20and%20avoid%20the%20inheritance%20%28like%20JUnit3%29.%20Annotation%20RunWith%20of%20JUnit4%20is%20a%20powerful%20class%20help%20us%20to%20custom%20the%20appr&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Funitils-library-for-enhance-unit-test-by-using-annotation-approach%2F&amp;exttitle=Unitils%20-%20library%20for%20enhance%20unit%20test%20by%20using%20annotation%20approach" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/unitils-library-for-enhance-unit-test-by-using-annotation-approach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unit test &#8211; Best practices</title>
		<link>http://blog.esofthead.com/unit-test-best-practices/</link>
		<comments>http://blog.esofthead.com/unit-test-best-practices/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 01:56:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Software Engineer]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Unit test]]></category>

		<guid isPermaLink="false">http://blog.esofthead.com/?p=73</guid>
		<description><![CDATA[1. Keep test method as simple as possible:

DRY principle (Don't repeat yourself)
Re-use test set up across test cases: put non-trivial test data in test set up method
Clean test code as productive code


2. Evident data
3. All non-trivial methods must be passed unit test with 100% coverage ratio.
4. Unit test independent with:

Other unit tests, order of unit [...]]]></description>
			<content:encoded><![CDATA[<p>1. Keep test method as simple as possible:</p>
<ul>
<li>DRY principle (Don't repeat yourself)</li>
<li>Re-use test set up across test cases: put non-trivial test data in test set up method</li>
<li>Clean test code as productive code</li>
</ul>
<p><span id="more-73"></span><br />
2. Evident data</p>
<p>3. All non-trivial methods must be passed unit test with 100% coverage ratio.</p>
<p>4. Unit test independent with:</p>
<ul>
<li>Other unit tests, order of unit test running</li>
<li>Environment (operating system, hardware configuration, database …)</li>
</ul>
<p>5. Fix broken test as soon as possible (it should be immediately)</p>
<p>6. After fixing defect, write unit test to prevent it re-occurs</p>
<p>7. All test cases must be passed at the end of working day</p>
<p>8. Test project code, not library code</p>
<p>9. Minimal maintenance of test code</p>
<p>10. If you can not write unit test for some functionality that means your code has problem! Refactor it immediately</p>
<p><a class="a2a_dd" onmouseover="a2a_show_dropdown(this)" onmouseout="a2a_onMouseOut_delay()" href="http://www.addtoany.com/subscribe?linkname=eSoftHead%20Blog%20Feed&amp;linkurl=http%3A%2F%2Fblog.esofthead.com%2F%3Ffeed%3Drss2"><img src="http://static.addtoany.com/buttons/subscribe_120_16.gif" border="0" alt="Subscribe" width="120" height="16" /></a><script type="text/javascript">// <![CDATA[
a2a_linkname="eSoftHead Blog Feed";a2a_linkurl="http://blog.esofthead.com/?feed=rss2";
// ]]&gt;</script><script src="http://static.addtoany.com/menu/feed.js" type="text/javascript"></script></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices&amp;bodytext=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="Digg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Sphinn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices&amp;notes=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="del.icio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;t=Unit%20test%20-%20Best%20practices" title="Facebook"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Mixx"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices&amp;annotation=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="Google Bookmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://barrapunto.com/submit.pl?subj=Unit%20test%20-%20Best%20practices&amp;story=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="BarraPunto"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/barrapunto.png" title="BarraPunto" alt="BarraPunto" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://bitacoras.com/anotaciones/http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Bitacoras.com"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bitacoras.png" title="Bitacoras.com" alt="Bitacoras.com" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="blinkbits"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="blinkbits" alt="blinkbits" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;Title=Unit%20test%20-%20Best%20practices" title="BlinkList"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blinklist.png" title="BlinkList" alt="BlinkList" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://blogmarks.net/my/new.php?mini=1&amp;simple=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="blogmarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogmarks.png" title="blogmarks" alt="blogmarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes" alt="BlogMemes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Cn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Cn" alt="BlogMemes Cn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Fr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Fr" alt="BlogMemes Fr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Jp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Jp" alt="BlogMemes Jp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="BlogMemes Sp"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="BlogMemes Sp" alt="BlogMemes Sp" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.blogospherenews.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Blogosphere News"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogospherenews.png" title="Blogosphere News" alt="Blogosphere News" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Blogsvine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Blogsvine" alt="Blogsvine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cimlap.blogter.hu/index.php?action=suggest_link&amp;title=Unit%20test%20-%20Best%20practices&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="blogtercimlap"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/blogter.png" title="blogtercimlap" alt="blogtercimlap" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Book.mark.hu"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Book.mark.hu" alt="Book.mark.hu" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Bumpzee"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Bumpzee" alt="Bumpzee" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="co.mments"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="co.mments" alt="co.mments" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.connotea.org/addpopup?continue=confirm&amp;uri=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices&amp;description=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="connotea"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/connotea.png" title="connotea" alt="connotea" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="De.lirio.us"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="De.lirio.us" alt="De.lirio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Design Float"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="DotNetKicks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dotnetkicks.png" title="DotNetKicks" alt="DotNetKicks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="DZone"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.ekudos.nl/artikel/nieuw?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices&amp;desc=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="eKudos"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ekudos.png" title="eKudos" alt="eKudos" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="mailto:?subject=Unit%20test%20-%20Best%20practices&amp;body=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="email"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://cgi.fark.com/cgi/fark/farkit.pl?h=Unit%20test%20-%20Best%20practices&amp;u=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Fark"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fark.png" title="Fark" alt="Fark" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://faves.com/Authoring.aspx?u=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Faves"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/bluedot.png" title="Faves" alt="Faves" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="feedmelinks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="feedmelinks" alt="feedmelinks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://beta3.fleck.com/bookmarklet.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Fleck"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/fleck.png" title="Fleck" alt="Fleck" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Furl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="GeenRedactie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="GeenRedactie" alt="GeenRedactie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://globalgrind.com/submission/submit.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;type=Article&amp;title=Unit%20test%20-%20Best%20practices" title="Global Grind"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/globalgrind.png" title="Global Grind" alt="Global Grind" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.gwar.pl/DodajGwar.html?u=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Gwar"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/gwar.png" title="Gwar" alt="Gwar" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.haohaoreport.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Haohao"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/haohao.png" title="Haohao" alt="Haohao" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://healthranker.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="HealthRanker"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/healthranker.png" title="HealthRanker" alt="HealthRanker" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.hemidemi.com/user_bookmark/new?title=Unit%20test%20-%20Best%20practices&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Hemidemi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/hemidemi.png" title="Hemidemi" alt="Hemidemi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Identi.ca"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/identica.png" title="Identi.ca" alt="Identi.ca" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.indianpad.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="IndianPad"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/indianpad.png" title="IndianPad" alt="IndianPad" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://internetmedia.hu/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Internetmedia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/im.png" title="Internetmedia" alt="Internetmedia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="kick.ie"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="kick.ie" alt="kick.ie" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.kirtsy.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Kirtsy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/kirtsy.png" title="Kirtsy" alt="Kirtsy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://laaik.it/NewStoryCompact.aspx?uri=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;headline=Unit%20test%20-%20Best%20practices&amp;cat=5e082fcc-8a3b-47e2-acec-fdf64ff19d12" title="laaik.it"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/laaikit.png" title="laaik.it" alt="laaik.it" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Leonaut"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Leonaut" alt="Leonaut" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkagogo.com/go/AddNoPopup?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="LinkaGoGo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkagogo.png" title="LinkaGoGo" alt="LinkaGoGo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="LinkArena"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkarena.png" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices&amp;source=eSoftHead%2C+a+Vietnam+Software+Outsourcing+Company+The+official+blog+of+eSoftHead+Company&amp;summary=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="LinkedIn"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkter.hu/index.php?action=suggest_link&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Linkter"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/linkter.png" title="Linkter" alt="Linkter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Live"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Ma.gnolia"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Ma.gnolia" alt="Ma.gnolia" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://meneame.net/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Meneame"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/meneame.png" title="Meneame" alt="Meneame" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.com/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;bm_description=Unit%20test%20-%20Best%20practices&amp;plugin=soc" title="MisterWong"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong" alt="MisterWong" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.mister-wong.de/addurl/?bm_url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;bm_description=Unit%20test%20-%20Best%20practices&amp;plugin=soc" title="MisterWong.DE"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/misterwong.png" title="MisterWong.DE" alt="MisterWong.DE" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.muti.co.za/submit?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="muti"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/muti.png" title="muti" alt="muti" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://myshare.url.com.tw/index.php?func=newurl&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;desc=Unit%20test%20-%20Best%20practices" title="MyShare"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myshare.png" title="MyShare" alt="MyShare" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;t=Unit%20test%20-%20Best%20practices" title="MySpace"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/myspace.png" title="MySpace" alt="MySpace" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.n4g.com/tips.aspx?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="N4G"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/n4g.png" title="N4G" alt="N4G" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=Unit%20test%20-%20Best%20practices&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Netvibes"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.netvouz.com/action/submitBookmark?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices&amp;popup=no" title="Netvouz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/netvouz.png" title="Netvouz" alt="Netvouz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;h=Unit%20test%20-%20Best%20practices" title="NewsVine"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://nujij.nl/jij.lynkx?t=Unit%20test%20-%20Best%20practices&amp;u=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;b=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="NuJIJ"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/nujij.png" title="NuJIJ" alt="NuJIJ" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ping.fm/ref/?link=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices&amp;body=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="Ping.fm"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ping.png" title="Ping.fm" alt="Ping.fm" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="PlugIM"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="PlugIM" alt="PlugIM" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Pownce"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Pownce" alt="Pownce" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="ppnow"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="ppnow" alt="ppnow" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;partner=sociable" title="Print"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.propeller.com/submit/?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Propeller"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/propeller.png" title="Propeller" alt="Propeller" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://ratimarks.org/bookmarks.php/?action=add&address=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Ratimarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/ratimarks.png" title="Ratimarks" alt="Ratimarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://rec6.via6.com/link.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;=Unit%20test%20-%20Best%20practices" title="Rec6"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/rec6.png" title="Rec6" alt="Rec6" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Reddit"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="SalesMarks"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="SalesMarks" alt="SalesMarks" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Scoopeo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="scuttle"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="scuttle" alt="scuttle" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://segnalo.alice.it/post.html.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Segnalo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/segnalo.png" title="Segnalo" alt="Segnalo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Shadows"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Shadows" alt="Shadows" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.simpy.com/simpy/LinkAdd.do?href=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Simpy"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/simpy.png" title="Simpy" alt="Simpy" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://slashdot.org/bookmark.pl?title=Unit%20test%20-%20Best%20practices&amp;url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Slashdot"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/slashdot.png" title="Slashdot" alt="Slashdot" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Smarking"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Smarking" alt="Smarking" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;story_title=Unit%20test%20-%20Best%20practices" title="Socialogs"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/socialogs.png" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.sphere.com/search?q=sphereit:http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="SphereIt"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/sphere.png" title="SphereIt" alt="SphereIt" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Spurl"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Spurl" alt="Spurl" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="StumbleUpon"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Symbaloo"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Symbaloo" alt="Symbaloo" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="Taggly"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="Taggly" alt="Taggly" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TailRank"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TailRank" alt="TailRank" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Technorati"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;name=Unit%20test%20-%20Best%20practices" title="ThisNext"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://tipd.com/submit.php?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Tipd"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tipd.png" title="Tipd" alt="Tipd" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;t=Unit%20test%20-%20Best%20practices&amp;s=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi" title="Tumblr"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/tumblr.png" title="Tumblr" alt="Tumblr" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="TwitThis"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="TwitThis" alt="TwitThis" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.upnews.it/submit?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Upnews"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/upnews.png" title="Upnews" alt="Upnews" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.webnews.de/einstellen?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Webnews.de"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webnews.png" title="Webnews.de" alt="Webnews.de" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://webride.org/discuss/split.php?uri=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Webride"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/webride.png" title="Webride" alt="Webride" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.com/vote?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Wikio"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio" alt="Wikio" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Wikio FR"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wikio.it/vote?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Wikio IT"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wikio.png" title="Wikio IT" alt="Wikio IT" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://wists.com/s.php?c=&amp;r=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Wists"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wists.png" title="Wists" alt="Wists" class="sociable-hovers sociable_wists" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.wykop.pl/dodaj?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F" title="Wykop"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/wykop.png" title="Wykop" alt="Wykop" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.xerpi.com/block/add_link_from_extension?url=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;title=Unit%20test%20-%20Best%20practices" title="Xerpi"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/xerpi.png" title="Xerpi" alt="Xerpi" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;submitHeadline=Unit%20test%20-%20Best%20practices&amp;submitSummary=1.%20Keep%20test%20method%20as%20simple%20as%20possible%3A%0D%0A%0D%0A%09DRY%20principle%20%28Don%27t%20repeat%20yourself%29%0D%0A%09Re-use%20test%20set%20up%20across%20test%20cases%3A%20put%20non-trivial%20test%20data%20in%20test%20set%20up%20method%0D%0A%09Clean%20test%20code%20as%20productive%20code%0D%0A%0D%0A%0D%0A2.%20Evident%20data%0D%0A%0D%0A3.%20All%20non-trivi&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="" title="YahooMyWeb"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://yigg.de/neu?exturl=http%3A%2F%2Fblog.esofthead.com%2Funit-test-best-practices%2F&amp;exttitle=Unit%20test%20-%20Best%20practices" title="Yigg"><img src="http://blog.esofthead.com/wp-content/plugins/sociable/images/yiggit.png" title="Yigg" alt="Yigg" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.esofthead.com/unit-test-best-practices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
