<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEEMRnc6fip7ImA9WhBREU0.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930</id><updated>2013-03-01T03:58:07.916+01:00</updated><category term="Swing" /><category term="Hibernate" /><category term="Common" /><category term="Best Practice" /><category term="Spring" /><category term="Tutorial" /><category term="Maven" /><category term="Eclipse" /><category term="Testing" /><category term="Pattern" /><title>Benjamin Winterberg</title><subtitle type="html">The Technical Blog</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://bwinterberg.blogspot.com/" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/TechnicalSolutions" /><feedburner:info uri="technicalsolutions" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>TechnicalSolutions</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/TechnicalSolutions" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FTechnicalSolutions" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><entry gd:etag="W/&quot;DU4FRH8-eip7ImA9WxNXF04.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-4998732393020934676</id><published>2009-10-05T11:22:00.002+02:00</published><updated>2009-10-05T12:18:35.152+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-05T12:18:35.152+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>How to Customize the Eclipse Outline</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/4998732393020934676/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=4998732393020934676" title="43 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/4998732393020934676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/4998732393020934676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/SyNjrDQFLQg/customize-eclipse-outline.html" title="How to Customize the Eclipse Outline" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>43</thr:total><content type="html">What's your first action after opening an unknown class file with the Eclipse IDE? I for myself first inspect the Outline view to get a general idea about the involved members and methods. It's totally crucial to me to optimize the contents of the Outline view, thus minimizing the time to getting started with unknown sourcecode. Let's take a look how to improve the Outline view.


Modifying the &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=SyNjrDQFLQg:Vuj_GtPqnr8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=SyNjrDQFLQg:Vuj_GtPqnr8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=SyNjrDQFLQg:Vuj_GtPqnr8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/SyNjrDQFLQg" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/10/customize-eclipse-outline.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEEQ3c9eCp7ImA9WxNXFE0.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-7220473701726313645</id><published>2009-10-01T15:36:00.001+02:00</published><updated>2009-10-01T15:43:22.960+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-01T15:43:22.960+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Spring" /><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate" /><title>How to log Hibernate Cache Hits</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/7220473701726313645/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=7220473701726313645" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/7220473701726313645?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/7220473701726313645?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/wOH7fp0P05I/how-to-log-hibernate-cache-hits.html" title="How to log Hibernate Cache Hits" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>3</thr:total><content type="html">Hibernate enables you to improve the performance of your application by using second-level caching. What does this mean? The second-level cache is capable of caching hibernate entities even when the hibernate session closes.
Before loading an entity from the database the session first checks if the entity has already been cached. This can greatly reduce the number of database accesses and thus &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=wOH7fp0P05I:WTZUeMHUFfw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=wOH7fp0P05I:WTZUeMHUFfw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=wOH7fp0P05I:WTZUeMHUFfw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/wOH7fp0P05I" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/10/how-to-log-hibernate-cache-hits.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4DQXkyfSp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-3615032006864851171</id><published>2009-09-25T14:54:00.017+02:00</published><updated>2009-09-30T12:02:50.795+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T12:02:50.795+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>5 Tips for Customizing Eclipse</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/3615032006864851171/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=3615032006864851171" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/3615032006864851171?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/3615032006864851171?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/Uq9JAcc5CRs/eclipse-tips-hints.html" title="5 Tips for Customizing Eclipse" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>2</thr:total><content type="html">The Eclipse IDE not only is one of the most popular IDEs. It's also a very complex tool with countless features and commands. Knowing most of these features is crucial for developers. The following articles contains five tips for customizing and tweaking the Eclipse IDE.



Customize your Perspectives and Views
The Eclipse workbench consists of different perspectives which can be switched via &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=Uq9JAcc5CRs:QfJ6MIcdtdc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=Uq9JAcc5CRs:QfJ6MIcdtdc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=Uq9JAcc5CRs:QfJ6MIcdtdc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/Uq9JAcc5CRs" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/09/eclipse-tips-hints.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMNRnczeCp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-5482520548834003971</id><published>2009-09-14T14:05:00.006+02:00</published><updated>2009-09-30T11:54:57.980+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:54:57.980+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><title>Introduction to Google Collections</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/5482520548834003971/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=5482520548834003971" title="20 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/5482520548834003971?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/5482520548834003971?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/QkictZKQnzE/introduction-to-google-collections.html" title="Introduction to Google Collections" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>20</thr:total><content type="html">Did you ever felt that working with the Java Collections Framework could be more elegant or efficient? Then you really should consider to use the Google Collections API. It's a great utility library every Java developer should know. Take the time to read this introduction to easily getting started with Google Collections.

