<?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>Brent Baxter &#187; Technology</title>
	<atom:link href="http://www.brentbaxter.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brentbaxter.com</link>
	<description>techie, dad, cyclist</description>
	<lastBuildDate>Fri, 09 Apr 2010 19:07:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Thoughts From the First Philly Groovy and Grails Meet-up</title>
		<link>http://www.brentbaxter.com/2010/04/09/thoughts-from-the-first-philly-groovy-and-grails-meet-up/</link>
		<comments>http://www.brentbaxter.com/2010/04/09/thoughts-from-the-first-philly-groovy-and-grails-meet-up/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 19:03:14 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=304</guid>
		<description><![CDATA[I can&#8217;t begin to thank Scott Davis and Venkat Subramaniam enough for giving us a great start to the Philadelphia Groovy and Grails meet-up. It was great to see two seasoned speakers &#8220;on stage&#8221; at once, but even better two good friends that made the evening both interactive and informative. It was simply awesome.
It was [...]]]></description>
			<content:encoded><![CDATA[<p>I can&#8217;t begin to thank Scott Davis and Venkat Subramaniam enough for giving us a great start to the <a href="http://www.phillygroovy.org">Philadelphia Groovy and Grails</a> meet-up. It was great to see two seasoned speakers &#8220;on stage&#8221; at once, but even better two good friends that made the evening both interactive and informative. It was simply awesome.</p>
<p>It was great to have an active crowd as well, and I hope that everyone that attended was able to take away something from the evening. Scott and Venkat started with an agenda for the evening, but we quickly pulled them off track and wandered. I&#8217;m working from memory, but we roughly covered the following:</p>
<ul>
<li>Groovy is Java, except when it isn&#8217;t! Search for &#8220;Groovy the blue pill&#8221; or &#8220;Groovy the red pill&#8221; to see what that means.</li>
<li>We saw several perfectly valid Java classes become elegantly simple Groovy classes</li>
<li>Examples of Groovy metaprogramming and AST transformations (@Immutable, @Delegate and @Newify)</li>
<li>What tools and IDEs might be considered for Groovy and Grails programming</li>
<li>We learned that Venkat only uses a web browser that works with EMACS-like commands (it is <a href="http://conkeror.org/">Conkeror</a> in case you are wondering)</li>
<li>We were reminded of the evil lurking in Java with precision issues in double and float, and how Groovy avoided this issue</li>
</ul>
<p>There were many more little bits of information, but suffice to say we covered a lot of ground.  Thanks again to Scott and Venkat, and thanks to all that attended our first meet-up.</p>
<p>Please watch the meet-up group <a href="http://www.phillygroovy.org">site</a> for more information about our next meet-up.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;headline=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F&amp;title=Thoughts+From+the+First+Philly+Groovy+and+Grails+Meet-up&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F09%2Fthoughts-from-the-first-philly-groovy-and-grails-meet-up%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2010/04/09/thoughts-from-the-first-philly-groovy-and-grails-meet-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Philadelphia Groovy and Grails User Group Kickoff</title>
		<link>http://www.brentbaxter.com/2010/04/05/philadelphia-groovy-and-grails-user-group-kickoff/</link>
		<comments>http://www.brentbaxter.com/2010/04/05/philadelphia-groovy-and-grails-user-group-kickoff/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 02:40:35 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=298</guid>
		<description><![CDATA[On April 8, 2010 &#8211; just three short days from now &#8211; we will be kicking off the Philadelphia Groovy and Grails User Group (GGUG).  This will be part of the evening events at the Philadelphia Emerging Technology conference.  The conference is sold out, however a conference entrance pass is not required to [...]]]></description>
			<content:encoded><![CDATA[<p>On April 8, 2010 &#8211; just three short days from now &#8211; we will be kicking off the Philadelphia Groovy and Grails User Group (GGUG).  This will be part of the evening events at the <a href="http://www.phillyemergingtech.com/">Philadelphia Emerging Technology</a> conference.  The conference is sold out, however a conference entrance pass is not required to attend the evening event.  I&#8217;d love to see a packed room, so feel free to stop by and say hello.</p>
<p>I also want to be sure that everyone goes to the Philly GGUG official site at <a href="http://www.phillygroovy.org">http://www.phillygroovy.org</a> and join the email list so that you can be a part of our future events.  I am hoping to have Philly GGUG meet-ups every two months, so look for another meet-up in June.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;headline=Philadelphia+Groovy+and+Grails+User+Group+Kickoff" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F&amp;title=Philadelphia+Groovy+and+Grails+User+Group+Kickoff&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F04%2F05%2Fphiladelphia-groovy-and-grails-user-group-kickoff%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2010/04/05/philadelphia-groovy-and-grails-user-group-kickoff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails Tip: Using failOnError When Saving Domain Instances</title>
		<link>http://www.brentbaxter.com/2010/03/10/grails-tip-using-failonerror-when-saving-domain-instances/</link>
		<comments>http://www.brentbaxter.com/2010/03/10/grails-tip-using-failonerror-when-saving-domain-instances/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 03:17:05 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[springsource]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=288</guid>
		<description><![CDATA[Calling the save method on a Grails domain class will return a null if there was an error in validation.  This is handy when doing something like the following.

if( !book.save() ) {
   book.errors.each {
        println it
   }
}

In Grails 1.2 a feature was added [...]]]></description>
			<content:encoded><![CDATA[<p>Calling the save method on a Grails domain class will return a null if there was an error in validation.  This is handy when doing something like the following.</p>
<pre class="brush: groovy;">
if( !book.save() ) {
   book.errors.each {
        println it
   }
}
</pre>
<p>In Grails 1.2 a feature was added to allow the option of forcing save to throw a grails.validation.ValidationException by using the failOnError  argument.</p>
<pre class="brush: groovy;">
try {
     book.save(failOnError:true)
} catch(ValidationException e) {
   // handle
}
</pre>
<p>If you prefer to make failing on validation errors the default, you can update Config.groovy in your Grails project to set the following property.</p>
<pre class="brush: groovy;">
grails.gorm.failOnError=true
</pre>
<p>Thanks to Jeff Brown for reminding me of this when replying to a recent <a href="http://n4.nabble.com/issue-bootstrapping-Domain-object-td1579784.html#a1579784">thread</a> on the Grails user email list.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;headline=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F&amp;title=Grails+Tip%3A+Using+failOnError+When+Saving+Domain+Instances&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F10%2Fgrails-tip-using-failonerror-when-saving-domain-instances%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2010/03/10/grails-tip-using-failonerror-when-saving-domain-instances/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails Tip: Using Schema Export</title>
		<link>http://www.brentbaxter.com/2010/03/09/grails-tip-using-schema-export/</link>
		<comments>http://www.brentbaxter.com/2010/03/09/grails-tip-using-schema-export/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 02:47:43 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=283</guid>
		<description><![CDATA[Ever wonder what the DDL would look like that Grails generates to create or update your database? Well, no need to wonder any longer. Grails is packed full with little things to make your life simpler, and one that you may not have heard of yet is the Grails &#8217;schema-export&#8217; command line option.  Under [...]]]></description>
			<content:encoded><![CDATA[<p>Ever wonder what the DDL would look like that Grails generates to create or update your database? Well, no need to wonder any longer. Grails is packed full with little things to make your life simpler, and one that you may not have heard of yet is the Grails &#8217;schema-export&#8217; command line option.  Under the covers this handy utility delegates to Hibernate&#8217;s SchemaExport.  The output can either go to a file or to standard out.</p>
<p>Examples:</p>
<ul>
<li>&#8216;grails schema-export&#8217; : generates the DDL for the development environment into the default file ddl.sql</li>
<li>&#8216;grails prod schema-export&#8217; : generates the DDL for the production environment to the default file ddl.sql</li>
<li>&#8216;grails schema-export export&#8217; : generates the export DDL (drop then create)</li>
<li>&#8216;grails schema-export stdout&#8217; : generates the DDL and sends it to starndard out</li>
</ul>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;title=Grails+Tip%3A+Using+Schema+Export" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;title=Grails+Tip%3A+Using+Schema+Export" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;title=Grails+Tip%3A+Using+Schema+Export" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;headline=Grails+Tip%3A+Using+Schema+Export" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Grails+Tip%3A+Using+Schema+Export&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Grails+Tip%3A+Using+Schema+Export&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Grails+Tip%3A+Using+Schema+Export&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Grails+Tip%3A+Using+Schema+Export&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Grails+Tip%3A+Using+Schema+Export&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F&amp;title=Grails+Tip%3A+Using+Schema+Export&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F09%2Fgrails-tip-using-schema-export%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2010/03/09/grails-tip-using-schema-export/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Grails applications with PostgreSQL</title>
		<link>http://www.brentbaxter.com/2010/03/06/building-grails-applications-with-postgresql/</link>
		<comments>http://www.brentbaxter.com/2010/03/06/building-grails-applications-with-postgresql/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 15:05:03 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=274</guid>
		<description><![CDATA[I&#8217;ll be presenting a tutorial &#8220;Building Grails applications with PostgreSQL&#8221; along with my fellow Chariot Solutions colleague Ken Rimple at the PostgreSQL East 2010 conference in Philadelphia, PA. We are scheduled to present on March 25, 2010 at 11:00 AM.
This will be a 90 minute tutorial targeted at beginners of Grails. We plan to cover [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be presenting a tutorial <a href="http://postgresqlconference.org/2010/east/talks/building_grails_applications_with_postgresql">&#8220;Building Grails applications with PostgreSQL&#8221;</a> along with my fellow <a href="http://www.chariotsolutions.com">Chariot Solutions</a> colleague <a href="http://www.rimple.com">Ken Rimple</a> at the PostgreSQL East 2010 conference in Philadelphia, PA. We are scheduled to present on March 25, 2010 at 11:00 AM.</p>
<p>This will be a 90 minute tutorial targeted at beginners of Grails. We plan to cover the following:</p>
<p>1. Overview of Grails</p>
<p>2. GORM</p>
<ul>
<li>Properties and Validation</li>
<li>Associations and Composition</li>
</ul>
<p>3. Configuring Grails with PostgreSQL</p>
<ul>
<li>Environments: Dev, Test, and Production</li>
<li>Using DataSource.groovy</li>
</ul>
<p>If you happen to be at the talk, be sure to introduce yourself and say hello!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;title=Building+Grails+applications+with+PostgreSQL" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;title=Building+Grails+applications+with+PostgreSQL" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;title=Building+Grails+applications+with+PostgreSQL" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;headline=Building+Grails+applications+with+PostgreSQL" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Building+Grails+applications+with+PostgreSQL&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Building+Grails+applications+with+PostgreSQL&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Building+Grails+applications+with+PostgreSQL&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Building+Grails+applications+with+PostgreSQL&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Building+Grails+applications+with+PostgreSQL&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F&amp;title=Building+Grails+applications+with+PostgreSQL&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F03%2F06%2Fbuilding-grails-applications-with-postgresql%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2010/03/06/building-grails-applications-with-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails 1.2.1 is Released</title>
		<link>http://www.brentbaxter.com/2010/02/01/grails-1-2-1-is-released/</link>
		<comments>http://www.brentbaxter.com/2010/02/01/grails-1-2-1-is-released/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 02:08:01 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[springsource]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=267</guid>
		<description><![CDATA[Great news for all Grails developers, it appears that the core Grails team is still hard at work.  Today it was announced that Grails 1.2.1 is ready.  A quick look at the release notes and I see that there aren&#8217;t any major new features, but there are a lot of bug fixes. While [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.brentbaxter.com/wp-content/uploads/2009/11/grailslogo_topNav.png" alt="" title="Grails Logo" width="163" height="43" class="alignleft size-full wp-image-44" />Great news for all Grails developers, it appears that the core Grails team is still hard at work.  Today it was announced that <a href="http://www.grails.org/1.2.1+Release+Notes">Grails 1.2.1</a> is ready.  A quick look at the release notes and I see that there aren&#8217;t any major new features, but there are a lot of bug fixes. While this alone is encouraging, when I looked at the <a href="http://jira.codehaus.org/browse/GRAILS#selectedTab=com.atlassian.jira.plugin.system.project:roadmap-panel">Grails Roadmap</a> I see issues cued up for 1.2.2 and a release date of 1.3 is still listed as March 30. So far I&#8217;m liking the first quarter of 2010!</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;title=Grails+1.2.1+is+Released" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;title=Grails+1.2.1+is+Released" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;title=Grails+1.2.1+is+Released" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;headline=Grails+1.2.1+is+Released" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Grails+1.2.1+is+Released&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Grails+1.2.1+is+Released&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Grails+1.2.1+is+Released&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Grails+1.2.1+is+Released&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Grails+1.2.1+is+Released&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F&amp;title=Grails+1.2.1+is+Released&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F02%2F01%2Fgrails-1-2-1-is-released%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2010/02/01/grails-1-2-1-is-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Defining and Testing Constraints on Grails Domain Classes</title>
		<link>http://www.brentbaxter.com/2010/01/31/validation-of-grails-domains-with-gorm/</link>
		<comments>http://www.brentbaxter.com/2010/01/31/validation-of-grails-domains-with-gorm/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 23:23:06 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=224</guid>
		<description><![CDATA[Defining constraints in Grails domain classes is achieved quite simply with a static property defined directly in the domain class. For example, I can define a User domain class and its constraints as follows:

class User {
  String login
  String password
  String email
  Integer age

  static constraints = {
   [...]]]></description>
			<content:encoded><![CDATA[<p>Defining constraints in Grails domain classes is achieved quite simply with a static property defined directly in the domain class. For example, I can define a User domain class and its constraints as follows:</p>
<pre class="brush: groovy;">
class User {
  String login
  String password
  String email
  Integer age

  static constraints = {
    login(size:5..15, blank:false, unique:true)
    password(size:5..15, blank:false)
    email(email:true, blank:false)
    age(min:18, nullable:false)
  }
}
</pre>
<p>Constraints are syntactically formatted as method calls with the name of the method matching the name of the property the constraint is to be associated with. The method parameters are named parameters specifying the constraint. On User we have defined a constraint for each property. This was my decision to constrain each property, there is not a requirement to name a constraint for all properties in a domain class.</p>
<p>So far so good, but now I want to verify my constraints work the way I expect. The easiest way to test constraints is as part of a unit test. Grails provides mocking support in unit tests, so to setup a mock domain class for constraint testing I would create the following test class.</p>
<pre class="brush: groovy;">
import grails.test.*

class UserTests extends GrailsUnitTestCase {

  protected void setUp() {
    super.setUp()
    mockForConstraintsTests(User)
  }

  protected void tearDown() {
    super.tearDown()
  }

  void testValidation() {
    def user = new User(login:'jdoe', password:'passw0rd',email:'jdoe@foo.com',age:32)
    assertTrue user.validate()
  }
}
</pre>
<p>That is it. One item of note, I recently found out that it is possible to pass a list of property names to the valdiate() method indicating that the validation should only be run on those properties. For example, if I only want to validate the login and password properties on an instance of User then I would do the following.</p>
<pre class="brush: groovy;">
user.validate(['login','password'])
</pre>
<p>This trick, however, does not work in unit tests as it appears the validate method provided by the mock does not accept any parameters. Still, this will come in handy when I know that I don&#8217;t have a fully populated domain POGO, but want to validate what I have.  Say, for example, in a UI wizard where each step sets a partial set of properties on the domain class.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;headline=Defining+and+Testing+Constraints+on+Grails+Domain+Classes" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F&amp;title=Defining+and+Testing+Constraints+on+Grails+Domain+Classes&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F31%2Fvalidation-of-grails-domains-with-gorm%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2010/01/31/validation-of-grails-domains-with-gorm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DevNews Podcast Episode #2</title>
		<link>http://www.brentbaxter.com/2010/01/26/devnews-podcast-episode-2/</link>
		<comments>http://www.brentbaxter.com/2010/01/26/devnews-podcast-episode-2/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 06:15:15 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[devnews]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[techcast]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=216</guid>
		<description><![CDATA[In case you are not already a follower of the Chariot TechCast, you may have missed the fact that TechCast host, Ken Rimple, and I posted the second edition of the new DevNews podcast. We plan for this to be a short, weekly podcast that covers some quick news items from the week.  In [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.brentbaxter.com/wp-content/uploads/2010/01/ChariotTechCasts-small.jpg" alt="" title="ChariotTechCasts-small" width="100" height="100" class="alignleft size-full wp-image-215" />In case you are not already a follower of the <a href="http://www.chariotsolutions.com/downloads/podcasts">Chariot TechCast</a>, you may have missed the fact that TechCast host, <a href="http://www.rimple.com/">Ken Rimple</a>, and I posted the second edition of the new DevNews podcast. We plan for this to be a short, weekly podcast that covers some quick news items from the week.  In DevNews episode #2 we cover:</p>
<ul>
<li>Google news including GDrive and a primer on Google Go</li>
<li>Maven&#8217;s switch to Guice and a demo of Maven POM files in Groovy</li>
<li>Dependency injection annotations JSR-330 and JSR-299 released with JavaEE 6</li>
<li>Flex, OSGi, and Gremlin</li>
</ul>
<p>If you have suggestions on topics we should cover in the future, you can tag related news items on Delicious with the tag <a href="http://www.delicious.com/tag/devnewsideas">devnewsideas</a> and we will consider your story for the podcast.</p>
<p>While you are checking out the DevNews, be sure to catch podcasts with <a href="http://techcast.chariotsolutions.com/index.php?post_id=572350">Venkat Subramaniam</a> and <a href="http://techcast.chariotsolutions.com/index.php?post_id=574627">Jeremy Grelle</a>.  Both of these guests will be speakers at the <a href="http://www.phillyemergingtech.com/">Emerging Technologies for the Enterprise Conference</a> being held in Philadelphia on April 8-9, 2010.  In the interest of full disclosure, this conference is hosted and presented by <a href="http://www.chariotsolutions.com">Chariot Solutions</a> &#8211; my employer.  This is the 5th year this conference will be presented, and it just keeps getting better.  We have a great list of speakers and topics lined up, so check it out and be sure to <a href="http://www.phillyemergingtech.com/register">register</a> soon to get the early bird discount.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;title=DevNews+Podcast+Episode+%232" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;title=DevNews+Podcast+Episode+%232" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;title=DevNews+Podcast+Episode+%232" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;headline=DevNews+Podcast+Episode+%232" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=DevNews+Podcast+Episode+%232&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=DevNews+Podcast+Episode+%232&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=DevNews+Podcast+Episode+%232&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=DevNews+Podcast+Episode+%232&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=DevNews+Podcast+Episode+%232&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F&amp;title=DevNews+Podcast+Episode+%232&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2010%2F01%2F26%2Fdevnews-podcast-episode-2%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2010/01/26/devnews-podcast-episode-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring, Groovy, and Grails Closing 2009 With a Bang</title>
		<link>http://www.brentbaxter.com/2009/12/16/spring-groovy-and-grails-closing-2009-with-a-bang/</link>
		<comments>http://www.brentbaxter.com/2009/12/16/spring-groovy-and-grails-closing-2009-with-a-bang/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 02:10:43 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[spring framework]]></category>
		<category><![CDATA[springsource]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=204</guid>
		<description><![CDATA[It appears that the folks at SpringSouce have been hard at work, and are giving Groovy and Grails folks a lot to look forward to in 2010.  Let me give you a quick recap of the past week or so and just highlight some of the recent events.
It started last week with two Groovy [...]]]></description>
			<content:encoded><![CDATA[<p>It appears that the folks at <a href="http://www.springsource.com">SpringSouce</a> have been hard at work, and are giving Groovy and Grails folks a lot to look forward to in 2010.  Let me give you a quick recap of the past week or so and just highlight some of the recent events.</p>
<p>It started last week with two Groovy related announcements.  First, we were treated to Groovy 1.7 RC2 and found out that we have every reason to expect Groovy 1.7 GA before Christmas.</p>
<p>See: <a href="http://docs.codehaus.org/display/GROOVY/2009/12/09/Groovy+1.7-RC-2+out+there">Groovy 1.7-RC-2 out there</a></p>
<p>Also, last week the Groovy-Eclipse team quietly released 2.0M2 of the Groovy Eclipse plug-in.  They claim to have addressed over 100 issues, which includes a better inference engine, better refactoring support, task tag support, and content assist in GStrings.  All in all, it looks like some nice improvements.</p>
<p>See: <a href="http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.0M2+New+and+Noteworthy">Groovy-Eclipse 2.0.0M2 New and Noteworthy</a></p>
<p>Then today there was an explosion of news all starting with the release of Spring Framework 3.0.  There is a lot of good new stuff in there, and I&#8217;ll leave it to Juergen Hoeller to lay it all out for you.</p>
<p>See: <a href="http://blog.springsource.com/2009/12/16/spring-framework-3-0-goes-ga/">Spring Framework 3.0 goes GA</a></p>
<p>This was followed very closely with the release of Grails 1.2 RC2 which includes the new Spring Framework 3.0 GA.</p>
<p>See: <a href="http://www.grails.org/1.2-RC2+Release+Notes">Grails 1.2-RC2 Release Notes</a></p>
<p>Finally, Guillaume Laforge posted an update on the modularity work that is being done as part of the Groovy 1.8 effort. This gist of this is to modularize Groovy into smaller pieces rather than having one, large groovy-all.jar distribution. Part of this effort will include replacing the current Ant based build with <a href="http://gradle.org/">Gradle</a>.  This is a nice feather in the cap for Gradle.</p>
<p>See: <a href="http://docs.codehaus.org/display/GROOVY/Groovy+1.8+modularization">Groovy 1.8 modularization</a></p>
<p>I am very excited to see what is to come in 2010 for the Groovy and Grails community.  Judging by the activities of just the past month, there is a lot to be excited about for the year to come.</p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;headline=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F&amp;title=Spring%2C+Groovy%2C+and+Grails+Closing+2009+With+a+Bang&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F12%2F16%2Fspring-groovy-and-grails-closing-2009-with-a-bang%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2009/12/16/spring-groovy-and-grails-closing-2009-with-a-bang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Philly on Grails Materials Posted</title>
		<link>http://www.brentbaxter.com/2009/11/19/philly-on-grails-materials-posted/</link>
		<comments>http://www.brentbaxter.com/2009/11/19/philly-on-grails-materials-posted/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 16:19:31 +0000</pubDate>
		<dc:creator>brent</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[chariot]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.brentbaxter.com/?p=154</guid>
		<description><![CDATA[The slides and code samples from the recent Chariot Solutions &#8220;Fall Forecast: Groovy on Grails&#8221; seminar are now available online. You can view and download the slides from all the presentations, as well as the code from the evening hack-a-thon event.
Groovy on Grails seminar downloads: http://www.chariotsolutions.com/events/groovy
If you also head over to the Chariot Solutions team [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.brentbaxter.com/wp-content/uploads/2009/11/chariot_horse.png" alt="Chariot Solutions" title="Chariot Solutions" class="alignleft size-full wp-image-124" />The slides and code samples from the recent Chariot Solutions &#8220;Fall Forecast: Groovy on Grails&#8221; seminar are now available online. You can view and download the slides from all the presentations, as well as the code from the evening hack-a-thon event.</p>
<p>Groovy on Grails seminar downloads: <a href="http://www.chariotsolutions.com/events/groovy">http://www.chariotsolutions.com/events/groovy</a></p>
<p>If you also head over to the Chariot Solutions team blog, you will see some video testimonials (including one from me) taken at the event. The team blog is also a great resource to follow for news about other upcoming events, like the <a href="http://www.phillyemergingtech.com/">Emerging Technologies for the Enterprise</a> conference in April 2010. There should be some more great Groovy and Grails talks at this conference, so watch the site as speakers and topics are announced.</p>
<p>Chariot Solutions team blog: <a href="http://chariotsolutions.blogspot.com/">http://chariotsolutions.blogspot.com/</a><br />
Emerging Technologies for the Enterprise: <a href="http://www.phillyemergingtech.com/">http://www.phillyemergingtech.com/</a></p>
<div class="lightsocial_container"><a class="lightsocial_a" href="http://digg.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F&amp;title=Philly+on+Grails+Materials+Posted" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/digg.png" alt="Digg This" title="Digg This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F&amp;title=Philly+on+Grails+Materials+Posted" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/reddit.png" alt="Reddit This" title="Reddit This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F&amp;title=Philly+on+Grails+Materials+Posted" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/stumbleupon.png" alt="Stumble Now!" title="Stumble Now!" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F&amp;headline=Philly+on+Grails+Materials+Posted" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/yahoo_buzz.png" alt="Buzz This" title="Buzz This" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dzone.com/links/add.html?title=Philly+on+Grails+Materials+Posted&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dzone.png" alt="Vote on DZone" title="Vote on DZone" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.facebook.com/sharer.php?t=Philly+on+Grails+Materials+Posted&amp;u=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/facebook.png" alt="Share on Facebook" title="Share on Facebook" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://delicious.com/save?title=Philly+on+Grails+Materials+Posted&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/delicious.png" alt="Bookmark this on Delicious" title="Bookmark this on Delicious" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.dotnetkicks.com/kick/?title=Philly+on+Grails+Materials+Posted&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetkicks.png" alt="Kick It on DotNetKicks.com" title="Kick It on DotNetKicks.com" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://dotnetshoutout.com/Submit?title=Philly+on+Grails+Materials+Posted&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/dotnetshoutout.png" alt="Shout it" title="Shout it" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F&amp;title=Philly+on+Grails+Materials+Posted&amp;summary=&amp;source=" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/linkedin.png" alt="Share on LinkedIn" title="Share on LinkedIn" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/technorati.png" alt="Bookmark this on Technorati" title="Bookmark this on Technorati" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://twitter.com/home?status=Reading+http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/twitter.png" alt="Post on Twitter" title="Post on Twitter" /></a>&nbsp;&nbsp;<a class="lightsocial_a" href="http://www.google.com/buzz/post?url=http%3A%2F%2Fwww.brentbaxter.com%2F2009%2F11%2F19%2Fphilly-on-grails-materials-posted%2F" ><img class="lightsocial_img" src="http://www.brentbaxter.com/wp-content/plugins/light-social/google_buzz.png" alt="Google Buzz (aka. Google Reader)" title="Google Buzz (aka. Google Reader)" /></a>&nbsp;&nbsp;</div>]]></content:encoded>
			<wfw:commentRss>http://www.brentbaxter.com/2009/11/19/philly-on-grails-materials-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
