<?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>Alex Ruiz&#039;s Blog</title>
	<atom:link href="http://alexruiz.developerblogs.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://alexruiz.developerblogs.com</link>
	<description>Having Fun with Java!</description>
	<lastBuildDate>Wed, 04 Aug 2010 15:52:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>FEST-Assert 1.3: Fluent Interface for Assertions</title>
		<link>http://alexruiz.developerblogs.com/?p=1498</link>
		<comments>http://alexruiz.developerblogs.com/?p=1498#comments</comments>
		<pubDate>Wed, 04 Aug 2010 15:52:40 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[FEST]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1498</guid>
		<description><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1498';
var dzone_title = 'FEST-Assert 1.3: Fluent Interface for Assertions';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
We are proud to announce that FEST-Assert 1.3 is out! FEST-Assert is an &#8220;assertThat&#8221; library that provides a fluent interface for writing assertions. Its main goal is to improve test code readability and make maintenance of tests easier. Example: int removed = employees.removeFired&#40;&#41;; assertThat&#40;removed&#41;.isZero&#40;&#41;; &#160; List newEmployees = employees.hired&#40;TODAY&#41;; assertThat&#40;newEmployees&#41;.hasSize&#40;6&#41; .contains&#40;frodo, sam&#41;; &#160; String&#91;&#93; newHires [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1498';
var dzone_title = 'FEST-Assert 1.3: Fluent Interface for Assertions';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>We are proud to announce that <a href="http://fest.googlecode.com/files/fest-assert-1.3.zip">FEST-Assert 1.3</a> is out!</p>
<p><a href="http://fest.easytesting.org/assert" target="_blank">FEST-Assert</a> is an &#8220;assertThat&#8221; library that provides a <a href="http://www.infoq.com/articles/internal-dsls-java" target="_blank">fluent interface</a> for writing assertions. Its main goal is to improve test code readability and make maintenance of tests easier.</p>
<p>Example:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> removed <span style="color: #339933;">=</span> employees.<span style="color: #006633;">removeFired</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
assertThat<span style="color: #009900;">&#40;</span>removed<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">isZero</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">List</span> newEmployees <span style="color: #339933;">=</span> employees.<span style="color: #006633;">hired</span><span style="color: #009900;">&#40;</span>TODAY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
assertThat<span style="color: #009900;">&#40;</span>newEmployees<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">hasSize</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#41;</span>
                        .<span style="color: #006633;">contains</span><span style="color: #009900;">&#40;</span>frodo, sam<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> newHires <span style="color: #339933;">=</span> employees.<span style="color: #006633;">newHiresNames</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
assertThat<span style="color: #009900;">&#40;</span>newHires<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">containsOnly</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Gandalf&quot;</span>, <span style="color: #0000ff;">&quot;Arwen&quot;</span>, <span style="color: #0000ff;">&quot;Gimli&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
assertThat<span style="color: #009900;">&#40;</span>yoda<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">isInstanceOf</span><span style="color: #009900;">&#40;</span>Jedi.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span>
                .<span style="color: #006633;">isEqualTo</span><span style="color: #009900;">&#40;</span>foundJedi<span style="color: #009900;">&#41;</span>
                .<span style="color: #006633;">isNotEqualTo</span><span style="color: #009900;">&#40;</span>foundSith<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Release notes</h3>
