<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xml" href="http://www.dzone.com/links/misc/rss.xsl"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dz="http://www.developerzone.com/modules/dz/1.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>DZone links by Jakob Jenkov</title>
    <link>http://www.dzone.com/links/users/links/131196.html</link>
    <description>DZone: fresh links for developers</description>
    <language>en-us</language>
    <copyright>Copyright (c) 2006 DZone, Inc.</copyright>
    <pubDate>Thu, 21 Aug 2008 22:56:00 GMT</pubDate>
    <dc:creator>The DZone community</dc:creator>
    <dc:date>2008-08-21T22:56:00Z</dc:date>
    <dc:language>en-us</dc:language>
    <dc:rights>Copyright (c) 2006 DZone, Inc.</dc:rights>
    <dz:selfLink>http://www.dzone.com/links/feed/user/131196/rss.xml</dz:selfLink>
    <image>
      <title>DZone: fresh links for developers</title>
      <url>http://www.dzone.com/images/std/dzone.com_258x55.gif</url>
      <link>http://www.dzone.com/links/</link>
    </image>
    <item>
      <title>Java Persistence - DAO Manager</title>
      <link>http://www.dzone.com/links/rss/java_persistence_dao_manager.html</link>
      <description>The DAO Manager is a solution to some of the DAO design problems developers often run into when designing DAO layers. It is similar in effect to declarative transaction demarcation, but works for connection life spans too. It can also help you do lazy connection opening, so connections are opened as late as posible, even when using dependency injection. In addition it serves as a single point of access for all your DAO's in your application.</description>
      <category>database</category>
      <category>frameworks</category>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Thu, 31 Jul 2008 14:03:11 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/99648.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-07-31T14:03:11Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_persistence_dao_manager.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/99648.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> The DAO Manager is a solution to some of the DAO design problems developers often run into when designing DAO layers. It is similar in effect to declarative transaction demarcation, but works for connection life spans too. It can also help you do lazy connection opening, so connections are opened as late as posible, even when using dependency injection. In addition it serves as a single point of access for all your DAO's in your application.]]></content:encoded>
      <dz:linkId>99648</dz:linkId>
      <dz:submitDate>2008-07-31T08:33:14Z</dz:submitDate>
      <dz:promoteDate>2008-07-31T14:03:11Z</dz:promoteDate>
      <dz:voteUpCount>6</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>347</dz:clickCount>
      <dz:commentCount>4</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/99648.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Butterfly Persistence 5.0.0 (AKA Mr Persister G2)</title>
      <link>http://www.dzone.com/links/rss/butterfly_persistence_500_aka_mr_persister_g2.html</link>
      <description>Butterfly Persistence is a cleaned up version of Mr Persister 4.0.0 which has been out since 2004, and had more than 5000 downloads. Butterfly Persistence is a simple Java persistence API that makes trivial JDBC tasks much easier... more advanced than Spring JDBC templates.</description>
      <category>database</category>
      <category>frameworks</category>
      <category>java</category>
      <category>open source</category>
      <pubDate>Thu, 31 Jul 2008 07:19:24 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/99482.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-07-31T07:19:24Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/butterfly_persistence_500_aka_mr_persister_g2.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/99482.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> Butterfly Persistence is a cleaned up version of Mr Persister 4.0.0 which has been out since 2004, and had more than 5000 downloads. Butterfly Persistence is a simple Java persistence API that makes trivial JDBC tasks much easier... more advanced than Spring JDBC templates.]]></content:encoded>
      <dz:linkId>99482</dz:linkId>
      <dz:submitDate>2008-07-30T17:54:00Z</dz:submitDate>
      <dz:promoteDate>2008-07-31T07:19:24Z</dz:promoteDate>
      <dz:voteUpCount>6</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>167</dz:clickCount>
      <dz:commentCount>4</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/99482.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>DAO Design Problems</title>
      <link>http://www.dzone.com/links/rss/dao_design_problems.html</link>
      <description>The Data Access Object (DAO) pattern is now a widely accepted mechanism to abstract away the details of persistence in an application. In practice however, it itsn't always that easy to make your DAO's fully hide the underlying persistence layer. For instance, when a transaction span calls to multiple DAO's, where do you put the transaction demarcation code? This text will take a closer look at this and other problems and their solutions.</description>
      <category>database</category>
      <category>frameworks</category>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Wed, 30 Jul 2008 09:41:30 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/99272.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-07-30T09:41:30Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/dao_design_problems.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/99272.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> The Data Access Object (DAO) pattern is now a widely accepted mechanism to abstract away the details of persistence in an application. In practice however, it itsn't always that easy to make your DAO's fully hide the underlying persistence layer. For instance, when a transaction span calls to multiple DAO's, where do you put the transaction demarcation code? This text will take a closer look at this and other problems and their solutions.]]></content:encoded>
      <dz:linkId>99272</dz:linkId>
      <dz:submitDate>2008-07-30T05:16:50Z</dz:submitDate>
      <dz:promoteDate>2008-07-30T09:41:30Z</dz:promoteDate>
      <dz:voteUpCount>20</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>625</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/99272.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Concurrency - Anatomy of a Synchronizer</title>
      <link>http://www.dzone.com/links/rss/java_concurrency_anatomy_of_a_synchronizer.html</link>
      <description>Text no 21 in the Java Concurency series analyzes the design traits&#xD;
