<?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>Transient Technology &#187; integration</title>
	<atom:link href="http://martinaharris.com/tag/integration/feed/" rel="self" type="application/rss+xml" />
	<link>http://martinaharris.com</link>
	<description>Next time you look it might be gone</description>
	<lastBuildDate>Wed, 25 Apr 2012 09:52:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>SoapUI &#8211; deep mocking web services explored</title>
		<link>http://martinaharris.com/2009/11/soapui-use-case-explored/</link>
		<comments>http://martinaharris.com/2009/11/soapui-use-case-explored/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 05:00:11 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[testing]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[mocking]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[soapUI]]></category>
		<category><![CDATA[WADL]]></category>
		<category><![CDATA[webservice]]></category>
		<category><![CDATA[WSDL]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=181</guid>
		<description><![CDATA[Previously I wrote a blog asking if SoapUI could be used to deep mock a web service.  I was looking to improve some integration testing against a web service. This blog page looks a bit deeper at the problem and how SoapUI could help. <a href="http://martinaharris.com/2009/11/soapui-use-case-explored/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Previously I wrote this <a href="http://martinaharris.com/2009/11/soapui-mock-webservices/" target="_blank">SoapUI</a> blog as I was looking to improve some integration testing against a web service.  This blog page looks a bit deeper at the problem and how SoapUI could help.</p>
<h2>Use case: Testing integration of complex web services</h2>
<p>Lets say you have an application which uses an external parties web service.  You have no control over the design of the third party service.   In addition its not possible to have a copy of the application.   The organization providing the service will provide a user acceptance version but that is all.  The service wraps something complex, its difficult to setup, and requires many other dependencies to operate correctly.  It would be to expensive an option to have a development instance.   Lets call this service <strong>xorg-ws</strong>, and our application <strong>xorg-integration</strong>.</p>
<p>This situation gives the developers of xorg-integration a problem.  They want to write integration tests, but a full end to end test is not possible because we don&#8217;t have a suitable xorg-ws environment for testing against.  Our contract with xorg-ws is in the form of the WSDL definition.  We have some understanding of that contract and how to use the data returned.  At the very least we would like to test, how our application integrates against the contract.</p>
<p><span id="more-181"></span></p>
<p>Conceptually the system might look something like this sketch.  Yea! its pretty rough, so I hesitate to call it UML <img src='http://martinaharris.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   In this simple example there is a Computation object that needs to access data from xorg-ws.  Our design hides the xorg system behind a service layer, XorgService.  This is responsible for making calls to the xorg system via whatever means is available.  I have not expanded the details but lets assume it knows how to correctly marshal and un-marshal from a Java-Ws web service configured against the WSDL contract that xorg-ws provides.</p>
<div id="attachment_203" class="wp-caption aligncenter" style="width: 563px"><a href="http://martinaharris.com/wp-content/uploads/2009/11/xorgServiceExample.jpeg"><img class="size-full wp-image-203" title="xorgServiceExample" src="http://martinaharris.com/wp-content/uploads/2009/11/xorgServiceExample.jpeg" alt="Example use of xorg webservice" width="553" height="308" /></a><p class="wp-caption-text">Example use of xorg web service</p></div>
<p style="text-align: center;">
<h3>If there is no Integration Test, then what?</h3>
<p>In an ideal world we would have a development copy of the xorg-ws and we would write end to end integration tests against that.   As stated in the use case this is not possible so what is the next best thing?  Is it possible to get closer to an integration test?  We could write some tests against the Computation object, and pass it a mock XorgService using something like EasyMock.  We could then assert that the correct calls are made against the XorgService.  Its a good test, but its only testing service layer logic and the wiring.  Any data in the test comes from the test itself when building the mock object.  Its time to think about what we want to test.  One way of looking at things is to think about what is not tested in the mock test.</p>
<p><strong>What is not tested?</strong></p>
<ol>
<li>The service has to marshal the call to the web service.  On occasion this will involve packing some data or formation of a message.</li>
<li>Once the call returns it has to unpack and marshal anything returned into the correct objects and types.</li>
<li>Web service calls have to be made, proxies used etc.  Over the wire transmission of the web service.</li>
<li>The xorg system has to respond to the request, perform any actions required after its own marshalling processes.</li>
</ol>
<p>From this list there are a few things we are not interested in testing:</p>
<ul>
<li>Point 3.  This would be like testing the implementation of Java-WS.  No point in testing something that has tests in its own project.</li>
<li>Point 4.  This should be tested by the xorg team.</li>
</ul>
<p>So little remains, points 1 and 2 require tests that prove that data is marshals correctly.  That could be done using units against the marshal routines but given that an XML system like JAXB would be used there may not be much to test.  Ok, so its possible to unit test everything but why do I still feel nervous about the test coverage suggested.  We still do not have an end to end test.  Its my experience that without that your still badly exposed despite high coverage.  What if we could build a cheap xorg-ws.  One that provided a deep mock of the actual application?  Well, it would enable us to link everything together and see the full system operating including all the behavior in xorg-integration.  The only issue, is that the behavior mocked, would be our version, so if we get that wrong, things could still break when the system enters the manual UAT stage against a real xorg-ws.  Lets take a look at what SoapUI could offer, if its very cheap to build it might be the next best thing to a full integration test.</p>
<h2>Using SoapUI to deep mock a web service</h2>
<p>I have a wish list for a mock that tries to replace a real system in an integration test.</p>
<ol>
<li>The tests should be data driven.  This means tests can be written and changed very easily.  Its important that the mocks are static, and return the same response every time they are called.  If the responses are non deterministic you can&#8217;t rely on them, its a test anti-pattern.</li>
<li>It is important to be able to capture and generate mock operations from the WSDL files.</li>
<li>The result should be deployable in any test integration environment.</li>
<li>There should be support for running the mock and tooling with an IDE.</li>
</ol>
<p>From the documentation on the SoapUI pages it looks like the product will do all of this.  It does much more too.  If your developing your own web services and are in control of both sides of the coin, it has all kinds of useful tooling to decouple development dependency within the team.</p>
<p>For our use case these pages show how it could be done:</p>
<p><a href="http://www.soapui.org/userguide/mock/index.html">Web Service Mocking</a><br />
<a href="http://www.soapui.org/userguide/mock/getting_started.html">Getting Started with Web Service Mocking</a></p>
<p>There are several points of note:</p>
<ul>
<li>Groovy can be used to modify the response.  Its easy to see how groovy could get static response data from files, or even a database.</li>
<li>There is a command line for running the mock service.  Essential if you want to provide a service for continuous integration.</li>
<li>SoapUI can generate mocks from a WSDL or WADL for REST.</li>
<li>The tool is very powerful and includes support for functional testing, load testing and performance testing so could prove useful in other areas of the organisation.</li>
</ul>
<h2>Conclusions</h2>
<p>Its become a large article your probably asleep by now, but it boils down to two points.  Yes SoapUI provides excellent test tooling for web services, and could provide rich mocks that are cheap to develop.  No its not a replacement for integration tests against a real live system, but in some cases where this is not possible SoapUI would be the next best thing.  If you do suffer UAT bugs after all this, at least you can add or modify a test case so that it never re-occurs, that is an embarassment I would put effort in to avoid!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F&amp;title=SoapUI+-+deep+mocking+web+services+explored" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F&amp;title=SoapUI+-+deep+mocking+web+services+explored" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F&amp;title=SoapUI+-+deep+mocking+web+services+explored" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F&amp;headline=SoapUI+-+deep+mocking+web+services+explored" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=SoapUI+-+deep+mocking+web+services+explored&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=SoapUI+-+deep+mocking+web+services+explored&amp;u=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=SoapUI+-+deep+mocking+web+services+explored&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=SoapUI+-+deep+mocking+web+services+explored&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=SoapUI+-+deep+mocking+web+services+explored&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F&amp;title=SoapUI+-+deep+mocking+web+services+explored&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-use-case-explored%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2009/11/soapui-use-case-explored/';
var dzone_title = 'SoapUI &#8211; deep mocking web services explored';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2009/11/soapui-use-case-explored/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Could soapUI be the way to mock complex webservices?</title>
		<link>http://martinaharris.com/2009/11/soapui-mock-webservices/</link>
		<comments>http://martinaharris.com/2009/11/soapui-mock-webservices/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 22:44:59 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[testing]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[soapUI]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://martinaharris.com/2009/11/could-soapui-be-the-way-to-mock-complex-webservices/</guid>
		<description><![CDATA[I have been looking for a good way to mock a complex web-service for integration testing. The idea being to simulate responses intelligently and be able to test a round trip without the actual service. Full integration tests are not &#8230; <a href="http://martinaharris.com/2009/11/soapui-mock-webservices/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have been looking for a good way to mock a complex web-service for integration testing.  The idea being to simulate responses intelligently and be able to test a round trip without the actual service.  Full integration tests are not possible for various reasons, so this might be the next best thing.</p>
<p>The tests against the service should return with configurable and adaptable behavior.  They should be quick to run, easy to understand and simple to develop.  This might be a solution:</p>
<p><a href="http://www.soapui.org/gettingstarted/mocking.html" TARGET="_blank">http://www.soapui.org/gettingstarted/mocking.html</a></p>
<p>Has anyone used this or something similar?  Comments welcome.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F&amp;title=Could+soapUI+be+the+way+to+mock+complex+webservices%3F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F&amp;title=Could+soapUI+be+the+way+to+mock+complex+webservices%3F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F&amp;title=Could+soapUI+be+the+way+to+mock+complex+webservices%3F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F&amp;headline=Could+soapUI+be+the+way+to+mock+complex+webservices%3F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Could+soapUI+be+the+way+to+mock+complex+webservices%3F&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Could+soapUI+be+the+way+to+mock+complex+webservices%3F&amp;u=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Could+soapUI+be+the+way+to+mock+complex+webservices%3F&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Could+soapUI+be+the+way+to+mock+complex+webservices%3F&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Could+soapUI+be+the+way+to+mock+complex+webservices%3F&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F&amp;title=Could+soapUI+be+the+way+to+mock+complex+webservices%3F&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F11%2Fsoapui-mock-webservices%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2009/11/soapui-mock-webservices/';
var dzone_title = 'Could soapUI be the way to mock complex webservices?';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2009/11/soapui-mock-webservices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Spring Integration in Action available now</title>
		<link>http://martinaharris.com/2009/10/spring-integration-in-action-available/</link>
		<comments>http://martinaharris.com/2009/10/spring-integration-in-action-available/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 21:34:25 +0000</pubDate>
		<dc:creator>Martin Harris</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[integration]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://martinaharris.com/?p=47</guid>
		<description><![CDATA[Jonas Partner has just announced that Spring Integration in Action is now available via the Manning early access program on  <A href="http://www.jonaspartner.com/?p=312" TARGET="_blank">his blog</a> <a href="http://martinaharris.com/2009/10/spring-integration-in-action-available/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Jonas Partner has just announced that Spring Integration in Action is now available via the Manning early access program on  <A href="http://www.jonaspartner.com/?p=312" TARGET="_blank">his blog</a>.</p>
<p>The spring integration project embodies principles found in the Spring Framework and Enterprise Integration Patterns (Hohpe and Woolf, 2003).  The book and project are worth a look for anyone working in that space.</p>
<ul>
<li><A href="http://www.springsource.org/spring-integration" TARGET="_blank">Spring Integration Project</a></li>
<li><A href="http://www.manning.com/fisher/" TARGET="_blank">Spring Integration in Action, Manning Early Access Program</a></li>
</ul>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F&amp;title=Spring+Integration+in+Action+available+now" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F&amp;title=Spring+Integration+in+Action+available+now" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F&amp;title=Spring+Integration+in+Action+available+now" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F&amp;headline=Spring+Integration+in+Action+available+now" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Spring+Integration+in+Action+available+now&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Spring+Integration+in+Action+available+now&amp;u=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Spring+Integration+in+Action+available+now&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Spring+Integration+in+Action+available+now&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Spring+Integration+in+Action+available+now&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F&amp;title=Spring+Integration+in+Action+available+now&amp;summary=&amp;source=" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fmartinaharris.com%2F2009%2F10%2Fspring-integration-in-action-available%2F" target="_blank"><img class="lightsocial_img" src="http://martinaharris.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div><div class="dzone_button" style="float: right; margin-left: 5px;">
<script type="text/javascript">
var dzone_url = 'http://martinaharris.com/2009/10/spring-integration-in-action-available/';
var dzone_title = 'Spring Integration in Action available now';
var dzone_blurb = '';
var dzone_style = '2';
</script>
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script>
</div>]]></content:encoded>
			<wfw:commentRss>http://martinaharris.com/2009/10/spring-integration-in-action-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

