<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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: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>Comments for Petter Måhlén&#039;s Blog</title>
	<atom:link href="http://pettermahlen.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://pettermahlen.com</link>
	<description>It&#039;s all about the Coding</description>
	<lastBuildDate>Thu, 09 Feb 2012 08:48:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on Don&#8217;t use @Test(expected = &#8230;) by Petter Måhlén</title>
		<link>http://pettermahlen.com/2012/02/07/dont-use-testexpected/#comment-234</link>
		<dc:creator><![CDATA[Petter Måhlén]]></dc:creator>
		<pubDate>Thu, 09 Feb 2012 08:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=505#comment-234</guid>
		<description><![CDATA[I like that syntax, it&#039;s cleaner than the one you get with the JUnit ExpectedException, I think.]]></description>
		<content:encoded><![CDATA[<p>I like that syntax, it&#8217;s cleaner than the one you get with the JUnit ExpectedException, I think.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Don&#8217;t use @Test(expected = &#8230;) by Kristofer</title>
		<link>http://pettermahlen.com/2012/02/07/dont-use-testexpected/#comment-230</link>
		<dc:creator><![CDATA[Kristofer]]></dc:creator>
		<pubDate>Wed, 08 Feb 2012 19:33:05 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=505#comment-230</guid>
		<description><![CDATA[Another option is using something like assertThrows in mockachino.

You get neat syntax like this:

Mockachino.assertThrows(IndexOutOfBoundsException.class).on(list).get(0);

instead of using try-catch.

It&#039;s part of my mocking framework, but nothing in it actually uses mocks.

Here&#039;s some example usage:
http://code.google.com/p/mockachino/source/browse/trunk/test/blackbox/se/mockachino/AssertTest.java

The feature itself is really simple, in case you want to duplicate it or extend it (optionally verify exception mesage for instance):
http://code.google.com/p/mockachino/source/browse/trunk/src/se/mockachino/assertion/AssertThrows.java?spec=svn128&amp;r=128]]></description>
		<content:encoded><![CDATA[<p>Another option is using something like assertThrows in mockachino.</p>
<p>You get neat syntax like this:</p>
<p>Mockachino.assertThrows(IndexOutOfBoundsException.class).on(list).get(0);</p>
<p>instead of using try-catch.</p>
<p>It&#8217;s part of my mocking framework, but nothing in it actually uses mocks.</p>
<p>Here&#8217;s some example usage:<br />
<a href="http://code.google.com/p/mockachino/source/browse/trunk/test/blackbox/se/mockachino/AssertTest.java" rel="nofollow">http://code.google.com/p/mockachino/source/browse/trunk/test/blackbox/se/mockachino/AssertTest.java</a></p>
<p>The feature itself is really simple, in case you want to duplicate it or extend it (optionally verify exception mesage for instance):<br />
<a href="http://code.google.com/p/mockachino/source/browse/trunk/src/se/mockachino/assertion/AssertThrows.java?spec=svn128&#038;r=128" rel="nofollow">http://code.google.com/p/mockachino/source/browse/trunk/src/se/mockachino/assertion/AssertThrows.java?spec=svn128&#038;r=128</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Don&#8217;t use @Test(expected = &#8230;) by Petter Måhlén</title>
		<link>http://pettermahlen.com/2012/02/07/dont-use-testexpected/#comment-228</link>
		<dc:creator><![CDATA[Petter Måhlén]]></dc:creator>
		<pubDate>Tue, 07 Feb 2012 19:59:23 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=505#comment-228</guid>
		<description><![CDATA[I was not aware of that - that looks like a more concise way of getting the same functionality that I do through the try/catch idiom. Great tip!]]></description>
		<content:encoded><![CDATA[<p>I was not aware of that &#8211; that looks like a more concise way of getting the same functionality that I do through the try/catch idiom. Great tip!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Don&#8217;t use @Test(expected = &#8230;) by Dominic Mitchell</title>
		<link>http://pettermahlen.com/2012/02/07/dont-use-testexpected/#comment-227</link>
		<dc:creator><![CDATA[Dominic Mitchell]]></dc:creator>
		<pubDate>Tue, 07 Feb 2012 14:04:00 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=505#comment-227</guid>
		<description><![CDATA[Have you seen the ExpectedException class in newer junit versions? It&#039;s a more refined version of @Test(expected=&quot;&quot;).

https://github.com/KentBeck/junit/blob/master/src/main/java/org/junit/rules/ExpectedException.java]]></description>
		<content:encoded><![CDATA[<p>Have you seen the ExpectedException class in newer junit versions? It&#8217;s a more refined version of @Test(expected=&#8221;").</p>
<p><a href="https://github.com/KentBeck/junit/blob/master/src/main/java/org/junit/rules/ExpectedException.java" rel="nofollow">https://github.com/KentBeck/junit/blob/master/src/main/java/org/junit/rules/ExpectedException.java</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Code sharing: Use Maven by Petter Måhlén</title>
		<link>http://pettermahlen.com/2010/05/01/code-sharing-use-maven/#comment-221</link>
		<dc:creator><![CDATA[Petter Måhlén]]></dc:creator>
		<pubDate>Mon, 23 Jan 2012 14:35:49 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=140#comment-221</guid>
		<description><![CDATA[Hi,

We are in fact using the &#039;remove if released&#039; feature. I haven&#039;t spent any serious time trying to figure out whether it works or not, but my interpretation of the Nexus documentation is that it should work even if you separate release and snapshot repositories: &quot;This tells the task to ignore the above settings if an artifact with the same group/artifact/version is detected in a release repository&quot;. A quick glance in our Nexus repo seems to bear that out as well - snapshots relating to released versions appear to be deleted for the one project I checked.]]></description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>We are in fact using the &#8216;remove if released&#8217; feature. I haven&#8217;t spent any serious time trying to figure out whether it works or not, but my interpretation of the Nexus documentation is that it should work even if you separate release and snapshot repositories: &#8220;This tells the task to ignore the above settings if an artifact with the same group/artifact/version is detected in a release repository&#8221;. A quick glance in our Nexus repo seems to bear that out as well &#8211; snapshots relating to released versions appear to be deleted for the one project I checked.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Code sharing: Use Maven by Alexey Yudichev</title>
		<link>http://pettermahlen.com/2010/05/01/code-sharing-use-maven/#comment-220</link>
		<dc:creator><![CDATA[Alexey Yudichev]]></dc:creator>
		<pubDate>Mon, 23 Jan 2012 14:00:33 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=140#comment-220</guid>
		<description><![CDATA[Hi, I&#039;ve noticed you use separate repositories for internal releases and snapshots. Doesn&#039;t this prevent you from using &quot;Remove Snapshots From Repository / remove if released&quot; in Nexus as snapsot repository never knows about releases?

Branch merge conflicts is also an annoying thing for us. We use mvn release:update-versions after almost every merge before committing.]]></description>
		<content:encoded><![CDATA[<p>Hi, I&#8217;ve noticed you use separate repositories for internal releases and snapshots. Doesn&#8217;t this prevent you from using &#8220;Remove Snapshots From Repository / remove if released&#8221; in Nexus as snapsot repository never knows about releases?</p>
<p>Branch merge conflicts is also an annoying thing for us. We use mvn release:update-versions after almost every merge before committing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Code Sharing: Use Git by Git workflow for multiple teams &#124; DIGG LINK</title>
		<link>http://pettermahlen.com/2010/03/28/code-sharing-use-git/#comment-218</link>
		<dc:creator><![CDATA[Git workflow for multiple teams &#124; DIGG LINK]]></dc:creator>
		<pubDate>Tue, 27 Dec 2011 03:30:47 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=106#comment-218</guid>
		<description><![CDATA[[...] this article presents a nice [...]]]></description>
		<content:encoded><![CDATA[<p>[...] this article presents a nice [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Git and Maven by Andy Schlaikjer</title>
		<link>http://pettermahlen.com/2010/02/20/git-and-maven/#comment-177</link>
		<dc:creator><![CDATA[Andy Schlaikjer]]></dc:creator>
		<pubDate>Wed, 23 Feb 2011 05:55:20 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.wordpress.com/?p=20#comment-177</guid>
		<description><![CDATA[&lt;blockquote cite=&quot;Petter&quot;&gt;
(I guess you have to manually clean out local repositories to do that, and that could go wrong too)
&lt;/blockquote&gt;

See &lt;a href=&quot;https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide&quot; rel=&quot;nofollow&quot;&gt;Sonatype OSS maven repo usage guidelines&lt;/a&gt; for example usage of staging repositories.]]></description>
		<content:encoded><![CDATA[<blockquote cite="Petter"><p>
(I guess you have to manually clean out local repositories to do that, and that could go wrong too)
</p></blockquote>
<p>See <a href="https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide" rel="nofollow">Sonatype OSS maven repo usage guidelines</a> for example usage of staging repositories.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bygg &#8211; Ideas for a Better Maven by Petter Måhlén</title>
		<link>http://pettermahlen.com/2011/01/24/bygg-ideas-for-a-better-maven/#comment-175</link>
		<dc:creator><![CDATA[Petter Måhlén]]></dc:creator>
		<pubDate>Thu, 17 Feb 2011 09:57:03 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=373#comment-175</guid>
		<description><![CDATA[Great points - I totally agree about the problems. I kind of don&#039;t want to agree about the solution (make it hard/impossible to go outside the framework), but I&#039;m not sure I have a better alternative. I used to work with games, and games are great examples of software, in that when you want to nudge users in a certain direction (say east), you need to make it fun to go east. If you make it boring/hard/painful to go west, north and south and hope that that will push people east, what happens is people go north, don&#039;t like it and abandon the game. So ideally, rather than making it painful to pull jars in from ~/.myjars, it should be a pure pleasure to solve the problem (I guess some kind of conditional selection of a different configuration/classpath) within the framework. But how do you do that? Especially when you don&#039;t know exactly what kind of things users might want to do programmatically?

I&#039;m still thinking that the dangers allowing programmatic builds are less than the benefits of using an actual language to do build configurations. I could well be wrong. :)]]></description>
		<content:encoded><![CDATA[<p>Great points &#8211; I totally agree about the problems. I kind of don&#8217;t want to agree about the solution (make it hard/impossible to go outside the framework), but I&#8217;m not sure I have a better alternative. I used to work with games, and games are great examples of software, in that when you want to nudge users in a certain direction (say east), you need to make it fun to go east. If you make it boring/hard/painful to go west, north and south and hope that that will push people east, what happens is people go north, don&#8217;t like it and abandon the game. So ideally, rather than making it painful to pull jars in from ~/.myjars, it should be a pure pleasure to solve the problem (I guess some kind of conditional selection of a different configuration/classpath) within the framework. But how do you do that? Especially when you don&#8217;t know exactly what kind of things users might want to do programmatically?</p>
<p>I&#8217;m still thinking that the dangers allowing programmatic builds are less than the benefits of using an actual language to do build configurations. I could well be wrong. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bygg &#8211; Ideas for a Better Maven by happygiraffe</title>
		<link>http://pettermahlen.com/2011/01/24/bygg-ideas-for-a-better-maven/#comment-174</link>
		<dc:creator><![CDATA[happygiraffe]]></dc:creator>
		<pubDate>Thu, 17 Feb 2011 09:30:32 +0000</pubDate>
		<guid isPermaLink="false">http://pettermahlen.com/?p=373#comment-174</guid>
		<description><![CDATA[(Sorry for the late arrival to this post).  I&#039;m rather cautious about introducing a fully fledged language into the build system.  It makes it so easy to generate a non-hermetic build, leading to great trouble down the road. e.g.

- Some builds conditionally pull in jars from ~/.myjars if they&#039;re running on the developer&#039;s workstation.
- It&#039;s very difficult to reason about the build system without executing the code within.  When that code is essentially arbitrary it could be doing anything, up to and including for(;;) {}.  You get great tools for &lt;i&gt;writing&lt;/i&gt; build files, but no support for tools to interact with them in a fashion other than building (e.g. automated dependency analysis).

Problems like these exist to some extent in other systems (make, ant).  They&#039;re the sort of thing that the communities spend a long time discussing, and deprecating via “Best Practices.”

One of the reasons I like Maven is how much you &lt;i&gt;can&#039;t&lt;/i&gt; do with it. :)]]></description>
		<content:encoded><![CDATA[<p>(Sorry for the late arrival to this post).  I&#8217;m rather cautious about introducing a fully fledged language into the build system.  It makes it so easy to generate a non-hermetic build, leading to great trouble down the road. e.g.</p>
<p>- Some builds conditionally pull in jars from ~/.myjars if they&#8217;re running on the developer&#8217;s workstation.<br />
- It&#8217;s very difficult to reason about the build system without executing the code within.  When that code is essentially arbitrary it could be doing anything, up to and including for(;;) {}.  You get great tools for <i>writing</i> build files, but no support for tools to interact with them in a fashion other than building (e.g. automated dependency analysis).</p>
<p>Problems like these exist to some extent in other systems (make, ant).  They&#8217;re the sort of thing that the communities spend a long time discussing, and deprecating via “Best Practices.”</p>
<p>One of the reasons I like Maven is how much you <i>can&#8217;t</i> do with it. :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