that most synchronizers (locks, semaphores, blocking queues etc.) have in common.&#xD;
Knowing these traits can be useful when implementing custom synchronizers,&#xD;
as these will most likely contain the same basic parts as most other synchronizers.</description>
      <category>how-to</category>
      <category>java</category>
      <category>research</category>
      <pubDate>Wed, 09 Jul 2008 11:14:42 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/93616.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-07-09T11:14:42Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_concurrency_anatomy_of_a_synchronizer.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/93616.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> Text no 21 in the Java Concurency series analyzes the design traits
that most synchronizers (locks, semaphores, blocking queues etc.) have in common.
Knowing these traits can be useful when implementing custom synchronizers,
as these will most likely contain the same basic parts as most other synchronizers.]]></content:encoded>
      <dz:linkId>93616</dz:linkId>
      <dz:submitDate>2008-07-09T10:11:14Z</dz:submitDate>
      <dz:promoteDate>2008-07-09T11:14:42Z</dz:promoteDate>
      <dz:voteUpCount>11</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>309</dz:clickCount>
      <dz:commentCount>2</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/93616.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Multithreaded Servers - Thread Pooled Server</title>
      <link>http://www.dzone.com/links/rss/java_multithreaded_servers_thread_pooled_server.html</link>
      <description>This is text no. 4 in a series on multithreaded servers in Java. This text describes&#xD;
a thread pooled server design. Earlier designs shown in this trail are a singlethreaded&#xD;
and a thread-per-connection design. The series will get more server designs in the&#xD;
future.</description>
      <category>how-to</category>
      <category>java</category>
      <category>server</category>
      <pubDate>Fri, 04 Jul 2008 06:57:29 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/92337.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-07-04T06:57:29Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_multithreaded_servers_thread_pooled_server.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/92337.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This is text no. 4 in a series on multithreaded servers in Java. This text describes