The Google Collections Library 1.0 is a set of new collection types, &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=QkictZKQnzE:rz_9BYvDKPY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=QkictZKQnzE:rz_9BYvDKPY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=QkictZKQnzE:rz_9BYvDKPY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/QkictZKQnzE" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/09/introduction-to-google-collections.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIASX44eCp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-7827545831581765571</id><published>2009-09-02T11:17:00.011+02:00</published><updated>2009-09-30T11:55:48.030+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:55:48.030+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Pattern" /><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate" /><title>Hibernate Preload Pattern</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/7827545831581765571/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=7827545831581765571" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/7827545831581765571?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/7827545831581765571?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/GEBLUkryngc/hibernate-preload-pattern.html" title="Hibernate Preload Pattern" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>8</thr:total><content type="html">This article introduces an approach to preload certain relations in complex object graphs with Hibernate on a per-usecase basis. The intention is to prevent LazyInitializationExceptions during runtime and to reduce the N+1 SELECT problem while working with lazy relations. What does per-usecase mean in this context? The approach affords to easily decide which parts of an object graph are directly &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=GEBLUkryngc:WBgOi94kQfk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=GEBLUkryngc:WBgOi94kQfk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=GEBLUkryngc:WBgOi94kQfk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/GEBLUkryngc" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/09/hibernate-preload-pattern.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIDRn88cCp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-1349616876904296794</id><published>2009-08-28T08:51:00.021+02:00</published><updated>2009-09-30T11:56:17.178+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:56:17.178+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate" /><title>Hibernate 3.5 Beta1 with JPA 2.0 released</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/1349616876904296794/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=1349616876904296794" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/1349616876904296794?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/1349616876904296794?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/jHgvGkPAhoU/hibernate-35-beta1-released.html" title="Hibernate 3.5 Beta1 with JPA 2.0 released" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_MJIsWY4A1Ak/Spe32oyxt_I/AAAAAAAAABg/RgRFCi9OlLQ/s72-c/hibernate_icon.gif" height="72" width="72" /><thr:total>0</thr:total><content type="html">The first beta of Hibernate 3.5 with JPA 2.0 support has been released on Sourceforge. It's also available as maven2 artifact from the JBoss maven repository. As Steve Ebersole mentioned most of the APIs have already been implemented.



Some know limitations for this beta include:Some of the 'metamodel' APIs are still unimplemented, specifically differentiating between declared attributes and &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=jHgvGkPAhoU:ZL_7657u8Yg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=jHgvGkPAhoU:ZL_7657u8Yg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=jHgvGkPAhoU:ZL_7657u8Yg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/jHgvGkPAhoU" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/hibernate-35-beta1-released.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkINQnY6eSp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-2785019857206723093</id><published>2009-08-25T16:58:00.012+02:00</published><updated>2009-09-30T11:56:33.811+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:56:33.811+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Common" /><title>Great Code Navigation Plugin</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/2785019857206723093/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=2785019857206723093" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/2785019857206723093?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/2785019857206723093?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/mE7LSX3bBCw/great-code-navigation-plugin.html" title="Great Code Navigation Plugin" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_MJIsWY4A1Ak/SpPFGgDqPqI/AAAAAAAAABA/1_Kt7u5y3s4/s72-c/contest_logo.gif" height="72" width="72" /><thr:total>0</thr:total><content type="html">Code Navigator is an amazing award-winning plugin for IntelliJ IDEA. This tool makes graphical navigation in object-oriented code easy and comfortable.