<h4>Bug</h4>
<ul class="list">
<li>[<a href='http://jira.codehaus.org/browse/FEST-133'>FEST-133</a>] &#8211;         <code>DoubleAssert.isEqualTo()</code> behaviour change? <em>Many thanks to Stanislaw Osinski.</em>
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-307'>FEST-307</a>] &#8211;         <code>assertThat(Integer)</code> automatically unboxes <code>Integer</code>s and returns <code>IntAssert</code>. <em>Many thanks to Tomasz Nurkiewicz.</em>
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-329'>FEST-329</a>] &#8211;         <code>MapAssert#containsEntry</code> doesn&#039;t actually assert the entry exists. <em>Many thanks to Mark Derricut.</em>
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-367'>FEST-367</a>] &#8211;         <code>ListAssert</code> should support duplicates in method &#039;<code>containsOnly()</code>&#039;.
</li>
</ul>
<h4>Improvement</h4>
<ul class="list">
<li>[<a href='http://jira.codehaus.org/browse/FEST-171'>FEST-171</a>] &#8211;         Add method <code>isEqualToIgnoringCase</code> to class <code>StringAssert</code>.
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-197'>FEST-197</a>] &#8211;         Add <code>isNull</code>, <code>isNotNull</code> to all Assert classes taking wrappers of primitive types as &#039;actual&#039; value.
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-259'>FEST-259</a>] &#8211;         Adding error log functionality: extending the current <code>as</code>(&#8230;) method..
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-260'>FEST-260</a>] &#8211;         Using Generic parameter in the super Assert classes such that many code can be moved up and remove in de sub classes. <em>Many thanks to Ed Bras.</em>
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-261'>FEST-261</a>] &#8211;         Make <code>BasicDescription</code> non final. <em>Many thanks to Ed Bras.</em>
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-310'>FEST-310</a>] &#8211;         Add <code>isNotZero()</code> assertion to <code>BigDecimalAssert</code>.
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-326'>FEST-326</a>] &#8211;         Improve error messages related to unexpected <code>null</code> values.
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-334'>FEST-334</a>] &#8211;         <code>Iterable</code>s assertion support. <em>Many thanks to James Ravn.</em>
</li>
</ul>
<h4>New Feature</h4>
<ul class="list">
<li>[<a href='http://jira.codehaus.org/browse/FEST-252'>FEST-252</a>] &#8211;         <code>ignoringCase()</code> feature for <code>String</code> assert
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-324'>FEST-324</a>] &#8211;         Allow assertion on extracted values of a given property of collection/array elements
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-328'>FEST-328</a>] &#8211;         <code>assertThat(someString).doesNotContain(&quot;foo&quot;);</code>
</li>
</ul>
<p>For more details about new, updated or removed classes, please read the <a href="http://fest.easytesting.org/assert/changes-report.html" target="_blank">change report</a>.</p>
<p>You can download the latest release <a href="http://code.google.com/p/fest/downloads/list" target="_blank">here</a> (file <a href="http://fest.googlecode.com/files/fest-assert-1.3.zip">fest-assert-1.3.zip</a>.) FEST-Assert requires <a href="http://java.sun.com/javase/downloads/index_jdk5.jsp" target="_blank">Java SE 5.0</a> or later.</p>
<p>Here are some useful links:</p>
<ul>
<li><a href="http://fest.easytesting.org/assert/" target="_blank">Home Page</a></li>
<li><a href="http://docs.codehaus.org/display/FEST/FEST-Assert" target="_blank">Documentation (wiki)</a></li>
<li><a href="http://fest.easytesting.org/assert/changes-report.html" target="_blank">Changelog</a></li>
<li><a href="http://fest.easytesting.org/assert/apidocs/index.html" target="_blank">Javadocs</a></li>
<li><a href="http://jira.codehaus.org/browse/FEST" target="_blank">Issues</a></li>
<li><a href="http://groups.google.com/group/easytesting" target="_blank">Users&#8217; Group</a></li>
</ul>
<p>Feedback is always appreciated :)</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1498</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Effective Code Coverage (and Metrics in General)</title>
		<link>http://alexruiz.developerblogs.com/?p=1421</link>
		<comments>http://alexruiz.developerblogs.com/?p=1421#comments</comments>
		<pubDate>Tue, 03 Aug 2010 14:37:32 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Code Coverage]]></category>
		<category><![CDATA[Code Metrics]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1421</guid>
		<description><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1421';
var dzone_title = 'Effective Code Coverage (and Metrics in General)';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
This is the best definition of code metrics I have found so far1: Code metrics is a set of software measures that provide developers better insight into the code they are developing. By taking advantage of code metrics, developers can understand which types and/or methods should be reworked or more thoroughly tested. Development teams can [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1421';
var dzone_title = 'Effective Code Coverage (and Metrics in General)';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p><img src="http://alexruiz.developerblogs.com/files/2010/08/measure.jpg" alt="" width="240" height="239" class="aligncenter size-full wp-image-1472" /></p>
<p>This is the best definition of <em>code metrics</em> I have found so far<SUP>1</SUP>:</p>
<blockquote><p>
Code metrics is a set of software measures that provide developers better insight into the code they are developing. By taking advantage of code metrics, developers can understand which types and/or methods should be reworked or more thoroughly tested. Development teams can identify potential risks, understand the current state of a project, and track progress during software development.
</p></blockquote>
<p>The key here is, in my opinion, that the purpose of code metrics is to help developers understand where their code needs to be improved. Unfortunately, code metrics, like any tool, can be easily misused, doing more harm than good. Let&#8217;s take my favorite code metric, code coverage, as an example.</p>
<p>As I mentioned many times in this blog, I use code coverage tools to help me discover which parts of my code need more testing. I don&#8217;t care if my code coverage is 50, 80 or 90%. What I care about is that the most complex areas of my code are properly tested. As useful as code coverage is, it can also cause problems if misused or misunderstood. Here are some examples:</p>
<ul>
<li>
<p>
<strong>Management mandates to have X% of code coverage.</strong><br />
This is actually not so uncommon, based on stories from friends and my personal experience years ago in consulting. Upper management, without a clue about the health of the codebase, mandates that developers should reach X% of code coverage. Period. (It gets even better when there is a deadline for reaching such number!) </p>
<p>In many cases, when the codebase was not designed with testability in mind, I&#8217;ve seen developers writing a lot of test cases, <em>without any assertions</em>! All the tests pass, and the code coverage goal is met. The result? </p>
<ol>
<li>developers wasted time and effort without adding any improvement to the codebase</li>
<li>management got a false impression that the code base is in a somewhat healthy state</li>
</ol>
</li>
<li>
<p>
<strong>Developers follow numbers blindly, without thinking about their meaning.</strong><br />
It is too easy (in many cases, comfortable) for developers (including QA) to fall into this trap (I&#8217;m guilty of this too!) Common examples include:</p>
<ol>
<li>
<em>Tests suites containing only unit tests.</em> We, developers, tend to avoid functional and integration tests because they usually run slower and need more work to write and set up. Unfortunately, unit tests only work based on developers&#8217; assumptions, but do not test that the actual application, as a whole, works as expected <em>in front of the user</em>.
</li>
<li>
<em>The wrong perception that &#8220;more is better.&#8221;</em> Probably this is normal human behavior: 50% code coverage must better than 10%, or even 0%. Actually, it all depends on the quality and types of tests. For example, having 50% of code coverage with tests that do not have any assertions is worse than having 0%, because it creates the illusion of a healthier code base. Another good example is my <a href="http://alexruiz.developerblogs.com/?p=1030" target="_blank">recent experience</a> of having 100% code coverage&#8230;and faulty software!
</li>
<li>
<em>A single metric to rule them all.</em> Having a high code coverage number does not imply that our test suite exercises all the possible testing scenarios: potential race conditions and all UI-interaction scenarios are good examples. Working towards achieving 100% code coverage can prevent us from seeing important areas that need to be tested. In addition, we should not focus on a single tool to determine the state of our code. Code coverage is just one of the many code metrics that we can (or must?) use to determine the health of our codebases.
</li>
</ol>
</li>
<li>
<p>
<strong>Useless metrics reports.</strong><br />
Even though we have excellent code coverage tools like <a href="http://cobertura.sourceforge.net/" target="_blank">Cobertura</a>, <a href="http://emma.sourceforge.net/" target="_blank">EMMA</a> (both open source) and <a href="http://www.atlassian.com/software/clover/" target="_blank">Clover</a> (commercial,) I have seen custom code coverage tools built in-house. There are many reasons for this, like <a href="http://en.wikipedia.org/wiki/Not_Invented_Here" target="_blank">NIH</a> or lack of support for a specific language (e.g. Scala) in existing tools. What surprises me the most is the amount of time and effort put into building a custom code coverage tool that, at the end, does not allow developers to drill-down to the most basic unit: a single line of code. </p>
<p>A code coverage tool that reports that method &#8220;X&#8221; in class &#8220;Y&#8221; has 10% code coverage, without providing a way to go one or more levels deeper, makes it impossible to figure out where we should add or improve our tests. In my opinion, this is not only useless, but harmful as well: pointing out a problem without offering a way to find a solution is not constructive, and it can start a <em>blaming</em> game within an organization.
</p>
</li>
</ul>
<p>In conclusion, code coverage (and metrics in general) not only need to provide accurate measurements in order to be useful. They also need to empower developers with a way to analyze those results to the minimum detail, to help them decide where and how a codebase could be improved. At the same time, developers need to understand that targeting a fixed number blindly is not only a waste of time and effort, it can also create unrealistic perceptions about how healthy a codebase is.</p>
<p>What do you think? Feedback is always welcome :)</p>
<p><SUP>1</SUP> MSDN. <a href="http://msdn.microsoft.com/en-us/library/bb385914.aspx" target="blank">Code Metrics Values</a>.</p>
<div style="font-size: xx-small">
(Image taken from <a href="http://www.flickr.com/photos/steeljam/" target="_blank">steeljam&#8217;s flickr stream</a> under the creative commons license)
</div>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1421</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OutOfMemoryError in Eclipse with JDK 1.6.0_21, on Windows</title>
		<link>http://alexruiz.developerblogs.com/?p=1377</link>
		<comments>http://alexruiz.developerblogs.com/?p=1377#comments</comments>
		<pubDate>Mon, 19 Jul 2010 19:51:15 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1377</guid>
		<description><![CDATA[<!--dzoneZ=none--><a href="http://www.dzone.com/links/outofmemoryerror_in_eclipse_with_jdk_16021_on_win.html" target="_blank"><img src="http://alexruiz.developerblogs.com/files/2010/07/oome_dzone.png" alt="" width="50" height="64" class="alignright size-full dzone" /></a>
This past weekend I spent a good amount of time trying to solve an OutOfMemoryError that made Eclipse crash every 5 minutes. I'm running Eclipse Helios on JDK 1.6.0_21, with the following plug-ins: Subclipse, m2eclipse and Atlassian Eclipse Connector. It was hard to figure out which one was the troublemaker, since I installed everything in one shot on my new Windows laptop [...]]]></description>
			<content:encoded><![CDATA[<p><!--dzoneZ=none--><a href="http://www.dzone.com/links/outofmemoryerror_in_eclipse_with_jdk_16021_on_win.html" target="_blank"><img src="http://alexruiz.developerblogs.com/files/2010/07/oome_dzone.png" alt="" width="50" height="64" class="alignright size-full dzone" /></a><br />
This past weekend I spent a good amount of time trying to solve an <code>OutOfMemoryError</code> that made Eclipse crash every 5 minutes. I&#8217;m running Eclipse Helios on JDK 1.6.0_21, with the following plug-ins: <a href="http://subclipse.tigris.org/" target="_blank">Subclipse</a>, <a href="http://m2eclipse.sonatype.org/" target="_blank">m2eclipse</a> and <a href="http://www.atlassian.com/software/ideconnector/eclipse.jsp" target="_blank">Atlassian Eclipse Connector</a>. It was hard to figure out which one was the troublemaker, since I installed everything in one shot on my new Windows laptop.</p>
<p>After a couple of hours of frustration, I finally found the solution in this <a href="http://lt-rider.blogspot.com/2010/07/oracle-jvm-6u21-and-eclipse.html" target="_blank">post</a> from <a href="http://lt-rider.blogspot.com/" target="_blank">Konstantin&#8217;s blog</a>: Eclipse was not setting the flag <code>-XX:MaxPermSize</code>, due to the change of vendor, from Sun to Oracle, in JDK 1.6.0_21. This is a Windows-only issue. As Konstantin points out, the fix is simple: just add the missing flag (with the appropriate amount of memory) to the eclipse.ini file, just after the <code>-vmvargs</code> settings.</p>
<p>Here is my eclipse.ini:</p>
<pre>
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
-product
org.eclipse.epp.package.java.product
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
D:\Java\jdk1.6.0_21\bin\javaw.exe
-vmargs
-Xms512m
-Xmx1024m
-XX:MaxPermSize=256m
</pre>
<p>Setting <code>-XX:MaxPermSize</code> to 512m (as Konstantin suggests) didn&#8217;t work for me. On my machine, Eclipse can only run if I set that flag to 256m.</p>
<p>For more details, including the bug number related to this issue, please visit <a href="http://lt-rider.blogspot.com/2010/07/oracle-jvm-6u21-and-eclipse.html" target="_blank">Konstantin&#8217;s blog</a>.</p>
<p><strong>Update:</strong> The nice folks from DZone have posted this entry at <a href="http://java.dzone.com/articles/outofmemoryerror-eclipse-jdk">Javalobby</a>. To my surprise, this post (actually the re-post) turned out to be relatively popular, with <a href="http://www.dzone.com/links/outofmemoryerror_in_eclipse_with_jdk_16021_on_win.html" target="_blank">32+ (up) votes</a> and more than 5,000 reads. For a couple of days, it was at #3 and #2 on DZone&#8217;s &#8220;Top Links.&#8221; :)</p>
]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1377</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FEST&#8217;s JavaFX Compiler Maven Plug-in 1.0b2</title>
		<link>http://alexruiz.developerblogs.com/?p=1371</link>
		<comments>http://alexruiz.developerblogs.com/?p=1371#comments</comments>
		<pubDate>Wed, 14 Jul 2010 15:50:12 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[FEST]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1371</guid>
		<description><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1371';
var dzone_title = 'FEST&#8217;s JavaFX Compiler Maven Plug-in 1.0b2';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
I’m proud to announce the release of FEST&#8217;s JavaFX Compiler Maven plug-in 1.0b2! The plug-in compiles JavaFX source and test files. This release adds new, useful configuration options. The release was driven by Johannes Schneider&#8216;s work, based on his needs for the JFXtras project. I&#8217;d also like to thank Thomas Butter for helping us improve [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1371';
var dzone_title = 'FEST&#8217;s JavaFX Compiler Maven Plug-in 1.0b2';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>I’m proud to announce the release of <a href="http://fest.easytesting.org/javafx/maven/" target="_blank">FEST&#8217;s JavaFX Compiler Maven plug-in</a> 1.0b2! </p>
<p>The plug-in compiles <a href="FEST-JavaFX-Maven" target="_blank">JavaFX</a> source and test files.</p>
<p>This release adds new, useful configuration options. The release was driven by <a href="http://blog.cedarsoft.com/" target="_blank">Johannes Schneider</a>&#8216;s work, based on his needs for the <a href="http://jfxtras.org/" target="_blank">JFXtras</a> project. I&#8217;d also like to thank Thomas Butter for helping us improve the project.</p>
<h3>Features</h3>
<ul>
<li>Compiles JavaFX source and test files</li>
<li>Does not require JavaFX distribution to be in a Maven repository (according to its license, only Oracle can distribute JavaFX)</li>
<li>Does not require to list all JavaFX libraries as dependencies in your pom.xml</li>
</ul>
<p>You can find an example on how to use it <a href="http://fest.easytesting.org/javafx/maven/index.html" target="_blank">here</a>.</p>
<h3>Release Notes</h3>
<ul>
<li>Added &#8216;testSourceDirectory&#8217; option.</li>
<li>Magic classpath extension (with JavaFX jars) made optional.</li>
<li>Improved error messages for paths.</li>
<li>Compiler argument added: -Xlint:unchecked.</li>
<li>Skipping compilation for non-java projects (e.g. pom.)</li>
<li>Added possibility to &#8220;override&#8221; Java classes with JavaFX classes.</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-369'>FEST-369</a>] &#8211;  Allow setting of &#8216;memoryMaxSize&#8217;. Many thanks to Thomas Butter.
</li>
</ul>
<p>The FEST JavaFX Maven plugin can be obtained from our <a href="http://docs.codehaus.org/display/FEST/Maven+Repository" target="_blank">Maven Repository</a>.</p>
<h3>Links</h3>
<ul>
<li><a href="http://fest.easytesting.org/javafx/maven" target="_blank">Documentation</a></li>
<li><a href="http://fest.easytesting.org/javafx/maven/changes-report.html" target="_blank">Change report</a></li>
<li><a href="http://jira.codehaus.org/browse/FEST" target="_blank">Issues</a></li>
<li><a href="http://groups.google.com/group/easytesting" target="_blank">Users&#8217; Group</a></li>
</ul>
<p>Feedback is always appreciated :)</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1371</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Great candidate == great (technical skills + personality + attitude)</title>
		<link>http://alexruiz.developerblogs.com/?p=1206</link>
		<comments>http://alexruiz.developerblogs.com/?p=1206#comments</comments>
		<pubDate>Tue, 06 Jul 2010 13:42:42 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[Interviewing]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Inteviewing]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1206</guid>
		<description><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1206';
var dzone_title = 'Great candidate == great (technical skills + personality + attitude)';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
In my previous job, I spent a considerable amount of time interviewing candidates. After years of interviewing candidates, I finally realized that a candidate&#8217;s personality and attitude are as important as her technical skills. Even though I&#8217;m going to describe what may seem obvious to most of you, I&#8217;d like to share my short and [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1206';
var dzone_title = 'Great candidate == great (technical skills + personality + attitude)';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>In my previous job, I spent a considerable amount of time interviewing candidates. After years of interviewing candidates, I finally realized that a candidate&#8217;s personality and attitude are as important as her technical skills. Even though I&#8217;m going to describe what may seem obvious to most of you, I&#8217;d like to share my short and limited experience interviewing candidates.</p>
<p>As we all know, making a decision about hiring or rejecting a candidate is very, very difficult. There is no clear &#8220;black and white,&#8221; and intuition is usually involved. Unfortunately, I was not aware of this when I started interviewing candidates. As a result of inexperience, I naively focused, almost exclusively, on the candidate&#8217;s technical skills.</p>
<p>In the first couple of years I rejected several candidates, mostly because of their poor performance when solving technical problems. At some point in that time frame, I was lucky enough to interview two <a href="http://stoto79.blogspot.com/" target="_blank">great</a> <a href="http://www.jroller.com/aalmiray/" target="_blank">candidates</a>, who later on became my co-workers and good friends. Because my interviewing skills at that time were not mature enough, I didn&#8217;t realize that I gave them &#8220;thumbs up&#8221; not only because of their great technical skills, but because they are nice guys with a very positive attitude.</p>
<p>It finally hit me when I interviewed a very interesting candidate. He solved the problems I presented in record time, with the cleanest solutions I&#8217;ve ever seen. For a moment I got really excited about the possibility of having this brilliant guy in team! </p>
<p>It was literally &#8220;for a moment,&#8221; a tiny and brief moment. As in any interview, I asked the candidate about any questions he might have. He asked questions about the position he was interviewing for, the team and the Bay area in general. I tried to answer his questions the best I could but he never let me finish any sentence. At the end, it seemed that he got bored: he simply cut me off by saying that &#8220;we could talk about it after he gets the job.&#8221;</p>
<p>The candidate was not only rude. To make things worse, he made sure we understand he has better problems to solve and he is looking for a job flexible enough to give him enough time to concentrate on his own stuff. What I understood instead is that even though his technical skills were excellent, I definitely didn&#8217;t want to work with him. For the record, it was an unanimous decision.</p>
<p>After that experience, it was a lot more clear to me what I needed to look for in a candidate: a developer with strong technical skills that I can get along with, an open-minded person and a team player.</p>
<p>Finally, a few weeks before I switched jobs, I got a chance to put my new perspective about interviewing into practice. The interview did not start that well: the candidate needed more hints than expected to solve the first problem, which I considered to be only a warm-up exercise. </p>
<p>I was tempted to think that his technical skills were not strong enough. Instead of jumping into conclusions, I decided to take a break and talk about his background. He was a very nice and polite gentleman. After talking for a few minutes, I realized he was the type of person that cares about doing his best everyday. From the conversation I could tell he was a developer passionate about technology, looking for opportunities to learn new stuff. The candidate was surprisingly humble too: he created and lead a popular and successful open source project! He didn&#8217;t say a word about it until I asked him about his hobbies! This guy, as a person and as a developer, was great!</p>
<p>I was glad we stopped and talked for a little bit. He turned out to be nervous! After our short chat, he was more relaxed and he just solved the rest of the problems flawlessly! I&#8217;m sure if I didn&#8217;t change my point of view about interviewing, I would have dismissed this terrific candidate after the first exercise!</p>
<p>Few days after the interview, I was very happy to hear he was going to get an offer! :)</p>
<p>In conclusion, my lack of experience led me to evaluate candidates based on their technical skills only. As I got more experienced interviewing, I realized that personality and attitude are as important as technical technical skills. These days, in order to make a decision, I ask myself if I&#8217;m going to feel comfortable working with a candidate in the same team. More specifically:</p>
<ul>
<li>Do we have compatible personalities and similar technical points of view?</li>
<li>Did the candidate show me I can trust his judgement?</li>
<li>Was it pleasant to discuss technical problems with the candidate, even if we didn&#8217;t agree?</li>
<li>How did the candidate and I behave when we disagree?</li>
</ul>
<p>What do you think? I&#8217;d love to hear your experience interviewing! :)</p>
<p><strong>Update:</strong> The nice folks from DZone have posted this entry at <a href="http://java.dzone.com/articles/great-candidate-great" target="_blank">Javalobby</a>. </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1206</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Joining the JavaFX Controls team!</title>
		<link>http://alexruiz.developerblogs.com/?p=1291</link>
		<comments>http://alexruiz.developerblogs.com/?p=1291#comments</comments>
		<pubDate>Wed, 30 Jun 2010 14:49:20 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Career]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1291</guid>
		<description><![CDATA[I&#8217;m proud and happy to announce that I joined the JavaFX Controls team! This is an awesome opportunity. Even though JavaFX is a pretty nice technology and there is room for lots of cool things to do, what attracted me the most was the team itself. This is my first week and I&#8217;m enjoying so [...]]]></description>
			<content:encoded><![CDATA[<p><!--dzoneZ=none--><br />
<img src="http://alexruiz.developerblogs.com/files/2010/06/jfxceleb2.png" alt="" title="" width="200" height="131" class="aligncenter size-full wp-image-1301" /></p>
<p>I&#8217;m proud and happy to announce that I joined the JavaFX Controls team! </p>
<p>This is an awesome opportunity. Even though JavaFX is a pretty nice technology and there is room for lots of cool things to do, what attracted me the most was the team itself.  This is my first week and I&#8217;m enjoying so much working with Brian, Jasper, Jonathan, Richard and Stuart. Soon the rest of the team will come back from vacation, and I&#8217;ll be having even more fun for sure!</p>
<p>I&#8217;m very grateful and fortunate to be part of this great team!</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1291</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>For Maven Users Only: FEST-Swing 1.2.1 released</title>
		<link>http://alexruiz.developerblogs.com/?p=1275</link>
		<comments>http://alexruiz.developerblogs.com/?p=1275#comments</comments>
		<pubDate>Tue, 22 Jun 2010 05:27:50 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Swing]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[FEST]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[UI Testing]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1275</guid>
		<description><![CDATA[I just uploaded FEST-Swing 1.2.1 to CodeHaus&#8217; Maven repository. This release is targeted to Maven users only. The reason? I made a big mistake when I released FEST-Swing 1.2: I uploaded the wrong version of the dependency FEST-Util, making the Maven version of FEST-Swing completely unusable. Artifacts uploaded to CodeHaus&#8217; Maven repository are automatically uploaded [...]]]></description>
			<content:encoded><![CDATA[<p><!--dzoneZ=none--><br />
<img src="http://alexruiz.developerblogs.com/files/2010/06/Homer_Doh.png" alt="" title="" width="175" height="237" class="aligncenter size-full wp-image-1276" /></p>
<p>I just uploaded <a href="http://repository.codehaus.org/org/easytesting/fest-swing/1.2.1/" target="_blank">FEST-Swing 1.2.1</a> to <a href="http://repository.codehaus.org/org/easytesting/" target="_blank">CodeHaus&#8217; Maven repository</a>. This release is targeted to Maven users only. The reason? I made a big mistake when I released <a href="http://alexruiz.developerblogs.com/?p=1225">FEST-Swing 1.2</a>: I uploaded the wrong version of the dependency FEST-Util, making the Maven version of FEST-Swing completely unusable.</p>
<p>Artifacts uploaded to CodeHaus&#8217; Maven repository are automatically uploaded to Maven&#8217;s central repository. Once there, artifacts cannot be changed.</p>
<p>Besides fixing the FEST-Util dependency, there are <strong>no</strong> changes in source code.</p>
<p>The version uploaded to the <a href="http://code.google.com/p/fest/downloads/list" target="_blank">Downloads</a> page has the correct dependencies. It was not necessary to make any changes.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1275</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Running Ubuntu in VirtualBox at 2560 x 1600!</title>
		<link>http://alexruiz.developerblogs.com/?p=1249</link>
		<comments>http://alexruiz.developerblogs.com/?p=1249#comments</comments>
		<pubDate>Thu, 10 Jun 2010 14:30:07 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1249</guid>
		<description><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1249';
var dzone_title = 'Running Ubuntu in VirtualBox at 2560 x 1600!';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
Once I got my new PC last weekend, the first thing I did was to install Ubuntu 10.4 in VirtualBox (now updated to 3.2.4) in a Windows 7 host. Installation of both VirtualBox and Ubuntu was quick and painless. They just work. Since I have a 30&#8242; monitor and a powerful video card, I wanted [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1249';
var dzone_title = 'Running Ubuntu in VirtualBox at 2560 x 1600!';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>Once I got my new PC last weekend, the first thing I did was to install <a href="http://www.ubuntu.com/" target="_blank">Ubuntu</a> 10.4 in <a href="http://www.virtualbox.org/" target="_blank">VirtualBox</a> (now updated to 3.2.4) in a Windows 7 host. Installation of both VirtualBox and Ubuntu was quick and painless. They just work. Since I have a 30&#8242; monitor and a powerful video card, I wanted to run Ubuntu to the maximum resolution possible (2560 x 1600.) Unfortunately, the default settings only allowed me to set the display resolution to an awful 1024 x 768. </p>
<p>After a couple of days, I found some instructions on how to increase the screen resolution of a Ubuntu virtual machine. I basically had to:</p>
<ol>
<li>Install VirtualBox &#8220;Guest Additions&#8221;</li>
<li>Add the desired screen resolution to the xorg.conf file</li>
</ol>
<p>Since I&#8217;m a Linux/VirtualBox newbie, I followed the instructions carefully. In theory, I just needed to right-click the icon and select &#8220;Open with Autorun Prompt&#8221; to install the Guest Additions. Once I did that, I tried to edit the xorg.conf file, but my copy of Ubuntu didn&#8217;t have one! I found instructions on how to create a new one, but it never worked. I was completely sure I wanted to use Ubuntu as my primary desktop and I was not going to give up!</p>
<p>Finally I found out that I was not installing the Guest Additions correctly and that I didn&#8217;t have to edit any xorg.conf file. This precious link, <a href="http://mylinuxramblings.wordpress.com/2010/05/23/running-kubuntu-10-04-in-virtualbox-as-a-guest-os/" target="_blank">http://mylinuxramblings.wordpress.com/2010/05/23/running-kubuntu-10-04-in-virtualbox-as-a-guest-os/</a>, pointed me in the right direction.</p>
<p>Now the screen resolution of my Ubuntu virtual machine changes dynamically when I resize the VirtualBox window. I can turn on all visual effects as well. Here is a screenshot of my Ubuntu virtual machine, at 2560 x 1600 (click to enlarge)</p>
<p><a href="http://alexruiz.developerblogs.com/files/2010/06/ubuntu-desktop.png"><img src="http://alexruiz.developerblogs.com/files/2010/06/ubuntu-desktop-300x187.png" alt="" width="300" height="187" class="aligncenter size-medium wp-image-1257" /></a></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1249</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>FEST-Swing 1.2: Swing GUI Testing Made Easy</title>
		<link>http://alexruiz.developerblogs.com/?p=1225</link>
		<comments>http://alexruiz.developerblogs.com/?p=1225#comments</comments>
		<pubDate>Wed, 02 Jun 2010 15:49:03 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Swing]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[FEST]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[UI Testing]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1225</guid>
		<description><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1225';
var dzone_title = 'FEST-Swing 1.2: Swing GUI Testing Made Easy';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
I&#8217;m proud to announce the release of FEST-Swing 1.2! FEST-Swing is a Java library that provides a fluent interface for functional Swing GUI testing. This library provides an easy-to-use API that makes creation and maintenance of GUI tests easy. Release notes Bug [FEST-341] &#8211; Error in ScreenshotOnFailureListener.takeScreenshotAndReturnFileName. Thanks to Grego. [FEST-342] &#8211; Javadocs in methods [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1225';
var dzone_title = 'FEST-Swing 1.2: Swing GUI Testing Made Easy';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>I&#8217;m proud to announce the release of <a href="http://fest.googlecode.com/files/fest-swing-1.2.zip">FEST-Swing 1.2</a>!</p>
<p><a href="http://fest.easytesting.org/swing/" target="_blank">FEST-Swing</a> is a Java library that provides a <a href="http://www.infoq.com/articles/internal-dsls-java" target="_blank">fluent interface</a> for functional Swing GUI testing. This library provides an easy-to-use API that makes creation and maintenance of GUI tests easy.</p>
<h3>Release notes</h3>
<h4>        Bug<br />
</h4>
<ul>
<li>[<a href='http://jira.codehaus.org/browse/FEST-341'>FEST-341</a>] &#8211;         Error in <code>ScreenshotOnFailureListener.takeScreenshotAndReturnFileName</code>. <em>Thanks to Grego.</em>
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-342'>FEST-342</a>] &#8211;         Javadocs in methods annotated with <code>@RunsInCurrentThread</code> are wrong.
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-345'>FEST-345</a>] &#8211;         <code>KeyStrokeMappingProviderNames</code> uses the wrong name for <code>KeyStrokeMappingProvider</code>. <em>Thanks to Olivier DOREMIEUX</em>.
</li>
</ul>
<h4>        Improvement<br />
</h4>
<ul>
<li>[<a href='http://jira.codehaus.org/browse/FEST-347'>FEST-347</a>] &#8211;         Incorporate keyboard mapping for French MacOS. <em>Thanks to Olivier DOREMIEUX</em>.
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-348'>FEST-348</a>] &#8211;         Fix implementation of &#8216;selectAll&#8217; in <code>JTextComponentDriver</code>. <em>Thanks to Olivier DOREMIEUX</em>.
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-355'>FEST-355</a>] &#8211;         <code>ComponentFixture</code> <code>validateNotNull</code> method visibility.
</li>
</ul>
<h4>        New Feature<br />
</h4>
<ul>
<li>[<a href='http://jira.codehaus.org/browse/FEST-354'>FEST-354</a>] &#8211;         Move class <code>SystemProperties</code> from fest-swing to fest-util.
</li>
</ul>
<h4>        Task<br />
</h4>
<ul>
<li>[<a href='http://jira.codehaus.org/browse/FEST-343'>FEST-343</a>] &#8211;         Update FEST-Reflect dependency to version 1.2.
</li>
<li>[<a href='http://jira.codehaus.org/browse/FEST-344'>FEST-344</a>] &#8211;         Update FEST-Util dependency to version 1.1.2.
</li>
</ul>
<p>For a complete list of changes made in version 1.2, please read our previous releases: <a href="http://alexruiz.developerblogs.com/?p=1149">1.2rc</a>, <a href="http://alexruiz.developerblogs.com/?p=824">1.2a4</a>, <a href="http://alexruiz.developerblogs.com/?p=464">1.2a3</a>, <a href="http://alexruiz.developerblogs.com/?p=162">1.2a2</a> and <a href="http://alexruiz.developerblogs.com/?p=137">1.2a1</a>.</p>
<p>FEST-Swing can be downloaded <a href="http://code.google.com/p/fest/downloads/list" target="_blank">here</a> (file  <a href="http://fest.googlecode.com/files/fest-swing-1.2.zip">fest-swing-1.2.zip</a>.) FEST requires <a href="http://java.sun.com/javase/downloads/index_jdk5.jsp" target="_blank">Java SE 5.0</a> or later.</p>
<h3>Links</h3>
<ul>
<li><a href="http://fest.easytesting.org/swing/" target="_blank">Home page</a></li>
<li><a href="http://docs.codehaus.org/display/FEST/Home" target="_blank">Wiki</a></li>
<li><a href="http://fest.easytesting.org/swing/changes-report.html" target="_blank">Change report</a></li>
<li><a href="http://fest.easytesting.org/swing/apidocs/index.html" target="_blank">Javadocs</a></li>
<li><a href="http://docs.codehaus.org/display/FEST/Getting+Started" target="_blank">Getting Started</a></li>
<li><a href="http://jira.codehaus.org/browse/FEST" target="_blank">Issues</a></li>
<li><a href="http://groups.google.com/group/easytesting" target="_blank">Users&#8217; Group</a></li>
</ul>
<p>Feedback is always appreciated :)</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1225</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FEST&#8217;s JavaFX Compiler Maven Plug-in 1.0b1</title>
		<link>http://alexruiz.developerblogs.com/?p=1197</link>
		<comments>http://alexruiz.developerblogs.com/?p=1197#comments</comments>
		<pubDate>Wed, 19 May 2010 13:48:09 +0000</pubDate>
		<dc:creator>Alex Ruiz</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[FEST]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://alexruiz.developerblogs.com/?p=1197</guid>
		<description><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1197';
var dzone_title = 'FEST&#8217;s JavaFX Compiler Maven Plug-in 1.0b1';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
I’m proud to announce the release of FEST&#8217;s JavaFX Compiler Maven plug-in 1.0b1! This plug-in compiles JavaFX source and test files. Features Compiles JavaFX source and test files Does not require JavaFX distribution to be in a Maven repository (according to its license, only Oracle can distribute JavaFX) Does not require to list all JavaFX [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;"><script type="text/javascript">
<!--
var dzone_url = 'http://alexruiz.developerblogs.com/?p=1197';
var dzone_title = 'FEST&#8217;s JavaFX Compiler Maven Plug-in 1.0b1';
var dzone_blurb = '';
var dzone_style = '1';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>I’m proud to announce the release of <a href="http://fest.easytesting.org/javafx/maven/" target="_blank">FEST&#8217;s JavaFX Compiler Maven plug-in</a> 1.0b1!</p>
<p>This plug-in compiles <a href="FEST-JavaFX-Maven" target="_blank">JavaFX</a> source and test files.</p>
<h3>Features</h3>
<ul>
<li>Compiles JavaFX source and test files</li>
<li>Does not require JavaFX distribution to be in a Maven repository (according to its license, only Oracle can distribute JavaFX)</li>
<li>Does not require to list all JavaFX libraries as dependencies in your pom.xml</li>
</ul>
<h3>Example</h3>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;build<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugins<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.easytesting<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/groupId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>javafxc-maven-plugin<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/artifactId<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.0b1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/version<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;executions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;execution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>compile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;phase<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>compile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/phase<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;goals<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;goal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>compile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/goal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/goals<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/execution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;execution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>test-compile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;phase<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>test-compile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/phase<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;goals<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;goal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>testCompile<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/goal<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
          <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/goals<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/execution<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/executions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugin<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/plugins<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/build<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>The listing above will:</p>
<ol>
<li>call the &#8220;<a href="http://fest.easytesting.org/javafx/maven/compile-mojo.html">compile</a>&#8221; goal in the standard Maven &#8220;compile&#8221; phase.</li>
<li>call the &#8220;<a href="http://fest.easytesting.org/javafx/maven/testCompile-mojo.html">testCompile</a>&#8221; goal in the standard Maven &#8220;test-compile&#8221; phase.</li>
</ol>
<p>As a result, if we execute &#8220;<code>mvn test</code>&#8221; both JavaFX sources and test sources will compiled <em>automatically</em>.  </p>
<h3>Release Notes</h3>
<h4> New Feature</h4>
<ul>
<li>[<a href='http://jira.codehaus.org/browse/FEST-314'>FEST-314</a>] &#8211;  Create test-compile goal for JavaFX Maven plugin.
</li>
</ul>
<h4>Improvements</h4>
<ul>
<li>Change JDK version to 1.6.</li>
<li>Renamed artifactId to javafxc-maven-plugin.</li>
</ul>
<p>The FEST JavaFX Maven plugin can be obtained from our <a href="http://docs.codehaus.org/display/FEST/Maven+Repository" target="_blank">Maven Repository</a>.</p>
<h3>Links</h3>
<ul>
<li><a href="http://fest.easytesting.org/javafx/maven" target="_blank">Documentation</a></li>
<li><a href="http://fest.easytesting.org/javafx/maven/changes-report.html" target="_blank">Change report</a></li>
<li><a href="http://jira.codehaus.org/browse/FEST" target="_blank">Issues</a></li>
<li><a href="http://groups.google.com/group/easytesting" target="_blank">Users&#8217; Group</a></li>
</ul>
<p>Feedback is always appreciated :)</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">Share/Save</a> </p>]]></content:encoded>
			<wfw:commentRss>http://alexruiz.developerblogs.com/?feed=rss2&amp;p=1197</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