a thread pooled server design. Earlier designs shown in this trail are a singlethreaded
and a thread-per-connection design. The series will get more server designs in the
future.]]></content:encoded>
      <dz:linkId>92337</dz:linkId>
      <dz:submitDate>2008-07-03T15:55:49Z</dz:submitDate>
      <dz:promoteDate>2008-07-04T06:57:29Z</dz:promoteDate>
      <dz:voteUpCount>11</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>328</dz:clickCount>
      <dz:commentCount>3</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/92337.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Multithreaded Server in Java</title>
      <link>http://www.dzone.com/links/rss/multithreaded_server_in_java.html</link>
      <description>This is text no. 3 in a series on implementing multithreaded servers in Java. So far the trail discusses a singlethreaded and a simple multithreaded server design. The material covered is still basic, but the trail is growing and soon several more designs will be covered.</description>
      <category>how-to</category>
      <category>java</category>
      <category>server</category>
      <pubDate>Thu, 03 Jul 2008 00:23:54 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/92086.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-07-03T00:23:54Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/multithreaded_server_in_java.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/92086.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This is text no. 3 in a series on implementing multithreaded servers in Java. So far the trail discusses a singlethreaded and a simple multithreaded server design. The material covered is still basic, but the trail is growing and soon several more designs will be covered.]]></content:encoded>
      <dz:linkId>92086</dz:linkId>
      <dz:submitDate>2008-07-02T17:35:08Z</dz:submitDate>
      <dz:promoteDate>2008-07-03T00:23:54Z</dz:promoteDate>
      <dz:voteUpCount>11</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>480</dz:clickCount>
      <dz:commentCount>4</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/92086.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Concurrency - Locks</title>
      <link>http://www.dzone.com/links/rss/java_concurrency_locks.html</link>
      <description>This text is no. 14 in a series on Java Concurrency. It covers how to implement and use custom thread locks in Java. It also covers lock reentrance. Even if Java 5 includes several lock implementations it can still be useful to know the theory behind their implementation.</description>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Thu, 05 Jun 2008 13:56:25 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/85289.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-06-05T13:56:25Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_concurrency_locks.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/85289.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This text is no. 14 in a series on Java Concurrency. It covers how to implement and use custom thread locks in Java. It also covers lock reentrance. Even if Java 5 includes several lock implementations it can still be useful to know the theory behind their implementation.]]></content:encoded>
      <dz:linkId>85289</dz:linkId>
      <dz:submitDate>2008-06-05T09:15:13Z</dz:submitDate>
      <dz:promoteDate>2008-06-05T13:56:25Z</dz:promoteDate>
      <dz:voteUpCount>14</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>244</dz:clickCount>
      <dz:commentCount>1</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/85289.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Concurrency - Slipped Conditions</title>
      <link>http://www.dzone.com/links/rss/java_concurrency_slipped_conditions.html</link>
      <description>This text is no. 13 in a series on Java Concurrency. It explains the problem of slipped conditions, how it may occur in Java, and shows a few hints to what you can do to avoid it.</description>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Tue, 03 Jun 2008 17:43:47 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/84744.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-06-03T17:43:47Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_concurrency_slipped_conditions.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/84744.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This text is no. 13 in a series on Java Concurrency. It explains the problem of slipped conditions, how it may occur in Java, and shows a few hints to what you can do to avoid it.]]></content:encoded>
      <dz:linkId>84744</dz:linkId>
      <dz:submitDate>2008-06-03T13:54:27Z</dz:submitDate>
      <dz:promoteDate>2008-06-03T17:43:47Z</dz:promoteDate>
      <dz:voteUpCount>19</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>288</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/84744.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Concurrency - Nested Monitor Lockout</title>
      <link>http://www.dzone.com/links/rss/java_concurrency_nested_monitor_lockout.html</link>
      <description>This text is no. 12 in a series on Java Concurrency. It explains what Nested Monitor Lockout is, how it can occur in Java, and what you can do to avoid it.</description>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Mon, 02 Jun 2008 15:29:24 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/84414.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-06-02T15:29:24Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_concurrency_nested_monitor_lockout.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/84414.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This text is no. 12 in a series on Java Concurrency. It explains what Nested Monitor Lockout is, how it can occur in Java, and what you can do to avoid it.]]></content:encoded>
      <dz:linkId>84414</dz:linkId>
      <dz:submitDate>2008-06-02T09:26:06Z</dz:submitDate>
      <dz:promoteDate>2008-06-02T15:29:24Z</dz:promoteDate>
      <dz:voteUpCount>10</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>265</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/84414.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Concurrency - Starvation and Fairness</title>
      <link>http://www.dzone.com/links/rss/java_concurrency_starvation_and_fairness.html</link>
      <description>This text is no. 11 in a series on Java Concurrency. This text decribes what starvation of threads is, how it can happen in Java, and what you can do to decrease the probability of starvation happening. In other words, what you can do to implement fairness.</description>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Tue, 20 May 2008 00:01:01 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/81671.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-05-20T00:01:01Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_concurrency_starvation_and_fairness.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/81671.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This text is no. 11 in a series on Java Concurrency. This text decribes what starvation of threads is, how it can happen in Java, and what you can do to decrease the probability of starvation happening. In other words, what you can do to implement fairness.]]></content:encoded>
      <dz:linkId>81671</dz:linkId>
      <dz:submitDate>2008-05-19T09:59:28Z</dz:submitDate>
      <dz:promoteDate>2008-05-20T00:01:01Z</dz:promoteDate>
      <dz:voteUpCount>9</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>433</dz:clickCount>
      <dz:commentCount>2</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/81671.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Butterfly Container 2.2.0</title>
      <link>http://www.dzone.com/links/rss/butterfly_container_220.html</link>
      <description>This is the announcement of Butterfly Container 2.2.0 - an attempt to create a very small DI container without sacrificing any advanced functionality.</description>
      <category>frameworks</category>
      <category>how-to</category>
      <category>java</category>
      <category>news</category>
      <pubDate>Tue, 13 May 2008 22:35:03 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/80748.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-05-13T22:35:03Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/butterfly_container_220.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/80748.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This is the announcement of Butterfly Container 2.2.0 - an attempt to create a very small DI container without sacrificing any advanced functionality.]]></content:encoded>
      <dz:linkId>80748</dz:linkId>
      <dz:submitDate>2008-05-13T11:56:09Z</dz:submitDate>
      <dz:promoteDate>2008-05-13T22:35:03Z</dz:promoteDate>
      <dz:voteUpCount>8</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>257</dz:clickCount>
      <dz:commentCount>2</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/80748.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Concurrency - Thread Signaling</title>
      <link>http://www.dzone.com/links/rss/java_concurrency_thread_signaling.html</link>
      <description>This text is no. 10 in a series on Java concurrency. This text describes how threads can send signals to each other, and wait for each other's signals, using wait(), notify(), and notifyAll(). The text also describes the problems of busy wait, missed signals and spurious wakups, and prescribes solutions to these problems.</description>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Wed, 07 May 2008 18:29:03 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/79670.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-05-07T18:29:03Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_concurrency_thread_signaling.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/79670.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This text is no. 10 in a series on Java concurrency. This text describes how threads can send signals to each other, and wait for each other's signals, using wait(), notify(), and notifyAll(). The text also describes the problems of busy wait, missed signals and spurious wakups, and prescribes solutions to these problems.]]></content:encoded>
      <dz:linkId>79670</dz:linkId>
      <dz:submitDate>2008-05-07T06:47:02Z</dz:submitDate>
      <dz:promoteDate>2008-05-07T18:29:03Z</dz:promoteDate>
      <dz:voteUpCount>15</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>621</dz:clickCount>
      <dz:commentCount>5</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/79670.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Exception Handling: Checked or Unchecked Exceptions?</title>
      <link>http://www.dzone.com/links/rss/java_exception_handling_checked_or_unchecked_exce.html</link>
      <description>This text discusses the differences between checked and unchecked exceptions in Java, and argues that unchecked exceptions are often a cleaner alternative. The text finishes with references to Anders Hejlsberg (creator of C#) and James Goslings (creator of Java)'s interviews on the subject at artima.com</description>
      <category>.net</category>
      <category>how-to</category>
      <category>java</category>
      <category>trends</category>
      <pubDate>Tue, 06 May 2008 11:28:02 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/79326.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-05-06T11:28:02Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_exception_handling_checked_or_unchecked_exce.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/79326.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This text discusses the differences between checked and unchecked exceptions in Java, and argues that unchecked exceptions are often a cleaner alternative. The text finishes with references to Anders Hejlsberg (creator of C#) and James Goslings (creator of Java)'s interviews on the subject at artima.com]]></content:encoded>
      <dz:linkId>79326</dz:linkId>
      <dz:submitDate>2008-05-05T13:27:40Z</dz:submitDate>
      <dz:promoteDate>2008-05-06T11:28:02Z</dz:promoteDate>
      <dz:voteUpCount>10</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>570</dz:clickCount>
      <dz:commentCount>14</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/79326.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Deadlock Prevention</title>
      <link>http://www.dzone.com/links/rss/deadlock_prevention.html</link>
      <description>This text is no. 9 in a series of texts on Java concurrency. This text describes 3 deadlock prevention methods: Lock ordering, lock time out, and deadlock detection. Though the text does not show implementations (later texts in this trail may do so), the discussion should be enough to give the reader an idea of a few ways deadlocks can be prevented.</description>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Wed, 23 Apr 2008 06:25:39 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/76896.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-04-23T06:25:39Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/deadlock_prevention.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/76896.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This text is no. 9 in a series of texts on Java concurrency. This text describes 3 deadlock prevention methods: Lock ordering, lock time out, and deadlock detection. Though the text does not show implementations (later texts in this trail may do so), the discussion should be enough to give the reader an idea of a few ways deadlocks can be prevented.]]></content:encoded>
      <dz:linkId>76896</dz:linkId>
      <dz:submitDate>2008-04-21T15:26:09Z</dz:submitDate>
      <dz:promoteDate>2008-04-23T06:25:39Z</dz:promoteDate>
      <dz:voteUpCount>14</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>383</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/76896.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Butterfly Container (and Guice) - Performance</title>
      <link>http://www.dzone.com/links/rss/butterfly_container_and_guice_performance.html</link>
      <description>How much overhead does a dependency injection container add compared to instantiation via 'new' or&#xD;