Understanding other people's code or your own code in complex systems is a challenging problem in software development. This plugin supports developers in learning the dependencies and couplings in object oriented systems. Three major &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=mE7LSX3bBCw:S7ef5pe7XN4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=mE7LSX3bBCw:S7ef5pe7XN4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=mE7LSX3bBCw:S7ef5pe7XN4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/mE7LSX3bBCw" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/great-code-navigation-plugin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEFQX0_eip7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-4797941384349542646</id><published>2009-08-24T09:47:00.008+02:00</published><updated>2009-09-30T11:56:50.342+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:56:50.342+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>Optimize Eclipse in 5 Steps</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/4797941384349542646/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=4797941384349542646" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/4797941384349542646?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/4797941384349542646?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/TD0XRXe9KbI/optimize-eclipse-galileo.html" title="Optimize Eclipse in 5 Steps" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_MJIsWY4A1Ak/Spe5BwGWYvI/AAAAAAAAABo/C3P7BufJGYg/s72-c/eclipse.png" height="72" width="72" /><thr:total>7</thr:total><content type="html">As one of the most popular IDEs for developing Java applications, Eclipse can be adjusted with plenty of preferences. Here are my five favorite adjustments to tweak the Eclipse IDE. It works well with either the newest Eclipse Galileo or one of the older releases like Ganymede or Europa.



Improve performance by modifying startup arguments
Per default Eclipse starts with a low size of memory. &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=TD0XRXe9KbI:7-iz5PRX9ho:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=TD0XRXe9KbI:7-iz5PRX9ho:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=TD0XRXe9KbI:7-iz5PRX9ho:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/TD0XRXe9KbI" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/optimize-eclipse-galileo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEARHg7eip7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-6822203865496996297</id><published>2009-08-20T10:13:00.042+02:00</published><updated>2009-09-30T11:57:25.602+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:57:25.602+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Best Practice" /><title>Building equals(), hashCode(), compareTo() and toString() with ease</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/6822203865496996297/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=6822203865496996297" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/6822203865496996297?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/6822203865496996297?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/DzEGj8oW4n4/building-equals-hashcode-compareto-and.html" title="Building equals(), hashCode(), compareTo() and toString() with ease" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>5</thr:total><content type="html">Implementing equals(), hashCode(), compareTo() and toString() is a common task for java programmers. If you're unfamiliar with this topic, check out Joshua Blochs best practices on how to override hashCode().
Modern IDEs like Eclipse offer commands to auto-generate these methods for particular classes. While this is ok in terms of time saving, the generated code is verbose and therefor hardly &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=DzEGj8oW4n4:0WtwlvPAVPY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=DzEGj8oW4n4:0WtwlvPAVPY:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=DzEGj8oW4n4:0WtwlvPAVPY:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/DzEGj8oW4n4" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/building-equals-hashcode-compareto-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEMRng-cCp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-7947175668025864547</id><published>2009-08-18T09:01:00.073+02:00</published><updated>2009-09-30T11:58:07.658+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:58:07.658+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Testing" /><title>Introduction to JMockit</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/7947175668025864547/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=7947175668025864547" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/7947175668025864547?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/7947175668025864547?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/8uHBZ_gaTHE/unittests-with-jmockit.html" title="Introduction to JMockit" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>4</thr:total><content type="html">Using mock-objects is crucial when it comes to unit-testing enterprise applications. Mocks prevent you from implicitly testing parts of your application many times. This not only leads to faster running times of the testsuites. It also improves time to find the cause of a bug on failure.
Let me introduce to you JMockit, a Java mocking library which integrates nicely with JUnit and TestNG. As an &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=8uHBZ_gaTHE:u2vJdi7AG18:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=8uHBZ_gaTHE:u2vJdi7AG18:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=8uHBZ_gaTHE:u2vJdi7AG18:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/8uHBZ_gaTHE" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/unittests-with-jmockit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAHSXo_fyp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-5125476274023607612</id><published>2009-08-17T08:18:00.023+02:00</published><updated>2009-09-30T11:58:58.447+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:58:58.447+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Pattern" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>Builder Pattern Code Generator for Eclipse</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/5125476274023607612/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=5125476274023607612" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/5125476274023607612?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/5125476274023607612?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/qIX5blXaiuc/builder-pattern-code-generator.html" title="Builder Pattern Code Generator for Eclipse" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>8</thr:total><content type="html">In his blog Lars started a series of articles about using the builder pattern (read here and here). He describes the main benefits of using this pattern for creating simple and complex data structures.
I'm asking myself: why is this pattern so rarely used? In my opinion this is due to the fact that it really bloats your code. I surely agree that the domain model classes are one of the most &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=qIX5blXaiuc:5h53laX4cgM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=qIX5blXaiuc:5h53laX4cgM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=qIX5blXaiuc:5h53laX4cgM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/qIX5blXaiuc" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/builder-pattern-code-generator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkABSXoyeSp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-1162633713346187357</id><published>2009-08-15T11:54:00.030+02:00</published><updated>2009-09-30T11:59:18.491+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T11:59:18.491+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate" /><title>Best way to avoid LazyInitializationException in Hibernate</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/1162633713346187357/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=1162633713346187357" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/1162633713346187357?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/1162633713346187357?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/skflMItO7rQ/how-to-eagerly-fetch-associations-with.html" title="Best way to avoid LazyInitializationException in Hibernate" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>6</thr:total><content type="html">Did you ever have to bother with LazyInitializationExceptions in hibernate? I'm sure you have. :) This famous exception occurs if you try to access any non-initialized assocation (or proxy) when the assigned hibernate session has already been closed.
There are many solutions for this problem, e.g. fetching the association directly via the hibernate query language. Think about a hibernate mapped &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=skflMItO7rQ:4s1-QRPM3PI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=skflMItO7rQ:4s1-QRPM3PI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=skflMItO7rQ:4s1-QRPM3PI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/skflMItO7rQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/how-to-eagerly-fetch-associations-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4AR3gzcCp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-3613685262944325403</id><published>2009-08-14T17:07:00.016+02:00</published><updated>2009-09-30T12:02:26.688+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T12:02:26.688+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate" /><title>How to query several columns with Hibernate?</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/3613685262944325403/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=3613685262944325403" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/3613685262944325403?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/3613685262944325403?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/XCTKjuEwGK4/how-to-query-several-properties-with.html" title="How to query several columns with Hibernate?" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>7</thr:total><content type="html">Even though Hibernate is called an object-relational mapper it's easy to select only a few properties instead of the whole mapped object. The hibernate query language (HQL) is very expressive. If you select some properties instead of the whole object, the call of Query#list() returns a list of object arrays. Each field of the array contains one of the selected properties.



