<?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>cwash into software &#187; JBoss Seam</title>
	<atom:link href="http://cwash.org/category/jboss-seam/feed/" rel="self" type="application/rss+xml" />
	<link>http://cwash.org</link>
	<description>+= construction + craftsmanship;</description>
	<lastBuildDate>Thu, 29 Sep 2011 04:23:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.2</generator>
		<item>
		<title>Must Haves/References For Modern Java EE Developers</title>
		<link>http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=must-havesreferences-for-modern-java-ee-developers</link>
		<comments>http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 01:10:54 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[JBoss Seam]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[guice]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javaee]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[references]]></category>
		<category><![CDATA[seam]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[testng]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://cwash.org/?p=46</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/";</script>I&#8217;ve been doing a lot of reading lately and have been meaning to plug some of my favorite reads, and one of the things that I&#8217;ve been trying to read with an eye toward is for converting those that have been stuck on &#8220;behind-the-curve&#8221; projects to the new way of thinking and doing things. As [...]]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><p>I&#8217;ve been doing a lot of reading lately and have been meaning to plug some of my favorite reads, and one of the things that I&#8217;ve been trying to read with an eye toward is for converting those that have been stuck on &#8220;behind-the-curve&#8221; projects to the new way of thinking and doing things.  As such, and just in time for the weekend, I&#8217;ve compiled a list of my favorites with an eye to the &#8220;movers and shakers&#8221; that have driven innovation in the Enterprise Java world recently.  Note that even though some of these links are specific to certain frameworks/technologies, there is a common thread throughout most of these that have a bigger focus on the best way to solve problems using Java 5/EE 5 constructs and concepts.</p>
<p>A book that should be on any Java developer&#8217;s shelf is <a href="http://www.amazon.com/gp/product/0321356683?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0321356683">Effective Java (2nd Edition)</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=0321356683" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  <em>Make sure you get the second edition</em>, for all of the Java 5 changes.  <a href="http://www.youtube.com/watch?v=pi_I7oD_uGI">This talk by Joshua</a> should whet your appetite.  (His <a href="http://www.youtube.com/watch?v=aAb7hSCtvGw">talk on good API design</a> is also very good.)  You should also take a look at Bob Lee&#8217;s <a href="http://www.youtube.com/watch?v=FFXhXZnmEQM">talk on Guice</a>.  Guice&#8217;s philosophy and focus on typesafety has spilled over into Web Beans (and newer versions of Seam) and its annotation based approach has heavily influenced newer Spring features.  I especially like his points on type safety around the 11-minute mark.  The walkthrough at the end of the talk from &#8220;old way&#8221; to &#8220;new way&#8221; is great for people who haven&#8217;t really gotten away from Factories, Delegates, and Service Locators yet.</p>
<p>The Guice video mentions that a common thread in modern Java frameworks is a focus on testability. Testing is a very important concept that nearly all new frameworks have embraced, but you still need know-how to be successful with testing.  I&#8217;ve come across some great books recently in the automated (developer) testing arena.  I&#8217;ve found the most thorough book on the topic out there is Lasse Koskela&#8217;s <a href="http://www.amazon.com/gp/product/1932394850?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1932394850">Test Driven</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=1932394850" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  The ideas and topics discussed in the book are really language independent, and work equally well with other languages.  To cut your teeth on TestNG, which the Seam documentation turned me onto, I recommend the TestNG developers&#8217; book <a href="http://www.amazon.com/gp/product/0321503104?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0321503104">Next Generation Java Testing: TestNG and Advanced Concepts</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=0321503104" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  Cedric Beust, also the author of EJBGen, and Hani Suleiman, author of the Bile Blog, produced a book that was a suprisingly good read.  It&#8217;s packed with a lot of knowledge and some interesting takes on EE concepts.  Newer versions of JUnit also include many of these features and concepts, so you&#8217;ll get the underpinnings of these concepts in this book.  <a href="http://www.youtube.com/watch?v=TtcEpryRy44">This video</a> gives you a basis to TestNG&#8217;s approach.</p>
<p>As one of the growing number of developers who have an application in the <a href="http://seamframework.org/Documentation/SeamInProductionListing" target="_new">Seam In Production</a> page, there are a few Seam resources I have to share.  Even if you don&#8217;t get into Seam, it should be on your radar because a lot of the core concepts around conversations have evolved into Web Beans, and are found other frameworks like Apache Orchestra and Spring WebFlow.  Pete Muir did a <a href="https://jboss.webex.com/ec0600l/eventcenter/recording/recordAction.do;jsessionid=JwTdnQw2TZrh1Zq715zmXWwHBD2ZW2fDynhW2dh7NxYnK1pKkLly!-1137412519?theAction=poprecord&#038;actname=%2Feventcenter%2Fframe%2Fg.do&#038;apiname=lsr.php&#038;renewticket=0&#038;renewticket=0&#038;actappname=ec0600l&#038;entappname=url0106l&#038;needFilter=false&#038;&#038;isurlact=true&#038;entactname=%2FnbrRecordingURL.do&#038;rID=34057132&#038;rKey=F88E0DE2EA1FAC2D&#038;recordID=34057132&#038;rnd=9027886079&#038;siteurl=jboss&#038;SP=EC&#038;AT=pb&#038;format=short">Webcast</a> that&#8217;s a great introduction to Seam 2.  </p>
<p>Author of <a href="http://solutionsfit.com/blog/" target="_new">one of my favorite Seam blogs</a>, Jacob Orshalick, has created a <a href="http://refcardz.dzone.com/refcardz/core-seam?oid=hom6084">DZone RefCard for Seam 2.1 Core</a>.  It&#8217;s right off the presses, being published this week, but is a great quick-capsule review of what Seam can do for you, and nice to have on your desk if you&#8217;re writing Seam.  If you need more in-depth descriptions of what&#8217;s on the RefCard, Jacob also coauthored the latest edition of the great Seam reference <a href="http://www.amazon.com/gp/product/0137129394?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0137129394">Seam Framework: Experience the Evolution of Java EE</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=0137129394" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.<br />
Dan Allen&#8217;s <a href="http://www.amazon.com/gp/product/1933988401?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1933988401">Seam in Action</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=1933988401" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is another excellent resource.  Of course, the awesome <a href="http://seamframework.org/Documentation">Seam Docs</a> and <a href="http://www.seamframework.org/Community/Forums">Forums</a> always come in handy.  You should also RSS <a href="http://in.relation.to/">in.relation.to</a> – the Hibernate/Seam developers&#8217; group blog.</p>
<p>I know I&#8217;m leaving some great things out.  What resources do you think someone who is used to J2EE should take a look at to get them &#8220;up to speed&#8221; with the state of the art?</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>January 31, 2009 -- <a href="http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/" title="In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel ">In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel </a> (3)</li><li>March 19, 2008 -- <a href="http://cwash.org/2008/03/19/new-wave-logging/" title="New Wave Logging">New Wave Logging</a> (0)</li><li>June 9, 2009 -- <a href="http://cwash.org/2009/06/09/mocking-with-jmockit/" title="Mocking with JMockit">Mocking with JMockit</a> (5)</li><li>April 15, 2009 -- <a href="http://cwash.org/2009/04/15/osgi-ggity-giggity/" title="OSGi-ggity-Giggity">OSGi-ggity-Giggity</a> (4)</li><li>February 17, 2009 -- <a href="http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/" title="Don&#8217;t Unit Test Anymore&#8230; No, Really!">Don&#8217;t Unit Test Anymore&#8230; No, Really!</a> (6)</li><li>January 13, 2009 -- <a href="http://cwash.org/2009/01/13/on-software-quality/" title="On Software Quality">On Software Quality</a> (8)</li><li>August 21, 2008 -- <a href="http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/" title="Weblogic 9.2 + Seam : Victory is Mine!">Weblogic 9.2 + Seam : Victory is Mine!</a> (1)</li><li>August 2, 2008 -- <a href="http://cwash.org/2008/08/02/how-i-escape-the-reuse-trap/" title="How I Escape the &#8220;Reuse Trap&#8221;">How I Escape the &#8220;Reuse Trap&#8221;</a> (0)</li><li>July 21, 2008 -- <a href="http://cwash.org/2008/07/21/pimp-my-build/" title="Pimp My Build">Pimp My Build</a> (0)</li><li>March 13, 2008 -- <a href="http://cwash.org/2008/03/13/continuous-integration-dissected/" title="Continuous Integration Dissected">Continuous Integration Dissected</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Weblogic 9.2 + Seam : Victory is Mine!</title>
		<link>http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=weblogic-92-seam-victory-is-mine</link>
		<comments>http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 11:45:38 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[JBoss Seam]]></category>
		<category><![CDATA[epic battle]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[seam]]></category>
		<category><![CDATA[seam-gen]]></category>
		<category><![CDATA[weblogic 9]]></category>

		<guid isPermaLink="false">http://cwash.org/?p=24</guid>
		<description><![CDATA[What I learned getting a Seam-gen'd project running on WL9.]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><p>After fighting with WebLogic 9.2 for a while, I was able to get a seam-gen&#8217;d app running.</p>
<p>You&#8217;re relegated to using JPA/Hibernate because of an outstanding bug BEA and Sun seem to be both pointing fingers at each other over, but it&#8217;s not a big deal.  At least for now, all of the persistence in this app is going to be offloaded to services.</p>
<p>I&#8217;ll work on writing this up more formally, but here was a running list of issues I had to deal with.  If you need more information, let me know.  I apologize that this is kind of rough, but it&#8217;s better than nothing.</p>
<ol>
<li>Follow steps outlined in reference guide. (http://docs.jboss.com/seam/2.0.2.SP1/reference/en-US/html_single/#weblogic)</li>
<li>Change the build.xml&#8217;s jboss.home&#8217;s to bea.home&#8217;s, and redefine them like so:
<div>
<pre>&lt;property name="deploy.dir" value="${bea.domain.dir}/autodeploy" /&gt;
&lt;property name="jboss.deploy.dir" value="${jboss.home}/server/default/deploy" /&gt;</pre>
</div>
</li>
<li>Remove the library-ref from weblogic.xml (that you put in following the ref guide).</li>
<li>Remove the Namespace, Schema, and Version definitions for the web-app tag in web.xml &#8211; there&#8217;s a problem trying to add version 2.5&#8230; (https://jira.jboss.org/jira/browse/JBSEAM-2247)</li>
<li>Remove JSF/MyFaces deployments from WL domain if there are any (JSF 1.1 libraries conflicting with 1.2)</li>
<li>Add jsf-api.jar, jsf-impl.jar, commons-collections.jar, persistence-api.jar, el-api.jar, el-ri.jar (needed to pull out of seam fisheye) to deployed-jars.list.  You should be seeing Seam trying to start up at this point, IOW, you&#8217;re in &#8220;whack-a-jar&#8221; mode.</li>
</ol>
<p>One other funky thing &#8212; and I&#8217;m not sure what error exactly was causing this (probably related to the interceptors and JSF problems causing the deployment to suspend) but WL was causing some locks to occur that I had to clear out of my domain/server/tmp/* and basically &#8220;clean&#8221; everything out.  It was quite annoying, but things seem to be better now.</p>
<p><a href="http://cwash.org/wp-content/uploads/2008/08/seamgen-on-weblogic.jpg"><img class="aligncenter size-full wp-image-26" title="seamgen-on-weblogic" src="http://cwash.org/wp-content/uploads/2008/08/seamgen-on-weblogic.jpg" alt="" width="500" height="250" /></a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Weblogic+9.2+%2B+Seam+%3A+Victory+is+Mine%21&amp;link=http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/&amp;notes=What%20I%20learned%20getting%20a%20Seam-gen%27d%20project%20running%20on%20WL9.&amp;short_link=http://bit.ly/9uMlVc&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>November 28, 2008 -- <a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/" title="Must Haves/References For Modern Java EE Developers">Must Haves/References For Modern Java EE Developers</a> (1)</li><li>March 19, 2008 -- <a href="http://cwash.org/2008/03/19/new-wave-logging/" title="New Wave Logging">New Wave Logging</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Wave Logging</title>
		<link>http://cwash.org/2008/03/19/new-wave-logging/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=new-wave-logging</link>
		<comments>http://cwash.org/2008/03/19/new-wave-logging/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 19:34:39 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[JBoss Seam]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[logging]]></category>
		<category><![CDATA[seam]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[web beans]]></category>

		<guid isPermaLink="false">http://cwash.org/2008/03/19/new-wave-logging/</guid>
		<description><![CDATA[Tired of messy logging logic cluttering your code with a bunch of if/else statements?  Don't let logging cramp your style! The approach <a href="http://www.seamframework.org" title="JBoss Seam">Seam</a> takes to logging makes your code pretty again (and other things).  What does this mean for you?  No more "<em>code guards</em>"!

A nice byproduct of the genius of Seam's design is that many common problems can be solved by using <em>EL </em>as veritable swiss-army knife.  We'll look at this through a logging example specifically, though it's just one of many different innovative ways of solving problems using Java5 features and <a href="http://docs.jboss.com/seam/2.0.1.GA/reference/en/html_single/#elenhancements">EL</a> as a general approach.]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2008/03/19/new-wave-logging/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><p>Tired of messy logging logic cluttering your code with a bunch of if/else statements?  Don&#8217;t let logging cramp your style! The approach <a href="http://www.seamframework.org" title="JBoss Seam">Seam</a> takes to logging makes your code pretty again (and other things).  What does this mean for you?  No more &#8220;<em>code guards</em>&#8220;!</p>
<p>A nice byproduct of the genius of Seam&#8217;s design is that many common problems can be solved by using <em>EL </em>as veritable swiss-army knife.  We&#8217;ll look at this through a logging example specifically, though it&#8217;s just one of many different innovative ways of solving problems using Java5 features and <a href="http://docs.jboss.com/seam/2.0.1.GA/reference/en/html_single/#elenhancements">EL</a> as a general approach.</p>
<h3>WTF is a code guard?</h3>
<p>What goes without saying in most of the discussions regarding logging is that excessive logging can be the largest and most common performance bottleneck in code that meets its functional requirements.  Thus, logging APIs introduce the idea of log levels, to ease the burden of excessive logging.  Generally, log levels are a configuration setting on a per-environment basis.  Development environments will typically log most dependent code at the <em>info </em>level, and cut that up to the <em>debug</em> level for custom code or when things go awry with a piece of dependent code.  Testing environments typically log at <em>info</em> while production will often just log at the <em>warn</em> level.</p>
<p>While this is all well and good, we find that for a lot of the logging we do, we typically run across an ugly little flaw in this approach that&#8217;s produced an equally ugly hack as a work-around.  Enter the <em>code guard</em>.  From the log4j docs:</p>
<blockquote><p>Code guards are typically used to guard code that only needs to execute in support of logging, that otherwise introduces undesirable runtime overhead in the general case (logging disabled). Examples are multiple parameters, or expressions (e.g. string + &#8221; more&#8221;) for parameters. Use the guard methods of the form log.is&lt;Priority&gt;() to verify that logging should be performed, before incurring the overhead of the logging  method call. Yes, the logging methods will perform the same check, but only after resolving parameters.</p></blockquote>
<p>What&#8217;s all this business about resolving parameters?  Let&#8217;s look at an example:</p>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// unguarded code</span><br />
log.<span style="color: #006633;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;FOO: &quot;</span> <span style="color: #339933;">+</span> foo <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;, BAR: &quot;</span> <span style="color: #339933;">+</span> foo.<span style="color: #006633;">getBar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// guarded code</span><br />
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>log.<span style="color: #006633;">isDebugEnabled</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
log.<span style="color: #006633;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;FOO: &quot;</span> <span style="color: #339933;">+</span> foo <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;, BAR: &quot;</span> <span style="color: #339933;">+</span> foo.<span style="color: #006633;">getBar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>So, we need this cluttered if/else around only to ensure that our expressions (concats, usually) won&#8217;t get resolved unless we actually want them to.  Why is there no other recourse?  The answer isn&#8217;t surprising – it comes down to the way the API was designed.  All log4j logging methods take a single argument &#8212; which made a lot of sense, I suppose when the powers that be first designed logging APIs. They soon realized that in order to use their API, one has to use an expression to resolve all parameters into a single argument prior to calling the method!  This is why a code guard is needed.</p>
<p>Java5 introduces a feature that allows for <a href="http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html" title="Variable Length Arguments" target="_blank">varargs</a>, and taking advantage of this can help us with our ugly little logging problem, e.g.</p>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">log.<span style="color: #006633;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;FOO: #0, BAR: #1&quot;</span>, foo, foo.<span style="color: #006633;">getBar</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>With this approach, our expressions won&#8217;t get resolved until after we&#8217;re in debug(), and we can let it do the dirty work inside the method.  The first thing that our logging method does is check to see if its level is valid, otherwise it&#8217;ll fall out immediately.  Because the concatenation happens inside the log method, we don&#8217;t need a code guard to protect us.</p>
<p>This is the approach that Seam takes to logging.  Seam&#8217;s <a href="http://docs.jboss.com/seam/latest-2/api/org/jboss/seam/log/Log.html" title="Seam's Log Interface">Log</a> interface provides not only a solution that removes the need for code guards, it also allows you to use EL in your log messages (if you&#8217;re trying to dive into a Seam component&#8230;) &#8211; e.g.</p>
<div class="codecolorer-container java twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">log.<span style="color: #006633;">debug</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;FOO: #{foo}, BAR: #{foo.bar}&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Much better.  By and large, this is the way you do logging in Seam.  Because binding occurs late, you never really run into the problem where you need to even think about using something like a &#8220;code guard.&#8221;  Code what you&#8217;re supposed to; not noise! <strong>This is just one of many novel ways to use EL in Seam</strong>, and why it really deserves a look as a way to write better code, faster and as a far more productive platform for Java programmers (fed up with JavaSE/EE 1.4) than Rails/Grails.</p>
<p>See the <a href="http://in.relation.to/Bloggers/TheWebBeansManifesto" target="_blank" title="Web Beans Manifesto">Web Beans Manifesto</a> for much more on this approach.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2008/03/19/new-wave-logging/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=New+Wave+Logging&amp;link=http://cwash.org/2008/03/19/new-wave-logging/&amp;notes=Tired%20of%20messy%20logging%20logic%20cluttering%20your%20code%20with%20a%20bunch%20of%20if%2Felse%20statements%3F%20%20Don%27t%20let%20logging%20cramp%20your%20style%21%20The%20approach%20Seam%20takes%20to%20logging%20makes%20your%20code%20pretty%20again%20%28and%20other%20things%29.%20%20What%20does%20this%20mean%20for%20you%3F%20%20No%20more%20%22code%20guards%22%21%0D%0A%0D%0AA%20nice%20byproduct%20of%20the%20genius%20of%20Seam%27s%20design%20is%20that%20many%20common%20problems%20can%20be%20solved%20by%20using%20EL%20as%20veritable%20swiss-army%20knife.%20%20We%27ll%20look%20at%20this%20through%20a%20logging%20example%20specifically%2C%20though%20it%27s%20just%20one%20of%20many%20different%20innovative%20ways%20of%20solving%20problems%20using%20Java5%20features%20and%20EL%20as%20a%20general%20approach.&amp;short_link=http://bit.ly/b9tGdk&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>November 28, 2008 -- <a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/" title="Must Haves/References For Modern Java EE Developers">Must Haves/References For Modern Java EE Developers</a> (1)</li><li>April 15, 2009 -- <a href="http://cwash.org/2009/04/15/osgi-ggity-giggity/" title="OSGi-ggity-Giggity">OSGi-ggity-Giggity</a> (4)</li><li>June 3, 2009 -- <a href="http://cwash.org/2009/06/03/what-is-hamcrest/" title="What is Hamcrest?">What is Hamcrest?</a> (0)</li><li>January 31, 2009 -- <a href="http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/" title="In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel ">In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel </a> (3)</li><li>January 21, 2009 -- <a href="http://cwash.org/2009/01/21/16-apps-that-lessen-teh-suck-of-web-development-in-xp/" title="16 Apps That Lessen TEH SUCK of Web Development in XP">16 Apps That Lessen TEH SUCK of Web Development in XP</a> (8)</li><li>January 13, 2009 -- <a href="http://cwash.org/2009/01/13/on-software-quality/" title="On Software Quality">On Software Quality</a> (8)</li><li>December 1, 2008 -- <a href="http://cwash.org/2008/12/01/24ways/" title="24ways">24ways</a> (1)</li><li>November 19, 2008 -- <a href="http://cwash.org/2008/11/19/java-6-and-maven-209-on-leopard/" title="Java 6 and Maven 2.0.9 on Leopard">Java 6 and Maven 2.0.9 on Leopard</a> (7)</li><li>September 10, 2008 -- <a href="http://cwash.org/2008/09/10/axis2-client-using-adb-runtime-dependencies/" title="Axis2 client using ADB &#8211; runtime dependencies">Axis2 client using ADB &#8211; runtime dependencies</a> (6)</li><li>August 21, 2008 -- <a href="http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/" title="Weblogic 9.2 + Seam : Victory is Mine!">Weblogic 9.2 + Seam : Victory is Mine!</a> (1)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2008/03/19/new-wave-logging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