plain reflection? This performance test measures the overhead of Butterfly Container and compares it to Google Guice.&#xD;
It seems as if Butterfly Container can get as low as 30% overhead. It also seems as if Butterfly Container has a factor 2 to 4 performance advantage over Guice.</description>
      <category>frameworks</category>
      <category>java</category>
      <category>open source</category>
      <pubDate>Tue, 19 Feb 2008 21:36:50 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/67062.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-02-19T21:36:50Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/butterfly_container_and_guice_performance.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/67062.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> How much overhead does a dependency injection container add compared to instantiation via 'new' or
plain reflection? This performance test measures the overhead of Butterfly Container and compares it to Google Guice.
It seems as if Butterfly Container can get as low as 30% overhead. It also seems as if Butterfly Container has a factor 2 to 4 performance advantage over Guice.]]></content:encoded>
      <dz:linkId>67062</dz:linkId>
      <dz:submitDate>2008-02-19T21:36:50Z</dz:submitDate>
      <dz:voteUpCount>2</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>36</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/67062.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Type Safety when using Butterfly Container (or Spring XML)</title>
      <link>http://www.dzone.com/links/rss/type_safety_when_using_butterfly_container_or_spr.html</link>
      <description>Does Spring XML / Groovy Builder and Butterfly Container Script really sacrifice type safety? This text in the Butterfly Container documentation discusses this topic. What is your opinion?</description>
      <category>frameworks</category>
      <category>java</category>
      <category>open source</category>
      <category>opinion</category>
      <pubDate>Tue, 19 Feb 2008 21:28:17 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/67061.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-02-19T21:28:17Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/type_safety_when_using_butterfly_container_or_spr.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/67061.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> Does Spring XML / Groovy Builder and Butterfly Container Script really sacrifice type safety? This text in the Butterfly Container documentation discusses this topic. What is your opinion?]]></content:encoded>
      <dz:linkId>67061</dz:linkId>
      <dz:submitDate>2008-02-19T21:28:17Z</dz:submitDate>
      <dz:voteUpCount>3</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>20</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/67061.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Exception Enrichment in Java</title>
      <link>http://www.dzone.com/links/rss/exception_enrichment_in_java.html</link>
      <description>Exception enrichment is an exception handling technique which solves the problems of the long stack traces of exception wrapping. Rather than wrap caught exceptions, the original exception is rethrown with some extra context information added. This technique also provides a method to achieve truly unique error codes in an application,  making it possible to distinguish exceptions thrown from the same piece of code, but called from different contexts.</description>
      <category>how-to</category>
      <category>java</category>
      <pubDate>Thu, 14 Feb 2008 14:41:11 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/66274.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2008-02-14T14:41:11Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/exception_enrichment_in_java.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/66274.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> Exception enrichment is an exception handling technique which solves the problems of the long stack traces of exception wrapping. Rather than wrap caught exceptions, the original exception is rethrown with some extra context information added. This technique also provides a method to achieve truly unique error codes in an application,  making it possible to distinguish exceptions thrown from the same piece of code, but called from different contexts.]]></content:encoded>
      <dz:linkId>66274</dz:linkId>
      <dz:submitDate>2008-02-14T09:10:35Z</dz:submitDate>
      <dz:promoteDate>2008-02-14T14:41:11Z</dz:promoteDate>
      <dz:voteUpCount>18</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>649</dz:clickCount>
      <dz:commentCount>9</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/66274.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Exception Handling Templates</title>
      <link>http://www.dzone.com/links/rss/java_exception_handling_templates.html</link>
      <description>This new article in the Java Exception Handling trail explains how exception handling code can be encapsulated inside a template, which can be reused again and again throughout your application. This means less to worry about, less bugs, and less code to write afterwards. &#xD;
