<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Angry Bill</title>
	<atom:link href="http://bill.burkecentral.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bill.burkecentral.com</link>
	<description>tech talk radio</description>
	<pubDate>Mon, 05 May 2008 13:09:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>Resteasy JAX-RS Beta 3 Released</title>
		<link>http://bill.burkecentral.com/2008/05/05/resteasy-jax-rs-beta-3-released/</link>
		<comments>http://bill.burkecentral.com/2008/05/05/resteasy-jax-rs-beta-3-released/#comments</comments>
		<pubDate>Mon, 05 May 2008 13:09:37 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[REST]]></category>

		<category><![CDATA[Webservices]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=105</guid>
		<description><![CDATA[This is the thrid release of JBoss&#8217;s JSR-311, JAX-RS, Restful Web Services implementation.  Nothing special in this release, just a lot of bug fixes the community found as well as more spec-feature complete.  We have some more things coming down the pipe in the next month, so stay tuned!
Links to where to download, [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This is the thrid release of JBoss&#8217;s <a href="https://jsr311.dev.java.net/">JSR-311</a>, JAX-RS, Restful Web Services implementation.  Nothing special in this release, just a lot of bug fixes the community found as well as more spec-feature complete.  We have some more things coming down the pipe in the next month, so stay tuned!</p>
<p>Links to where to <a href="https://sourceforge.net/project/showfiles.php?group_id=190222&amp;package_id=264649">download</a>, <a href="https://lists.sourceforge.net/lists/listinfo/resteasy-developers">post user questions</a>, and our <a href="http://wiki.jboss.org/wiki/ResteasyJAXRSDocumentation">documentation</a> are all available on our <a href="http://wiki.jboss.org/wiki/RESTeasyJAXRS">WIKI</a>.</p>
<p>Release Notes - Resteasy - Version Beta3</p>
<h2>Bug</h2>
<ul>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-25">RESTEASY-25</a>] - mime property types ignored when matching resource methods to requests</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-26">RESTEASY-26</a>] - MessageBodyWriter matching should use the entity class, not the method&#8217;s reflected return type.</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-27">RESTEASY-27</a>] - Resource Locators should be dynamically processed</li>
</ul>
<h2>Task</h2>
<ul>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-6">RESTEASY-6</a>] - Implement all methods with decode parameter within UriInfo</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-20">RESTEASY-20</a>] - Suport for @Path.limited</li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/105/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/105/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=105&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/05/05/resteasy-jax-rs-beta-3-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Resteasy JAX-RS 1.0 Beta 2 Released!</title>
		<link>http://bill.burkecentral.com/2008/04/07/resteasy-jax-rs-10-beta-2-released/</link>
		<comments>http://bill.burkecentral.com/2008/04/07/resteasy-jax-rs-10-beta-2-released/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 20:28:49 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[JAX-RS]]></category>

		<category><![CDATA[REST]]></category>

		<category><![CDATA[Webservices]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=104</guid>
		<description><![CDATA[I finally got around to creating a new release for the next rev of our JAX-RS, Java RESTful Web Services, implementation.  This release targets the 0.7 release of the JAX-RS specification.  There&#8217;s a still a few features I haven&#8217;t implemented yet, but hope to get them out soon as the spec starts to [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I finally got around to creating a new release for the next rev of our JAX-RS, Java RESTful Web Services, implementation.  This release targets the 0.7 release of the<a href="https://jsr311.dev.java.net/"> JAX-RS specification</a>.  There&#8217;s a still a few features I haven&#8217;t implemented yet, but hope to get them out soon as the spec starts to solidify.  Especially new in this release is a new <a href="http://wiki.jboss.org/wiki/RESTeasyEmbeddedContainer">embeddable container </a>so you can run things within junit tests, or just serve up a small restful web service from your classpath.  We&#8217;ve been using this embeddable container to unit test our implementation and finally made it available to the masses.</p>
<p>Check out our <a href="http://wiki.jboss.org/wiki/RESTeasyJAXRS">project page</a> or <a href="https://sourceforge.net/project/showfiles.php?group_id=190222&amp;package_id=264649">download</a> the new release.</p>
<p><em>Release Notes - Resteasy - Version Beta2</em></p>
<h2>Bug</h2>
<ul>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-1">RESTEASY-1</a>] - DefaultPlainText.MessageBodyWriter should not write anything (arrays especially)</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-2">RESTEASY-2</a>] - If Response has set Content-Type, then that content type should be used</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-9">RESTEASY-9</a>] - Subresources erroneously considered as root resources</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-17">RESTEASY-17</a>] - Spec mandates supporting MultivaluedMap for form-urlencoded media types</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-18">RESTEASY-18</a>] - @QueryParam should not return x-www-form-urlencoded parameters</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-24">RESTEASY-24</a>] - WebApplicationException and http status codes</li>
</ul>
<h2>Feature Request</h2>
<ul>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-11">RESTEASY-11</a>] - Standalone server</li>
</ul>
<h2>Task</h2>
<ul>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-4">RESTEASY-4</a>] - Implement variants</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-13">RESTEASY-13</a>] - Support @Context field injection</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-14">RESTEASY-14</a>] - Support @Context injeciton of HttpServletRequest/Response</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-16">RESTEASY-16</a>] - Support injection of javax.ws.rs.core.SecurityContext</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-19">RESTEASY-19</a>] - Support for StreamingOutput</li>
<li>[<a href="http://jira.jboss.com/jira/browse/RESTEASY-23">RESTEASY-23</a>] - Integration test for SecurityContext</li>
</ul>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/104/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/104/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/104/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/104/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/104/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=104&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/04/07/resteasy-jax-rs-10-beta-2-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Where&#8217;s the outrage?</title>
		<link>http://bill.burkecentral.com/2008/03/25/wheres-the-outrage/</link>
		<comments>http://bill.burkecentral.com/2008/03/25/wheres-the-outrage/#comments</comments>
		<pubDate>Tue, 25 Mar 2008 13:23:02 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[sports]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=103</guid>
		<description><![CDATA[It&#8217;s amazing to me the attention and outrage expressed against Bill Belichick and the Patriots for Spygate when there&#8217;s much more serious cheating going on in the NFL.  I mean, Belichick gets lynched for taping a team to figure out its tendencies.  A practice that I sincerely believe Belichick thought was a grey area in [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>It&#8217;s amazing to me the attention and outrage expressed against Bill Belichick and the Patriots for <a href="http://en.wikipedia.org/wiki/Spygate">Spygate</a> when there&#8217;s much more serious cheating going on in the NFL.  I mean, Belichick gets lynched for taping a team to figure out its tendencies.  A practice that I sincerely believe Belichick thought was a grey area in the rules.  Anyways, that&#8217;s what coaches are paid to do, analyze film to gauge a team&#8217;s tendencies.</p>
<p>In comparison, we have a multitude of other teams tampering with free agency.  For example, the 49er&#8217;s were recently penalized a 5th round draft pick for <a href="http://sportsillustrated.cnn.com/2008/football/nfl/03/24/niners.forfeit.ap/index.html">tampering with the Bear&#8217;s Lance Briggs in free agency</a>.  The quality of players (or lack thereof) has a much more dramatic affect on the outcome of a game than whether or not a coach can crack an opposing team&#8217;s defensive signals.  How about the Patriot&#8217;s 2006 season?  Remember the Dion Branch fiasco when the Patriots were basically forced to trade their best receiver away at the beginning of the season?  Where was the outrage, outside of New England, when the <a href="http://www.nctimes.com/articles/2006/09/13/sports/professional/21_45_539_12_06.txt">Jets tampered with Dion Branch</a>?  The 2006 AFC championship game against the Colts was so close one play could have changed the outcome of the game.  Ya think having Branch would have made a difference?  No, not at all  ;).</p>
<p>It doesn&#8217;t stop with free agency tampering.  Numerous teams have also violated the salary cap.  Those same 49ers were <a href="http://www.sportslawnews.com/archive/Articles%202000/Policysalarycappenalty.htm">penalized $400000</a> for violating the cap in Steve Young and Brent Jone&#8217;s contracts.  The same Steve Young who lambasted Belichick and the Patriots on ESPN.  Its not just the 49ers.  The Broncos were penalized, not once, but <a href="http://www.washingtonpost.com/wp-dyn/articles/A28969-2004Sep17.html">twice</a> for salary cap violations.  The first was in regards to John Elway&#8217;s contract.  Should the Broncos also have an asterix next to their superbowl victories?  Where was the outrage?   Spectre, where are you?  Oh, I forgot, you&#8217;re a senator from Pennsylvania, not one from Georgia or Wisconsin.</p>
<p>All and all, I&#8217;m fine with the Patriots getting punished by the commissioner.  What I&#8217;m not fine with is the Patriots being treated as a special case by the media and the fans.  I want to see equal outrage against other teams that violate the rules, equal press coverage.  Its only fair that fans in San Francisco, New York, and Denver experience similar humiliation and witch hunts.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/103/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/103/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=103&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/03/25/wheres-the-outrage/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Addressing doubts on REST</title>
		<link>http://bill.burkecentral.com/2008/03/22/addressing-doubts-on-rest/</link>
		<comments>http://bill.burkecentral.com/2008/03/22/addressing-doubts-on-rest/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 16:36:09 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[REST]]></category>

		<category><![CDATA[Webservices]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=102</guid>
		<description><![CDATA[A great article by Stefan Tilkov on Addressing doubts on REST.  This and his previous article are a must read for any REST noob.  I wish I had them available when I was researching REST almost a year ago.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A great article by Stefan Tilkov on <a href="http://www.infoq.com/articles/tilkov-rest-doubts">Addressing doubts on REST</a>.  This and his <a href="http://www.infoq.com/articles/rest-introduction">previous article</a> are a must read for any REST noob.  I wish I had them available when I was researching REST almost a year ago.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/102/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/102/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=102&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/03/22/addressing-doubts-on-rest/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Reliable concurrent initialization</title>
		<link>http://bill.burkecentral.com/2008/03/13/reliable-concurrent-initialization/</link>
		<comments>http://bill.burkecentral.com/2008/03/13/reliable-concurrent-initialization/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 18:22:05 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=100</guid>
		<description><![CDATA[I recently ran into the situation where I wanted to do lazy, on-demand, initialization of a registry.  In previous applications, I would just use get()/put() from java.util.ConcurrentHashMap because I didn&#8217;t care if something was created more than once accidentally as it would eventually, and quickly, sort itself out and all I&#8217;d lose is a [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I recently ran into the situation where I wanted to do lazy, on-demand, initialization of a registry.  In previous applications, I would just use get()/put() from <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ConcurrentHashMap.html">java.util.ConcurrentHashMap</a> because I didn&#8217;t care if something was created more than once accidentally as it would eventually, and quickly, sort itself out and all I&#8217;d lose is a tiny garbage collection.  Unfortunately, in my current project, a registry entry cannot be allocated twice as two different versions of it might be used concurrently and each registry entry holds and maintains state.  These resources need to be individually unique.  Thankfully, java.util.ConcurrentHashMap has a nice method called <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ConcurrentHashMap.html#putIfAbsent(K,%20V)">putIfAbsent()</a>.  This method does the atomic equivalent of:</p>
<pre>
if (!map.containsKey(key)) {
   return map.put(key, value);
} else {
   return map.get(key);
}</pre>
<p>So, what I can do is do a mini double check.  When I lookup at entry, if it doesn&#8217;t exist, allocate a temporty version of it and call putIfAbsent.</p>
<pre>
public V get(K key) {
   V value = concurrentMap.get(key);
   if (value != null) return value;

   value = new Value(...);
   V tmp = concurrentMap.putIfAbsent(value);
   if (tmp == null) {
      return value;
   } else {
      value.cleanup();
      return tmp;
   }
}</pre>
<p>If putIfAbsent returns null, then I know nobody has created a version concurrently.  If it doesn&#8217;t return null, then I know somebody has initialized this entry concurrently.  In that case, I cleanup the created value, and return the one already in the registry.  This looks a lot like the double-check-nono, but it actually isn&#8217;t as ConcurrentHashMap performs the putIfAbsent atomically.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/100/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/100/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=100&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/03/13/reliable-concurrent-initialization/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RESTFul XML content negotiation</title>
		<link>http://bill.burkecentral.com/2008/03/05/restful-xml-content-negotitation/</link>
		<comments>http://bill.burkecentral.com/2008/03/05/restful-xml-content-negotitation/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 23:07:33 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[REST]]></category>

		<category><![CDATA[Webservices]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=99</guid>
		<description><![CDATA[I&#8217;ve been playing around a little bit with the idea of creating a RESTFul MOM/ESB where the client requests a specific format and the server transforms the content if it can.  For an ESB, this usecase would normally turn up for various XML-based messages and documents.  The client would request an XML document [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been playing around a little bit with the idea of creating a RESTFul MOM/ESB where the client requests a specific format and the server transforms the content if it can.  For an ESB, this usecase would normally turn up for various XML-based messages and documents.  The client would request an XML document of a certain schema and the ESB would return that format, performing a transformation if applicable.</p>
<p>For a RESTFul ESB, I&#8217;d want to use <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec12.html">HTTP content negotiation</a>.  The problem is, AFAIK, there is no standard MIME type, other than &#8220;application/xml&#8221;, that allows you to specify an XML format with schema information.  Being a REST noob, I emailed my friend <a href="http://steve.vinoski.net/blog/">Steve</a>, a REST enthusiast, and asked him if it would be ok to embed schema information into the media type.  My first thought was the media type would be:</p>
<pre>
application/myschema+xml</pre>
<p>Steve&#8217;s response was you can&#8217;t just make up a MIME type on your own and expect it to work well on the Internet without registering it.  At first I thought, what&#8217;s the big freakin deal?  But then I realized, what if you want to point your browser to a message in a remote RESTFul queue and just view its content?  If you use &#8220;application/myschema+xml&#8221; your browser ain&#8217;t gonna understand it.</p>
<p>So, I decided to do a search on &#8220;decentralized mime types&#8221; and came across a few blogs from <a href="http://www.innoq.com/blog/st/2008/02/decentralizing_media_types.html">Stefan Tilkov</a>, <a href="http://netzooid.com/blog/2008/02/07/why-a-restful-idl-is-an-oxymoron-and-what-we-really-need-instead/">Dan Diephouse</a>, and <a href="http://macstrac.blogspot.com/2007/11/atompub-services-and-auto-detecting.html">James Strachan</a>.  Here&#8217;s a summary (sorry if I left out anything)</p>
<p><b>Use AtomPub</b></p>
<p>One idea was to use <a href="http://bitworking.org/projects/atom/rfc5023.html">AtomPub</a> .  I don&#8217;t like this idea at all.  One, I just want to send a bloody XML document!  KISS baby KISS!  Second, if I&#8217;m going to use an envelope format, why not just use SOAP and WS-*? (no thanks).  This, IMO, sort of defeats one of the general principles of REST.</p>
<p><b>Define a new decentralized MIME type</b></p>
<p>The idea would be to define a decentralized MIME type like this:</p>
<pre>application/data-format;uri=http://mediatypes.example.com/foo/bar</pre>
<p>The uri would point to something like an RDDL document that defined the real format.  Beyond KISS, what I don&#8217;t like about this approach is that again, I have no way of pointing my browser (or some other generic client) at the resource and just viewing it.</p>
<p><b>Use MIME properties</b></p>
<p>I saved the best for last.  The final idea was to embed format information within MIME properties:</p>
<pre>
application/xml; schema="http:/..."

application/octet-stream; data-format=java</pre>
<p>Use a registered MIME type, but append extra format information as a MIME property.  I did a test on this with Firefox and Safari and it doesn&#8217;t screw up the viewing.  So for me, MIME properties it is!  I would be interested in links to other thoughts on this.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/99/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/99/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/99/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/99/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/99/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=99&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/03/05/restful-xml-content-negotitation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Resteasy Project: JAX-RS Restful Web Services implementation</title>
		<link>http://bill.burkecentral.com/2008/02/25/resteasy-project-jax-rs-restful-web-services-implementation/</link>
		<comments>http://bill.burkecentral.com/2008/02/25/resteasy-project-jax-rs-restful-web-services-implementation/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 19:48:29 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[REST]]></category>

		<category><![CDATA[Webservices]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[jboss]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=98</guid>
		<description><![CDATA[I&#8217;m pleased to announce the first beta release of the JBoss Resteasy JAX-RS implementation!
After about 4 months of on and off development, I finally have a working version of the new JSR-311, JAX-RS specification.  For those of you who don&#8217;t know, JSR-311 is a RESTFul Web Services implementation for Java and is slated to [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m pleased to announce the first beta release of the<a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=RESTeasyJAXRS"> JBoss Resteasy JAX-RS</a> implementation!</p>
<p>After about 4 months of on and off development, I finally have a working version of the new <a href="http://jsr311.dev.java.net/">JSR-311</a>, JAX-RS specification.  For those of you who don&#8217;t know, JSR-311 is a RESTFul Web Services implementation for Java and is slated to be included within Java EE 6.  The spec is still a bit of a moving target, but its still pretty useful.  Let me know what you think!</p>
<p><b>Features:</b></p>
<ul>
<li>JAX-RS implementation (almost full, still have a few minor things here and there)</li>
<li>Portable to any app-server/Tomcat that runs on JDK 5 or higher</li>
<li>EJB 3.0 and Spring integration</li>
<li> Client framework to make writing HTTP clients easy (JAX-RS only define server bindings)</li>
</ul>
<p><b>Where can I find out more?</b></p>
<p>All information, including where to download it, is available on our <a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=RESTeasyJAXRS">Resteasy WIKI</a>.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/98/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/98/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/98/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/98/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/98/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=98&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/02/25/resteasy-project-jax-rs-restful-web-services-implementation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maven would be cool if&#8230;</title>
		<link>http://bill.burkecentral.com/2008/02/22/maven-would-be-cool-if/</link>
		<comments>http://bill.burkecentral.com/2008/02/22/maven-would-be-cool-if/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 16:12:12 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=97</guid>
		<description><![CDATA[Maven would be cool if the plugins weren&#8217;t so god awful!  I mean, are these plugin developers idiots?  Do they even use their crap?  I just spent a good day trying to get the maven-ear-plugin to work only to give up and do an assembly, only to run into different problems there.  Beyond being totally [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Maven would be cool if the plugins weren&#8217;t so god awful!  I mean, are these plugin developers idiots?  Do they even use their crap?  I just spent a good day trying to get the maven-ear-plugin to work only to give up and do an assembly, only to run into different problems there.  Beyond being totally unintuitive, these specific plugins have horrible horrible documentation.  Add to this fact that the assembly plugin doesn&#8217;t even check its syntax.  For example, I had &lt;fileset&gt; and didn&#8217;t know why the stupid plugin wasn&#8217;t creating the fileset in the jar.  Well, its because I didn&#8217;t capitalize the &#8216;S&#8217;  &lt;fileSet&gt;.  Of course no error message.  I had to ditch maven-ear-plugin because it didn&#8217;t correctly put transitive dependencies in the directory I wanted automatically.</p>
<p>I just can&#8217;t believe people haven&#8217;t cleaned up this shit.  Are people really using Maven?   I WANT to like Maven, I WANT to use Maven.  Its too bad its so freakin painful.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/97/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/97/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=97&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/02/22/maven-would-be-cool-if/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Scannotation fix for /WEB-INF/classes</title>
		<link>http://bill.burkecentral.com/2008/02/14/scannotation-fix-for-web-infclasses/</link>
		<comments>http://bill.burkecentral.com/2008/02/14/scannotation-fix-for-web-infclasses/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 18:57:55 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[jboss]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=96</guid>
		<description><![CDATA[I have a confession.  I didn&#8217;t really test the code that allowed you to scan /WEB-INF/classes for my Scannotation project.  In the old code, if you run within Tomcat, you&#8217;ll get a &#8220;jndi:&#8221; protocol based URL that my code doesn&#8217;t understand yet how to scan
Instead, I obtain the URL by doing a ServletContext.getRealPath(&#8221;/WEB-INF/classes&#8221;).  Unfortunately, this [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I have a confession.  I didn&#8217;t really test the code that allowed you to scan /WEB-INF/classes for my <a href="http://billburke.wordpress.com/2008/01/14/scanning-java-annotations-at-runtime/">Scannotation project</a>.  In the old code, if you run within Tomcat, you&#8217;ll get a &#8220;jndi:&#8221; protocol based URL that my code doesn&#8217;t understand yet how to scan</p>
<p>Instead, I obtain the URL by doing a ServletContext.getRealPath(&#8221;/WEB-INF/classes&#8221;).  Unfortunately, this is not guaranteed to work by the specification, so, if you run into this problem, you&#8217;re gonna have to find another way to scan this directory portably.</p>
<p>I&#8217;ve released a <a href="https://sourceforge.net/project/showfiles.php?group_id=214374">version 1.02 of Scannotation</a> that has this RealPath fix along with a few other minor bug fixes I found while using the library.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/96/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/96/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=96&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/02/14/scannotation-fix-for-web-infclasses/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JBoss Unit Testing with Maven</title>
		<link>http://bill.burkecentral.com/2008/02/13/jboss-unit-testing-with-maven/</link>
		<comments>http://bill.burkecentral.com/2008/02/13/jboss-unit-testing-with-maven/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 21:00:34 +0000</pubDate>
		<dc:creator>billburke</dc:creator>
		
		<category><![CDATA[jboss]]></category>

		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://billburke.wordpress.com/?p=95</guid>
		<description><![CDATA[Recently, I had the need to do some JBoss integration testing in a Maven environment.  I had to piece together how to do this and couldn&#8217;t find one reference point that just gave me all the maven XML I had to cut/paste.  So, I thought I&#8217;d log it here for others to reference. [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently, I had the need to do some JBoss integration testing in a Maven environment.  I had to piece together how to do this and couldn&#8217;t find one reference point that just gave me all the maven XML I had to cut/paste.  So, I thought I&#8217;d log it here for others to reference. First of all, in your src/test/resources directory you need a jndi.properties file:</p>
<pre>java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099</pre>
<p>This isn&#8217;t used by any of the maven plugins i&#8217;m going to show you, but you will need it in your test code if you want to connect at all with JBoss.  Next, here&#8217;s the build fragment of what you need in your pom.xml</p>
<pre>   &lt;build&gt;
      &lt;finalName&gt;jsr311-war&lt;/finalName&gt;
      &lt;plugins&gt;
         &lt;plugin&gt;
            &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
            &lt;artifactId&gt;jboss-maven-plugin&lt;/artifactId&gt;
            &lt;configuration&gt;
               &lt;jbossHome&gt;/Users/billburke/jboss/jboss-4.2.2.GA&lt;/jbossHome&gt;
            &lt;/configuration&gt;
            &lt;executions&gt;
               &lt;execution&gt;
                  &lt;id&gt;jboss-deploy&lt;/id&gt;
                  &lt;phase&gt;pre-integration-test&lt;/phase&gt;
                  &lt;goals&gt;
                     &lt;goal&gt;deploy&lt;/goal&gt;
                  &lt;/goals&gt;
                  &lt;configuration&gt;
                     &lt;fileName&gt;${basedir}/target/jsr311-war.war&lt;/fileName&gt;
                  &lt;/configuration&gt;
               &lt;/execution&gt;
               &lt;execution&gt;
                  &lt;id&gt;jboss-undeploy&lt;/id&gt;
                  &lt;phase&gt;post-integration-test&lt;/phase&gt;
                  &lt;goals&gt;
                     &lt;goal&gt;undeploy&lt;/goal&gt;
                  &lt;/goals&gt;
                  &lt;configuration&gt;
                     &lt;fileName&gt;${basedir}/target/jsr311-war.war&lt;/fileName&gt;
                  &lt;/configuration&gt;
               &lt;/execution&gt;
            &lt;/executions&gt;
         &lt;/plugin&gt;
         &lt;plugin&gt;
            &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
            &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
            &lt;configuration&gt;
               &lt;skip&gt;true&lt;/skip&gt;
            &lt;/configuration&gt;
            &lt;executions&gt;
               &lt;execution&gt;
                  &lt;id&gt;surefire-it&lt;/id&gt;
                  &lt;phase&gt;integration-test&lt;/phase&gt;
                  &lt;goals&gt;
                     &lt;goal&gt;test&lt;/goal&gt;
                  &lt;/goals&gt;
                  &lt;configuration&gt;
                     &lt;skip&gt;false&lt;/skip&gt;
                  &lt;/configuration&gt;
               &lt;/execution&gt;
            &lt;/executions&gt;
         &lt;/plugin&gt; ...
      &lt;/plugins&gt;
   &lt;/build&gt;</pre>
<p>First things first, is to use the <a href="http://mojo.codehaus.org/jboss-maven-plugin/">Mojo JBoss plugin</a>.  This allows you to deploy/undeploy to JBoss.  You must configure it to point to the JBoss home directory.  I have it hardcoded, but you should use an environment variable.  There are two executions that are run.  One deploys a file I have in my projects target directory, the other undeploys it.  These must run in the pre-integration-test phase and post-integration-test phase.</p>
<p>The next blob of XML deals with the Surefire test framework.  Surefire will try to run tests before you have packaged and deployed your target archive.  This is because in Maven&#8217;s lifecycle, testing comes before packaging and Surefire is automatically bound to run tests in the &#8220;test&#8221; phase.  We turn this off and instead tell Surefire to run during the &#8220;integration-test&#8221; phase after our archive has been packaged and deployed to JBoss.</p>
<p>The mojo plugin also allows you to start and stop jboss.  I could not get this to work with JBoss 4.2.2.  Since I prefer to run JBoss manually when integration testing anyways, I was too lazy to investigate further.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/billburke.wordpress.com/95/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/billburke.wordpress.com/95/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/billburke.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/billburke.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/billburke.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/billburke.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/billburke.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/billburke.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/billburke.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/billburke.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/billburke.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/billburke.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bill.burkecentral.com&blog=1411127&post=95&subd=billburke&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://bill.burkecentral.com/2008/02/13/jboss-unit-testing-with-maven/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>