select c.name, &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=XCTKjuEwGK4:QbgNM4mVo0U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=XCTKjuEwGK4:QbgNM4mVo0U:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=XCTKjuEwGK4:QbgNM4mVo0U:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/XCTKjuEwGK4" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/how-to-query-several-properties-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cGR348eyp7ImA9WxNSFk8.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-6871447504024316478</id><published>2009-08-14T15:49:00.008+02:00</published><updated>2009-08-30T10:30:26.073+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T10:30:26.073+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Testing" /><category scheme="http://www.blogger.com/atom/ns#" term="Maven" /><title>Import madness</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/6871447504024316478/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=6871447504024316478" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/6871447504024316478?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/6871447504024316478?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/Fb_QGg3rW7I/import-madness.html" title="Import madness" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>0</thr:total><content type="html">Do you know the intersection between the Google Collections API and TestNG? Both APIs contain a class Lists with two identical methods newArrayList(). No problem so far, but you should really pay attention which one to import. If you set up your project with Maven2 it's best practice to use the test scope on each test-specific dependency. That means wrongly importing org.testng.v6.Lists in &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=Fb_QGg3rW7I:tOR1GGBymLM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=Fb_QGg3rW7I:tOR1GGBymLM:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=Fb_QGg3rW7I:tOR1GGBymLM:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/Fb_QGg3rW7I" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/import-madness.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YFQH8yfip7ImA9WxNSEUw.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-9196344964581835443</id><published>2009-08-13T19:00:00.000+02:00</published><updated>2009-08-24T12:51:51.196+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-24T12:51:51.196+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>Top 10 Eclipse Shortcuts</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/9196344964581835443/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=9196344964581835443" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/9196344964581835443?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/9196344964581835443?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/FohCIspIrFM/eclipse-shortcuts.html" title="Top 10 Eclipse Shortcuts" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>4</thr:total><content type="html">Here are some of my most used keyboard shortcuts for the Eclipse IDE.Code Assist (CTRL + Space)Quick Fix (CTRL + 1)Refactoring (ALT + SHIFT + T)Source (ALT + SHIFT + S)Surround With (ALT + SHIFT + Z)Delete Rows (CTRL + D)Call Hierarchy (CTRL + ALT + H)Quick Type Hierarchy (CTRL + T)Quick Outline (CTRL + O)Show All Shortcuts (CTRL + SHIFT + L)&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=FohCIspIrFM:Y42t3YQJl8s:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=FohCIspIrFM:Y42t3YQJl8s:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=FohCIspIrFM:Y42t3YQJl8s:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/FohCIspIrFM" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/02/eclipse-shortcuts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8FQHczeyp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-4581170585559167747</id><published>2009-08-13T17:13:00.004+02:00</published><updated>2009-09-30T12:00:11.983+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T12:00:11.983+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="Pattern" /><title>Separation of Concerns: The proxy pattern</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/4581170585559167747/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=4581170585559167747" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/4581170585559167747?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/4581170585559167747?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/gdGN6C6r4Ks/separation-of-concerns-proxy-pattern.html" title="Separation of Concerns: The proxy pattern" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>4</thr:total><content type="html">The principle of Separation of Concerns is one of the main aspects of modern application frameworks like Spring or Hibernate. The intention is to separate the cross-cutting-concerns (e.g. database access, transaction management or security checks) from the implementation of the functional requirements.
One possible solution to realize a transparent separation of concerns is to use the proxy &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=gdGN6C6r4Ks:db6Uld48rYo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=gdGN6C6r4Ks:db6Uld48rYo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=gdGN6C6r4Ks:db6Uld48rYo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/gdGN6C6r4Ks" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/05/separation-of-concerns-proxy-pattern.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8GSHcyeCp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-412648651913086474</id><published>2009-08-12T13:50:00.006+02:00</published><updated>2009-09-30T12:00:29.990+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T12:00:29.990+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Spring" /><category scheme="http://www.blogger.com/atom/ns#" term="Hibernate" /><title>3 ways of integrating Hibernate and Spring</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/412648651913086474/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=412648651913086474" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/412648651913086474?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/412648651913086474?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/pailQfDAyVk/comparison-implementing-hibernate-daos.html" title="3 ways of integrating Hibernate and Spring" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>5</thr:total><content type="html">There are many ways to integrate Hibernate Data Access Objects (DAOs) with the Spring Framework. The Spring 2.5 documentation describes three possible solutions how Spring supports those DAOs. But which is the right way to go nowadays? Let's compare the three variants:



