<?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>Development Notes</title>
	<atom:link href="http://devnotesblog.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://devnotesblog.wordpress.com</link>
	<description>Bits and pieces concerning software development</description>
	<lastBuildDate>Thu, 11 Apr 2013 14:38:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='devnotesblog.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Development Notes</title>
		<link>http://devnotesblog.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://devnotesblog.wordpress.com/osd.xml" title="Development Notes" />
	<atom:link rel='hub' href='http://devnotesblog.wordpress.com/?pushpress=hub'/>
		<item>
		<title>OCZ Vertex Plus SSD vs. MacBook</title>
		<link>http://devnotesblog.wordpress.com/2012/01/12/ocz-vertex-plus-ssd-vs-macbook/</link>
		<comments>http://devnotesblog.wordpress.com/2012/01/12/ocz-vertex-plus-ssd-vs-macbook/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 19:14:09 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">https://devnotesblog.wordpress.com/?p=156</guid>
		<description><![CDATA[After the HD in my old (2006) white MacBook started making funny noises I decided &#8211; despite its age, as it is still working fine otherwise &#8211; to upgrade it to an SSD. The OCZ Vertex Plus 240GB seemed like &#8230; <a href="http://devnotesblog.wordpress.com/2012/01/12/ocz-vertex-plus-ssd-vs-macbook/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=156&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After the HD in my old (2006) white MacBook started making funny noises I decided &#8211; despite its age, as it is still working fine otherwise &#8211; to upgrade it to an SSD. The OCZ Vertex Plus 240GB seemed like a good choice at a reasonable price.</p>
<p>However, while both a Time Machine restore and a new OS X Snow Leopard installation ran fine, the disk was not in a bootable state afterwards. This is where I had to learn that these days you need to apply updates to hardware before being able to use it… Bumping the firmware from 3.02 to 3.55 using the firmware updater found at <a href="http://www.ocztechnology.com/ssd_tools/OCZ_Vertex_Plus/">http://www.ocztechnology.com/ssd_tools/OCZ_Vertex_Plus/</a> did the trick.</p>
<p>Using Disk Utility, burn the Firmware Updater ISO to a CD/DVD, reboot, hold Option until the boot device selection comes up and apply the firmware update. Reboot, and the disk should be working fine.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=156&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2012/01/12/ocz-vertex-plus-ssd-vs-macbook/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>
	</item>
		<item>
		<title>Scripting using JSR 223 in an OSGi environment</title>
		<link>http://devnotesblog.wordpress.com/2011/09/07/scripting-using-jsr-223-in-an-osgi-environment/</link>
		<comments>http://devnotesblog.wordpress.com/2011/09/07/scripting-using-jsr-223-in-an-osgi-environment/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 15:07:27 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[OSGi]]></category>

		<guid isPermaLink="false">https://devnotesblog.wordpress.com/?p=148</guid>
		<description><![CDATA[When providing scripting in a Java application, scripting engines conforming to JSR 223 (e.g. Groovy, JRuby, Scala, …) can easily be embedded using something along the lines of However, in an OSGi-based application, the ScriptEngineManager fails to discover scripting engines &#8230; <a href="http://devnotesblog.wordpress.com/2011/09/07/scripting-using-jsr-223-in-an-osgi-environment/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=148&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>When providing scripting in a Java application, scripting engines conforming to JSR 223 (e.g. Groovy, JRuby, Scala, …) can easily be embedded using something along the lines of</p>
<pre class="brush: java; title: ; notranslate">
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine scriptEngine = scriptEngineManager.getByName(&quot;groovy&quot;);
</pre>
<p>However, in an OSGi-based application, the <code>ScriptEngineManager</code> fails to discover scripting engines located in installed bundles bundles, due to the way (<a href="http://download.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html" title="Service Loader" target="_blank"></a>) it discovers engines available on the class path.<span id="more-148"></span> Luckily, the Apache Felix project has already solved this problem, there are</p>
<ul>
<li><a href="http://svn.apache.org/repos/asf/felix/trunk/mishell/src/main/java/org/apache/felix/mishell/OSGiScriptEngineManager.java">OSGiScriptEngineManager</a></li>
<li><a href="http://svn.apache.org/repos/asf/felix/trunk/mishell/src/main/java/org/apache/felix/mishell/OSGiScriptEngineFactory.java">OSGiScriptEngineFactory</a></li>
<li><a href="http://svn.apache.org/repos/asf/felix/trunk/mishell/src/main/java/org/apache/felix/mishell/OSGiScriptEngine.java">OSGiScriptEngine</a></li>
</ul>
<p>which provide an OSGi-compliant way to discover and load scripting engines installed as OSGi bundles.</p>
<pre class="brush: java; title: ; notranslate">
ScriptEngineManager scriptEngineManager = new OSGiScriptEngineManager(bundleContext);
ScriptEngine scriptEngine = scriptEngineManager.getByName(&quot;groovy&quot;);
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=148&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/09/07/scripting-using-jsr-223-in-an-osgi-environment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>
	</item>
		<item>
		<title>git HTTP push fails with error &#8220;RPC failed&#8221;</title>
		<link>http://devnotesblog.wordpress.com/2011/09/07/git-http-push-fails-with-error-rpc-failed/</link>
		<comments>http://devnotesblog.wordpress.com/2011/09/07/git-http-push-fails-with-error-rpc-failed/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 14:52:28 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">https://devnotesblog.wordpress.com/?p=146</guid>
		<description><![CDATA[Today, I had the problem that git failed to push a large change set to a HTTP remote with the errors HTTP error code 403: remote hung up unexpectedly and RPC failed; result=22. After some googling around I figured that &#8230; <a href="http://devnotesblog.wordpress.com/2011/09/07/git-http-push-fails-with-error-rpc-failed/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=146&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Today, I had the problem that git failed to push a large change set to a HTTP remote with the errors <code>HTTP error code 403: remote hung up unexpectedly</code> and <code>RPC failed; result=22</code>. After some googling around I figured that I had to increase a buffer setting:</p>
<pre>git config http.postBuffer 524288000</pre>
<p>Maybe this helps someone else having the same problem.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/146/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/146/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=146&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/09/07/git-http-push-fails-with-error-rpc-failed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>
	</item>
		<item>
		<title>Maven: Check for dependecy and plugin updates</title>
		<link>http://devnotesblog.wordpress.com/2011/07/16/maven-check-for-dependecy-and-plugin-updates/</link>
		<comments>http://devnotesblog.wordpress.com/2011/07/16/maven-check-for-dependecy-and-plugin-updates/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 10:30:34 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://devnotesblog.wordpress.com/?p=142</guid>
		<description><![CDATA[Ever wanted to check if there are updates for any of your Maven project dependencies or plugins? It&#8217;s as easy as doing mvn versions:display-dependency-updates versions:display-plugin-updates From Maven Versions Plugin.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=142&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Ever wanted to check if there are updates for any of your Maven project dependencies or plugins? It&#8217;s as easy as doing</p>
<p><code>mvn versions:display-dependency-updates versions:display-plugin-updates</code></p>
<p>From <a href="http://mojo.codehaus.org/versions-maven-plugin/" title="Maven Versions Plugin">Maven Versions Plugin</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=142&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/07/16/maven-check-for-dependecy-and-plugin-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>
	</item>
		<item>
		<title>Eclipse Jubula Automated Test Ant File</title>
		<link>http://devnotesblog.wordpress.com/2011/07/14/eclipse-jubula-automated-test-ant-file/</link>
		<comments>http://devnotesblog.wordpress.com/2011/07/14/eclipse-jubula-automated-test-ant-file/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 12:07:36 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">https://devnotesblog.wordpress.com/?p=139</guid>
		<description><![CDATA[As a followup to my previous post on automating Eclipse Jubula tests with Jenkins, here&#8217;s an Ant file that Extracts the target platform (Eclipse in this case) and Jubula&#8217;s instrumentation plugin Deploys the plugins under test into the target platform &#8230; <a href="http://devnotesblog.wordpress.com/2011/07/14/eclipse-jubula-automated-test-ant-file/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=139&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>As a followup to my <a href="http://devnotesblog.wordpress.com/2011/06/14/automating-eclipse-jubula-tests-with-jenkins/">previous post on automating Eclipse Jubula tests with Jenkins</a>, here&#8217;s an Ant file that</p>
<ul>
<li>Extracts the target platform (Eclipse in this case) and Jubula&#8217;s instrumentation plugin</li>
<li>Deploys the plugins under test into the target platform (simple copy in this case, no p2 installation)</li>
<li>Runs the Jubula tests using<code>testexec</code></li>
<li>Collects links to all test results in an <code>index.html</code> file that can be published using the <a href="https://wiki.jenkins-ci.org/display/JENKINS/HTML+Publisher+Plugin" title="Jenkins HTML Publisher plugin">Jenkins HTML Publisher plugin</a></li>
</ul>
<p><span id="more-139"></span><br />
<h2>Prolog</h2>
<pre class="brush: xml; title: ; notranslate">
&lt;project name=&quot;plugin-test&quot; default=&quot;run&quot;&gt;
	&lt;!-- Locations --&gt;
	&lt;property name=&quot;testdata.dir&quot; value=&quot;testdata&quot; /&gt;
	&lt;property name=&quot;report.dir&quot; value=&quot;report/jubula&quot;/&gt;
	&lt;property name=&quot;application.dir&quot; value=&quot;/tmp/plugin-test/runtime&quot;/&gt;
	&lt;property name=&quot;workspace.dir&quot; value=&quot;/home/jenkins/.jubula/workspace&quot;/&gt;
	&lt;property name=&quot;artifact.dir&quot; value=&quot;target&quot;/&gt;&lt;!-- Location of plugins under test --&gt;
	&lt;property name=&quot;testexec&quot; value=&quot;/home/jenkins/jubula/jubula/testexec&quot;/&gt;

	&lt;!-- Derived properties --&gt;
	&lt;property name=&quot;deploy.dir&quot; value=&quot;${application.dir}/eclipse/plugins&quot;/&gt;
	&lt;property name=&quot;report.index&quot; value=&quot;${report.dir}/index.html&quot;/&gt;

	&lt;!-- Taskdefs --&gt;
	&lt;taskdef resource=&quot;net/sf/antcontrib/antcontrib.properties&quot; classpath=&quot;lib/ant-contrib.jar&quot;/&gt;

	&lt;!-- Main target --&gt;
	&lt;target name=&quot;run&quot; depends=&quot;check, setup, prepare-runtime, deploy, test, report&quot; /&gt;

	&lt;target name=&quot;check&quot; unless=&quot;application.archive&quot; description=&quot;Check configuration&quot;&gt;
		&lt;fail message=&quot;The mandatory property application.archive pointing to a zipped Eclipse runtime is missing&quot;/&gt;
	&lt;/target&gt;

	&lt;target name=&quot;setup&quot; description=&quot;Prepare directories&quot;&gt;
		&lt;delete dir=&quot;${report.dir}&quot;/&gt;
		&lt;mkdir dir=&quot;${report.dir}&quot;/&gt;
		&lt;delete dir=&quot;${testdata.dir}&quot;/&gt;
		&lt;mkdir dir=&quot;${testdata.dir}&quot;/&gt;
		&lt;delete dir=&quot;${application.dir}&quot;/&gt;
		&lt;mkdir dir=&quot;${application.dir}&quot;/&gt;
		&lt;mkdir dir=&quot;${artifact.dir}&quot;/&gt;
	&lt;/target&gt;
</pre>
<h2>Unpack the target runtime, copy instrumentation plugin and deploy plugins under test</h2>
<pre class="brush: xml; title: ; notranslate">
	&lt;target name=&quot;prepare-runtime&quot; description=&quot;Unpack the runtime application to a working directory&quot;&gt;
		&lt;!-- Extract Eclipse --&gt;
		&lt;unzip dest=&quot;${application.dir}&quot; src=&quot;${application.archive}&quot; overwrite=&quot;true&quot;/&gt;
		&lt;chmod perm=&quot;a+x&quot; file=&quot;${application.dir}/eclipse/eclipse&quot;/&gt;
		
		&lt;!-- Extract Jubula instrumentation plugin --&gt;
		&lt;unzip dest=&quot;${application.dir}/eclipse&quot; src=&quot;${jubula.plugin.archive}&quot; overwrite=&quot;true&quot;/&gt;
	&lt;/target&gt;

	&lt;target name=&quot;deploy&quot; description=&quot;Copy all plugins (target/*.jar) directory to the runtime application's plugins directory&quot;&gt;
		&lt;copy todir=&quot;${deploy.dir}&quot;&gt;
			&lt;fileset dir=&quot;${artifact.dir}&quot; includes=&quot;*.jar&quot;/&gt;
		&lt;/copy&gt;
	&lt;/target&gt;
</pre>
<h2>Run Jubula tests using testexec</h2>
<pre class="brush: xml; title: ; notranslate">
	&lt;target name=&quot;test&quot; description=&quot;Run the tests using testexec against an autagent&quot;&gt;
		&lt;property name=&quot;test.project&quot; value=&quot;_your project name_&quot;/&gt;
		&lt;property name=&quot;test.project.version&quot; value=&quot;1.0&quot;/&gt;
		&lt;property name=&quot;test.suite&quot; value=&quot;_your test suite name_&quot;/&gt;
		&lt;property name=&quot;test.aut.config&quot; value=&quot;Eclipse_Helios&quot;/&gt;
		&lt;property name=&quot;autagent.host&quot; value=&quot;localhost&quot;/&gt;
		&lt;property name=&quot;autagent.port&quot; value=&quot;60000&quot;/&gt;
		&lt;property name=&quot;db.scheme&quot; value=&quot;_your DB scheme_&quot;/&gt;
		&lt;property name=&quot;db.user&quot; value=&quot;_your DB user_&quot;/&gt;
		&lt;property name=&quot;db.pwd&quot; value=&quot;_your DB pwd_&quot;/&gt;

		&lt;exec executable=&quot;${testexec}&quot; failonerror=&quot;true&quot;&gt;
			&lt;arg line='-project ${test.project} -version ${test.project.version} -testsuite ${test.suite}'/&gt;
			&lt;arg line='-server ${autagent.host} -port ${autagent.port} -autconfig ${test.aut.config}'/&gt;
			&lt;arg line='-datadir &quot;${testdata.dir}&quot; -resultdir &quot;${report.dir}&quot;'/&gt;
			&lt;arg line='-data &quot;${workspace.dir}&quot;'/&gt;
			&lt;arg line='-language en_US -dbscheme &quot;${db.scheme}&quot;'/&gt;
			&lt;arg line=&quot;-dbuser ${db.user} -dbpw ${db.pwd}&quot;/&gt;
		&lt;/exec&gt;
	&lt;/target&gt;
</pre>
<h2>Generate index page with links to test results</h2>
<pre class="brush: xml; title: ; notranslate">
	&lt;target name=&quot;report&quot; description=&quot;Create report index HTML page&quot;&gt;
		&lt;!-- Find report files --&gt;
		&lt;fileset id=&quot;html.fileset&quot; dir=&quot;${report.dir}&quot;&gt;
		    &lt;include name=&quot;*.htm*&quot; /&gt;
			&lt;exclude name=&quot;index.html&quot;/&gt;
		&lt;/fileset&gt;

		&lt;pathconvert pathsep=&quot;;&quot; property=&quot;html.filelist&quot; refid=&quot;html.fileset&quot;&gt;
		    &lt;mapper type=&quot;flatten&quot; /&gt;
		&lt;/pathconvert&gt;

		&lt;!-- Create index page header --&gt;
		&lt;echo file=&quot;${report.index}&quot;&gt;
			&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;ul&amp;gt;
		&lt;/echo&gt;

		&lt;!-- Add links to all files --&gt;
		&lt;foreach list=&quot;${html.filelist}&quot; delimiter=&quot;;&quot; target=&quot;-print-report-link&quot; param=&quot;report.file.name&quot;/&gt;

		&lt;!-- Footer --&gt;
		&lt;echo file=&quot;${report.index}&quot; append=&quot;true&quot;&gt;
			&amp;lt;/ul&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;html&amp;gt;
		&lt;/echo&gt;
	&lt;/target&gt;

	&lt;target name=&quot;-print-report-link&quot; description=&quot;Print a link to a Jubula report file into the index page&quot;&gt;
		&lt;!-- Strip file prefix --&gt;
		&lt;propertyregex input=&quot;${report.file.name}&quot; property=&quot;report.file.title&quot; regexp=&quot;executionLog-&quot; replace=&quot;&quot;/&gt;
		&lt;!-- Create file link in list --&gt;
		&lt;echo file=&quot;${report.index}&quot; append=&quot;true&quot; message=&quot;&amp;lt;li&amp;gt;  &amp;lt;a href=${report.file.name}&amp;gt; ${report.file.title}  &amp;lt;/a&amp;gt;  &amp;lt;/li&amp;gt;&quot;/&gt;
	&lt;/target&gt;

&lt;/project&gt;
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/139/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/139/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=139&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/07/14/eclipse-jubula-automated-test-ant-file/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>
	</item>
		<item>
		<title>Automating Eclipse Jubula Tests with Jenkins</title>
		<link>http://devnotesblog.wordpress.com/2011/06/14/automating-eclipse-jubula-tests-with-jenkins/</link>
		<comments>http://devnotesblog.wordpress.com/2011/06/14/automating-eclipse-jubula-tests-with-jenkins/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 15:50:50 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">https://devnotesblog.wordpress.com/?p=117</guid>
		<description><![CDATA[Eclipse Jubula is a pretty new addition to the Eclipse universe. It&#8217;s a functional UI testing tool that allows you to specify and run tests. The tests are not code-based but can be assembled from available building blocks or recorded &#8230; <a href="http://devnotesblog.wordpress.com/2011/06/14/automating-eclipse-jubula-tests-with-jenkins/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=117&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://devnotesblog.files.wordpress.com/2011/06/jubula-logo.png"><img class="alignleft size-full wp-image-121" title="jubula-logo" src="http://devnotesblog.files.wordpress.com/2011/06/jubula-logo.png?w=640" alt=""   /></a>Eclipse Jubula is a pretty new addition to the Eclipse universe. It&#8217;s a functional UI testing tool that allows you to specify and run tests. The tests are not code-based but can be assembled from available building blocks or recorded in the UI.</p>
<p>While evaluating tools for doing functional tests for an Eclipse Plugin, I wanted to check out how easy it would be to integrate it into our Continuous Integration builds with Jenkins (the CI server formerly known as Hudson). It turned out there were a few pitfalls, but in the end it was pretty straightforward &#8211; hopefully this article will save you some time.</p>
<p>To get started, download and install Jubula from the <a href="http://www.eclipse.org/jubula/download.php">download page</a>. After installation (simply run <code>setup.sh</code>, and install it for example into <code>/home/jenkins/jubula</code>), you&#8217;ll have to prepare your target RCP or Eclipse Runtime by extracting <code>rcp-support.zip</code> from the Jubula installation to the RCP Application/Eclipse directory. This contains a plugin that needs to be available in the AUT (Application Under Test) for Jubula to be able to run the tests.</p>
<p><em>Pitfall</em>: The provided Jubula installation package for Linux includes a 32-bit JRE and SWT in a 32-bit version that is used to run Jubula and its tools. The CI server being a 64-bit machine I had to install quite a few 32-bit shared libraries to get Jubula to run. To find out what libraries are missing, starting Jubula locally on the CI server with the <code>-debug -console -consoleLog</code> options helped. On the CI build server you might get away without this step if all you run locally is the <em>autagent</em> (see below).</p>
<p><span id="more-117"></span></p>
<h2>Specifying a Test</h2>
<p>Jubula comes with quite a good User Manual. For an introduction on how to create your first Jubula test, I&#8217;d recommend the excellent <a href="http://jmhofer.johoop.de/?p=97">series of posts by Joachim</a>.</p>
<p>This post assumes that you have a test project name <code>MyTest</code> with a test suite named <code>AboutDialogTest</code> and AUT configuration named <code>Eclipse_Helios</code>.</p>
<p><em>Pitfall</em>: Make sure your test specifies either <em>German (Germany)</em> or <em>English (United States)</em> as the keyboard layout (see <a href="http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jubula.client.ua.help%2Fhtml%2Freference%2Fnode44.html">here</a>). These are the only two keyboard layouts provided out-of-the-box by Jubula at the moment.</p>
<h2>Test Executor</h2>
<p>Running Jubula from the command line is done using the Test Executor (testexec). It&#8217;s command line options are documented <a href="http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jubula.client.ua.help%2Fhtml%2Fmanual%2Fnode254.html">here</a>.</p>
<p>If, for example, you&#8217;re  testing an Eclipse Plugin, your testexec command line would look something like this:</p>
<pre class="brush: bash; title: ; notranslate">$JUBULA_HOME/jubula/testexec -project MyTest -version 1.0 -testsuite AboutDialogTest 
-server localhost -port 60000 -autconfig Eclipse_Helios 
-datadir $WORKSPACE/testdata -resultdir $WORKSPACE/testresults
-data /home/jenkins/.jubula/workspace 
-language en_US -dbscheme &quot;Default Embedded (H2)&quot;
-dbuser sa -dbpw &quot;&quot;</pre>
<p>This is using the default embedded database scheme. In a production environment, you&#8217;ll typically use a real database that is available to both testers specifying tests and the build server. Available DB schemes are configured in Jubula under <em>Window/Preferences/Test/Database Connections</em>. The <code>-data</code> parameter points to the workspace directory where the database configuration is stored. So you&#8217;ll have to either edit this locally on the server, or copy the workspace over to the server to somewhere Jenkins can see it.</p>
<p>The test executor can be configured to either</p>
<ul>
<li>Start a new AUT instance as shown above with the -autconfig parameter</li>
<li>Connect to a running AUT instance that has been started using the -autid parameter</li>
</ul>
<p>You can also pass all these options via a <a href="http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jubula.client.ua.help%2Fhtml%2Fmanual%2Fnode254.html">configuration file</a> instead of command line parameters should you prefer.</p>
<h2>AUT Agent</h2>
<p>Before running the Test Executor, you&#8217;ll have to start the AUT Agent (Jubula daemon providing the bridge between the test executor and the Application Under Test) first.</p>
<p>The AUT agent can be started with<br />
</p>
<pre class="brush: bash; title: ; notranslate">$JUBULA_HOME/server/autagent -p 60000 -v</pre>
<p></p>
<ul>
<li>-p: Port</li>
<li>-v: Verbose mode</li>
</ul>
<p>As this this an UI test, the agent is started under X11. I haven&#8217;t yet explored the possibilities of running the AUT without having an active X11 session. Our CI server has an active X11 session all the time for driving an <a href="https://wiki.jenkins-ci.org/display/JENKINS/eXtreme+Feedback+Panel+Plugin">Extreme Feedback Panel</a> anyways.</p>
<p><em>Pitfall</em>: The AUT agent seems to accept only a single connection at a time, the test executor can&#8217;t connect to it while Jubula is still connected to the same AUT Agent.</p>
<h2>Configuring Jenkins</h2>
<h3>1.) Create a new Job</h3>
<p><img title="createjob.png" src="http://devnotesblog.files.wordpress.com/2011/06/createjob.png?w=512&#038;h=431" alt="createjob.png" width="512" height="431" border="0" /></p>
<h3>2.) Add a step for creating necessary directories, and a step to run testexec</h3>
<p><img title="jubula-jobconfig.png" src="http://devnotesblog.files.wordpress.com/2011/06/jubula-jobconfig1.png?w=734&#038;h=375" alt="jubula-jobconfig.png" width="734" height="375" border="0" /></p>
<p><em>Note</em>: The shell commands are just provided as an example. In a real job you would most probably replace this with something like an Ant script to prepare the environment, auto-deploy your plugin or the whole RCP application, run the the tests and then check the return code from testexec. Edit: This has been documented <a href="http://devnotesblog.wordpress.com/2011/07/14/eclipse-jubula-automated-test-ant-file/">here</a></p>
<h3>3.) Run the job</h3>
<p><img title="jubula-buildnow.png" src="http://devnotesblog.files.wordpress.com/2011/06/jubula-buildnow.png?w=100&#038;h=32" alt="jubula-buildnow.png" width="100" height="32" border="0" /></p>
<h3>4.) Check out the results</h3>
<p><img title="jubula-results.png" src="http://devnotesblog.files.wordpress.com/2011/06/jubula-results.png?w=600&#038;h=290" alt="jubula-results.png" width="600" height="290" border="0" /></p>
<p>The generated HTML report will look something like this:</p>
<p><img title="jubula-report.png" src="http://devnotesblog.files.wordpress.com/2011/06/jubula-report.png?w=486&#038;h=600" alt="jubula-report.png" width="486" height="600" border="0" /></p>
<h2>Possible Job Improvements</h2>
<ul>
<li>Auto-deploy plugin and/or RCP runtime</li>
<li>Connect to a real database instead of the embedded Jubula instance</li>
<ul>
<li>This is simply a matter of configuring a new database in the workspace pointed to by the <code>-data</code> parameter (see above), and setting the <code>-dbscheme</code> parameter to the name of the DB configuration.</li>
</ul>
<li>Show screenshots taken by Jubula upon test failures directly in the test report</li>
<ul>
<li>This is currently only possible inside Jubula&#8217;s test result perspective. Would be nice to have the screenshot embedded into the HTML reports.</li>
</ul>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/117/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=117&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/06/14/automating-eclipse-jubula-tests-with-jenkins/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>

		<media:content url="http://devnotesblog.files.wordpress.com/2011/06/jubula-logo.png" medium="image">
			<media:title type="html">jubula-logo</media:title>
		</media:content>

		<media:content url="http://devnotesblog.files.wordpress.com/2011/06/createjob.png" medium="image">
			<media:title type="html">createjob.png</media:title>
		</media:content>

		<media:content url="http://devnotesblog.files.wordpress.com/2011/06/jubula-jobconfig1.png" medium="image">
			<media:title type="html">jubula-jobconfig.png</media:title>
		</media:content>

		<media:content url="http://devnotesblog.files.wordpress.com/2011/06/jubula-buildnow.png" medium="image">
			<media:title type="html">jubula-buildnow.png</media:title>
		</media:content>

		<media:content url="http://devnotesblog.files.wordpress.com/2011/06/jubula-results.png" medium="image">
			<media:title type="html">jubula-results.png</media:title>
		</media:content>

		<media:content url="http://devnotesblog.files.wordpress.com/2011/06/jubula-report.png" medium="image">
			<media:title type="html">jubula-report.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Masquerade Service Simulator 0.9.1</title>
		<link>http://devnotesblog.wordpress.com/2011/05/31/masquerade-service-simulator-0-9-1/</link>
		<comments>http://devnotesblog.wordpress.com/2011/05/31/masquerade-service-simulator-0-9-1/#comments</comments>
		<pubDate>Tue, 31 May 2011 06:17:29 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Masquerade]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://devnotesblog.wordpress.com/?p=108</guid>
		<description><![CDATA[Masquerade Service Simulator 0.9.1 has been released. It comes with some bug fixes and a few new features: Fixed class loading issues in standalone mode Added XPathAlternativesRequestIdProvider Added Tibco EMS connection factory provider Provide (default) option to not persist request &#8230; <a href="http://devnotesblog.wordpress.com/2011/05/31/masquerade-service-simulator-0-9-1/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=108&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Masquerade Service Simulator 0.9.1 has been released. It comes with some bug fixes and a few new features:</p>
<ul>
<li>Fixed class loading issues in standalone mode</li>
<li>Added XPathAlternativesRequestIdProvider</li>
<li>Added Tibco EMS connection factory provider</li>
<li>Provide (default) option to not persist request history</li>
<li>Show more request history entries in table</li>
<li>Added replace option to import/export dialog</li>
<li>Request History: Added timing informations</li>
<li>Added environment replacement properties to settings</li>
<li>Configurable amount of JMS consumers</li>
<li>API supports request timestamp retrieval</li>
</ul>
<p>Get it from <a href="http://code.google.com/p/masqueradesim/downloads/list" title="Google Code Download Page for Masquerade" target="_blank">http://code.google.com/p/masqueradesim/downloads/list</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=108&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/05/31/masquerade-service-simulator-0-9-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>
	</item>
		<item>
		<title>Configuring Maven Mirrors</title>
		<link>http://devnotesblog.wordpress.com/2011/05/23/configuring-maven-mirrors/</link>
		<comments>http://devnotesblog.wordpress.com/2011/05/23/configuring-maven-mirrors/#comments</comments>
		<pubDate>Mon, 23 May 2011 10:44:41 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://devnotesblog.wordpress.com/?p=104</guid>
		<description><![CDATA[Configuring a Maven mirror might be a good idea for example when You live in Europe and the UK mirror is faster for your repo1.maven.org is experiencing troubles It was only yesterday when repo1.maven.org was down that I learned how &#8230; <a href="http://devnotesblog.wordpress.com/2011/05/23/configuring-maven-mirrors/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=104&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Configuring a Maven mirror might be a good idea for example when</p>
<ul>
<li>You live in Europe and the UK mirror is faster for your</li>
<li><code>repo1.maven.org</code> is experiencing troubles</li>
</ul>
<p>It was only yesterday when <code>repo1.maven.org</code> was down that I learned how to configure mirrors for Maven: Simply add the few lines below to your <code>.m2/settings.xml</code>:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;settings&gt;
  ...
  &lt;mirrors&gt;
    &lt;mirror&gt;
      &lt;id&gt;UK&lt;/id&gt;
      &lt;name&gt;UK Central&lt;/name&gt;
      &lt;url&gt;http://uk.maven.org/maven2&lt;/url&gt;
      &lt;mirrorOf&gt;central&lt;/mirrorOf&gt;
    &lt;/mirror&gt;
  &lt;/mirrors&gt;
  ...
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=104&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/05/23/configuring-maven-mirrors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>
	</item>
		<item>
		<title>Masquerade Service Simulator Released</title>
		<link>http://devnotesblog.wordpress.com/2011/05/04/masquerade-service-simulator-released/</link>
		<comments>http://devnotesblog.wordpress.com/2011/05/04/masquerade-service-simulator-released/#comments</comments>
		<pubDate>Wed, 04 May 2011 09:14:57 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Masquerade]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://devnotesblog.wordpress.com/?p=93</guid>
		<description><![CDATA[A first version of Masquerade Service Simulator has been released. Masquerade is a configurable Service Simulator that returns simulated responses for service requests. Service stubs can easily be implemented using Masquerade. Simply run Masquerade standalone using its embedded Jetty server &#8230; <a href="http://devnotesblog.wordpress.com/2011/05/04/masquerade-service-simulator-released/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=93&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://devnotesblog.files.wordpress.com/2011/05/sim1.png"><img src="http://devnotesblog.files.wordpress.com/2011/05/sim1.png?w=300&#038;h=125" alt="" title="sim" width="300" height="125" class="alignleft size-medium wp-image-96" /></a>A first version of Masquerade Service Simulator has been released. Masquerade is a configurable Service Simulator that returns simulated responses for service requests.</p>
<p>Service stubs can easily be implemented using Masquerade. Simply run Masquerade standalone using its embedded Jetty server or deploy it to an application server (e.g. Tomcat) of your choice, and configure your simulations using its web interface.</p>
<p>Service simulation is useful for example when</p>
<ul>
<li>Providing a service stub for integration or regression tests</li>
<li>Doing functional tests against a system that is not (yet) available</li>
<li>Providing a stub for functionality that is yet to be implemented in an agile project </li>
</ul>
<p><span id="more-93"></span>Supports the following request listener channels in this first release:</p>
<ul>
<li>HTTP (using the servlet container and standalone on different port)</li>
<li>JMS (queue/topic, connection factories for WSMQ and ActiveMQ included)</li>
<li>File</li>
<li>FTP</li>
</ul>
<p>Contains simulation actions for various request/response scenarios, while quite a few of them support XML, any kind of response can be simulated. Response simulations are based on simulation scripts that contain actions such</p>
<ul>
<li>Template-based response</li>
<li>Adding content to the response</li>
<li>Groovy script step</li>
<li>Ruby script step</li>
<li>Java Script step</li>
<li>Synchronous/asynchronous responses</li>
<li>Wait step</li>
<li>Variable management and substitution steps</li>
<li>XML transformation steps</li>
</ul>
<p>The simulator also provides an API to query for received requests (useful when asserting request contents in integration tests), and to specifiy expected responses externally before issuing requests.</p>
<p>The Source code repo is at <a href="http://code.google.com/p/masqueradesim/">https://github.com/matf/masquerade</a>. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=93&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/05/04/masquerade-service-simulator-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>

		<media:content url="http://devnotesblog.files.wordpress.com/2011/05/sim1.png?w=300" medium="image">
			<media:title type="html">sim</media:title>
		</media:content>
	</item>
		<item>
		<title>Vaadin Widgetset Compilation with Maven</title>
		<link>http://devnotesblog.wordpress.com/2011/04/29/vaadin-widgetset-compilation-with-maven/</link>
		<comments>http://devnotesblog.wordpress.com/2011/04/29/vaadin-widgetset-compilation-with-maven/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 09:05:56 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Vadiin]]></category>

		<guid isPermaLink="false">http://devnotesblog.wordpress.com/?p=87</guid>
		<description><![CDATA[Joram has written an interesting post on how to avoid having Maven recompile the Widgetset for a Vaadin project with every build: http://www.jorambarrez.be/blog/2011/04/28/howto-vaadin-addon-maven/ Our continuous integration turnaround time for Vaadin projects has dropped to a few seconds without the GWT &#8230; <a href="http://devnotesblog.wordpress.com/2011/04/29/vaadin-widgetset-compilation-with-maven/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=87&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Joram has written an interesting post on how to avoid having Maven recompile the Widgetset for a Vaadin project with every build: </p>
<p><a href="http://www.jorambarrez.be/blog/2011/04/28/howto-vaadin-addon-maven/">http://www.jorambarrez.be/blog/2011/04/28/howto-vaadin-addon-maven/</a></p>
<p>Our continuous integration turnaround time for Vaadin projects has dropped to a few seconds without the GWT compiler overhead, really helpful! </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/devnotesblog.wordpress.com/87/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/devnotesblog.wordpress.com/87/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=devnotesblog.wordpress.com&#038;blog=21058356&#038;post=87&#038;subd=devnotesblog&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://devnotesblog.wordpress.com/2011/04/29/vaadin-widgetset-compilation-with-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/da1177212327e04ac6482430f2fed157?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">mfritschi</media:title>
		</media:content>
	</item>
	</channel>
</rss>
