<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Quality Software Development with Ease &#187; Nexus</title>
	<atom:link href="http://qualityswdev.com/tag/nexus/feed/" rel="self" type="application/rss+xml" />
	<link>http://qualityswdev.com</link>
	<description>Thoughts on better ways to develop high quality software by Manuel Küblböck. Agile and Lean methodologies, XP practices and other software development goodness.</description>
	<lastBuildDate>Sat, 05 Nov 2011 11:24:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='qualityswdev.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/616a91f395956dcbbef17b7fa1e2d403?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Quality Software Development with Ease &#187; Nexus</title>
		<link>http://qualityswdev.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://qualityswdev.com/osd.xml" title="Quality Software Development with Ease" />
	<atom:link rel='hub' href='http://qualityswdev.com/?pushpress=hub'/>
		<item>
		<title>Distributed CI: How it could work</title>
		<link>http://qualityswdev.com/2011/02/02/distributed-ci-how-it-could-work/</link>
		<comments>http://qualityswdev.com/2011/02/02/distributed-ci-how-it-could-work/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 16:51:21 +0000</pubDate>
		<dc:creator>Manuel Küblböck</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Cargo]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Distributed CI]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[Sonar]]></category>

		<guid isPermaLink="false">http://qualityswdev.com/?p=336</guid>
		<description><![CDATA[I think distributed CI is the logical next step in the evolution of Continuous Integration by getting rid of the manual step of running a private build on the developer machine before committing to the master repository. Here is how I imagine this might work. Managers, developers and customers (or all stakeholders if you will) <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=qualityswdev.com&amp;blog=10101488&amp;post=336&amp;subd=qualityswdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I think <a href="http://qualityswdev.com/2010/12/15/why-distributed-ci-is-the-logical-next-step/">distributed CI is the logical next step</a> in the evolution of Continuous Integration by getting rid of the manual step of running a private build on the developer machine before committing to the master repository. Here is how I imagine this might work.</p>
<p style="text-align:center;"><a href="http://qualityswdev.files.wordpress.com/2011/01/DciDevMachine.png"><img class="size-full wp-image-436 aligncenter" title="DCI dev machine" src="http://qualityswdev.files.wordpress.com/2011/01/bildschirmfoto-2011-01-08-um-22-27-122.png?w=510" alt=""   /></a></p>
<ul>
<li>Managers, developers and customers (or all stakeholders if you will) collaborate via a wiki and issue tracking tool. These two components tend to be heavily intertwined and are often realized within a single tool. Project management is happening in this area as well.</li>
<li>Developers can access the tasks in the issue tracker from within their development environment (IDE).</li>
<li>While programming, quality assurance plugins inside the IDE point out potential bugs or design flaws to the developers using the same metrics as are measured by the quality analysis run by the central CI server.</li>
<li>Whenever the system is in a consistent state developers commit their changes to their local clone of the Version Control System (VCS) repository. This should happen fairly frequently; several times a day. If you don&#8217;t commit frequently you are not doing <em>continuous</em> integration. (side note: The VCS should contain everything that is needed to produce the system from scratch, including database scripts, operating system setup (aka <a href="http://www.agileweboperations.com/the-implications-of-infrastructure-as-code" target="_blank">infrastructure as code</a>), etc. &#8211; everything.)</li>
<li>The local Continuous Integration (CI) tool notices the changes in the VCS repository, gets the latest changes from the master repository and kicks off a build of the changed code module. The build also runs a suite of unit tests to make sure the changes haven&#8217;t broken any existing code.</li>
</ul>
<p><a href="http://qualityswdev.files.wordpress.com/2011/01/dci-central-server.png"><img class="aligncenter size-full wp-image-465" title="DCI - central server" src="http://qualityswdev.files.wordpress.com/2011/01/dci-central-server.png?w=510" alt="DCI - central server"   /></a></p>
<ul>
<li>After successfully building (and testing) the code the build tool stores the created artefacts in a repository manager. Note: I believe build artefacts don&#8217;t belong in your VCS for several reasons. You shouldn&#8217;t have to store them there either, because you should be able to recreate them from any version in your VCS. But there are also reasons why it might not even be a good idea to do so. Most importantly, it makes traceability harder. For each artefact I want to know which version of my source was used to build it. If build artefacts are stored in VCS as well and therefore create new versions themselves, this becomes harder. Also, all these snapshot versions that are produced many times a day, of which some might even break the build are not worth the disk space they occupy.</li>
<li>Once the local commit build is successfully run and the snapshot artefacts stored in a repository manager the local CI tool pushes the changes to the master repository.</li>
<li>Similar to what happened on the developer machine the central CI tool picks up the changes and runs a commit build. The produced artefact becomes a release candidate with a new version number and is stored in the repository manager, where it can be attained by later phases. (The <a href="http://maven.apache.org/plugins/maven-release-plugin/index.html" target="_blank">maven-release-plugin</a> is a great tool to automate this.)</li>
<li>The produced artefacts are then automatically deployed to a test environment. The deployment tool gets the artefacts from the repository manager and deploys them on a test environment.</li>
<li>There automated acceptance tests are run by the CI tool. If these acceptance tests are successful the tested artefacts are promoted to enter the last phase in your deployment pipeline &#8211; deployment to production. It is important to note that only the commit build phase produces new artefacts. All following phases are re-using these artefacts. An example on how to configure Maven not to rebuild the artefacts in later phases can be found <a href="http://stackoverflow.com/questions/4330518/how-to-stop-mavens-verify-phase-rebuilding-the-artifact" target="_blank">here</a>. Your own deployment pipeline may include more phases than just these two. For instance a manual test phase or performance test phase. Usually these can be performed in parallel and therefore require separate environments (hint: virtual machines are of great help here, but that&#8217;s a topic for another post).</li>
<li>Deployment to production either happens automatically, if you are practicing continuous deployment (good on you), or by manually deploying from your CI server. Even if done manually this should only require the click of a button and should only be possible for artefacts that have successfully completed the previous phases in your deployment pipeline.</li>
<li>Periodically the central CI tool runs a code quality analysis tool, which measures code quality by analysing code coverage and other metrics. Discovered violations can be accessed and fixed directly within the IDE.</li>
<li>The IDE, the VCS, the CI and code quality analysis tool all feed information back to the issue tracking tool to provide a complete picture of the status of a tracked task.</li>
<li>Automated monitoring keeps an eye on the system while it is running in the target environments. This monitoring can also be utilized during automated deployments to decide if a deployment was successful or needs to be backed out. It is mostly agreed upon that the monitor should check business metrics rather than technical aspects.</li>
</ul>
<p>You can find the entire diagram in animated form <a href="http://prezi.com/eellpeguyvgu/the-creation-of-software/" target="_blank">here</a>.</p>
<p>Here are my favorite tools for the above process:</p>
<ul>
<li>Wiki: <a href="http://www.atlassian.com/software/confluence/" target="_blank">Confluence</a></li>
<li>Issue Tracking and Project Management: <a href="http://www.atlassian.com/software/jira/" target="_blank">Jira</a></li>
<li>IDE: <a href="http://www.eclipse.org/" target="_blank">Eclipse</a> (with <a href="http://www.eclipse.org/mylyn/" target="_blank">Mylyn</a> for Jira issue/task integration and <a href="http://docs.codehaus.org/display/SONAR/Installing+Sonar+Eclipse" target="_blank">Sonar IDE</a> to see all the technical debt right in your IDE where you need it the most)</li>
<li>VCS: <a href="http://git-scm.com/" target="_blank">Git</a>/<a href="http://mercurial.selenic.com/" target="_blank">Mercurial</a> (I am undecided on this one)</li>
<li>Build: <a href="http://maven.apache.org/" target="_blank">Maven</a></li>
<li>CI: <a href="http://hudson-labs.org/" target="_blank">Hudson</a> (soon to be <a href="http://jenkins-ci.org/" target="_blank">Jenkins</a>)</li>
<li>Repository Manager: <a href="http://nexus.sonatype.org/" target="_blank">Nexus</a></li>
<li>Quality Analysis: <a href="http://www.sonarsource.org/" target="_blank">Sonar</a></li>
<li>Deployment: <a href="http://cargo.codehaus.org/Home" target="_blank">Cargo</a> (for deploying to an application server) + <a href="http://vagrantup.com/" target="_blank">Vagrant</a>/<a href="http://www.puppetlabs.com/" target="_blank">Puppet</a> (for creating, provisioning and managing environments)</li>
<li>Monitoring: <a href="http://www.splunk.com/" target="_blank">Splunk</a></li>
</ul>
<p><a class="twitter-share-button" href="http://twitter.com/share">Tweet this</a></p>
<br /> Tagged: <a href='http://qualityswdev.com/tag/cargo/'>Cargo</a>, <a href='http://qualityswdev.com/tag/confluence/'>Confluence</a>, <a href='http://qualityswdev.com/tag/continuous-integration/'>Continuous Integration</a>, <a href='http://qualityswdev.com/tag/distributed-ci/'>Distributed CI</a>, <a href='http://qualityswdev.com/tag/eclipse/'>Eclipse</a>, <a href='http://qualityswdev.com/tag/git/'>Git</a>, <a href='http://qualityswdev.com/tag/hudson/'>Hudson</a>, <a href='http://qualityswdev.com/tag/jenkins/'>Jenkins</a>, <a href='http://qualityswdev.com/tag/jira/'>Jira</a>, <a href='http://qualityswdev.com/tag/maven/'>Maven</a>, <a href='http://qualityswdev.com/tag/mercurial/'>Mercurial</a>, <a href='http://qualityswdev.com/tag/nexus/'>Nexus</a>, <a href='http://qualityswdev.com/tag/puppet/'>Puppet</a>, <a href='http://qualityswdev.com/tag/sonar/'>Sonar</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/qualityswdev.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/qualityswdev.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/qualityswdev.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/qualityswdev.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/qualityswdev.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/qualityswdev.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/qualityswdev.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/qualityswdev.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/qualityswdev.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/qualityswdev.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/qualityswdev.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/qualityswdev.wordpress.com/336/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/qualityswdev.wordpress.com/336/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/qualityswdev.wordpress.com/336/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=qualityswdev.com&amp;blog=10101488&amp;post=336&amp;subd=qualityswdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://qualityswdev.com/2011/02/02/distributed-ci-how-it-could-work/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e8234609df154fdd93a08a885103a16?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">kueblboe</media:title>
		</media:content>

		<media:content url="http://qualityswdev.files.wordpress.com/2011/01/bildschirmfoto-2011-01-08-um-22-27-122.png" medium="image">
			<media:title type="html">DCI dev machine</media:title>
		</media:content>

		<media:content url="http://qualityswdev.files.wordpress.com/2011/01/dci-central-server.png" medium="image">
			<media:title type="html">DCI - central server</media:title>
		</media:content>
	</item>
		<item>
		<title>Java Build Server</title>
		<link>http://qualityswdev.com/2010/01/23/java-build-server/</link>
		<comments>http://qualityswdev.com/2010/01/23/java-build-server/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 04:01:17 +0000</pubDate>
		<dc:creator>Manuel Küblböck</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Build Server]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[Sonar]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://qualityswdev.com/?p=85</guid>
		<description><![CDATA[Update [15.05.2010]: I finally had a chance to try out SecureCI, which is pretty much exactly what I described in this post. The guys from Coveros did a great job, so I suggest after reading this post you head over to their website, download SecureCI and give it a go. Thanks John for pointing this <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=qualityswdev.com&amp;blog=10101488&amp;post=85&amp;subd=qualityswdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="margin:5px;" src="http://farm4.static.flickr.com/3452/3204450759_acf201a8f8_m.jpg" alt="" width="144" height="108" /></p>
<p><strong>Update [15.05.2010]:</strong> I finally had a chance to try out <a href="http://www.coveros.com/research/research_stack.php" target="_blank">SecureCI</a>, which is pretty much exactly what I described in this post. The guys from Coveros did a great job, so I suggest after reading this post you head over to their website, download SecureCI and give it a go. Thanks John for pointing this out to me.</p>
<p>In my last Java project, I set up a <strong>build server with Continuous Integration (CI) capability</strong>. I am a big fan of Test Driven Development (TDD) and I quite enjoyed <a href="http://hudson-ci.org/" target="_blank">Hudson</a> telling us right away when someone checked in code that broke the build. It just gives you so much more confidence in your code and keeps it releasable at all times. In addition, we used <a href="http://sonar.codehaus.org/" target="_blank">Sonar</a> to measure the quality of our code. I found it quite interesting to study how the different metrics changed over the course of the project. We paid particular attention to code coverage and tried to keep it as close to 100% as possible. This should happen naturally anyway if you are practicing TDD.</p>
<p>Setting all this up was a good experience to learn how it all fits together &#8211; But I learned my lesson and I don&#8217;t really want to do it over and over again. So, I started looking for a <strong>Virtual Appliance</strong> that had most, if not all, of these capabilities. Setting up a build server must have been done by other developers a million times before. Surely, someone along the way stuck it all on a Virtual Machine (VM) and made it open source, right? Well, that&#8217;s what I thought, but I couldn&#8217;t find any. So, I decided to create one myself. Unfortunately, I am lacking the hardware to do so at the moment. I have even already created a project for it on <a title="Java Build Server" href="https://launchpad.net/java-build-server" target="_blank">https://launchpad.net/java-build-server</a>. Although, I haven&#8217;t come around to create the VM yet, I still wanted to share my idea here to maybe animate someone else to go ahead and give it a go. So here it is: my idea of a Java build server.</p>
<p>I planned to start with what I think of as a good enough build server: A VM based on <strong><a class="zem_slink" title="Ubuntu" rel="homepage" href="http://www.ubuntu.com/">Ubuntu</a></strong> Server <strong><a title="Just enough operating system" rel="wikipedia" href="http://en.wikipedia.org/wiki/Just_enough_operating_system" target="_blank">JeOS</a></strong> with pre-configured installations of <strong><a rel="homepage" href="http://subversion.tigris.org/" target="_blank">Subversion</a></strong> (Source Control), <strong><a href="http://www.vmware.com/products/server/" target="_blank">Hudson</a></strong> (Continuous Integration), <strong><a href="http://sonar.codehaus.org/" target="_blank">Sonar</a></strong> (Quality Metrics), <strong><a class="zem_slink" title="MySQL" rel="homepage" href="http://www.mysql.com/">MySQL</a></strong> (to store Quality Metrics), <strong><a href="maven.apache.org/" target="_blank">Maven</a></strong> (Build) and <strong><a href="http://nexus.sonatype.org/" target="_blank">Nexus</a></strong> (Enterprise Maven Repository). Once this is all working I am going to also <a href="http://trac.edgewall.org/wiki/TracInstall" target="_blank">install</a> <strong><a href="http://trac.edgewall.org/" target="_blank">Trac</a></strong> (Wiki and issue tracking system). You might of course have your own preferences for tools to use for the tasks listed above. Feel free to swap out whatever tool you wish. You might already have an enterprise Maven repository. Fine, just use your existing one. All I am saying is, these tools will be on my build server VM; pre-configured as much as possible with standards found in the tools&#8217; documentation, following the <a href="http://en.wikipedia.org/wiki/Convention_over_configuration" target="_blank"><strong>convention over configuration</strong></a> paradigm.</p>
<h4>Creating the VM</h4>
<p>Here is how I am planning to create my Java build server VM. I am using <a href="http://www.vmware.com/appliances/getting-started/learn/vmware_studio.html" target="_blank">VMware Studio</a> to create the VM. VMware Studio is a Virtual Appliance itself and I deployed it in <a href="http://www.vmware.com/products/server/" target="_blank">VMware Server 2.0</a>. First I created a basic VM based on Ubuntu 8.04.1. Studio automatically installs VMware tools and embeds an in-guest management component called Virtual Appliance Management Infrastructure (VAMI), which lets you configure the network settings of your VM after it has been built. This is essential, since you want your development team to be able to connect to your copy of the build server VM. Here is a list of the essential settings I used to create the base VM:</p>
<ul>
<li>ubuntu-8.04.1-dvd-i386</li>
<li>1 CPU</li>
<li>512 MB RAM</li>
<li>8 GB</li>
<li>Network settings: DHCP (to automatically find an IP address)</li>
<li>Target format: zip</li>
</ul>
<p>After the build finished, I downloaded the zipped VM and deployed it on my VMware Server instance. I started the VM and assigned it a static IP address on the boot screen. I logged in and carried out the following steps:</p>
<ul>
<li>Update Ubuntu (sudo apt-get update &amp;&amp; sudo apt-get upgrade)</li>
<li><a href="https://help.ubuntu.com/community/Repositories/CommandLine" target="_blank">Add the universe and multiverse Ubuntu repositories</a></li>
<li><a href="http://www.howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu/" target="_blank">Install Java and Tomcat</a> (with admin packages)</li>
<li><a href="http://odyniec.net/articles/ubuntu-subversion-server/" target="_blank">Install Subversion</a> (SVN)</li>
<li><a href="http://www.sonatype.com/books/maven-book/reference/installation-sect-maven-linux.html" target="_blank">Install Maven</a></li>
<li><a href="https://help.ubuntu.com/8.04/serverguide/C/mysql.html" target="_blank">Install MySQL</a></li>
<li><a href="http://hudson-ci.org/" target="_blank">Deploy Hudson</a> to Tomcat</li>
<li><a href="http://docs.codehaus.org/display/SONAR/Install+Sonar" target="_blank">Deploy Sonar</a> to Tomcat</li>
<li><a href="http://www.sonatype.com/books/nexus-book/reference/ch02s02.html" target="_blank">Deploy Nexus</a> to Tomcat</li>
</ul>
<h4>Using the VM</h4>
<p>Of course there are some project and company specific configurations that cannot be set in advance. Here is what is left to do:</p>
<ul>
<li>Install a VM container on a server (e.g. <a href="http://www.vmware.com/products/server/" target="_blank">VMware Server</a>)</li>
<li><a href="https://launchpad.net/java-build-server" target="_blank">Download</a> and start the VM in your container</li>
<li>Set the network details on the boot screen</li>
<li>Add your developers as users to Subversion (in /usr/local/svn/passwd-team)</li>
<li>Create a project</li>
<li>Create Hudson jobs to monitor your project</li>
</ul>
<h4><strong>What&#8217;s next?</strong></h4>
<p>To make using this Java build server even easier I am also planning to create the following:</p>
<ul>
<li>a <strong><a href="http://maven.apache.org/plugins/maven-archetype-plugin/" target="_blank">Maven archetype</a></strong> that only needs the IP address of the build server to be configured</li>
<li>a <strong>script to create a new project</strong> on the build server (create SVN project, create Hudson jobs, etc.)</li>
</ul>
<h6>Image by <a href="http://www.flickr.com/photos/44124412397@N01/3204450759">indigoprime</a> via Flickr</h6>
<br /> Tagged: Build Server, Continuous Integration, Hudson, Java, Maven, Nexus, Sonar, Subversion, Ubuntu <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/qualityswdev.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/qualityswdev.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/qualityswdev.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/qualityswdev.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/qualityswdev.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/qualityswdev.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/qualityswdev.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/qualityswdev.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/qualityswdev.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/qualityswdev.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/qualityswdev.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/qualityswdev.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/qualityswdev.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/qualityswdev.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=qualityswdev.com&amp;blog=10101488&amp;post=85&amp;subd=qualityswdev&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://qualityswdev.com/2010/01/23/java-build-server/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/9e8234609df154fdd93a08a885103a16?s=96&#38;d=monsterid&#38;r=G" medium="image">
			<media:title type="html">kueblboe</media:title>
		</media:content>

		<media:content url="http://farm4.static.flickr.com/3452/3204450759_acf201a8f8_m.jpg" medium="image" />
	</item>
	</channel>
</rss>