Let your concrete DAO class extend HibernateDaoSupport. This base class has to be configured with a SessionFactory and gives &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=pailQfDAyVk:mFSu8pzUHBk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=pailQfDAyVk:mFSu8pzUHBk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=pailQfDAyVk:mFSu8pzUHBk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/pailQfDAyVk" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/08/comparison-implementing-hibernate-daos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BQX85cCp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-3791902720813578944</id><published>2009-08-12T12:18:00.002+02:00</published><updated>2009-09-30T12:00:50.128+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T12:00:50.128+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>How to use code templates in Eclipse?</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/3791902720813578944/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=3791902720813578944" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/3791902720813578944?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/3791902720813578944?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/r5Zqu5eZ2u0/how-to-create-code-templates-in-eclipse.html" title="How to use code templates in Eclipse?" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>1</thr:total><content type="html">If you are using the Eclipse IDE you can speed up your development time by using the code template feature. Per default code templates are accessible by cycling through the code assist (CTRL + Space) directly from the source code editor. Each code template have one or many keywords assigned, e.g. if you're applying code templates onto the keyword sysout Eclipse replaces the keyword with &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=r5Zqu5eZ2u0:VtQUA4Obk-g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=r5Zqu5eZ2u0:VtQUA4Obk-g:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=r5Zqu5eZ2u0:VtQUA4Obk-g:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/r5Zqu5eZ2u0" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/03/how-to-create-code-templates-in-eclipse.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YERX45cCp7ImA9WxNSFk8.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-5594697473916614991</id><published>2009-08-12T11:19:00.001+02:00</published><updated>2009-08-30T10:31:44.028+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-30T10:31:44.028+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><title>Eclipse 3.4: Target plattform issue</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/5594697473916614991/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=5594697473916614991" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/5594697473916614991?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/5594697473916614991?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/4CddzcYF2aM/faulty-target-plattform-in-eclipse-34.html" title="Eclipse 3.4: Target plattform issue" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>0</thr:total><content type="html">There is a problem with some distributions of Eclipse Ganymede relating the PDE target plattform. If you want to set up the target plattform (see Preferences -&amp;gt; Plug-In Development) you cannot add Plugins to the list via the Add... command. There is no error dialog, the list of plugins just stays empty.You can fix this issue by installing another Plug-In called Eclipse Provisioning Plug-In &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=4CddzcYF2aM:XSkohWLvE-A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=4CddzcYF2aM:XSkohWLvE-A:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=4CddzcYF2aM:XSkohWLvE-A:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/4CddzcYF2aM" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/02/faulty-target-plattform-in-eclipse-34.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8DRXg9fip7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-6633576325260182954</id><published>2009-08-12T08:42:00.013+02:00</published><updated>2009-09-30T12:01:14.666+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T12:01:14.666+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Pattern" /><category scheme="http://www.blogger.com/atom/ns#" term="Swing" /><title>Observer Pattern revised: The EventBus</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/6633576325260182954/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=6633576325260182954" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/6633576325260182954?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/6633576325260182954?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/Z6Of-ud74rc/eventbus-library.html" title="Observer Pattern revised: The EventBus" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>1</thr:total><content type="html">The EventBus library is a convenient realization of the observer pattern. It works perfectly to supplement the implemention of MVC logic (model-view-controller) in event-driven UIs such as Swing. The library is similiar to the JMS API and it's published under the Apache License 2.0.
The Event Bus is a single-process publish/subscribe event routing library, with Swing extensions. The EventBus is &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=Z6Of-ud74rc:w5cQ-usKsmo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=Z6Of-ud74rc:w5cQ-usKsmo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=Z6Of-ud74rc:w5cQ-usKsmo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/Z6Of-ud74rc" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/05/eventbus-library.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8NQXk9fSp7ImA9WxNXE00.&quot;"><id>tag:blogger.com,1999:blog-3800333992253281930.post-6399930036487028575</id><published>2009-08-12T08:19:00.007+02:00</published><updated>2009-09-30T12:01:30.765+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-30T12:01:30.765+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Swing" /><title>How to improve drag-and-drop behavior in Swing?</title><link rel="replies" type="application/atom+xml" href="http://bwinterberg.blogspot.com/feeds/6399930036487028575/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=3800333992253281930&amp;postID=6399930036487028575" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/6399930036487028575?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3800333992253281930/posts/default/6399930036487028575?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TechnicalSolutions/~3/167HuzdUSjs/how-to-improve-drag-and-drop-behavior.html" title="How to improve drag-and-drop behavior in Swing?" /><author><name>Benjamin Winterberg</name><uri>http://www.blogger.com/profile/08129190570276379899</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="22" height="32" src="http://4.bp.blogspot.com/_MJIsWY4A1Ak/SoG99SzXGiI/AAAAAAAAAAM/-tjl92MMfTM/S220/e74b18fc2.6933537,3.jpg" /></author><thr:total>0</thr:total><content type="html">The class javax.swing.TransferHandler is a convenient solution for implementing drag-and-drop in a Java Swing UI. You don't have to bother about the internal concepts of drag-and-drop in Swing.
Unfortunately there are issues with the implementation of the TransferHandler in JDK 1.4 and JDK 5. If you want to drag an element from JTable, JTree or JList, the element must be selected first. That &lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=167HuzdUSjs:SF7TW8WC9w8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/TechnicalSolutions?a=167HuzdUSjs:SF7TW8WC9w8:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/TechnicalSolutions?i=167HuzdUSjs:SF7TW8WC9w8:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TechnicalSolutions/~4/167HuzdUSjs" height="1" width="1"/&gt;</content><feedburner:origLink>http://bwinterberg.blogspot.com/2009/06/how-to-improve-drag-and-drop-behavior.html</feedburner:origLink></entry></feed>
