<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-35283970</id><updated>2012-01-24T14:29:47.324+01:00</updated><category term='JPA'/><category term='Java EE'/><category term='Soft skills'/><category term='nbtostring'/><category term='QA'/><category term='Closures'/><category term='GlassFish'/><category term='gted'/><category term='IMS'/><category term='jBatchEngine'/><category term='BeanValidation'/><category term='Design'/><category term='open source'/><category term='NetBeans'/><category term='Java'/><category term='MTT'/><category term='simject'/><category term='Google'/><category term='Webdesign'/><category term='Paas'/><category term='EJB'/><category term='Development'/><category term='Jazoon'/><category term='HOST'/><category term='RCP'/><category term='Lecturing'/><category term='SeleniumHQ'/><category term='Maven'/><category term='Lambda'/><category term='Eclipse'/><category term='Scrum'/><category term='HTML'/><category term='rTPlan'/><category term='JSF'/><category term='Persistence'/><category term='Spring'/><category term='Ruby on Rails'/><category term='Android'/><category term='jTrackAndField'/><category term='Cloud'/><title type='text'>The Programming Architect</title><subtitle type='html'>About Software Engineering Today</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default?start-index=101&amp;max-results=100'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>175</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35283970.post-158859710518084423</id><published>2011-12-10T17:33:00.001+01:00</published><updated>2011-12-10T17:35:20.674+01:00</updated><title type='text'>Cron and File Extensions</title><content type='html'>I created a script using TAR to backup my data on Ubuntu.&lt;br /&gt;The script was putted to /etc/cron.daily but I didn't run!&lt;br /&gt;After some investigations I found out that in /etc/cron.*/ directories no file extension or dots in the file name are allowed.&lt;br /&gt;&lt;br /&gt;So be careful how you name your scripts that should run with cron.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-158859710518084423?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/158859710518084423/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=158859710518084423' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/158859710518084423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/158859710518084423'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/12/cron-and-file-extensions.html' title='Cron and File Extensions'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8410553245579420997</id><published>2011-12-07T22:11:00.001+01:00</published><updated>2011-12-07T22:11:55.298+01:00</updated><title type='text'>OpenWebBeans Bootstrap in Java SE</title><content type='html'>&lt;br /&gt;It took me a while to get OpenWebBeans in Java SE up and running. Find below an example on how to bootstrap OWB:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ContainerLifecycle lifecycle = WebBeansContext.currentInstance().getService(ContainerLifecycle.class);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;lifecycle.startApplication(null);&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;BeanManager beanManager = lifecycle.getBeanManager();&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Bean&amp;lt;?&amp;gt; bean = beanManager.getBeans(B.class).iterator().next();&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;B b = (B) lifecycle.getBeanManager().getReference(bean, B.class, beanManager.createCreationalContext(bean));&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;b.foo();&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8410553245579420997?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8410553245579420997/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8410553245579420997' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8410553245579420997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8410553245579420997'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/12/openwebbeans-bootstrap-in-java-se.html' title='OpenWebBeans Bootstrap in Java SE'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5157665230149899836</id><published>2011-11-16T12:02:00.001+01:00</published><updated>2011-11-16T12:47:56.451+01:00</updated><title type='text'>jtoggl a Java API for Toggl</title><content type='html'>&lt;a href="http://code.google.com/p/jtoggl/"&gt;Toggl&lt;/a&gt; is a great tool for time tracking. Specially if you work for multiple clients and/or projects at the same time.&lt;br /&gt;&lt;br /&gt;Toggl provides a &lt;a href="https://www.toggl.com/public/api"&gt;REST/JSON API&lt;/a&gt;&amp;nbsp;and several samples in various programming languages. But one thing was missing a Java wrapper for the Toggl API.&lt;br /&gt;&lt;br /&gt;So I decided to create one. You can find the &lt;a href="http://code.google.com/p/jtoggl/"&gt;project&lt;/a&gt;&amp;nbsp;on Google code. It's called &lt;a href="http://code.google.com/p/jtoggl/"&gt;jtoggl&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have any suggestions or find any problems please let me know. You can use the &lt;a href="http://code.google.com/p/jtoggl/issues/list"&gt;issue tracker&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5157665230149899836?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5157665230149899836/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5157665230149899836' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5157665230149899836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5157665230149899836'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/11/jtoggl-java-api-for-toggl.html' title='jtoggl a Java API for Toggl'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-646953879256986071</id><published>2011-10-24T14:44:00.001+02:00</published><updated>2011-10-24T14:46:56.892+02:00</updated><title type='text'>JBoss User Group Neuchatel</title><content type='html'>Since September 2011 there is a JBoss User Group (JBUG) in Neuchatel.&lt;br /&gt;There were already two events.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JBUG Neuchatel Intro &amp;amp; JBoss AS7&lt;/li&gt;&lt;li&gt;OpenShift, the Red Hat cloud offering (I will blog about OpenShift and Java EE soon)&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;The next event will be about Infinispan on November 23rd 2011&lt;br /&gt;&lt;br /&gt;If you are interested in any Java and JBoss releated stuff feel free to join:&lt;a href="http://community.jboss.org/groups/jbug-neuchatel"&gt;http://community.jboss.org/groups/jbug-neuchatel&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The events will be held monthly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-646953879256986071?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/646953879256986071/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=646953879256986071' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/646953879256986071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/646953879256986071'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/10/jboss-user-group-neuchatel.html' title='JBoss User Group Neuchatel'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7180697797495811550</id><published>2011-06-29T17:07:00.003+02:00</published><updated>2011-06-29T17:08:02.397+02:00</updated><title type='text'>GlassFish Console hanging</title><content type='html'>If you are not able to login to the admin console of GlassFish you can try to disable the update center:&lt;br /&gt;&lt;a href="http://techmythoughts.blogspot.com/2010/08/glassfish-v3-admin-console-taking-too.html"&gt;http://techmythoughts.blogspot.com/2010/08/glassfish-v3-admin-console-taking-too.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7180697797495811550?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7180697797495811550/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7180697797495811550' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7180697797495811550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7180697797495811550'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/06/glassfish-console-hanging.html' title='GlassFish Console hanging'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4674148392143513741</id><published>2011-05-16T15:28:00.000+02:00</published><updated>2011-05-16T15:28:02.001+02:00</updated><title type='text'>JBoss 5.1.0 as Windows Service</title><content type='html'>Today we had a problem starting JBoss as a Windows Service on Windows Server 2008. After some time we had a PermGenSpace OutOfMemoryError.&lt;br /&gt;&lt;br /&gt;To fix that have a look at &lt;a href="https://issues.jboss.org/browse/JBAS-7290"&gt;https://issues.jboss.org/browse/JBAS-7290&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4674148392143513741?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4674148392143513741/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4674148392143513741' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4674148392143513741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4674148392143513741'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/05/jboss-510-as-windows-service.html' title='JBoss 5.1.0 as Windows Service'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8971423594236369722</id><published>2011-01-29T13:24:00.001+01:00</published><updated>2011-01-29T13:24:14.742+01:00</updated><title type='text'>Wicket on Google App Engine</title><content type='html'>I found a good description how to use Wicket on Google App Engine.&lt;br /&gt;&lt;br /&gt;Have a look: &lt;a href="http://stronglytypedblog.blogspot.com/2009/04/wicket-on-google-app-engine.html"&gt;http://stronglytypedblog.blogspot.com/2009/04/wicket-on-google-app-engine.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8971423594236369722?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8971423594236369722/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8971423594236369722' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8971423594236369722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8971423594236369722'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/01/wicket-on-google-app-engine.html' title='Wicket on Google App Engine'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6082350311233833610</id><published>2011-01-21T20:00:00.000+01:00</published><updated>2011-01-21T20:00:12.332+01:00</updated><title type='text'>PASV FTP with IIS 6 on Windows Server 2003</title><content type='html'>After some hours I finally get PASV FTP up and running on Windows Server 2003.&lt;br /&gt;Here how to do it:&lt;br /&gt;&lt;br /&gt;First set the port range: &lt;br /&gt;&lt;code&gt;C:\Inetpub\AdminScripts\adsutil.vbs set /MSFTPSVC/PassivePortRange "5500-5550"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then open the port range to the firewall&lt;br /&gt;&lt;code&gt;FOR /L %I IN (5500,1,5550) DO NETSH FIREWALL ADD PORTOPENING TCP %I FTPPort%I&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Finally reset the IIS&lt;br /&gt;&lt;code&gt;iisreset&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;That's all. Easy, isn't it ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6082350311233833610?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6082350311233833610/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6082350311233833610' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6082350311233833610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6082350311233833610'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/01/pasv-ftp-with-iis-6-on-windows-server.html' title='PASV FTP with IIS 6 on Windows Server 2003'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7906842814139317986</id><published>2011-01-19T12:32:00.001+01:00</published><updated>2011-01-19T12:32:35.559+01:00</updated><title type='text'>Java EE 6 on Microsoft Azure</title><content type='html'>David Chou, a Microsoft architect, describes how to run Java EE 6 with GlassFish in the Microsoft cloud Windows Azure.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/b/dachou/archive/2011/01/17/run-java-with-glassfish-in-windows-azure.aspx"&gt;http://blogs.msdn.com/b/dachou/archive/2011/01/17/run-java-with-glassfish-in-windows-azure.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7906842814139317986?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7906842814139317986/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7906842814139317986' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7906842814139317986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7906842814139317986'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2011/01/java-ee-6-on-microsoft-azure.html' title='Java EE 6 on Microsoft Azure'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2576039509904067809</id><published>2010-11-17T09:32:00.000+01:00</published><updated>2010-11-17T09:32:37.593+01:00</updated><title type='text'>Improvement of Java Will Continue</title><content type='html'>There are for new JSRs announced on &lt;a href="http://www.jcp.org/en/jsr/stage?listBy=jsr"&gt;jcp.org&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It seams that Java will be continued by Oracle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2576039509904067809?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2576039509904067809/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2576039509904067809' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2576039509904067809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2576039509904067809'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/11/improvement-of-java-will-continue.html' title='Improvement of Java Will Continue'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7606421978240167196</id><published>2010-10-12T08:45:00.000+02:00</published><updated>2010-10-12T08:45:24.087+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><title type='text'>Spring to Java EE</title><content type='html'>I found a nice article from Lincoln Baxter III:&lt;br /&gt;&lt;a href="http://ocpsoft.com/java/spring-to-java-ee-a-migration-guide-cdi-jsf-jpa-jta-ejb/"&gt;Link to the article&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's about moving from Spring to Java EE and the differences between them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7606421978240167196?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7606421978240167196/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7606421978240167196' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7606421978240167196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7606421978240167196'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/10/spring-to-java-ee.html' title='Spring to Java EE'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-879699692966884189</id><published>2010-10-06T11:05:00.001+02:00</published><updated>2010-10-06T11:07:37.927+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='QA'/><title type='text'>IEEE 1028 Standard for Software Reviews</title><content type='html'>In these days quality assuarance in software development projects is more important then ever.&lt;br /&gt;Reviews are a good thing beside tests to check if the software under development meets the definied architecture and standards.&lt;br /&gt;IEEE has a standard for reviews. It's called IEEE 1028 (2008) standard for software reviews.&lt;br /&gt;&lt;br /&gt;The IEEE 1028 defines five types of reviews:&lt;br /&gt;- Management reviews&lt;br /&gt;- Technical reviews&lt;br /&gt;- Inspections&lt;br /&gt;- Walk-throughs&lt;br /&gt;- Audits&lt;br /&gt;&lt;br /&gt;The standard describes the purpose of these five types and defines how to use these review technics. It's really worth reading.&lt;br /&gt;&lt;br /&gt;I've found a copy of IEEE 1028 (1997) for free: http://membres.multimania.fr/benoitouellet/Peer_rev.pdf&lt;br /&gt;&lt;br /&gt;If you would like to have the newest version you can buy it form IEEE here: http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4601584&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-879699692966884189?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/879699692966884189/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=879699692966884189' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/879699692966884189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/879699692966884189'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/10/ieee-1028-standard-for-software-reviews.html' title='IEEE 1028 Standard for Software Reviews'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2470119457237590845</id><published>2010-08-04T19:59:00.011+02:00</published><updated>2010-08-06T17:04:00.799+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SeleniumHQ'/><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><title type='text'>Integrating SeleniumHQ and Maven2</title><content type='html'>After some days with SeleniumHQ and Maven2 I want to share the finally working configuration. Maybe this could help someone doing the same.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Add Maven Dependencies&lt;/b&gt;&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;&amp;lt;groupId&amp;gt;org.seleniumhq.selenium&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;lt;artifactId&amp;gt;selenium&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;lt;version&amp;gt;2.0a4&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;br /&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Run Configuration&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I used the maven-failsafe-plugin to run the SeleniumHQ regression tests in the integration-test phase. The Selenium RC is started with the plugin on port 1234. If you run the tests on a Linux build server without x-server you can find information on the plugin page.&lt;br /&gt;&lt;br /&gt;The maven-failsafe-plugin runs any tests with the pattern *IT.java (Surefire uses *Test.java).&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&amp;lt;build&amp;gt;&lt;br /&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;lt;artifactId&amp;gt;selenium-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;lt;executions&amp;gt;&lt;br /&gt;&amp;lt;execution&amp;gt;&lt;br /&gt;&amp;lt;phase&amp;gt;pre-integration-test&amp;lt;/phase&amp;gt;&lt;br /&gt;&amp;lt;goals&amp;gt;&lt;br /&gt;&amp;lt;goal&amp;gt;start-server&amp;lt;/goal&amp;gt;&lt;br /&gt;&amp;lt;/goals&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;lt;background&amp;gt;true&amp;lt;/background&amp;gt;&lt;br /&gt;&amp;lt;port&amp;gt;1234&amp;lt;/port&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;lt;/execution&amp;gt;&lt;br /&gt;&amp;lt;/executions&amp;gt;&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;plugin&amp;gt;&lt;br /&gt;&amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;&lt;br /&gt;&amp;lt;artifactId&amp;gt;maven-failsafe-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;&amp;lt;systemPropertyVariables&amp;gt;&lt;br /&gt;&amp;lt;buildDir&amp;gt;${project.build.directory}&amp;lt;/buildDir&amp;gt;&lt;br /&gt;&amp;lt;selenium.server&amp;gt;${selenium.server}&amp;lt;/selenium.server&amp;gt;&lt;br /&gt;&amp;lt;selenium.port&amp;gt;${selenium.port}&amp;lt;/selenium.port&amp;gt;&lt;br /&gt;&amp;lt;selenium.browser&amp;gt;${selenium.browser}&amp;lt;/selenium.browser&amp;gt;&lt;br /&gt;&amp;lt;selenium.url&amp;gt;${selenium.url}&amp;lt;/selenium.url&amp;gt;&lt;br /&gt;&amp;lt;/systemPropertyVariables&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;br /&gt;&amp;lt;executions&amp;gt;&lt;br /&gt;&amp;lt;execution&amp;gt;&lt;br /&gt;&amp;lt;id&amp;gt;integration-test&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;lt;goals&amp;gt;&lt;br /&gt;&amp;lt;goal&amp;gt;integration-test&amp;lt;/goal&amp;gt;&lt;br /&gt;&amp;lt;/goals&amp;gt;&lt;br /&gt;&amp;lt;/execution&amp;gt;&lt;br /&gt;&amp;lt;execution&amp;gt;&lt;br /&gt;&amp;lt;id&amp;gt;verify&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;lt;goals&amp;gt;&lt;br /&gt;&amp;lt;goal&amp;gt;verify&amp;lt;/goal&amp;gt;&lt;br /&gt;&amp;lt;/goals&amp;gt;&lt;br /&gt;&amp;lt;/execution&amp;gt;&lt;br /&gt;&amp;lt;/executions&amp;gt;&lt;br /&gt;&amp;lt;/plugin&amp;gt;&lt;br /&gt;&amp;lt;/build&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Remark&lt;/b&gt;&lt;br /&gt;To run the regression tests against several browsers and Selenium RC servers I added some system properties:&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&amp;lt;selenium.server&amp;gt;${selenium.server}&amp;lt;/selenium.server&amp;gt;&lt;br /&gt;&amp;lt;selenium.port&amp;gt;${selenium.port}&amp;lt;/selenium.port&amp;gt;&lt;br /&gt;&amp;lt;selenium.browser&amp;gt;${selenium.browser}&amp;lt;/selenium.browser&amp;gt;&lt;br /&gt;&amp;lt;selenium.url&amp;gt;${selenium.url}&amp;lt;/selenium.url&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;They can be used in the JUnit Selenium tests like that:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java;"&gt;@BeforeClass&lt;br /&gt;public static void startUp() {&lt;br /&gt;String server = System.getProperty("selenium.server", "localhost");&lt;br /&gt;int port = Integer.parseInt(System.getProperty("selenium.port", "1234"));&lt;br /&gt;String browser = System.getProperty("selenium.browser", "*iexploreproxy");&lt;br /&gt;String url = System.getProperty("selenium.url", "http://www.xyz.com:8080/");&lt;br /&gt;selenium = new DefaultSelenium(server, port, browser, url);&lt;br /&gt;selenium.start();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;These properties will be set in be default as you can see above or via profiles in the POM:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: xml;"&gt;&amp;lt;profiles&amp;gt;&lt;br /&gt;&amp;lt;profile&amp;gt;&lt;br /&gt;&amp;lt;id&amp;gt;localhost&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;lt;properties&amp;gt;&lt;br /&gt;&amp;lt;selenium.server&amp;gt;localhost&amp;lt;/selenium.server&amp;gt;&lt;br /&gt;&amp;lt;selenium.port&amp;gt;1234&amp;lt;/selenium.port&amp;gt;&lt;br /&gt;&amp;lt;selenium.browser&amp;gt;*chrome&amp;lt;/selenium.browser&amp;gt;&lt;br /&gt;&amp;lt;selenium.url&amp;gt;http://localhost:8080/&amp;lt;/selenium.url&amp;gt;&lt;br /&gt;&amp;lt;/properties&amp;gt;&lt;br /&gt;&amp;lt;/profile&amp;gt;&lt;br /&gt;&amp;lt;/profiles&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Simply run the build i.e. mvn install -P localhost to activate the profile.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Skipping Integration Tests&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you need to skip the integration tests you can do this by adding -DskipITs=true. I.e&lt;br /&gt;&lt;pre&gt;mvn -DskipITs=true &amp;lt;goal&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2470119457237590845?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2470119457237590845/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2470119457237590845' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2470119457237590845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2470119457237590845'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/08/integrating-seleniumhq-and-maven2.html' title='Integrating SeleniumHQ and Maven2'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-3855109093033781686</id><published>2010-07-15T08:25:00.000+02:00</published><updated>2010-07-15T08:25:59.792+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Closures'/><category scheme='http://www.blogger.com/atom/ns#' term='Lambda'/><title type='text'>Lambda Expressions in Java</title><content type='html'>As you may know I'm not a big fan of adding closures to the next Java release. Or in other words: don't put stuff to the Java programming language that is not really necessary. In my opinion there are a lot of other missing features but this will come in another blog entry.&lt;br /&gt;&lt;br /&gt;A few days ago Brian Goetz wrote about the state of lambda in Java and I think it's worth to check it out - even for lambda&amp;nbsp;opponents:&lt;br /&gt;&lt;a href="http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-2.html"&gt;http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-2.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-3855109093033781686?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/3855109093033781686/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=3855109093033781686' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3855109093033781686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3855109093033781686'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/07/lambda-expressions-in-java.html' title='Lambda Expressions in Java'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-934590149948103308</id><published>2010-06-14T08:56:00.000+02:00</published><updated>2010-06-14T08:56:17.107+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GlassFish'/><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><title type='text'>EJB 3.1, JUnit and GlassFish Embedded incl. JPA and JDBC DataSource</title><content type='html'>Today I have my JUnit tests with GlassFish embedded up and running and like to share how to configure it.&lt;br /&gt;&lt;br /&gt;First we have a look at how to run the tests with the EJBContainer from EJB 3.1:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;public class ConfigurationServiceTest {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;private static EJBContainer container;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;private static ConfigurationService service;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@BeforeClass&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public static void setUpClass() throws Exception {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;container = EJBContainer.createEJBContainer();&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;service = (ConfigurationService) container.getContext().lookup("java:global/classes/ConfigurationService");&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@AfterClass&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public static void tearDownClass() throws Exception {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;container.close();&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/**&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; * Test of findConfiguration method, of class ConfigurationService.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; */&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;@Test&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;public void testFindConfiguration() throws Exception {&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Configuration configuration = service.findConfiguration();&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println("From Configuration: " + configuration.getNextNewsletterSendDate());&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The most important line is the lookup of the EJB:&lt;/div&gt;&lt;div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;container.getContext().lookup(&lt;br /&gt;&amp;nbsp;&amp;nbsp;"java:global/classes/ConfigurationService");&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Every found EJB is deployed to the embedded server and the JNDI name is built using java:global/classes and then the simple class name of the EJB.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;That was all very straight forward. But then I had a problem configuring the JDBC datasource that the service needs using JPA.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;And again the solution was very simple. Just create the path org/glassfish/embed in classpath and add the domain.xml file from your "normal" GlassFish server. After copying you may want to do some cleanup with the file. You can delete everything that is under&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;lt;system-applications /&amp;gt; and&amp;nbsp;&amp;nbsp;&amp;lt;applications /&amp;gt; because your application will run based on the classpath.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When you want to us it with Maven2 simply put a new dependency in pom.xml.&lt;/div&gt;&lt;div&gt;Hint: In some situation it is best to have it as the first dependency!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;groupId&amp;gt;org.glassfish.extras&amp;lt;/groupId&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;artifactId&amp;gt;glassfish-embedded-all&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;version&amp;gt;3.1-b04&amp;lt;/version&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Have fun!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-934590149948103308?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/934590149948103308/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=934590149948103308' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/934590149948103308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/934590149948103308'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/06/ejb-31-junit-and-glassfish-embedded.html' title='EJB 3.1, JUnit and GlassFish Embedded incl. JPA and JDBC DataSource'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2950128063024229272</id><published>2010-05-19T20:37:00.000+02:00</published><updated>2010-05-19T20:37:07.167+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Paas'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><category scheme='http://www.blogger.com/atom/ns#' term='Spring'/><title type='text'>Google I/O: App Engine, VMware, SQL</title><content type='html'>In my opinion today at Google I/O two incredible&amp;nbsp;announcements were made.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Google and VMware are working together on a PaaS clound:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://blogs.vmware.com/console/2010/05/google-and-vmwares-open-paas-strategy.html"&gt;http://blogs.vmware.com/console/2010/05/google-and-vmwares-open-paas-strategy.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Until yesterday I was sure that Java EE 6 will kill Spring Framework in the next few years, but now we have a clear statement for a PaaS (Platform as a Service) cloud based on Spring Framework. In contrast there is no PaaS solution based on Java EE 6. This will make Spring Framework more popular again!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Google App Engine Business&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/appengine/business/"&gt;http://code.google.com/appengine/business/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google announced a business version of their app engine. This is not very&amp;nbsp;revolutionary on a first view, but they will add SQL database support to the business app engine. This will make it possible to port existing applications to the app engine. Which was till now nearly impossible because one had to use BigTable and a migration from RDBMS to BigTable is a complete refactoring.&lt;br /&gt;&lt;br /&gt;Spring and SQL DB in the Google app engine will make the killer platform for a lot of applications at a very low cost. I'm curios what the reaction of Oracle, IBM, RedHat/JBoss will be...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2950128063024229272?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2950128063024229272/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2950128063024229272' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2950128063024229272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2950128063024229272'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/05/google-io-app-engine-vmware-sql.html' title='Google I/O: App Engine, VMware, SQL'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6351445941235580778</id><published>2010-05-17T10:47:00.000+02:00</published><updated>2010-05-17T10:47:46.706+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BeanValidation'/><title type='text'>Missing Feature in Bean Validation</title><content type='html'>After using Bean Validation for some month I had a problem that I couldn't solve.&lt;br /&gt;&lt;br /&gt;It's not possible to add "dynamic" parameters to the validation message. For example if you want to pass the id of your entity that fails and want to use that id in your custom MessageInterpolator.&lt;br /&gt;&lt;br /&gt;We solved this be adding the parameters at the end of the message separated by #. So we could extract them in our MessageInterpolator and exchange {0}...{n} to the parameters passed.&lt;br /&gt;&lt;br /&gt;But in my opinion this is an evil hack!&lt;br /&gt;My suggestion is to change the type of the message in the method interpolate of the MessagInterpolator to something like ValidationMessage that could have a collection of object as parameters.&lt;br /&gt;&lt;br /&gt;I will post this as a feature request to the JSR 303 expert group.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6351445941235580778?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6351445941235580778/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6351445941235580778' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6351445941235580778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6351445941235580778'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/05/missing-feature-in-bean-validation.html' title='Missing Feature in Bean Validation'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8353065520162271348</id><published>2010-05-16T14:33:00.000+02:00</published><updated>2010-05-16T14:33:22.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>First Thing I'm Missing in Java EE 6 Web Profile</title><content type='html'>After several weeks weeks using Java EE 6 Web Profile I discovered the first missing spec: JAX-RS.&lt;br /&gt;&lt;br /&gt;I'm currently developing a simple web application and now wanted to add an interface for a PHP CMS. But how to create an interface without web services capabilities? &lt;br /&gt;&lt;br /&gt;I think I will have to move to a full featured Java EE 6 application just to have JAX-RS :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8353065520162271348?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8353065520162271348/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8353065520162271348' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8353065520162271348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8353065520162271348'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/05/first-thing-im-missing-in-java-ee-6-web.html' title='First Thing I&apos;m Missing in Java EE 6 Web Profile'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2662496606344505844</id><published>2010-03-27T11:28:00.000+01:00</published><updated>2010-03-27T11:28:53.588+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>NetBeans vs. Eclipse (Again)</title><content type='html'>Because of some driver problems I had to reinstall Windows 7 on my notebook (Yes, I use Windows!). This took a while and then I was ready to install my IDEs. I use Eclipse an NetBeans in parallel, depending on what the customer uses.&lt;br /&gt;&lt;br /&gt;Again I recognized an extreme difference in the installation procedure. Here the steps I had to do:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NetBeans&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download IDE and, hey surprise, GlassFish is bundled as well!&lt;/li&gt;&lt;li&gt;Install it&lt;/li&gt;&lt;li&gt;Run NetBeans&lt;/li&gt;&lt;li&gt;Check out project from SVN. NetBeans asks me to download/install SVN. After a click and a restart NetBeans is ready to use.&lt;/li&gt;&lt;li&gt;Start developing using Maven2, Java EE 6 and GlassFish&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Eclipse&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt; Download Eclipse&lt;/li&gt;&lt;li&gt;Download GlassFish&lt;/li&gt;&lt;li&gt;Run Eclipse&lt;/li&gt;&lt;li&gt;Decide if I want to use Subversive or Subclipse. I prefer Subclipse.&lt;/li&gt;&lt;li&gt;Install Subclipse&lt;/li&gt;&lt;li&gt;Install m2eclipse&lt;/li&gt;&lt;li&gt;Install GlassFish integration&lt;/li&gt;&lt;li&gt;Restart IDE&lt;/li&gt;&lt;li&gt;Checkout project from SVN&lt;/li&gt;&lt;li&gt;Start developing using Maven2, Java EE 6 and GlassFish&lt;/li&gt;&lt;/ol&gt;As you can see, NetBeans brings all you need and it's very easy to install and use. Where as Eclipse doesn't contain any plugins that are used these days in the industry (Maven2, Subversion, etc.)&lt;br /&gt;&lt;br /&gt;To do a quick start I recommend NetBeans. And if you want to use Eclipse make a backup after you have installed all the plugins!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2662496606344505844?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2662496606344505844/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2662496606344505844' title='10 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2662496606344505844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2662496606344505844'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/03/netbeans-vs-eclipse-again.html' title='NetBeans vs. Eclipse (Again)'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-3028234763965825247</id><published>2010-03-17T11:35:00.003+01:00</published><updated>2010-03-17T11:39:16.197+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>How JavaBean Properties Should Look Like</title><content type='html'>During a discussion about JavaBean properties in JSF managed beans and entity classes I had an idea for simplify the usage of properties. Because specially in managed beans the getter and setter are annoying and make the code hard to read. &lt;br /&gt;&lt;br /&gt;In my opinion the C# way is straight forward:&lt;br /&gt;&lt;br /&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl23_ctl00_ctl00_code" space="preserve"&gt;&lt;span style="color: blue;"&gt;public class&lt;/span&gt; TimePeriod {&lt;br /&gt;    &lt;span style="color: blue;"&gt;private&lt;/span&gt; double hours;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;public&lt;/span&gt; double Hours {&lt;br /&gt;        &lt;span style="color: blue;"&gt;get&lt;/span&gt; { &lt;span style="color: blue;"&gt;return&lt;/span&gt; hours; }&lt;br /&gt;        &lt;span style="color: blue;"&gt;set&lt;/span&gt; { hours = value; }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;But for a simple case like this the C# way is still to complicated.&lt;br /&gt;So why not use annotations and a new modifier called property. For example&lt;br /&gt;&lt;br /&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl23_ctl00_ctl00_code" space="preserve"&gt;&lt;span style="color: blue;"&gt;public class&lt;/span&gt; TimePeriod {&lt;/pre&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl23_ctl00_ctl00_code" space="preserve"&gt;@Get @Set&lt;br /&gt;    &lt;span style="color: blue;"&gt;property&lt;/span&gt; double hours;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;With the annotations one defines if a property is read-write, write-only or read-only. The new keyword "property" defines how to access the property.I like the possibility in C# to use = operator for getting and setting the properties value. So "property" indicates that one can use = to access the value.&lt;br /&gt;&lt;br /&gt;And if you don't like the default behavior you could still override the get and set method for the property.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-3028234763965825247?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/3028234763965825247/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=3028234763965825247' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3028234763965825247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3028234763965825247'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/03/how-javabean-properties-should-look.html' title='How JavaBean Properties Should Look Like'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4416402153792429480</id><published>2010-03-17T10:19:00.000+01:00</published><updated>2010-03-17T10:19:43.027+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nbtostring'/><title type='text'>NetBeans toString() Generator Plugin Moved</title><content type='html'>Due to the ambiguous information of Oracle/Sun concerning Project Kenai I decided to move all my projects from Project Kenai to Google Code.&lt;br /&gt;&lt;br /&gt;Please find the &lt;a href="https://code.google.com/p/nbtostring/"&gt;NetBeans toString() Generator Plugin there&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4416402153792429480?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4416402153792429480/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4416402153792429480' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4416402153792429480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4416402153792429480'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/03/netbeans-tostring-generator-plugin.html' title='NetBeans toString() Generator Plugin Moved'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-861176108187601580</id><published>2010-03-03T14:28:00.000+01:00</published><updated>2010-03-03T14:28:16.753+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA and Bean Validation</title><content type='html'>Nice article from Antonio Goncalves about integration Bean Validation and JPA:&lt;br /&gt;&lt;a href="http://agoncal.wordpress.com/2010/03/03/bean-validation-with-jpa-1-0/"&gt;http://agoncal.wordpress.com/2010/03/03/bean-validation-with-jpa-1-0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In JPA 2.0 the integration is defined but It describes an easy integration with JPA 1.0 as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-861176108187601580?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/861176108187601580/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=861176108187601580' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/861176108187601580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/861176108187601580'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/03/jpa-and-bean-validation.html' title='JPA and Bean Validation'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7758013477173924030</id><published>2010-01-09T11:06:00.001+01:00</published><updated>2010-01-09T11:06:39.872+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nbtostring'/><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>1000+ Downloads of NetBeans toString()</title><content type='html'>My NetBeans toString() plugin seams to be a great success.&lt;br /&gt;This week I had more than 1000 downloads.&lt;br /&gt;&lt;br /&gt;More information and download of plugin can be found here:&lt;br /&gt;&lt;a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=21008"&gt;http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=21008&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7758013477173924030?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7758013477173924030/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7758013477173924030' title='7 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7758013477173924030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7758013477173924030'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2010/01/1000-downloads-of-netbeans-tostring.html' title='1000+ Downloads of NetBeans toString()'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4478754874358579417</id><published>2009-12-18T11:08:00.000+01:00</published><updated>2009-12-18T11:08:10.748+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Article on Java EE 6 from Dirk Weil</title><content type='html'>On JAXEnter Dirk Weil published an article about Java EE 6 which was released as final on December 10th.&lt;br /&gt;&lt;a href="http://it-republik.de/jaxenter/artikel/Java-EE-6-auf-einen-Blick-2759.html"&gt;http://it-republik.de/jaxenter/artikel/Java-EE-6-auf-einen-Blick-2759.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;He (and also I do) hope that the disrepute of J(2)EE will disappear because Java EE 6 is really a lean framework with just everything you need to develop an enterprise application.&lt;br /&gt;In my opinion frameworks like Spring are no longer needed if you can use a Java EE 6 compliant application server like Glassfish 3 or JBoss 6.&lt;br /&gt;And even the backing beans of JSF can be avoided with EJB 3.1 now. Read more about that topic:&lt;br /&gt;&lt;a href="http://www.adam-bien.com/roller/abien/entry/ejb_3_1_killed_the"&gt;http://www.adam-bien.com/roller/abien/entry/ejb_3_1_killed_the&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4478754874358579417?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4478754874358579417/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4478754874358579417' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4478754874358579417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4478754874358579417'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/12/article-on-java-ee-6-from-dirk-weil.html' title='Article on Java EE 6 from Dirk Weil'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5028051594623523970</id><published>2009-12-16T09:17:00.003+01:00</published><updated>2009-12-16T10:42:25.081+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Great Article why to use Java EE 6 from Adam Bien</title><content type='html'>In his most recent post Adam Bien descibes 9 reasons why Java EE 6 is a lightweight and investment protecting solution for building scalable enterprise applications.&lt;br /&gt;I completly agree with these arguments and hope that many developers will continue or start to use Java EE.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.adam-bien.com/roller/abien/entry/8_reasons_why_java_ee"&gt;9 Reasons Why Java EE 6 Will Save Real Money - Or How To Convince Your Management&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you live in Switzerland and want to learn about Java EE there is a great course at the University of Applied Science in Bern. &lt;br /&gt;&lt;a href="http://www.sws.bfh.ch/studium/cas/eadj.xhtml"&gt;CAS Enterprise Application Development Java EE&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5028051594623523970?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5028051594623523970/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5028051594623523970' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5028051594623523970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5028051594623523970'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/12/great-articel-why-to-use-java-ee-6-from.html' title='Great Article why to use Java EE 6 from Adam Bien'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1547348159979496155</id><published>2009-10-21T14:18:00.001+02:00</published><updated>2009-10-21T14:20:23.352+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nbtostring'/><title type='text'>NetBeans toString() Generator in Plugin Spotlight</title><content type='html'>We are proud to announce that since Monday our toString() Generator plugin is listed the current &lt;a href="http://plugins.netbeans.org/PluginPortal/"&gt;plugin spotlight on NetBeans.org&lt;/a&gt;.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_V_GQOrNqccU/St78gb_-3vI/AAAAAAAADSg/YQjiUB9RsUQ/s1600-h/nbtostring_spotlight.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_V_GQOrNqccU/St78gb_-3vI/AAAAAAAADSg/YQjiUB9RsUQ/s320/nbtostring_spotlight.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1547348159979496155?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1547348159979496155/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1547348159979496155' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1547348159979496155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1547348159979496155'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/10/netbeans-tostring-generator-in-plugin.html' title='NetBeans toString() Generator in Plugin Spotlight'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_V_GQOrNqccU/St78gb_-3vI/AAAAAAAADSg/YQjiUB9RsUQ/s72-c/nbtostring_spotlight.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7079983149229623573</id><published>2009-09-29T13:56:00.002+02:00</published><updated>2009-09-29T13:57:47.172+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Create Custom JSF Facelet Component</title><content type='html'>Because it took me a while to find the right steps I don't want to hold back my findings:&lt;br /&gt;&lt;br /&gt;1. Create a facelet taglib:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;!DOCTYPE facelet-taglib PUBLIC&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;"http://java.sun.com/dtd/facelet-taglib_1_0.dtd"&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;facelet-taglib&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;namespace&amp;gt;http://unibe.ch/tags&amp;lt;/namespace&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tag&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;tag-name&amp;gt;publikation&amp;lt;/tag-name&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;component&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;component-type&amp;gt;unibe.PublikationComponent&amp;lt;/component-type&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/component&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/tag&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;/facelet-taglib&amp;gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Add taglib to web.xml&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;context-param&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;lt;param-name&amp;gt;facelets.LIBRARIES&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;param-value&amp;gt;/WEB-INF/facelets/publikation.taglib.xml&amp;lt;/param-value&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/context-param&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;3. Add component to faces-config.xml&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;component&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;lt;component-type&amp;gt;unibe.PublikationComponent&amp;lt;/component-type&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp; &amp;lt;component-class&amp;gt;ch.unibe.search.ui.PublikationComponent&amp;lt;/component-class&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;/component&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;4. Implement Component. (I just extended UIOutput for my purposes):&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;public class PublikationComponent extends UIOutput {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private PublikationTO getPublikation() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ValueExpression ve = getValueExpression("item");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (ve != null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return (PublikationTO) ve&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; .getValue(getFacesContext().getELContext());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void encodeBegin(FacesContext context) throws IOException {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; final ResponseWriter writer = context.getResponseWriter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; PublikationTO publikation = this.getPublikation();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (publikation != null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.startElement("p", null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for (AutorTO autor : publikation.getAutoren()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if (autor.getId() == null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writeText(autor.getName() + ", "&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; + autor.getVorname(), null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writeText(" ", null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.startElement("a", null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writeAttribute("href", "result.jsf?autorId="&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; + autor.getId(), null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writeText(autor.getName() + ", "&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; + autor.getVorname(), null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.endElement("a");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writeText(" ", null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writeText("(" + publikation.getJahr() + ") ", null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.writeText(publikation.getTitel(), null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.endElement("p");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; writer.write("Fehler");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;5. Use your component&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;lt;ui:composition xmlns="http://www.w3.org/1999/xhtml"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:ui="http://java.sun.com/jsf/facelets"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:h="http://java.sun.com/jsf/html"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:f="http://java.sun.com/jsf/core"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:unibe="http://unibe.ch/tags" template="/template.xhtml"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ui:define name="content"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h1&amp;gt;Resultate&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:dataTable id="items" value="#{search.results}" var="result"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:column&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;unibe:publikation item="#{result}" /&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/h:column&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/h:dataTable&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;h:messages layout="table" style="font-size:12px;" /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ui:define&amp;gt;&lt;br /&gt;&amp;lt;/ui:composition&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;That's it ;-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7079983149229623573?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7079983149229623573/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7079983149229623573' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7079983149229623573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7079983149229623573'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/09/create-custom-jsf-facelet-component.html' title='Create Custom JSF Facelet Component'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-3053251823276965380</id><published>2009-09-11T13:40:00.000+02:00</published><updated>2009-09-11T13:40:32.348+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nbtostring'/><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>NetBeans toString() Generator Version 0.3.0</title><content type='html'>Thanks to Christians help we could release a new version of the toString() generator for NetBeans. You can &lt;a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=21008"&gt;download it here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please also find the release notes on the &lt;a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=21008"&gt;NetBeans plugin portal&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Currently we just have all features of Eclipse 3.5 toString() generator implemented. &lt;br /&gt;You can find out what keeping us busy in &lt;a href="http://kenai.com/jira/browse/NBTOSTRING"&gt;JIRA&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Any feature requests are highly appreciated!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-3053251823276965380?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/3053251823276965380/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=3053251823276965380' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3053251823276965380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3053251823276965380'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/09/netbeans-tostring-generator-version-030.html' title='NetBeans toString() Generator Version 0.3.0'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4615103768347054207</id><published>2009-09-09T14:09:00.000+02:00</published><updated>2009-09-09T14:09:45.505+02:00</updated><title type='text'>Chrisitan Pervoelz joined NetBeans toString() Generator Project</title><content type='html'>Today Chrisitan Pervoelz from Berlin joined the &lt;a href="http://kenai.com/projects/nbtostring"&gt;Kenai project nbtostring&lt;/a&gt;&lt;br /&gt;Welcome to the team!&lt;br /&gt;&lt;br /&gt;With his help we will able to release faster new versions. Today we release 0.2.0. It contains two improvements: 1) existing toString() well be overwritten 2) you can choose how the toString() is generated (String concatenation or StringBuilder)&lt;br /&gt;&lt;a href="http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=21008"&gt;Download 0.2.0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4615103768347054207?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4615103768347054207/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4615103768347054207' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4615103768347054207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4615103768347054207'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/09/chrisitan-pervoelz-joined-netbeans.html' title='Chrisitan Pervoelz joined NetBeans toString() Generator Project'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7021935855123331374</id><published>2009-09-07T16:32:00.003+02:00</published><updated>2009-09-07T16:33:01.054+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nbtostring'/><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>First very basic version of toString() Generator for NetBeans released</title><content type='html'>I was faster than expected and released a first version of &lt;a href="http://www.kenai.com/projects/nbtostring"&gt;the toString() generator&lt;/a&gt;. It is very basic in the moment but I'm working on it to add all features of Eclipse 3.5 toString() generator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7021935855123331374?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7021935855123331374/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7021935855123331374' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7021935855123331374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7021935855123331374'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/09/first-very-basic-version-of-tostring.html' title='First very basic version of toString() Generator for NetBeans released'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4114818773050446353</id><published>2009-09-07T10:36:00.002+02:00</published><updated>2009-09-07T16:32:20.243+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nbtostring'/><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>nbtostring in the News</title><content type='html'>Today my &lt;a href="http://kenai.com/projects/nbtostring"&gt;NetBeans toString() generator&lt;/a&gt; is mentioned in the German &lt;a href="http://it-republik.de/jaxenter/news/Was-NetBeans-von-Eclipse-lernen-kann-051068.html"&gt;news of JAXenter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I will try to hurry and release a first version next week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4114818773050446353?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4114818773050446353/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4114818773050446353' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4114818773050446353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4114818773050446353'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/09/nbtostring-in-news.html' title='nbtostring in the News'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1724332947240859195</id><published>2009-09-03T10:40:00.002+02:00</published><updated>2009-09-03T10:43:23.869+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><title type='text'>Open Source Discussion in Swiss Government</title><content type='html'>In the last few month there were several discussions about open source usage in government or educational sector in Switzerland. Even the parliament is discussion about that topic. &lt;br /&gt;My question in this debate is if the parliamentarians now what open source really means?! &lt;br /&gt;&lt;br /&gt;A lot of people think that first of all open source software is free respectively that closed source software isn't free of charge. But both expectations are wrong!&lt;br /&gt;&lt;br /&gt;If we have a look at the Java EE application server market we see that some vendors like JBoss or Sun have open source licenses but if compare them the whole package with support, patches etc. with vendors with closed source licenses there is sometimes not a big difference between these two.&lt;br /&gt;That's an important fact, because if you have problems with the product in production you are dependent on patches from the vendor. And you wont get these if you don't pay for it!&lt;br /&gt;&lt;br /&gt;As a conclusion if you are just a user of the software and are not able to change or even read the code, there is no difference between open and closed software.&lt;br /&gt;&lt;br /&gt;Don't get me wrong, because I'm a big fan of open source and collaborate in several open source projects but keep my argument in mind if you discuss with "non IT people".&lt;br /&gt;&lt;br /&gt;Your opinion is highly appreciated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1724332947240859195?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1724332947240859195/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1724332947240859195' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1724332947240859195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1724332947240859195'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/09/open-source-discussion-in-swiss.html' title='Open Source Discussion in Swiss Government'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8042003526329455672</id><published>2009-08-25T10:35:00.001+02:00</published><updated>2009-08-25T10:35:04.125+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>NetBeans toSting() Generator Plugin: Project Started</title><content type='html'>The toString() generator in Eclipse Galileo is very good.&lt;br /&gt;Unfortunately in NetBeans this functionality is missing. &lt;br /&gt;&lt;br /&gt;That's why I decided to start a Kenai project:&lt;br /&gt;http://kenai.com/projects/nbtostring&lt;br /&gt;&lt;br /&gt;Creating code generators in NetBeans is very easy. There is a project template that will create everything to start. Now I will have a look how Eclipse implemented the toString() generation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8042003526329455672?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8042003526329455672/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8042003526329455672' title='73 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8042003526329455672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8042003526329455672'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/08/netbeans-tosting-generator-plugin.html' title='NetBeans toSting() Generator Plugin: Project Started'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>73</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-133777920050908615</id><published>2009-07-24T14:01:00.002+02:00</published><updated>2009-07-24T14:03:08.498+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NetBeans'/><title type='text'>Two Weeks with NetBeans 6.7</title><content type='html'>Because of &lt;a href="http://kenai.com/projects/javaee-patterns"&gt;Adam Biens Java EE patterns and best practices project on Kenai&lt;/a&gt; i started to use NetBeans 6.7.&lt;br /&gt;&lt;br /&gt;In earlier days I had a bad impression of NetBeans. I thought it was slow and so completely different compared to Eclipse. Maybe it was my age making it harder to switch from on IDE to another ;-)&lt;br /&gt;&lt;br /&gt;Now I started a new project and decided to use NetBeans and Maven2. I used it very extensively during the last weeks.&lt;br /&gt;&lt;br /&gt;And I'm impressed! The integration of Maven2 in NetBeans is really great! It doesn't create additional project configuration it simply uses the pom.xml!&lt;br /&gt;&lt;br /&gt;On the other hand I mostly used JUDE UML for UML modeling. But with NetBeans it's no longer necessary to use an external tool because there is an UML plugin that really works! Even the synchronization with the source code is not to bad.&lt;br /&gt;&lt;br /&gt;Compared with Eclipse NetBeans feels like an Integrated Development Environment and not like a platform with some plugins in it.&lt;br /&gt;&lt;br /&gt;After this time with NetBeans I will go one working with it. But I will use Eclipse for my "legacy" code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-133777920050908615?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/133777920050908615/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=133777920050908615' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/133777920050908615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/133777920050908615'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/07/two-weeks-with-netbeans-67.html' title='Two Weeks with NetBeans 6.7'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2441852191970889810</id><published>2009-07-08T11:38:00.000+02:00</published><updated>2009-07-08T11:38:10.741+02:00</updated><title type='text'>Google Chrome Operating System</title><content type='html'>What I always expected becomes true!&lt;br /&gt;Google will develop his own operating system called Google Chrome OS.&lt;br /&gt;&lt;a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html"&gt;Read more in the offical Google Blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2441852191970889810?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2441852191970889810/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2441852191970889810' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2441852191970889810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2441852191970889810'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/07/google-chrome-operating-system.html' title='Google Chrome Operating System'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5462641628328412209</id><published>2009-06-02T19:25:00.006+02:00</published><updated>2009-06-02T21:27:12.662+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA Constructor Expression Quiz</title><content type='html'>Assume the following query with constructor expression:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SELECT NEW jpa.to.ContainerTO(p, e.name) FROM Employee e JOIN e.phones p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Question: What is the Type of p in the constructor expression?&lt;br /&gt;&lt;br /&gt;1. Collection of Phone&lt;br /&gt;2. Object&lt;br /&gt;3. Phone&lt;br /&gt;4. none of the above&lt;br /&gt;&lt;br /&gt;The correct answer is 3!&lt;br /&gt;&lt;br /&gt;I would like a collection of Phone because that's what I expected and what the navigation to e.phones tells me. But in reality it returns a cartesian product of Employee and Phone which means that I have to care myself.&lt;br /&gt;&lt;br /&gt;I asked Mike Keith and here's his answer:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The  spec defines identification variables such that they represent instances, not  collections.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;When  you alias a JOIN the alias represents each instance of the collection, so in  your example "p" represents each  phone in the collection (for each row in the cartesian  product).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;There  is a section in Chapter 4 in the spec on "Identification Variables" that  explains this if you like going to the spec  for reference.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Thanks a lot to Mike for his clarification!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5462641628328412209?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5462641628328412209/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5462641628328412209' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5462641628328412209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5462641628328412209'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/06/jpa-constructor-expression-quiz.html' title='JPA Constructor Expression Quiz'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8933565254315045054</id><published>2009-05-25T16:27:00.002+02:00</published><updated>2009-05-25T16:27:41.665+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java 6 Annotation Processor API</title><content type='html'>In JPA 2.0 the Java 6 Annotaion Processor API will be used to generate the meta model.&lt;br /&gt;&lt;br /&gt;Today I found a nice introduction to this Annontation Processor API on java.net. &lt;a href="http://today.java.net/pub/a/today/2008/04/10/source-code-analysis-using-java-6-compiler-apis.html"&gt;Read on&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8933565254315045054?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8933565254315045054/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8933565254315045054' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8933565254315045054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8933565254315045054'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/05/java-6-annotation-processor-api.html' title='Java 6 Annotation Processor API'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-290144185698976239</id><published>2009-05-21T17:11:00.004+02:00</published><updated>2009-05-21T17:15:39.979+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simject'/><title type='text'>@Inject Posted to JCP</title><content type='html'>Today Bob Lee et al. posted the &lt;a href="http://docs.google.com/Doc?id=dd2fhx4z_22g7x8zdfn"&gt;proposal of @Inject&lt;/a&gt; to &lt;a href="http://www.jcp.org/"&gt;JCP&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In the updated version they for see some additional XML configuration to tell the injecter what it should inject. That makes it much saver in bigger environments.&lt;br /&gt;&lt;br /&gt;That's what I always had in &lt;a href="http://www.simject.org/"&gt;simject&lt;/a&gt;. I don't trust the magic of some other DI frameworks when they do some auto injection.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-290144185698976239?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/290144185698976239/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=290144185698976239' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/290144185698976239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/290144185698976239'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/05/inject-posted-to-jcp.html' title='@Inject Posted to JCP'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8975166761004669116</id><published>2009-05-05T23:19:00.000+02:00</published><updated>2009-05-05T23:19:25.330+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simject'/><title type='text'>Dependency Injection Standardized</title><content type='html'>Today Bob Lee (founder of Google Guice) &lt;a href="http://google-code-updates.blogspot.com/2009/05/javaxinjectinject.html"&gt;announced the proposal for a java specification&lt;/a&gt; request (JSR) to standardize the annotations for dependency injection. Google and SpringSource will collaborate in this specification.&lt;br /&gt;This spec will help to make DI portable and framework independant. &lt;a href="http://www.simject.org/"&gt;simject&lt;/a&gt; will for sure base on this spec ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8975166761004669116?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8975166761004669116/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8975166761004669116' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8975166761004669116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8975166761004669116'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/05/dependency-injection-standardized.html' title='Dependency Injection Standardized'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5851266597917025970</id><published>2009-04-28T12:55:00.000+02:00</published><updated>2009-04-28T12:55:46.922+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted 1.5.4 with Advanced Domain Support</title><content type='html'>In gted 1.5.4 the --default-domain setting is now used all over the gted tools integration.&lt;br /&gt;Which means that it's now longer necessary to name .po and .pot files messages.po or messages.pot.&lt;br /&gt;The filename will be the same as --default-domain value.&lt;br /&gt;&lt;br /&gt;Please let me know if you have more features that you like to have in gted!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5851266597917025970?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5851266597917025970/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5851266597917025970' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5851266597917025970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5851266597917025970'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/04/gted-154-with-advanced-domain-support.html' title='gted 1.5.4 with Advanced Domain Support'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4797303241822694551</id><published>2009-04-20T14:53:00.000+02:00</published><updated>2009-04-20T14:53:32.735+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Oracle Buys Sun!</title><content type='html'>Today Oracle announced the acquisiton of Sun! &lt;a href="http://www.oracle.com/us/corporate/press/018363"&gt;Read offical news&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;What does this mean to the Java community?&lt;br /&gt;First Oracle has no one of the biggest open source databases in his portfolio: MySQL!&lt;br /&gt;In the past few month Sun always compared the TCO of MySQL with Oracle.&lt;br /&gt;What will be the postion of MySQL for Oracle?&lt;br /&gt;&lt;br /&gt;From the Java language side I think it doesn't matter wether Oracle or IBM owns Java because both are mighty players in the Java Community Process.&lt;br /&gt;&lt;br /&gt;On the operating system side maybe Oracle can enhance the status of Solaris as the standard OS for Oracle.&lt;br /&gt;&lt;br /&gt;I'm very currios what will happen during the next few month...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4797303241822694551?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4797303241822694551/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4797303241822694551' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4797303241822694551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4797303241822694551'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/04/oracle-buys-sun.html' title='Oracle Buys Sun!'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8086753640030880050</id><published>2009-04-14T10:43:00.003+02:00</published><updated>2009-04-14T10:47:03.094+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Where Does the Eclipse Code Comes From?</title><content type='html'>Currently there is a &lt;a href="http://eclipse-projects.blogspot.com/2009/04/its-new-world.html"&gt;debate about the future of Eclipse&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Did you ever wondering where the code of Eclipse comes from?&lt;br /&gt;On the &lt;a href="http://dash.eclipse.org/dash/commits/web-app/commit-count-loc.php?sortBy=loc&amp;amp;show="&gt;Eclipse Company/Project Dashboard&lt;/a&gt; you find the answer.&lt;br /&gt;Around 50% of the code comes from IBM!&lt;br /&gt;&lt;br /&gt;For me that's no surprise because IBM was the initiator/founder of Eclipse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8086753640030880050?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8086753640030880050/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8086753640030880050' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8086753640030880050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8086753640030880050'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/04/where-does-eclipse-code-comes-from.html' title='Where Does the Eclipse Code Comes From?'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7554892896160455100</id><published>2009-04-14T10:40:00.001+02:00</published><updated>2009-04-14T10:47:11.783+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><title type='text'>Maven How-Tos</title><content type='html'>There is a post in the Sonatype Blog which summarizes very useful how-toes for Maven.&lt;br /&gt;A must for every Maven user!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sonatype.com/people/2009/04/summary-of-maven-how-tos/"&gt;Have a look.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7554892896160455100?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7554892896160455100/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7554892896160455100' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7554892896160455100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7554892896160455100'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/04/maven-how-tos.html' title='Maven How-Tos'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1229019560603616527</id><published>2009-04-08T09:44:00.001+02:00</published><updated>2009-04-08T09:44:35.657+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Google App Engine with Java Support</title><content type='html'>A while a go I wrote about my first steps with Google App Engine. This was a quite impressive experience but I don't really like to program in Python.&lt;br /&gt;&lt;br /&gt;Now Google provides Java support for the App Engine. &lt;a href="http://code.google.com/appengine/docs/java/gettingstarted/"&gt;Read more&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1229019560603616527?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1229019560603616527/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1229019560603616527' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1229019560603616527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1229019560603616527'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/04/google-app-engine-with-java-support.html' title='Google App Engine with Java Support'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1135944642831062287</id><published>2009-04-07T10:55:00.001+02:00</published><updated>2009-04-07T10:56:01.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Design'/><title type='text'>8 Simple Ways to Improve Typography in Your Design</title><content type='html'>Antonio Carusone wrote an interesting article about typography improvement. &lt;a href="http://www.aisleone.net/2009/design/8-ways-to-improve-your-typography/"&gt;Read his article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1135944642831062287?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1135944642831062287/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1135944642831062287' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1135944642831062287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1135944642831062287'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/04/8-simple-ways-to-improve-typography-in.html' title='8 Simple Ways to Improve Typography in Your Design'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1239834043682155466</id><published>2009-04-01T11:28:00.001+02:00</published><updated>2009-04-01T11:32:56.167+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA 2.0 Proposed Final Draft</title><content type='html'>Spec lead Linda DeMichiel describes in her blog &lt;a href="http://blogs.sun.com/ldemichiel/entry/java_persistence_2_0_proposed"&gt;all the new features&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Specially the Criteria API will change the way queries could be exposed:&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;code style="color: rgb(0, 0, 153);"&gt;QueryBuilder qb = em.getQueryBuilder();&lt;br /&gt;CriteriaQuery q = qb.create();&lt;br /&gt;Root&lt;customer&gt; customer = q.from(Customer.class);&lt;br /&gt;Join&lt;order, lineitem=""&gt; item = customer.join(Customer_.orders).join(Order_.items);&lt;br /&gt;q.where(qb.equals(item.get(Item_.product).get(Product_.productType), "printer"))&lt;br /&gt; .select(customer.get(Customer_.name));&lt;/order,&gt;&lt;/customer&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You may wonder what Customer_.orders or Oders_.items is. This comes from the new Metamodel API also introduced in JPA 2.0. The classes with the prefix _ contains alle the meta information of your entities which looks like that:&lt;br /&gt;&lt;br /&gt;&lt;code style="color: rgb(0, 0, 153);"&gt;import javax.persistence.metamodel.*;&lt;br /&gt;@TypesafeMetamodel&lt;br /&gt;public class Customer_ {&lt;br /&gt;    public static volatile Attribute&lt;customer, integer=""&gt; custId;&lt;br /&gt;    public static volatile Attribute&lt;customer, string=""&gt; name;&lt;br /&gt;    public static volatile Set&lt;customer, order=""&gt; orders;&lt;br /&gt;    ...&lt;br /&gt;}&lt;/customer,&gt;&lt;/customer,&gt;&lt;/customer,&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Together with the Metamodel API the Criteria API becomes no type save!&lt;br /&gt;This comes very close to .NETs LINQ! Which in my opinion is a big step for JPA!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1239834043682155466?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1239834043682155466/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1239834043682155466' title='6 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1239834043682155466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1239834043682155466'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/04/jpa-20-proposed-final-draft.html' title='JPA 2.0 Proposed Final Draft'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2053763448742981041</id><published>2009-03-24T12:45:00.001+01:00</published><updated>2009-03-24T12:46:07.430+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Do you know all HTML Tags?</title><content type='html'>Glen Stansberry wrote an &lt;a href="http://net.tutsplus.com/articles/web-roundups/10-rare-html-tags-you-really-should-know/"&gt;article about 10 rare used HTML tags&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To be honest I didn't knew any of these ten tags and I use HTML since more than 12 years!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2053763448742981041?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2053763448742981041/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2053763448742981041' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2053763448742981041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2053763448742981041'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/03/do-you-know-all-html-tags.html' title='Do you know all HTML Tags?'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8655302339982849353</id><published>2009-03-22T17:24:00.002+01:00</published><updated>2009-03-22T17:25:59.387+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Soft skills'/><title type='text'>How to build a performing dream developer team</title><content type='html'>In &lt;a href="http://draft.blogger.com/goog_1237738555079"&gt;Computerwoche&lt;/a&gt;&lt;a href="http://www.computerwoche.de/job_karriere/personal_management/1889476/"&gt; there is an interesting article&lt;/a&gt; about a session that &lt;a href="http://www.adam-bien.com/"&gt;Adam Bien&lt;/a&gt; held on the OOP conference.&lt;br /&gt;&lt;br /&gt;For the most part I agree with the conclusions.&lt;br /&gt;&lt;br /&gt;My experience shows that one of the most important fact is to have people how speak the same language. And with language I don't mean English or German. I mean the way they think, work together etc.&lt;br /&gt;&lt;br /&gt;If you have a team member who is not accepted by the team or does not follow the team rules he should not stay in the team. Because the team spirit is at risk and the project can fail because of one inacceptable person.&lt;br /&gt;&lt;br /&gt;What's your experience and what did you do if you had some one who didn't fit into the team?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8655302339982849353?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8655302339982849353/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8655302339982849353' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8655302339982849353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8655302339982849353'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/03/how-to-build-performing-dream-developer.html' title='How to build a performing dream developer team'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-3974082374661276614</id><published>2009-03-17T12:46:00.001+01:00</published><updated>2009-03-17T12:47:09.333+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webdesign'/><title type='text'>How to Improve Web Typography</title><content type='html'>Mindy Wagner posted a very interesting post about improving typography on websites:&lt;br /&gt; &lt;a href="http://www.webdesignerdepot.com/2009/03/5-simple-ways-to-improve-web-typography/"&gt;5 Simple Ways to Improve Web Typograph&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will for sure adapt his proposals to my websites!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-3974082374661276614?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/3974082374661276614/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=3974082374661276614' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3974082374661276614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3974082374661276614'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/03/how-to-improve-web-typography.html' title='How to Improve Web Typography'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-363509000847767671</id><published>2009-03-13T12:27:00.001+01:00</published><updated>2009-03-17T12:46:55.174+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>EJB 3.1: Proposed Final Draft available</title><content type='html'>Since March 6th the &lt;a href="http://jcp.org/en/jsr/detail?id=318"&gt;proposed final draft of EJB 3.1&lt;/a&gt; is out.&lt;br /&gt;&lt;br /&gt;You can send comments to &lt;a href="mailto:jsr-318-comments@jcp.org"&gt;jsr-318-comments@jcp.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-363509000847767671?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/363509000847767671/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=363509000847767671' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/363509000847767671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/363509000847767671'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/03/ejb-31-proposed-final-draft-available.html' title='EJB 3.1: Proposed Final Draft available'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-9111497491323805782</id><published>2009-03-11T15:00:00.001+01:00</published><updated>2009-03-11T15:00:42.337+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Google Android</title><content type='html'>I found a &lt;a href="http://it-republik.de/jaxenter/artikel/Google-Android-%96-So-funktioniert%92s-2177.html"&gt;very interesting article&lt;/a&gt; in German from Konrad Hübner and Henning Böger about Google Android on JAXenter.&lt;br /&gt;&lt;br /&gt;When I have time this spring I will for sure try Google Android and I hope that in a the near future there will be smart phones available in Switzerland!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-9111497491323805782?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/9111497491323805782/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=9111497491323805782' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/9111497491323805782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/9111497491323805782'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/03/google-android.html' title='Google Android'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8007801688898639432</id><published>2009-03-10T08:29:00.002+01:00</published><updated>2009-03-10T08:30:29.752+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA TopLink and Cache</title><content type='html'>Most of the JPA implementations are using one or more caches to improve performance.&lt;br /&gt;Wonseok Kim describs in his block &lt;a href="http://weblogs.java.net/blog/guruwons/archive/2006/09/understanding_t_1.html"&gt;the behavior of TopLink Essentials&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Reading this article gives you a good idea how caching could affect the behavior of your application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8007801688898639432?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8007801688898639432/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8007801688898639432' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8007801688898639432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8007801688898639432'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/03/jpa-toplink-and-cache.html' title='JPA TopLink and Cache'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6507415750526324196</id><published>2009-03-09T12:45:00.001+01:00</published><updated>2009-03-10T08:30:38.248+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Proposals for Java Language Changes: Project Coin</title><content type='html'>In &lt;a href="http://blogs.sun.com/darcy/entry/project_coin_week_1_update"&gt;Joseph D. Darcy's Sun Weblog&lt;/a&gt; one can find a list with the proposals for &lt;a href="http://openjdk.java.net/projects/coin/"&gt;project coin&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In my opinion there are some very useful extensions like Lightweight Properties proposed.&lt;br /&gt;&lt;br /&gt;Have a look and let me or better Joseph know what you are thinking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6507415750526324196?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6507415750526324196/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6507415750526324196' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6507415750526324196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6507415750526324196'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/03/proposals-for-java-language-changes.html' title='Proposals for Java Language Changes: Project Coin'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4687354604594208729</id><published>2009-03-08T09:21:00.003+01:00</published><updated>2009-03-08T09:22:04.912+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scrum'/><title type='text'>Scrum Tools</title><content type='html'>For all of you how are using Scrum there is a &lt;a href="http://scrum4you.wordpress.com/2009/03/01/scrum-tools-list/"&gt;list and reviews of current Scrum Tools&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Check it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4687354604594208729?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4687354604594208729/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4687354604594208729' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4687354604594208729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4687354604594208729'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/03/scrum-tools.html' title='Scrum Tools'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8129957974725805395</id><published>2009-02-23T09:10:00.001+01:00</published><updated>2009-03-08T09:21:53.948+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simject'/><title type='text'>simject and JSR 303 Bean Validation</title><content type='html'>&lt;div style="font-family: inherit;"&gt;Currently I'm working on a new feature to inject the Validator of &lt;a href="http://jcp.org/en/jsr/detail?id=303"&gt;JSR 303 Bean Validation&lt;/a&gt; using the @Resource annotation. e.g.&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;@Resource&lt;/div&gt;&lt;span style=";font-family:&amp;quot;;" &gt;private Validator validator;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I think this is useful extension, because in my opinion JSR 303 will become a very important part of the Java API in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8129957974725805395?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8129957974725805395/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8129957974725805395' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8129957974725805395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8129957974725805395'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/02/simject-and-jsr-303-bean-validation.html' title='simject and JSR 303 Bean Validation'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6096541406509413308</id><published>2009-02-11T14:40:00.007+01:00</published><updated>2009-02-11T14:42:55.794+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Eclipse e4 0.9M1 released</title><content type='html'>The first milestone of the next &lt;a href="http://www.eclipse.org/e4/"&gt;Eclipse generation e4&lt;/a&gt; is out now!&lt;br /&gt;They are rebuilding Eclipse to make it a better application platform and enable it for use in web applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6096541406509413308?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6096541406509413308/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6096541406509413308' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6096541406509413308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6096541406509413308'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/02/eclipse-e4-09m1-released.html' title='Eclipse e4 0.9M1 released'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4775335971111948295</id><published>2009-01-28T13:33:00.012+01:00</published><updated>2009-02-11T14:43:07.057+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Version Control for Solo Developers?</title><content type='html'>In his &lt;a href="http://devreview.com/version-control-for-solo-developers/"&gt;post Ernie Leseberg&lt;/a&gt; describes the advantages of version control even for small to one developer teams.&lt;br /&gt;I never thougth about that before! Because in my opinion it's common to use version control and it doesn't matter how big the team is! We have year 2009!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4775335971111948295?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4775335971111948295/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4775335971111948295' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4775335971111948295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4775335971111948295'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/01/version-control-for-solo-developers.html' title='Version Control for Solo Developers?'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5595146250882204051</id><published>2009-01-28T11:06:00.005+01:00</published><updated>2009-01-28T11:08:20.981+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Jetty Proposed as Eclipse Project</title><content type='html'>The popular web container Jetty is proposed to be an Eclipse project. &lt;a href="http://www.eclipse.org/proposals/jetty/"&gt;Read more&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5595146250882204051?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5595146250882204051/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5595146250882204051' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5595146250882204051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5595146250882204051'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/01/jetty-proposed-as-eclipse-project.html' title='Jetty Proposed as Eclipse Project'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5955725928062954383</id><published>2009-01-13T20:54:00.001+01:00</published><updated>2009-01-13T20:55:55.268+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted 1.5.0 released</title><content type='html'>Today I made a new version of gted. It includes to new options for xgettext and msgfmt:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;#1993779: .pot file name as option&lt;/li&gt;&lt;li&gt;#2500775: Added -r option for Java output.&lt;br /&gt;Thanks a lot to Martin for his patch!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5955725928062954383?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5955725928062954383/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5955725928062954383' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5955725928062954383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5955725928062954383'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/01/gted-150-released.html' title='gted 1.5.0 released'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6819924292893454401</id><published>2009-01-07T13:58:00.004+01:00</published><updated>2009-01-07T14:12:37.666+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><title type='text'>Public Review of JSR-303 Bean Validation Started</title><content type='html'>You can find the spec on the &lt;a href="http://jcp.org/aboutJava/communityprocess/pr/jsr303/index.html"&gt;JSR page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Because Bean Validation will have impact on how validation is done in Java EE it contains a section about integration in JPA 2.0. There will several changes related to the DDL generation. See the extract of this proposal:&lt;br /&gt;&lt;br /&gt;The list of constraints that must be understood by persistence providers are as followed:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;@NotNull should be considered equivalent to @Column(nullable=false) / @JoinColumn(nullable=false)&lt;/li&gt;&lt;li&gt;@Size.max should be considered equivalent to @Column.length for String properties&lt;/li&gt;&lt;li&gt;@Digits (which contains integer and fraction) should be considered equivalent to @Column.precision = integer+fraction, @Column.scale = fraction for decimal columns&lt;/li&gt;&lt;/ul&gt;Persistence Provider should optionally recognize and try to apply the following constraints as well:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;@Min / @Max on numeric columns (TODO String too?)&lt;/li&gt;&lt;li&gt;@Future / @Past on temporal columns&lt;/li&gt;&lt;li&gt;@Size for collections and array (not sure it is feasible)&lt;/li&gt;&lt;/ul&gt;JPA 2.0 will become even better!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6819924292893454401?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6819924292893454401/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6819924292893454401' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6819924292893454401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6819924292893454401'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/01/public-review-of-jsr-303-bean.html' title='Public Review of JSR-303 Bean Validation Started'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6019898349410571280</id><published>2009-01-01T22:17:00.001+01:00</published><updated>2009-01-01T22:19:53.129+01:00</updated><title type='text'>Happy New Year!</title><content type='html'>I wish you all a successful new year!&lt;br /&gt;&lt;br /&gt;Personally 2009 will be a big challenge for sure! There will be a lot of work on my new job and maybe there will be some surprises...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6019898349410571280?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6019898349410571280/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6019898349410571280' title='5 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6019898349410571280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6019898349410571280'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2009/01/happy-new-year.html' title='Happy New Year!'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1875688026448413608</id><published>2008-12-22T14:22:00.003+01:00</published><updated>2008-12-22T14:25:27.841+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted 1.5.0 will be released soon</title><content type='html'>New feature:&lt;br /&gt;--default-domain will be configurable. So the files no longer need to be named messages.po&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1875688026448413608?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1875688026448413608/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1875688026448413608' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1875688026448413608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1875688026448413608'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/12/gted-150-will-be-released-soon.html' title='gted 1.5.0 will be released soon'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5094520291060836919</id><published>2008-12-16T20:39:00.001+01:00</published><updated>2008-12-22T14:24:58.239+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='RCP'/><title type='text'>Prototyp with NetBeans RCP Started</title><content type='html'>We decided to use NetBeans RCP for a first prototyp of our new GUI platform.&lt;br /&gt;The main reason behind the decision is that NetBeans RCP is based on Java standards and we hope that it will support all new specs like Beans Binding and Bean Validation in the future.&lt;br /&gt;&lt;br /&gt;I hope to publish first experiences soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5094520291060836919?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5094520291060836919/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5094520291060836919' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5094520291060836919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5094520291060836919'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/12/prototyp-with-netbeans-rcp-started.html' title='Prototyp with NetBeans RCP Started'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6734076955114785315</id><published>2008-11-13T11:46:00.001+01:00</published><updated>2008-12-22T14:25:09.196+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='RCP'/><title type='text'>To RCP or not to RCP</title><content type='html'>In my current project we are thinking about the use of a new GUI framework.&lt;br /&gt;Unfortunatly I can't find a framework that fits our needs.&lt;br /&gt;&lt;br /&gt;Our requirments are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Swing&lt;/li&gt;&lt;li&gt;Plugin mechanism&lt;/li&gt;&lt;li&gt;Validation&lt;/li&gt;&lt;li&gt;Data binding&lt;/li&gt;&lt;li&gt;Event listening&lt;/li&gt;&lt;li&gt;Eclipse IDE for development&lt;/li&gt;&lt;/ul&gt;I think the first and the last requirement conflict. So there is NetBeans RCP wich uses Swing but it's not simply possible to develop in Eclipse IDE and on the other hand we have Eclipse RCP but this uses SWT instead of Swing. So none of them are 100% match.&lt;br /&gt;Then I found &lt;a href="http://www.jpf.org/"&gt;Java Plugin Framework&lt;/a&gt; which looks good. But there is the problem that there are no predefined Extensions to use.&lt;br /&gt;&lt;br /&gt;So it's a dilemma! Any suggestions are very welcome!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6734076955114785315?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6734076955114785315/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6734076955114785315' title='3 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6734076955114785315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6734076955114785315'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/11/to-rcp-or-not-to-rcp.html' title='To RCP or not to RCP'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6401109241885015167</id><published>2008-10-29T18:00:00.001+01:00</published><updated>2008-10-29T20:38:05.702+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Are EJBs Cool?</title><content type='html'>This is the question&amp;nbsp;in &lt;a href="http://www.javaworld.com/javaworld/jw-10-2008/jw-10-ejb3.html"&gt;Adam Beans articel on JavaWorld&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And yes they are ;-) But read it yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6401109241885015167?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6401109241885015167/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6401109241885015167' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6401109241885015167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6401109241885015167'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/10/are-ejbs-cool.html' title='Are EJBs Cool?'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-594365918476591161</id><published>2008-09-19T10:25:00.002+02:00</published><updated>2008-10-29T20:38:22.936+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>New Java Date</title><content type='html'>In JSR 310 a new Date API will be defined. It is proposed to replace java.util.Date and java.util.Calendar in Java SE 7.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://today.java.net/pub/a/today/2008/09/18/jsr-310-new-java-date-time-api.html"&gt;Read on at java.net&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-594365918476591161?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/594365918476591161/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=594365918476591161' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/594365918476591161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/594365918476591161'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/09/new-java-date.html' title='New Java Date'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-819210672125694748</id><published>2008-09-18T08:00:00.000+02:00</published><updated>2008-09-18T11:53:01.981+02:00</updated><title type='text'>Last Day at Swiss Railways</title><content type='html'>Today is my last day at Swiss Railways.&lt;br /&gt;After 18 years I decided to look for a new challenge and I found a new job as teamleader at &lt;a href="http://www.acs-inc.com/tr"&gt;ACS Solutions Switzerland Ltd&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;ACS provides ticketing systems for transportation companies all over the world.&lt;br /&gt;In my new job starting on October 1. I will be responsable for a small team of software developers working on the backend system.&lt;br /&gt;&lt;br /&gt;The time at Swiss Railways was very interesting an I will enjoy my last day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-819210672125694748?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/819210672125694748/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=819210672125694748' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/819210672125694748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/819210672125694748'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/09/last-day-at-swiss-railways.html' title='Last Day at Swiss Railways'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4277940108051230682</id><published>2008-08-28T07:02:00.003+02:00</published><updated>2008-09-18T11:45:49.164+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simject'/><title type='text'>New version of simject without external dependencies</title><content type='html'>Yesterday I released simject 1.3.0.&lt;br /&gt;&lt;br /&gt;From this version simject doesn't depend on any third party libarary or framework.&lt;br /&gt;Commons HttpUtil, XStream and Log4j were replaced by standard Java SE features like HttpUrlConnection, XMLEndoder and XMLDecoder and java.util.logging&lt;br /&gt;&lt;br /&gt;This alows to use simject in any environment and it's even more simple.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4277940108051230682?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4277940108051230682/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4277940108051230682' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4277940108051230682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4277940108051230682'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/08/new-version-of-simject-without-external.html' title='New version of simject without external dependencies'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8626038332738541211</id><published>2008-08-18T19:00:00.000+02:00</published><updated>2008-08-18T19:00:01.010+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted 1.4.1 with Java 5 support</title><content type='html'>gted 1.4.0 unfortunately only supported Java 1.6 and above.&lt;br /&gt;I like to aplogise to all Java 5 users!&lt;br /&gt;&lt;br /&gt;Now 1.4.1 fixes that bug. You can find more information on &lt;a href="http://www.gted.org/"&gt;gted.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8626038332738541211?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8626038332738541211/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8626038332738541211' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8626038332738541211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8626038332738541211'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/08/gted-141-with-java-5-support.html' title='gted 1.4.1 with Java 5 support'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8501697804220817779</id><published>2008-08-12T19:00:00.002+02:00</published><updated>2008-08-12T19:00:01.330+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted 1.4.0</title><content type='html'>A new version of gted is available now.&lt;br /&gt;&lt;br /&gt;It adds a highly requested feature --from-code to specify the codepage.&lt;br /&gt;&lt;br /&gt;Please help me improve gted by adding feature requests and bug reports on the &lt;a href="http://www.sf.net/projects/gted"&gt;SourceForge project site&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8501697804220817779?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8501697804220817779/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8501697804220817779' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8501697804220817779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8501697804220817779'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/08/gted-140.html' title='gted 1.4.0'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-3681301558902648772</id><published>2008-08-11T18:38:00.002+02:00</published><updated>2008-08-12T14:25:16.810+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>JSR 303</title><content type='html'>Today I found the very interesting &lt;a href="http://jcp.org/en/jsr/detail?id=303"&gt;JSR 303 Bean Validation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There is a &lt;a href="http://www.jboss.org/file-access/default/members/default/freezone/presentations/JavaOne2008_JSR303BeanValidation.pdf"&gt;presentation &lt;/a&gt;from Emmanuel Bernard from this years JavaOne which gives a very good overview.&lt;br /&gt;&lt;br /&gt;The main idea is to provide annotaions for validaion support like @NotNull, @Length(max=30) etc. This validation will also be used in Java Persistence API to define the constraints and also for the automatic database generation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-3681301558902648772?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/3681301558902648772/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=3681301558902648772' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3681301558902648772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3681301558902648772'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/08/jsr-303.html' title='JSR 303'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8009321678892502858</id><published>2008-08-01T14:55:00.002+02:00</published><updated>2008-08-12T14:25:01.529+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simject'/><title type='text'>simject 1.1.0 with additonal remoting configuration</title><content type='html'>In the new &lt;a href="http://www.simject.org/"&gt;simject&lt;/a&gt; 1.1.0 release I added some advanced remoting configuration.&lt;br /&gt;&lt;br /&gt;By adding either xml: or bin: before the http://... one can definie if simejct should use XStream for XML serialization or if it should do normal Java serialization.&lt;br /&gt;&lt;br /&gt;The binary protocol can improve the performance when sending or receiving large objects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8009321678892502858?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8009321678892502858/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8009321678892502858' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8009321678892502858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8009321678892502858'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/08/simject-110-with-additonal-remoting.html' title='simject 1.1.0 with additonal remoting configuration'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6059841023024156877</id><published>2008-07-31T21:50:00.003+02:00</published><updated>2008-08-12T14:25:29.615+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simject'/><title type='text'>simject new version 1.0.5</title><content type='html'>I made some Maven2 project refactoring and released 1.0.5 of &lt;a href="http://www.simject.org/"&gt;simject&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Any comments are welcome!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6059841023024156877?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6059841023024156877/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6059841023024156877' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6059841023024156877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6059841023024156877'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/07/simject-new-version-105.html' title='simject new version 1.0.5'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4502761350988021271</id><published>2008-07-30T16:30:00.001+02:00</published><updated>2008-08-12T14:25:39.806+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simject'/><title type='text'>simject 1.0.0 released</title><content type='html'>Today I released the first version of &lt;a href="http://www.simject.org/"&gt;simject&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.simject.org/"&gt;Have a look&lt;/a&gt; and let me know what you are thinking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4502761350988021271?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4502761350988021271/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4502761350988021271' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4502761350988021271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4502761350988021271'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/07/simject-100-released.html' title='simject 1.0.0 released'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5972104911319382155</id><published>2008-07-29T21:07:00.003+02:00</published><updated>2008-08-12T14:25:54.184+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simject'/><title type='text'>New OpenSource Project started: simject</title><content type='html'>During my private studies on dependency injection, JPA, dynamic proxies and remoting I decided to create a very simple dependency injection framework:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.simject.org/"&gt;simject : SIMple dependency inJECTion&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you don't need a complex, full featured framework like SpringFramework - check out &lt;a href="http://www.simject.org/"&gt;simject&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5972104911319382155?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5972104911319382155/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5972104911319382155' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5972104911319382155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5972104911319382155'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/07/new-opensource-project-started-simject.html' title='New OpenSource Project started: simject'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6668161702210945460</id><published>2008-07-19T14:07:00.002+02:00</published><updated>2008-08-12T14:26:05.704+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted tutorial online</title><content type='html'>Today I put a gted tutorial online: &lt;a href="http://www.gted.org/"&gt;www.gted.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's written by Pavel Mendl. It's great to have a small gted community!&lt;br /&gt;Thanks a lot!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6668161702210945460?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6668161702210945460/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6668161702210945460' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6668161702210945460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6668161702210945460'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/07/gted-tutorial-online.html' title='gted tutorial online'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-8128178925862097738</id><published>2008-07-10T08:24:00.003+02:00</published><updated>2008-08-12T14:26:24.014+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>EclipseLink 1.0 available</title><content type='html'>Great news from EclipseLink: 1.0 is availabe for download &lt;a href="http://www.eclipse.org/eclipselink/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-8128178925862097738?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/8128178925862097738/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=8128178925862097738' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8128178925862097738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/8128178925862097738'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/07/eclipselink-10-available.html' title='EclipseLink 1.0 available'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2582456377528760936</id><published>2008-06-27T10:34:00.002+02:00</published><updated>2008-06-27T10:40:27.075+02:00</updated><title type='text'>EclipseLink no longer incubator project</title><content type='html'>Tonight EclipseLink graduated from incubator to a "real" Eclipse project.&lt;br /&gt;Congratulations!&lt;br /&gt;&lt;br /&gt;EclipseLink is based on Oracles TopLink which was donated to Eclipse. We at Swiss Railways are using TopLink since 2001. Historically TopLink was developed by the The Object People (thats the Top part in TopLink) . Then it was overtaken by WebGain (VisualCafe if someone can remember) and finally after the disappearance of WebGain Oracle took TopLink and made it a part of their application server product. (btw VisualCafe was taken by Borland to get WebGains customers)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.eclipse.org/eclipselink/"&gt;Read more on EclipseLink project website&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2582456377528760936?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2582456377528760936/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2582456377528760936' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2582456377528760936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2582456377528760936'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/06/eclipselink-no-longer-incubator-project.html' title='EclipseLink no longer incubator project'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2280236813597189161</id><published>2008-06-26T15:56:00.003+02:00</published><updated>2008-06-26T16:08:43.224+02:00</updated><title type='text'>Simon @ Jazoon #2</title><content type='html'>Yesterday the program at Jazoon was quite ok. Ted Neward held a keynote about "Rethinking Enterprise". He's a great speaker the speech was very enjoyable. The many message was that most people are using some sort of pattern to match new requirements (eg. to a software architecture) with known cases. It would be better to have a higher view to the problem and then to try choosing the appropriate solution.&lt;br /&gt;&lt;br /&gt;Then Juergen Hoeller presented the new features of Spring 2.5. In short the main advantage of this release is that you no longer need any XML configuration file. One can do all the config stuff using annotations. (And yes, they do support the common annotations of Java EE!)&lt;br /&gt;&lt;br /&gt;Today the keynote was presented by Joshua Bloch. He has finished his new Effective Java Book and talked about wildcards in generics and the correct use of enumerations.&lt;br /&gt;After that Dan Allen held a speech about bijection in JBoss Seam. Very interesting extension of the common dependency injection pattern.&lt;br /&gt;&lt;br /&gt;The last session I went in was Adam Biens speech about Glassfish. I must say that from day to day I like Glassfish more, because it's very simple to use and the deployment is quite very fast.&lt;br /&gt;&lt;br /&gt;In conclusion this years Jazoon was better than the one last year, but there is a long way to reach the quality of a conference like JAX! But hopefully I'll be there next year...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2280236813597189161?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2280236813597189161/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2280236813597189161' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2280236813597189161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2280236813597189161'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/06/simon-jazoon-2.html' title='Simon @ Jazoon #2'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5330342537205069439</id><published>2008-06-24T15:17:00.002+02:00</published><updated>2008-06-24T15:44:30.800+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Jazoon'/><title type='text'>Simon @ Jazoon #1</title><content type='html'>This week I'll be at &lt;a href="http://www.jazoon.ch"&gt;Jazoon&lt;/a&gt; in Zurich.&lt;br /&gt;&lt;br /&gt;Yesterday (Monday) I was on a tutorial about Glassfish and I was very impressed about this application server. Currently I think, that Glassfish is the most innovative Java EE server on the market.&lt;br /&gt;On Thursday I will visit a session of Adam Bien about Glassfish. More about it then.&lt;br /&gt;&lt;br /&gt;Today (Tuesday) there was an opening session with three very interesting key notes. In the first one Martin Odersky held a speech about his programing language Scala. It's a very interesting but in my opinion very academic approach to use Java more dynamic.&lt;br /&gt;&lt;br /&gt;In the second key note Simon Phipps form Sun talked about how Java became open source and the benefits of open source software in the hole. This was really a good speech!&lt;br /&gt;&lt;br /&gt;The third and last speech was held by Rod Johnson founder of SpringSource (formerly Interface21) and the man behind Spring Framework.&lt;br /&gt;I was a big fan of Spring Framework since 2005. "Was" because in my opinion SpringSource is moving from a very innovative startup building a great framework to a normal application server vendor.&lt;br /&gt;Rod talked about Java EE 6 profile capability. There are three possible profiles:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A: Webcontainer eg. Tomcat&lt;/li&gt;&lt;li&gt;B: Webcontainer plus JPA, JTA, JSF and some more eg. SpringSource Application Platform or JBoss Seam&lt;br /&gt;&lt;/li&gt;&lt;li&gt;C: fully featured application server eg. Glassfish&lt;/li&gt;&lt;/ul&gt;The confusion for me is in the fact, that Rod sayes EJB is useless (he always said that and with EJB 2.1 and earlier I totally agreed!) but in contrast the SpringSource Application Platform uses also a sort of component container: Spring BeanFactory.&lt;br /&gt;Why not use the "standard" component model of Java EE: EJB 3.x?&lt;br /&gt;&lt;br /&gt;Comparing SpringSource Application Platform as a member of Profile B to Glassfish as a member of Profile C I think that Glassfish is the better choice. Even if you don't use all the features that comes with it - you will have it on board. Addional to that the newest version of Glassfish is embeddable and it starts very fast.&lt;br /&gt;&lt;br /&gt;So I'm curios about the future of Spring and EJB 3.x. Maybe one day they will come together...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5330342537205069439?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5330342537205069439/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5330342537205069439' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5330342537205069439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5330342537205069439'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/06/simon-jazoon-1.html' title='Simon @ Jazoon #1'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1030092752129727519</id><published>2008-06-17T21:33:00.003+02:00</published><updated>2008-06-24T15:46:39.645+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>First steps with Google App Engine</title><content type='html'>This evening I discovered &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine&lt;/a&gt;.&lt;br /&gt;It's a complete application platform using Python, YAML and some Google API.&lt;br /&gt;With the Google API one can create web applications incl. template engine and persistence and one can make use of the Google users.&lt;br /&gt;It also provides a "Dashboard" where one can configure and monitor the applications.&lt;br /&gt;&lt;br /&gt;I followed the tutorial and created my first app a &lt;a href="http://simonshelloworld.appspot.com/"&gt;simple guestbook&lt;/a&gt;.&lt;br /&gt;My first opinion is, that Google App Engine is a great environment for developing smaller web applications. But I don't have any idea how usefull it will be for bigger applications...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/appengine/"&gt;Try it out&lt;/a&gt; and let me know what you are thinking!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1030092752129727519?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1030092752129727519/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1030092752129727519' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1030092752129727519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1030092752129727519'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/06/first-steps-with-google-app-engine.html' title='First steps with Google App Engine'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1071542552919502499</id><published>2008-06-15T17:48:00.003+02:00</published><updated>2008-06-24T15:46:18.897+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EJB'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Heavyweight EJB?</title><content type='html'>Today I read a post in &lt;a href="http://www.adam-bien.com/roller/abien/entry/heavyweight_ejbs_lightweight_pojos_or"&gt;Adam Biens blog&lt;/a&gt; about heavyweightness of EJBs.&lt;br /&gt;&lt;br /&gt;His conclusion is that EJB are even lightweight as any other "container" such as Spring, Guice, Pico etc.&lt;br /&gt;&lt;br /&gt;And I think his right because the only thing that is really to heavy is the application server and its overloaded functionality! For example IBMs WebSphere with all the possibilities to cluster and and other things that smaller application normally doesn't nead!&lt;br /&gt;But there are better options such as Glassfish.&lt;br /&gt;&lt;br /&gt;If I reflect the only feature I really need from frameworks like Spring is Dependency Injection. And this is also provided by EJB3. Additional I need a Persistence Framework such as JPA - but stop - this is also EJB3 and it doesn't matter if I use Spring or EJB3. In contrast with EJB3 I have the Dependency Injection of the EntityManager and this is a big advantage!&lt;br /&gt;Adam writes that Glassfish V3 will be embedable. Then it's no problem to do any JUnit-Tests with my EJBs!&lt;br /&gt;&lt;br /&gt;My conclusion is that EJB3 are simpler to use than frameworks like Spring and they have a main advantage: they are based on a standard! So why using any other non standard framework?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1071542552919502499?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1071542552919502499/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1071542552919502499' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1071542552919502499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1071542552919502499'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/06/heavyweight-ejb.html' title='Heavyweight EJB?'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1254339779285483435</id><published>2008-05-30T20:11:00.003+02:00</published><updated>2008-05-30T22:09:10.309+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Persistence'/><title type='text'>Problem with enum in JPQL solved!</title><content type='html'>&lt;a href="http://www.jroller.com/mkeith"&gt;Mike Keith&lt;/a&gt; solved my enum problem in JPQL.&lt;br /&gt;&lt;br /&gt;I forgot to fully qualify the enum. So if the query is correct it works:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;String queryString = "SELECT a FROM Address a " +&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  "where a.addressType = jpa.model.AddressType.OFFICE";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thanks a lot Mike!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1254339779285483435?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1254339779285483435/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1254339779285483435' title='6 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1254339779285483435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1254339779285483435'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/05/problem-with-enum-in-jpql-solved.html' title='Problem with enum in JPQL solved!'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6357495735632129805</id><published>2008-05-30T15:05:00.004+02:00</published><updated>2008-05-30T15:21:14.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Persistence'/><title type='text'>New features in JPA 2.0</title><content type='html'>Today I had a look at the early draft of the JPA 2.0 spec and like. Here are my highlights of the new features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Added support for persistently ordered lists using OrderColumn and  provider-managed ordering column.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-&gt; Greate! That was really missing!&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;Defined support for foreign key mapping strategy for unidirectional  one-to-many relationships.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-&gt; Very good. It's not very handy to use a relationship table in a one-to-many mapping&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added clear method to EntityManager interface to allow entities to be  evicted from the persistence context; added CLEAR cascade option.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-&gt; Bulk Update and Delete will be even more useful&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added Cache interface.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-&gt; I'm not sure if it's a great idea, but who knows...&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added support for pessimistic locking and new lock mode types.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-&gt; I hope JPA will also provide support for SELECT FOR UPDATE&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Added overloaded find and refresh methods added to support locking with  standardized and vendor-specific properties and hints.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-&gt; Very good, it's no longer required to define an extra query&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added standardized hint javax.persistence.lock.timeout for use in locking  configuration.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-&gt; Great idea!&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added the standardized properties javax.persistence.jdbc.driver,  javax.persistence.jdbc.url, javax.persistence.jdbc.user,  javax.persistence.jdbc.password for use in persistence unit and entity manager  factory configuration.&lt;br /&gt;-&gt; Super! It will be simpler to change the persistence provider in standalone environment. And it will be easier for the tools provider to support persitence.xml properties completion.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added Query getNamedParameters and getPositionalParameters methods.&lt;br /&gt;-&gt; good thing, at least for debugging&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I hope there will be more of them in the next version of the spec...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6357495735632129805?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6357495735632129805/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6357495735632129805' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6357495735632129805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6357495735632129805'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/05/new-features-in-jpa-20.html' title='New features in JPA 2.0'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-511881073967146646</id><published>2008-05-30T13:08:00.004+02:00</published><updated>2008-05-30T15:21:28.775+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Persistence'/><title type='text'>Missing features in JPA</title><content type='html'>During the past JPA course at the university of applied sciences in Bern I discovered two missing features in JPA:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. static inner classes in constructor expressions&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;br /&gt;Example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// Constructor Expression&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;String queryString = &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;"SELECT NEW Outer.Inner(e.name) FROM Employee e";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Query query = em.createQuery(queryString);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;List&lt;outer.inner&gt; outer = query.getResultList();&lt;/outer.inner&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;for (Outer.Inner inner : outer) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Where Outer.Inner is a static inner class in Outer:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public class Outer { &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; public static class Inner {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  private String name;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  public Inner(String name) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   this.name = name;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  public String getName() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   return this.name;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;In my opinion this should work. Because I can instanceiate Inner like this:&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Outer.Inner in = new &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;Outer.Inner("Simon"); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Enumerations in JPQL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For example, this works fine:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;String queryString =&lt;br /&gt;"SELECT a FROM Address  a where a.addressType = :type";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Query query =  em.createQuery(queryString);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;query.setParameter("type",  AddressType.OFFICE);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But this does not:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;String queryString = &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;"SELECT a  FROM Address a where a.addressType = AddressType.OFFICE";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Query query =  em.createQuery(queryString);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Surprising this works in Hibernate but not  with TopLink:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;String queryString = "SELECT a FROM Address a where  a.addressType = 'OFFICE'";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Query query = em.createQuery(queryString);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   &lt;/span&gt;&lt;br /&gt;I hope this two features will be contained in the next JPA relase!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-511881073967146646?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/511881073967146646/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=511881073967146646' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/511881073967146646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/511881073967146646'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/05/missing-features-in-jpa.html' title='Missing features in JPA'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5337711787611864575</id><published>2008-05-29T17:52:00.004+02:00</published><updated>2008-05-30T15:20:33.184+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Only two reasons for declaring an interface</title><content type='html'>I had several discussions about when it makes sense to declare an interface in Java.&lt;br /&gt;&lt;br /&gt;I only found two possible reasons!&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If you could have more than one implementation of this interface (I think this is the original intention for interfaces)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If you want to use proxies. (i.e. remoting or dynamic proxies)&lt;/li&gt;&lt;/ol&gt;In any other cases you should think twice if there is really a need for an interface!&lt;br /&gt;This sounds very simple in a way, but I think this is an important finding.&lt;br /&gt;&lt;br /&gt;If you know any other important reason - please let me know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5337711787611864575?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5337711787611864575/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5337711787611864575' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5337711787611864575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5337711787611864575'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/05/only-two-reasons-for-declaring.html' title='Only two reasons for declaring an interface'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2441408474538789968</id><published>2008-05-12T16:21:00.004+02:00</published><updated>2008-05-30T15:22:14.856+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lecturing'/><title type='text'>Even more lecturing</title><content type='html'>I will start two new courses at the University of Applied Sciences of Bern this Fall.&lt;br /&gt;&lt;br /&gt;One will be a database basic course in the Master of Advanced Studies (MAS) in Medical Technology class and the other is an advanced database concepts course for a MAS in Information Technology class.&lt;br /&gt;&lt;br /&gt;It will be some hard work to prepare but I'm sure to learn a lot of databases techniques for my daily work!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2441408474538789968?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2441408474538789968/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2441408474538789968' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2441408474538789968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2441408474538789968'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/05/even-more-lecturing.html' title='Even more lecturing'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7405269503902415796</id><published>2008-04-07T20:38:00.003+02:00</published><updated>2008-05-30T15:22:36.178+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>Again new version of gted</title><content type='html'>gted 1.3.0 contains two new features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;#1848616: Ctrl + Click on references in source editor&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;#1848621: more than one keyword for xgettext&lt;/li&gt;&lt;/ul&gt;I hope these are usefull!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7405269503902415796?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7405269503902415796/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7405269503902415796' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7405269503902415796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7405269503902415796'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/04/again-new-version-of-gted.html' title='Again new version of gted'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2017926980562910448</id><published>2008-04-06T20:03:00.003+02:00</published><updated>2008-05-30T15:22:49.524+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted project rank 192 at SourceForge</title><content type='html'>Again gted project is a top 200 project at SourceForge!&lt;br /&gt;&lt;br /&gt;Today the statistics shows rank 192 for gted.&lt;br /&gt;&lt;br /&gt;Thanks a lot for visiting the &lt;a href="http://www.gted.org/"&gt;website&lt;/a&gt; and downloading gted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2017926980562910448?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2017926980562910448/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2017926980562910448' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2017926980562910448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2017926980562910448'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/04/gted-project-rank-192-at-sourceforge.html' title='gted project rank 192 at SourceForge'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-5552313638795134218</id><published>2008-04-03T19:55:00.002+02:00</published><updated>2008-05-30T15:23:03.592+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted 1.2.0 released</title><content type='html'>After two days I released the next version of gted with the following bugfixes:&lt;br /&gt;#1931731: Plural-Form correctly saved&lt;br /&gt;#1844311: All .po files are merged&lt;br /&gt;#1927276: Whitespaces are now untouched&lt;br /&gt;&lt;br /&gt;Now all currently know bugs are fixed. If you find some bugs, please let me know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-5552313638795134218?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/5552313638795134218/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=5552313638795134218' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5552313638795134218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/5552313638795134218'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/04/gted-120-released.html' title='gted 1.2.0 released'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-3542786171731832327</id><published>2008-04-03T09:54:00.011+02:00</published><updated>2008-05-30T15:23:18.202+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java SE 6 ServiceLoader</title><content type='html'>Today I had a look at the &lt;span style="font-family:courier new;"&gt;ServiceLoader &lt;/span&gt;class in Java SE 6.&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-family:courier new;"&gt;ServiceLoader &lt;/span&gt;is a generic factory that can be configured with a simple file located in &lt;span style="font-family:courier new;"&gt;META-INF/services&lt;/span&gt;. The filename must be the full qualified name of the interface and contains a single line with the full qualified name of the implementation &lt;span style="font-family:courier new;"&gt;ch.simas.impl.MyServiceImpl&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The usage is also very simple:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;myservice&gt;&lt;span style="font-family:courier new;"&gt;ServiceLoader&lt;myservice&gt; loader = ServiceLoader.load(MyService.class);&lt;br /&gt;&lt;br /&gt;for (Iterator&lt;myservice&gt; it = loader.iterator(); it.hasNext();) {&lt;br /&gt; MyService myService = it.next();&lt;br /&gt;}&lt;br /&gt;&lt;/myservice&gt;&lt;/myservice&gt;&lt;/span&gt;&lt;br /&gt;Try it out!&lt;/myservice&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-3542786171731832327?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/3542786171731832327/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=3542786171731832327' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3542786171731832327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3542786171731832327'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/04/java-se-6-serviceloader.html' title='Java SE 6 ServiceLoader'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-4934259643570123487</id><published>2008-04-01T21:23:00.006+02:00</published><updated>2008-05-30T15:23:27.814+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted 1.1.0 released</title><content type='html'>Today gted 1.1.0 was released.&lt;br /&gt;&lt;br /&gt;It contains fixes for these two bugs:&lt;span style="font-size:100%;"&gt;&lt;br /&gt;[1889727] no entry if line number is not specified in the .po(t)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;[1886392] msgstr not escaped&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thanks to Zoran for his help!&lt;br /&gt;If you have any comments on gted, please let me know!&lt;br /&gt;&lt;h2 style="font-family: georgia; font-weight: normal;"&gt;&lt;!-- google_ad_section_start --&gt;&lt;/h2&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-4934259643570123487?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/4934259643570123487/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=4934259643570123487' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4934259643570123487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/4934259643570123487'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/04/gted-110-released.html' title='gted 1.1.0 released'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2765110535815939714</id><published>2008-03-30T20:07:00.003+02:00</published><updated>2008-03-30T21:10:13.832+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Persistence'/><title type='text'>qlb project joined!</title><content type='html'>On Friday I joined &lt;a href="http://www.adam-bien.com/"&gt;Adam Biens&lt;/a&gt; &lt;a href="https://qlb.dev.java.net/"&gt;qlb project&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;qlb is a utility to generate JPQL queries in a more type safe way.&lt;br /&gt;I will use the the experiences made in this project in my JPA courses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2765110535815939714?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2765110535815939714/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2765110535815939714' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2765110535815939714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2765110535815939714'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/03/qlb-project-joined.html' title='qlb project joined!'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1190155399554732629</id><published>2008-03-25T11:40:00.006+01:00</published><updated>2008-03-25T16:16:21.366+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Persistence'/><title type='text'>Quaere == LINQ?</title><content type='html'>A few weeks ago I discovered LINQ in C# .NET. This is a very nice lean approach to integrate queries into the language. Here's an example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;var emps = from emp in edb.Employees&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     where emp.name.StartsWith("S")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     orderby emp.name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;                     select emp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;foreach (var emp in emps) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Today I found Quaere that seams to be the same:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Iterable&lt;group&gt; groups = from(&lt;/group&gt;&lt;/span&gt;&lt;span class="code-quote"  style="font-family:courier new;"&gt;"city"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;).in(cities).&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;               group(&lt;/span&gt;&lt;span class="code-quote"  style="font-family:courier new;"&gt;"city"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;).by(&lt;/span&gt;&lt;span class="code-quote"  style="font-family:courier new;"&gt;"city.getContinent()"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;).&lt;br /&gt;               into(&lt;/span&gt;&lt;span class="code-quote"  style="font-family:courier new;"&gt;"g"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;).&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;select(&lt;/span&gt;&lt;span class="code-quote"  style="font-family:courier new;"&gt;"g"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre class="code-java"  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="code-keyword"&gt;for&lt;/span&gt; (Group group : groups) {&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;Unfortunately it's far from beeing the same, because LINQ in C# is strong typed! emp in the first example is a variable but city in the second is a string!&lt;br /&gt;&lt;br /&gt;It needs a lot of integration in the programing language to achieve the functionality of LINQ as it is done in C#.&lt;br /&gt;&lt;br /&gt;Maybe Sun will integrate LINQ as well in Java. We'll see ;-)&lt;br /&gt;&lt;br /&gt;So the answer of Quaere == LINQ? is FALSE!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1190155399554732629?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1190155399554732629/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1190155399554732629' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1190155399554732629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1190155399554732629'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/03/quaere-linq.html' title='Quaere == LINQ?'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1714365767489581684</id><published>2008-03-23T09:48:00.007+01:00</published><updated>2008-03-25T16:17:00.408+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>NetBeans again</title><content type='html'>It seams that I'm not the only one thinking that NetBeans is a really competitive IDE.&lt;br /&gt;There is a comparison that shows that NetBeans is better in editing and scripting and is easier to use. The main advantage of Eclipse is the huge eco system. But honestly sometimes this can also be a disadvantage, i.e. when you are looking for UML Plugin.&lt;br /&gt;&lt;br /&gt;Have a look at the &lt;a href="http://www.adam-bien.com/roller/abien/entry/eclipse_3_3_or_netbeans"&gt;article in Adam Bien's Weblog&lt;/a&gt; for more information. There is an other interesting post from Adam: &lt;a href="http://www.adam-bien.com/roller/abien/entry/thinking_loud_about_eclipse_and"&gt;Thinking loud about Eclipse and NetBeans&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I totally agree with Adam when he is speaking about the "Plugin hell" in Eclipse. There are too much plugins for the same purpose.&lt;br /&gt;NetBeans comes with the main features for daily use and normally you don't need to install further plugins.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1714365767489581684?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1714365767489581684/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1714365767489581684' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1714365767489581684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1714365767489581684'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/03/netbeans-again.html' title='NetBeans again'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-7420590770716081722</id><published>2008-03-21T13:41:00.003+01:00</published><updated>2008-03-25T16:15:56.408+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>NetBeans 6.1</title><content type='html'>A few days ago I downloaded NetBeans 6.1 and I'm very impressed!&lt;br /&gt;&lt;br /&gt;I'm a strong Eclipse user but NetBeans has a few features they are extremely useful:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;UML Modelling&lt;/li&gt;&lt;li&gt;GUI Builder&lt;/li&gt;&lt;/ol&gt;These two features (and there are a lot more) makes NetBeans very interesting because these they are really missing in Eclipse and you always have to pay for them. Ok, there are some free UML Plugins, but they are not as good as the NetBeans built-in are.&lt;br /&gt;&lt;br /&gt;I will keep on evaluating NetBeans and will blog further findings!&lt;br /&gt;&lt;br /&gt;Happy Easter, everybody!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-7420590770716081722?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/7420590770716081722/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=7420590770716081722' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7420590770716081722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/7420590770716081722'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/03/netbeans-61.html' title='NetBeans 6.1'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-2201928964246651142</id><published>2008-02-24T09:47:00.002+01:00</published><updated>2008-03-25T16:17:24.115+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Checked vs unchecked Exceptions</title><content type='html'>Once again I had a discussion about using checked or unchecked Exceptions in Java.&lt;br /&gt;&lt;br /&gt;In my opinion the solution could be simple:&lt;br /&gt;Use checked Exceptions only for business faults. They are part of the interface contract.&lt;br /&gt;But any other Exception thrown by JRE or any other framework should be derived from RuntimeException!&lt;br /&gt;&lt;br /&gt;What do you think? Comments are welcome!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-2201928964246651142?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/2201928964246651142/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=2201928964246651142' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2201928964246651142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/2201928964246651142'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/02/checkd-vs-unchecked-exceptions.html' title='Checked vs unchecked Exceptions'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-1253755077272429270</id><published>2008-02-10T21:09:00.001+01:00</published><updated>2008-03-25T16:17:47.368+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>Zoran Regvart joined gted project!</title><content type='html'>Great news from the gted project:&lt;br /&gt;&lt;br /&gt;Today Zoran Regvart joined the project! Now we are two people working on gted and we hope to release new and better versions faster and more often!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-1253755077272429270?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/1253755077272429270/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=1253755077272429270' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1253755077272429270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/1253755077272429270'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/02/zoran-regvart-joined-gted-project.html' title='Zoran Regvart joined gted project!'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-6201405442457001094</id><published>2008-02-08T18:50:00.001+01:00</published><updated>2008-03-25T16:18:05.201+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted has an active community!</title><content type='html'>Today the bug 1889727 (no entry if line number is not specified in the .pot or .po) was posted by zregvart. And what a surprise - a patch was attached!&lt;br /&gt;&lt;br /&gt;Special thanks to zgrevart. It is great to know that gted has a community!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-6201405442457001094?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/6201405442457001094/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=6201405442457001094' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6201405442457001094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/6201405442457001094'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/02/gted-has-active-community.html' title='gted has an active community!'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35283970.post-3957899679845400011</id><published>2008-02-04T20:06:00.001+01:00</published><updated>2008-03-25T16:18:17.149+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gted'/><title type='text'>gted 1.1.0 on track</title><content type='html'>I'm working on gted 1.1.0 which will contain some major bugfixes.&lt;br /&gt;&lt;br /&gt;I hope to release it at the end of February.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35283970-3957899679845400011?l=simonmartinelli.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonmartinelli.blogspot.com/feeds/3957899679845400011/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35283970&amp;postID=3957899679845400011' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3957899679845400011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35283970/posts/default/3957899679845400011'/><link rel='alternate' type='text/html' href='http://simonmartinelli.blogspot.com/2008/02/gted-110-on-track.html' title='gted 1.1.0 on track'/><author><name>Simon Martinelli</name><uri>http://www.blogger.com/profile/11198658378107515823</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_V_GQOrNqccU/S68bL7YTtxI/AAAAAAAADVU/4URVDlgw5EA/S220/c96c58f03.4319984,2.jpg'/></author><thr:total>0</thr:total></entry></feed>