&#xD;
Frameworks like Spring use Templates all the time. Learn to use them effectively yourself.</description>
      <category>eclipse</category>
      <category>java</category>
      <pubDate>Fri, 07 Dec 2007 10:07:11 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/56034.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2007-12-07T10:07:11Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_exception_handling_templates.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/56034.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This new article in the Java Exception Handling trail explains how exception handling code can be encapsulated inside a template, which can be reused again and again throughout your application. This means less to worry about, less bugs, and less code to write afterwards. 

Frameworks like Spring use Templates all the time. Learn to use them effectively yourself.]]></content:encoded>
      <dz:linkId>56034</dz:linkId>
      <dz:submitDate>2007-12-05T20:16:30Z</dz:submitDate>
      <dz:promoteDate>2007-12-07T10:07:11Z</dz:promoteDate>
      <dz:voteUpCount>19</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>1106</dz:clickCount>
      <dz:commentCount>6</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/56034.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
    <item>
      <title>Java Exception Handling Trail</title>
      <link>http://www.dzone.com/links/rss/java_exception_handling_trail.html</link>
      <description>This trail is a tutorial about Java Exception Handling, and currently contains about 9 texts. In the future more texts will be added about for instance exception handling templates, exception enrichment ect. In other words, everything exception handling related.</description>
      <category>java</category>
      <pubDate>Wed, 28 Nov 2007 17:47:48 GMT</pubDate>
      <guid isPermaLink="false">http://www.dzone.com/links/55010.html</guid>
      <dc:creator>Jakob Jenkov</dc:creator>
      <dc:date>2007-11-28T17:47:48Z</dc:date>
      <content:encoded><![CDATA[<a href='http://www.dzone.com/links/rss/java_exception_handling_trail.html'><img src='http://www.dzone.com/links/images/thumbs/120x90/55010.jpg' style='width:120;height:90;margin:6;float:left;vertical-align:top;border:1px solid #ccc;' /></a> This trail is a tutorial about Java Exception Handling, and currently contains about 9 texts. In the future more texts will be added about for instance exception handling templates, exception enrichment ect. In other words, everything exception handling related.]]></content:encoded>
      <dz:linkId>55010</dz:linkId>
      <dz:submitDate>2007-11-28T17:47:48Z</dz:submitDate>
      <dz:voteUpCount>3</dz:voteUpCount>
      <dz:voteDownCount>0</dz:voteDownCount>
      <dz:clickCount>61</dz:clickCount>
      <dz:commentCount>0</dz:commentCount>
      <dz:thumbnail>http://www.dzone.com/links/images/thumbs/120x90/55010.jpg</dz:thumbnail>
      <dz:submitter>
        <dz:username>jj83777</dz:username>
        <dz:userimage>http://www.dzone.com/links/images/avatars/131196.gif</dz:userimage>
      </dz:submitter>
    </item>
  </channel>
</rss>

