<?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-760377872792883482</id><updated>2012-02-16T12:29:19.114+01:00</updated><category term='logging'/><category term='DTD'/><category term='Visual Studio'/><category term='JPA'/><category term='sms'/><category term='dabbleboard'/><category term='SL-314-EE5'/><category term='vox teneo'/><category term='fingerprinting'/><category term='toughtworks'/><category term='docx'/><category term='maven'/><category term='hosting'/><category term='privacy'/><category term='Windows'/><category term='mousegestures'/><category term='EJB client'/><category term='smpatch'/><category term='tommee'/><category term='chrome'/><category term='cream'/><category term='eid'/><category term='reasons to be'/><category term='jobat'/><category term='Java EE5'/><category term='EJB'/><category term='OpenIndiana'/><category term='civworld'/><category term='Greenpeace'/><category term='SAP'/><category term='unified process'/><category term='git'/><category term='Passlogix'/><category term='action'/><category term='JAXB'/><category term='ORM'/><category term='Tour de France'/><category term='Flex'/><category term='nosql'/><category term='pedophilia'/><category term='Applying UML and patterns'/><category term='solaris'/><category term='geocache'/><category term='sint-niklaas'/><category term='patch'/><category term='univa'/><category term='facebook'/><category term='Gears'/><category term='Java EE6'/><category term='eclipse4sl'/><category term='session bean'/><category term='EDF'/><category term='whiteboard'/><category term='Rosario'/><category term='java 7'/><category term='Java EE'/><category term='java'/><category term='staroffice'/><category term='object relational mapping'/><category term='JAXP'/><category term='webservices'/><category term='cartoon'/><category term='chip'/><category term='slf4j'/><category term='ntp'/><category term='Word'/><category term='patents'/><category term='GPL'/><category term='OpenSolaris'/><category term='light field camera'/><category term='digsby'/><category term='websites'/><category term='SOAP UI'/><category term='dns'/><category term='groovy'/><category term='joda time'/><category term='FJ-310'/><category term='design'/><category term='SL-285'/><category term='network'/><category term='copyleft'/><category term='ian dury'/><category term='OSI'/><category term='anti-virus'/><category term='subversion'/><category term='google'/><category term='google scribe'/><category term='Vista'/><category term='SL-351-EE5'/><category term='javaranch'/><category term='Microsoft'/><category term='ESB'/><category term='electronic identity card'/><category term='lists'/><category term='quote'/><category term='iso'/><category term='zones'/><category term='routeyou'/><category term='pidgin'/><category term='tomcat'/><category term='hacking'/><category term='Oracle'/><category term='SL-370-EE6'/><category term='SOA'/><category term='censorship'/><category term='openoffice'/><category term='site'/><category term='newspass'/><category term='GUI'/><category term='vtoc'/><category term='quantum holographic encoding'/><category term='prince2'/><category term='olympics'/><category term='civilization'/><category term='porn'/><category term='gosling'/><category term='uac'/><category term='indigov'/><category term='canvas'/><category term='web server'/><category term='london'/><category term='ifconfig'/><category term='teaching'/><category term='ecology'/><category term='ethernet'/><category term='9/11'/><category term='Identity and Access Management'/><category term='sunos'/><category term='usb'/><category term='silverlight'/><category term='stub'/><category term='arthur weasley'/><category term='OMG'/><category term='ClearApp'/><category term='Sybase'/><category term='lytro'/><category term='ie'/><category term='netbeans'/><category term='seo'/><category term='DWS-4050-EE6'/><category term='copyright'/><category term='RIP'/><category term='scrum'/><category term='servlets'/><category term='unix'/><category term='Calendra'/><category term='WebGL'/><category term='virus'/><category term='routing'/><category term='open software'/><category term='ipv6'/><category term='solr'/><category term='icann'/><category term='EDAM'/><category term='Virtual Clone Drive'/><category term='libreoffice'/><category term='JSP'/><category term='web'/><category term='commercial'/><category term='RAID'/><category term='annotations'/><category term='gwt'/><category term='storage'/><category term='disk'/><category term='xpg4'/><category term='open grid scheduler'/><category term='TCPIP'/><category term='Luminus'/><category term='SCBCD'/><category term='BEA'/><category term='firefox'/><category term='MDA'/><category term='grails'/><category term='DOM'/><category term='iphone'/><category term='SII'/><category term='hiking'/><category term='IPMP'/><category term='cognitum'/><category term='DSL'/><category term='spring'/><category term='software engineering'/><category term='april fools day'/><category term='sun'/><category term='servlet'/><category term='vim'/><category term='solaris 11'/><category term='SL-500'/><category term='eclipse'/><category term='xp'/><category term='MS Office'/><category term='SL-385'/><category term='sun grid engine'/><category term='harry potter'/><category term='wikileaks'/><category term='JEE5'/><category term='MySQL'/><category term='quantum physics'/><category term='security'/><category term='schema'/><category term='RTBF'/><category term='coin'/><category term='jsr315'/><category term='JSTL'/><category term='UML'/><category term='life cycle callback'/><category term='XML'/><category term='solaris 10'/><category term='cloud'/><category term='acquia'/><category term='live upgrade'/><category term='SAX'/><category term='SMF'/><category term='Word 2007'/><category term='POSIX'/><category term='photo'/><category term='objectify'/><category term='Bill Gates'/><category term='LexicalHandler'/><category term='struts'/><category term='intel'/><category term='defender'/><category term='PAC'/><category term='china'/><category term='jms'/><category term='architecture'/><category term='plugins'/><category term='morro'/><category term='interceptors'/><category term='Craig Larman'/><category term='forefront'/><category term='coica'/><category term='proxy'/><category term='zfs'/><category term='MVC'/><category term='protect IP'/><category term='javascript'/><category term='springsource'/><category term='inetd'/><category term='apple'/><category term='strata'/><category term='google talk'/><category term='glassfish'/><category term='searchblox'/><category term='HTML 5'/><category term='EJB2'/><category term='WSDL'/><category term='msn'/><category term='ldap'/><category term='SABAM'/><category term='STS-276-S10'/><category term='amazon'/><category term='browser'/><category term='devoxx'/><category term='serge vleugels'/><category term='IPv4'/><category term='internet'/><category term='model 2'/><category term='chat'/><category term='public transport'/><category term='JUnit'/><category term='Floyd Landis'/><category term='moonlight'/><category term='nuclear energy'/><category term='database'/><category term='linux'/><category term='apache'/><category term='man'/><category term='uniway'/><category term='hibernate'/><category term='EL'/><category term='enum'/><category term='Covalent'/><category term='office'/><category term='RDISC'/><category term='oracle grid engine'/><category term='EJB3'/><category term='law'/><category term='SA-300-S10'/><category term='REST'/><category term='patterns'/><category term='JSR'/><category term='cmmi'/><category term='lucene'/><category term='content filter'/><category term='telesys'/><category term='sniff'/><category term='fowler'/><category term='OO'/><category term='Google App Engine'/><category term='JavaFX'/><category term='versioning'/><category term='log4j'/><category term='newspapers'/><category term='certification'/><category term='IntelliJ'/><category term='OO-226'/><category term='SL-314-EE6'/><category term='SUA'/><category term='servlet 3'/><category term='search'/><category term='drupal'/><category term='mono'/><category term='mercurial'/><category term='free speech'/><category term='pca'/><category term='password'/><category term='Google Apps'/><category term='e-commerce'/><title type='text'>Rijkswatch</title><subtitle type='html'>&amp;gt;&amp;gt;&amp;gt;ITwacht&amp;lt;&amp;lt;&amp;lt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default?start-index=101&amp;max-results=100'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>182</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5405495547515766078</id><published>2012-02-07T08:29:00.000+01:00</published><updated>2012-02-07T08:29:06.061+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSTL'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='JSR'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='servlet'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>Java EE web technology version history (edit)</title><content type='html'>&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;JSR numbers are included as links&lt;/span&gt;&lt;br /&gt;&lt;table border="2" cellpadding="2" cellspacing="0" style="width: 538px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="64"&gt;&lt;b&gt;Java EE&lt;/b&gt;&lt;/td&gt;&lt;td width="76"&gt;&lt;b&gt;servlet&lt;/b&gt;&lt;/td&gt;&lt;td width="66"&gt;&lt;b&gt;JSP&lt;/b&gt;&lt;/td&gt;&lt;td width="27"&gt;&lt;b&gt;EL&lt;/b&gt;&lt;/td&gt;&lt;td width="55"&gt;&lt;b&gt;JSTL&lt;/b&gt;&lt;/td&gt;&lt;td width="71"&gt;&lt;b&gt;JSF&lt;/b&gt;&lt;/td&gt;&lt;td width="175"&gt;&lt;b&gt;What’s new&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="66"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="78"&gt;&lt;div align="right"&gt;2.1&lt;/div&gt;&lt;/td&gt;&lt;td width="66"&gt;&lt;div align="right"&gt;1.0&lt;/div&gt;&lt;/td&gt;&lt;td width="27"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="56"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="71"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="175"&gt;&lt;div align="right"&gt;ServletContext, RequestDispatcher&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="66"&gt;&lt;div align="right"&gt;1.2&lt;/div&gt;&lt;/td&gt;&lt;td width="78"&gt;&lt;div align="right"&gt;2.2&lt;/div&gt;&lt;/td&gt;&lt;td width="66"&gt;&lt;div align="right"&gt;1.1&lt;/div&gt;&lt;/td&gt;&lt;td width="27"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="57"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="71"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="175"&gt;&lt;div align="right"&gt;war&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="65"&gt;&lt;div align="right"&gt;1.3&lt;/div&gt;&lt;/td&gt;&lt;td width="78"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=53"&gt;53&lt;/a&gt;&lt;/span&gt; &lt;/i&gt;2.3&lt;/div&gt;&lt;/td&gt;&lt;td width="66"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=53"&gt;53&lt;/a&gt;&lt;/span&gt; &lt;/i&gt;1.2&lt;/div&gt;&lt;/td&gt;&lt;td width="27"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="57"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="71"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="175"&gt;&lt;div align="right"&gt;filters&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="65"&gt;&lt;div align="right"&gt;1.4&lt;/div&gt;&lt;/td&gt;&lt;td width="78"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="background-color: white; color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=154"&gt;154&lt;/a&gt;&lt;/span&gt;&lt;/i&gt; 2.4&lt;/div&gt;&lt;/td&gt;&lt;td width="66"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=152"&gt;152&lt;/a&gt;&lt;/span&gt;&lt;/i&gt; 2.0&lt;/div&gt;&lt;/td&gt;&lt;td width="27"&gt;&lt;div align="right"&gt;1.0&lt;/div&gt;&lt;/td&gt;&lt;td width="57"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=52"&gt;52&lt;/a&gt;&lt;/span&gt;&lt;/i&gt; 1.1&lt;/div&gt;&lt;/td&gt;&lt;td width="71"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;td width="175"&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="65"&gt;&lt;div align="right"&gt;5&lt;/div&gt;&lt;/td&gt;&lt;td width="78"&gt;&lt;div align="right"&gt;2.5&lt;/div&gt;&lt;/td&gt;&lt;td width="66"&gt;&lt;div align="right"&gt;2.1&lt;/div&gt;&lt;/td&gt;&lt;td width="27"&gt;&lt;div align="right"&gt;2.1&lt;/div&gt;&lt;/td&gt;&lt;td width="57"&gt;&lt;div align="right"&gt;1.2&lt;/div&gt;&lt;/td&gt;&lt;td width="71"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=127"&gt;127&lt;/a&gt;&lt;/span&gt;&lt;/i&gt; 1.2&lt;/div&gt;&lt;/td&gt;&lt;td width="175"&gt;&lt;div align="right"&gt;annotations&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="65"&gt;&lt;div align="right"&gt;6&lt;/div&gt;&lt;/td&gt;&lt;td width="78"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=315"&gt;315&lt;/a&gt;&lt;/span&gt;&lt;/i&gt; 3.0&lt;/div&gt;&lt;/td&gt;&lt;td width="66"&gt;&lt;div align="right"&gt;2.2&lt;/div&gt;&lt;/td&gt;&lt;td width="27"&gt;&lt;div align="right"&gt;2.2&lt;/div&gt;&lt;/td&gt;&lt;td width="57"&gt;&lt;div align="right"&gt;1.2&lt;/div&gt;&lt;/td&gt;&lt;td width="71"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=314"&gt;314&lt;/a&gt; &lt;/span&gt;&lt;/i&gt;2.0&lt;/div&gt;&lt;/td&gt;&lt;td width="175"&gt;&lt;div align="right"&gt;asynchronous servlets &lt;a href="http://rijkswatch.blogspot.com/2009/05/whats-new-in-servlets-3.html"&gt;more... &lt;/a&gt;&lt;/div&gt;&lt;div align="right"&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="65"&gt;&lt;div align="right"&gt;7&lt;/div&gt;&lt;/td&gt;&lt;td style="text-align: right;" width="78"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=340"&gt;340&lt;/a&gt;&lt;/span&gt;&lt;/i&gt; 3.1&lt;/td&gt;&lt;td width="66"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td width="70"&gt;&lt;div align="right"&gt;&amp;nbsp;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=341"&gt;341 &lt;/a&gt;&lt;/span&gt;&lt;/i&gt;3.0&lt;/div&gt;&lt;/td&gt;&lt;td width="57"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td width="71"&gt;&lt;div align="right"&gt;&lt;i&gt;&lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=344"&gt;344&lt;/a&gt; &lt;/span&gt;&lt;/i&gt;2.2&lt;/div&gt;&lt;/td&gt;&lt;td style="text-align: right;" width="175"&gt;HTML 5, &lt;span style="color: #a5a5a5;"&gt;&lt;a href="http://jcp.org/en/jsr/detail?id=353"&gt;&lt;em&gt;&lt;span style="color: #336699;"&gt;353&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;&lt;/span&gt;JSON 1.0&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5405495547515766078?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5405495547515766078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/java-ee-web-technology-version-history.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5405495547515766078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5405495547515766078'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/java-ee-web-technology-version-history.html' title='Java EE web technology version history (edit)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7009642110459899371</id><published>2012-02-07T08:07:00.000+01:00</published><updated>2012-02-07T08:28:37.324+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DWS-4050-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-351-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-500'/><title type='text'>Java EE component versions overview (edit)</title><content type='html'>The table below lists the components in latest versions of the Java Enterprise Edition.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I put the most important changes in red.&lt;/li&gt;&lt;li&gt;Components with a (version number) between brackets are&amp;nbsp; proposed for removal in a future release.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;JAX-WS is intended to replace JAX-RPC&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;An x indicates a technology is removed from the specification &lt;/li&gt;&lt;ul&gt;&lt;/ul&gt;&lt;li&gt;JSR's are shown as hyperlinked numbers.&lt;/li&gt;&lt;li&gt;SE indicates that an API was moved to the standard edition&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;eventually followed with the version number&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Web front end technologies are in &lt;a href="http://rijkswatch.blogspot.com/2010/09/java-ee-web-technology-version-history.html"&gt;a separate table&lt;/a&gt; &lt;/li&gt;&lt;li&gt;I added some application servers at the bottom of the table.&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;State of application servers with Java EE6 can be found &lt;a href="http://blogs.sun.com/theaquarium/entry/from_2_to_8_java"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;table border="2" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 456px;"&gt;&lt;colgroup&gt;&lt;col style="width: 206pt;" width="275"&gt;&lt;/col&gt;&lt;col style="width: 92pt;" width="122"&gt;&lt;/col&gt;&lt;col style="width: 86pt;" width="114"&gt;&lt;/col&gt;&lt;col style="width: 92pt;" width="123"&gt;&lt;/col&gt;&lt;col style="width: 99pt;" width="132"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;&lt;b&gt;Technologies&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.google.be/url?sa=t&amp;amp;source=web&amp;amp;cd=4&amp;amp;ved=0CDoQFjAD&amp;amp;url=http%3A%2F%2Fwww.jcp.org%2Fen%2Fjsr%2Fdetail%3Fid%3D317&amp;amp;rct=j&amp;amp;q=jsr&amp;amp;ei=hykBTcOZC8GfOtHegacB&amp;amp;usg=AFQjCNHijwt0ZzcYrXv9l6APpJ6-http://www.jcp.org/en/jsr/detail?id=151"&gt;151&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;J2EE 1.4&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt;2003&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=244"&gt;244&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Java EE5&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt;2006 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=316"&gt;316&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Java EE6&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt;2009 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=342"&gt;342&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;br /&gt;Java EE7&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt;Q3 2012 &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Java SE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=59"&gt;59&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; 1.4&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=176"&gt;176&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;span style="color: #990000;"&gt;5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=270"&gt;270&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; 6&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=336"&gt;336&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; 7&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;EJB&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=153"&gt;153&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; 2.1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=220"&gt;220&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;span style="color: #990000;"&gt;3.0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=318"&gt;318&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0" style="color: #990000;"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;span style="color: black;"&gt;3.1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=345"&gt;&lt;em&gt;&lt;span style="font-family: Calibri;"&gt;345&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;3.2&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;&lt;a href="http://rijkswatch.blogspot.com/2010/09/java-ee-web-technology-version-history.html"&gt;Servlet/JSP&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;2.4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;2.5&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;3.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;3.1&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;JMS &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=914"&gt;&lt;em&gt;914&lt;/em&gt;&lt;/a&gt;&amp;nbsp;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=343"&gt;&lt;em&gt;&lt;span style="font-family: Calibri;"&gt;343&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;2.0&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;JTA &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=907"&gt;907&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;JavaMail &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=919"&gt;919&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;Connector (JCA)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=112"&gt;112&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; 1.5&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.5&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=322"&gt;322&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; 1.6&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;Java Activation Framework &lt;br /&gt;(JAF) &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=925"&gt;925&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;SE:1.1.1 &lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;Web Services &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=109"&gt;109&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Web Services Metadata&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;2.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;SE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;JAX-RPC &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=101"&gt;101&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;(1.1)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;x&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;JAX-WS &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=224"&gt;224&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;2.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;SE:2.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;REST (JAX-RS) &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=311"&gt;&lt;em&gt;311&lt;/em&gt;&lt;/a&gt;&amp;nbsp;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=339"&gt;&lt;em&gt;&lt;span style="font-family: Calibri;"&gt;339&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;2.0&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;JAXB &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=222"&gt;222&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;2.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;SE:2.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;JAXR (UDDI Registry)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;(1.0)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;SOAP with attachments &lt;br /&gt;(SAAJ) &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=67"&gt;67&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.3&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;SE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;StAX &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=173"&gt;173&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;SE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;JMX&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.2&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;SE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;SE&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;container authorisation (JACC) &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=115"&gt;115&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;container authentication (JASPIC) &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=196"&gt;196&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;Common annotations &lt;/span&gt;&lt;span class="font5"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;i&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=250"&gt;250&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Java Persistence (JPA)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span class="font5"&gt;&lt;i&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=317"&gt;317&lt;/a&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="font0"&gt;&lt;span style="font-size: 11pt;"&gt; &lt;span style="color: #990000;"&gt;2.0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=338"&gt;&lt;em&gt;&lt;span style="font-family: Calibri;"&gt;338&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;2.1&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;Bean Validation &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=303"&gt;&lt;em&gt;303&lt;/em&gt;&lt;/a&gt;&amp;nbsp;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=349"&gt;&lt;em&gt;&lt;span style="font-family: Calibri;"&gt;349&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;1.1&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Managed Beans&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Interceptors&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 11pt;"&gt;CDI for Java EE &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=299"&gt;&lt;em&gt;299&lt;/em&gt;&lt;/a&gt;&amp;nbsp;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=346"&gt;&lt;em&gt;&lt;span style="font-family: Calibri;"&gt;346&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;1.1&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;DI for Java &lt;a href="http://www.jcp.org/en/jsr/detail?id=330"&gt;330&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;1.1&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Concurrency utilities &lt;a href="http://www.jcp.org/en/jsr/detail?id=236"&gt;236&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Calibri;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;JCache &lt;a href="http://www.jcp.org/en/jsr/detail?id=107"&gt;107&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;State management &lt;a href="http://www.jcp.org/en/jsr/detail?id=350"&gt;350&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-family: Calibri;"&gt;Batch processing &lt;a href="http://www.jcp.org/en/jsr/detail?id=352"&gt;352&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;1.0&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;&lt;b&gt;Servers &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Sun JSAS&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;9.1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="color: #990000; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Glassfish&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;2&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;3 (12/2009)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;JBoss&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;5&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;7 (7/2011)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;IBM Websphere&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;6&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;7&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;8 (6/2011)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Oracle Weblogic&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;9&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;10&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;12c(12/2011)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="20" style="height: 15pt;"&gt;&lt;td height="20" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="173"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="color: black; font-size: 11pt;"&gt;Apache Geronimo&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl67" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="62"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="63"&gt;2&lt;/td&gt;&lt;td align="right" class="xl68" style="padding-right: 1px; padding-top: 1px; vertical-align: bottom;" width="68"&gt;3 (beta)&lt;/td&gt;&lt;td class="xl66" style="padding-left: 1px; padding-right: 1px; padding-top: 1px; text-align: right; vertical-align: bottom;" width="88"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: 11pt;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;ul&gt;&lt;li&gt;J2EE 1.3(2001) introduced&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Message Driven&amp;nbsp; Beans&lt;/li&gt;&lt;li&gt;Local interfaces&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Profiles are a subset of the spec. &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Java EE6 Web profile (only profile currently defined)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;contents &lt;/li&gt;&lt;ul&gt;&lt;li&gt;java SE&lt;/li&gt;&lt;li&gt;&lt;a href="http://rijkswatch.blogspot.com/2010/09/java-ee-web-technology-version-history.html"&gt;web technologies&lt;/a&gt;, &lt;/li&gt;&lt;li&gt;&amp;nbsp;JTA, common annotations, JPA, validation, managed beans, interceptors, CDI, DI&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;EJB Lite&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Stateless, Stateful, and Singleton session beans&lt;/li&gt;&lt;li&gt;only local EJB interfaces or no interfaces&lt;/li&gt;&lt;li&gt;interceptors&lt;/li&gt;&lt;li&gt;security&lt;/li&gt;&lt;li&gt;transactions&lt;/li&gt;&lt;li&gt;No Message Driven, remote or asynchronous beans, no Timer service&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;implemented by&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Resin 4&lt;/li&gt;&lt;li&gt;Apache TomEE&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Java EE7 Web profile will include JAX-RS&lt;/li&gt;&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-7009642110459899371?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7009642110459899371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/12/java-ee-component-versions-overview.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7009642110459899371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7009642110459899371'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/12/java-ee-component-versions-overview.html' title='Java EE component versions overview (edit)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7794344779033225829</id><published>2012-01-30T10:47:00.002+01:00</published><updated>2012-01-30T10:58:23.916+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='telesys'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><title type='text'>Telesys opent bescheiden datacenter in Oudenaarde</title><content type='html'>De foto in &lt;a href="http://datanews.knack.be/ict/nieuws/nieuwsoverzicht/2012/01/30/telesys-opent-datacenter-in-oudenaarde/article-4000036756520.htm"&gt;Datanews&lt;/a&gt; toont wat bedoeld wordt met bescheiden&amp;nbsp;&lt;a href="http://datanews.knack.be/ict/nieuws/nieuwsoverzicht/2012/01/30/telesys-opent-datacenter-in-oudenaarde/article-4000036756520.htm"&gt;&lt;/a&gt;:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-kMuQkMlsr10/TyZldpMsxSI/AAAAAAAABIQ/sJYEZ1BpGVU/s1600/4000036755574%5B1%5D.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-kMuQkMlsr10/TyZldpMsxSI/AAAAAAAABIQ/sJYEZ1BpGVU/s1600/4000036755574%5B1%5D.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Voeg daarbij een &lt;a href="http://www.telesys.be/"&gt;website &lt;/a&gt;met 404 links in het nieuws menu...&lt;br /&gt;Het motto van Telesys makt alles duidelijk:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DyBxJsE5Qcc/TyZpljcaMnI/AAAAAAAABIY/AjbcSHxSFu8/s1600/tagline%5B1%5D.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-DyBxJsE5Qcc/TyZpljcaMnI/AAAAAAAABIY/AjbcSHxSFu8/s1600/tagline%5B1%5D.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-7794344779033225829?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7794344779033225829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2012/01/telesys-opent-bescheiden-datacenter-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7794344779033225829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7794344779033225829'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2012/01/telesys-opent-bescheiden-datacenter-in.html' title='Telesys opent bescheiden datacenter in Oudenaarde'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-kMuQkMlsr10/TyZldpMsxSI/AAAAAAAABIQ/sJYEZ1BpGVU/s72-c/4000036755574%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-126276359760728210</id><published>2012-01-25T13:05:00.004+01:00</published><updated>2012-01-25T13:05:49.849+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virus'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>German states use spyware to eavesrop on suspects</title><content type='html'>While a laptop was being checked when passing through German customs, spyware was allegedly installed on the computer by the authorities.&lt;br /&gt;&lt;a href="http://nakedsecurity.sophos.com/2011/10/10/german-government-r2d2-trojan-faq/"&gt;More...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-126276359760728210?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/126276359760728210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2012/01/german-states-use-spyware-to-eavesrop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/126276359760728210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/126276359760728210'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2012/01/german-states-use-spyware-to-eavesrop.html' title='German states use spyware to eavesrop on suspects'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2209110828650558360</id><published>2011-12-14T20:56:00.001+01:00</published><updated>2011-12-14T21:43:23.270+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cartoon'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><title type='text'>Geek &amp; Poke</title><content type='html'>&lt;a href="http://geekandpoke.typepad.com/geekandpoke/2011/10/married-to-your-phone.html"&gt;Great&lt;/a&gt; &lt;a href="http://geekandpoke.typepad.com/geekandpoke/2011/12/simply-explained-11.html"&gt;geek&lt;/a&gt;  &lt;a href="http://geekandpoke.typepad.com/geekandpoke/2011/10/simply-explained.html"&gt;cartoons&lt;/a&gt; &lt;a href="http://geekandpoke.typepad.com/geekandpoke/2011/09/pedantic-geeks.html"&gt;...&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-pRmYXQCTpik/TukEV_VNESI/AAAAAAAAAAY/b6Vf4Aaj1Z4/s1600/6a00d8341d3df553ef014e5f920093970c-800wi+%2528JPEG+Image%252C+800x1133+pixels%2529+-+Scaled+_2011-12-14_21-16-15.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-pRmYXQCTpik/TukEV_VNESI/AAAAAAAAAAY/b6Vf4Aaj1Z4/s1600/6a00d8341d3df553ef014e5f920093970c-800wi+%2528JPEG+Image%252C+800x1133+pixels%2529+-+Scaled+_2011-12-14_21-16-15.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2209110828650558360?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2209110828650558360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/12/geek-and-poke.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2209110828650558360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2209110828650558360'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/12/geek-and-poke.html' title='Geek &amp; Poke'/><author><name>Jan</name><uri>http://www.blogger.com/profile/04240349572809799005</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-pRmYXQCTpik/TukEV_VNESI/AAAAAAAAAAY/b6Vf4Aaj1Z4/s72-c/6a00d8341d3df553ef014e5f920093970c-800wi+%2528JPEG+Image%252C+800x1133+pixels%2529+-+Scaled+_2011-12-14_21-16-15.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3887375042435498687</id><published>2011-12-14T11:23:00.002+01:00</published><updated>2011-12-14T11:27:14.151+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jobat'/><category scheme='http://www.blogger.com/atom/ns#' term='uniway'/><title type='text'></title><content type='html'>&lt;a href="http://www.jobat.be/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://www.jobat.be/"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-8SLnsv2bwCU/TuhuuvOF3YI/AAAAAAAABHk/ZZZboN0rm9g/s1600/logojobat%255B1%255D.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.jobat.be/"&gt;Jobat &lt;/a&gt;is the winner in the job site category in the &lt;i&gt;Site of the year 2011 &lt;/i&gt;election. In the open competition they make the top ten. Great job by the &lt;a href="http://blog.uniway.be/responsive-design-voor-jobat-be/"&gt;Uniway team&lt;/a&gt; there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3887375042435498687?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3887375042435498687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/12/jobat-is-winner-in-job-site-category-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3887375042435498687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3887375042435498687'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/12/jobat-is-winner-in-job-site-category-in.html' title=''/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-8SLnsv2bwCU/TuhuuvOF3YI/AAAAAAAABHk/ZZZboN0rm9g/s72-c/logojobat%255B1%255D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2125057301516589529</id><published>2011-11-29T15:32:00.000+01:00</published><updated>2012-01-17T23:10:42.866+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cognitum'/><category scheme='http://www.blogger.com/atom/ns#' term='Identity and Access Management'/><category scheme='http://www.blogger.com/atom/ns#' term='ldap'/><category scheme='http://www.blogger.com/atom/ns#' term='Calendra'/><title type='text'>Calendra lives on as Cognitum</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/-n0FUjIqY-_E/TsOvPjrLivI/AAAAAAAABHM/vgVZQeA6uZ4/s1600/cognitum%252520rgb%252520black%25252030mm%255B1%255D.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="55" src="http://1.bp.blogspot.com/-n0FUjIqY-_E/TsOvPjrLivI/AAAAAAAABHM/vgVZQeA6uZ4/s200/cognitum%252520rgb%252520black%25252030mm%255B1%255D.png" width="200" /&gt;&lt;/a&gt;Calendra Directory manager was a pretty good platform for rapidly developing web applications based on directories, databases, provisioning and workflow. As such it was a great tool for building Identity a Access management related applications.&lt;br /&gt;Calendra was acquired by BMC Software, but never found its place in the portfolio of the company, and development slowed down.&lt;br /&gt;This year ownership of Calendra was transferred to &lt;a href="http://www.itconcepts.net/index.php/about-cognitum"&gt;ITConcepts&lt;/a&gt;. Cognitum is the new name for the product. This month a new version of the product, Cognitum 7.7 is released. In addition to some bug fixes it aligns Cognitum with current standards: Java 6, JDBC 4, Tomcat 7 and Windows 7. &lt;br /&gt;The roadmap for the product again looks ambitious now. The next version of the product is expected to merge some Calendra 4 features back into the main branch (Basket functionality, Studio Wizards, History actions...).&lt;br /&gt;here's an overview of Cognitum's architecture:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-4gUGSYUE5Ig/TxXxw8oLTeI/AAAAAAAABH8/qAB7HZs2ydo/s1600/index.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="419" src="http://4.bp.blogspot.com/-4gUGSYUE5Ig/TxXxw8oLTeI/AAAAAAAABH8/qAB7HZs2ydo/s640/index.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2125057301516589529?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2125057301516589529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/calendra-lives-on-as-cognitum.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2125057301516589529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2125057301516589529'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/calendra-lives-on-as-cognitum.html' title='Calendra lives on as Cognitum'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-n0FUjIqY-_E/TsOvPjrLivI/AAAAAAAABHM/vgVZQeA6uZ4/s72-c/cognitum%252520rgb%252520black%25252030mm%255B1%255D.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2924770721715492504</id><published>2011-11-18T14:50:00.000+01:00</published><updated>2011-11-22T13:09:52.783+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='devoxx'/><title type='text'>Devoxx redux</title><content type='html'>&lt;i&gt;Stephan Janssens: There will be a Devoxx France event in Paris, 18-20/4. 75% french / 25% english.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Mark Reinhold: Oracle thinks a two year release cycle is optimal. So we can expect Java 8 mid 2013.&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Let me think: that puts java 9 mid 2015&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Mark Reinhold: We're planning reified generics and unified primitives for Java 9.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Mark Reinhold: Swing is a Sun development. Oracle will concentrate on JavaFX. Do not expect many new initiatives from Oracle for Swing.&lt;/i&gt;&lt;br /&gt;&amp;nbsp; Well, I can name some other Sun developments&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;@Jax-RS 2 talk: JAX-RS will be in the Java EE7 web profile.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Matt Railble: &lt;a href="http://raibledesigns.com/rd/entry/my_html5_with_play_scala"&gt;great video in presentation on Play, HTML5, Jade and CoffeeScript&lt;/a&gt;.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Shaun Smith: For JPA 2.1 EclipseLink is doing work on&lt;/i&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;multitenancy: separte datasets per group of users&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;domain model extensions: storing generic attributes (name/value pairs)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;i&gt;Joshua Bloch: I believe in evolution, even if my country does not.&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Joshua Bloch: Who cares about the Java VM, it's the languages that count.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Greg Luck: JSR347 (Datagrid) will be based on JSR107 (caching)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Greg Luck: We talked with oracle to Apache license the TCK (Technology Compatibility Kit). Oracle legal wants to avoid implementations claiming 70% compatible and people testing compatibility of someone else's implementation. We are working with Oracle on a new license for the TCK.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2924770721715492504?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2924770721715492504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/devoxx-quotes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2924770721715492504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2924770721715492504'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/devoxx-quotes.html' title='Devoxx redux'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8408877982482476256</id><published>2011-11-16T09:55:00.001+01:00</published><updated>2011-11-16T11:33:43.607+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IntelliJ'/><category scheme='http://www.blogger.com/atom/ns#' term='JUnit'/><title type='text'>Create a test case in Intellij IDEA</title><content type='html'>Position yourself on the name of the class you want to create a test for and press [ALT] + [ENTER].&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="data:image/png;base64,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" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="" border="0" src="data:image/png;base64,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" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;IntelliJ will let you select your test framework (JUnit 3/4, TestNG) and you can select all methods in the original class you want to generate skeletons for (pity they forgot a select all button). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8408877982482476256?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8408877982482476256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/create-test-case-in-intellij-idea-10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8408877982482476256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8408877982482476256'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/create-test-case-in-intellij-idea-10.html' title='Create a test case in Intellij IDEA'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8101687439847332464</id><published>2011-11-12T12:26:00.001+01:00</published><updated>2011-11-14T10:22:20.013+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tour de France'/><category scheme='http://www.blogger.com/atom/ns#' term='EDF'/><category scheme='http://www.blogger.com/atom/ns#' term='nuclear energy'/><category scheme='http://www.blogger.com/atom/ns#' term='Luminus'/><category scheme='http://www.blogger.com/atom/ns#' term='Greenpeace'/><category scheme='http://www.blogger.com/atom/ns#' term='Floyd Landis'/><category scheme='http://www.blogger.com/atom/ns#' term='hacking'/><title type='text'>EDF convicted for hacking greenpeace</title><content type='html'>&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-oEftcpBZB70/Tr5b4SES40I/AAAAAAAABGk/bYQdHVdx_qY/s1600/lgo_luminus%255B1%255D.ashx" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-oEftcpBZB70/Tr5b4SES40I/AAAAAAAABGk/bYQdHVdx_qY/s1600/lgo_luminus%255B1%255D.ashx" /&gt;&lt;/a&gt;Electricité de France is the second player on the Belgian energy market, selling under the &lt;a href="http://luminus.be/"&gt;Luminus &lt;/a&gt;brand name.&lt;br /&gt;Looking at&amp;nbsp; &lt;a href="http://belgie.edf.com/"&gt;Electricité de France's website &lt;/a&gt;shows you a green company. They claim to have a carbon emission that's three times lower than their average competitor. This is not surprising: EDF is the world's biggest producer of nuclear energy.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-4PjnWhBKL3I/Tr5Y4HtJKII/AAAAAAAABGc/_WyFNn7RHEg/s1600/EDF+in+Belgi%25C3%25AB+-+Mozilla+Firefox_2011-11-12_12-24-46.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="150" src="http://2.bp.blogspot.com/-4PjnWhBKL3I/Tr5Y4HtJKII/AAAAAAAABGc/_WyFNn7RHEg/s320/EDF+in+Belgi%25C3%25AB+-+Mozilla+Firefox_2011-11-12_12-24-46.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-etM4UEqLC0A/Tr5qBKXqwlI/AAAAAAAABG0/t5KYh61IJQs/s1600/Pr%25C3%25A9sentation+de+la+centrale+nucl%25C3%25A9aire+de+Flamanville+-+Mozilla+Firefox_2011-11-12_13-41-25.png" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="165" src="http://4.bp.blogspot.com/-etM4UEqLC0A/Tr5qBKXqwlI/AAAAAAAABG0/t5KYh61IJQs/s320/Pr%25C3%25A9sentation+de+la+centrale+nucl%25C3%25A9aire+de+Flamanville+-+Mozilla+Firefox_2011-11-12_13-41-25.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Flamanville 3 nuclear reactor (under construction)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;In 2006 EDF, which is controlled by the French state,&amp;nbsp; hired private investigators Kargus Consultants. They wanted to anticipate Greenpeace actions in the 2006 debate on building a new nuclear reactor in Flamanville near the channel.&amp;nbsp; Kargus hacked greenpeace computers and stole confidential documents. Kargus got caught however and were charged in court. &lt;span id="articleText"&gt;The court found &lt;/span&gt;ound EDF guilty of "complicity in computer piracy". &lt;span id="articleText"&gt;Former policeman Pierre-Paul Francois and former rear admiral Pascal Durieux, who were both in charge of EDF's security, were sentenced. The head of Kargus, a former french secret agent, and &lt;/span&gt;Alain Quiros, Kargus' information specialist, were sentenced as well.&lt;br /&gt;Alain Quiros was sentenced as well for a separate case of hacking a french anti doping agency for Floyd Landis. After winning the Tour de France in 2006, he was stripped from his victory when it was discovered he had been using doping in the 17th stage which he won after an epic solo escape.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8101687439847332464?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8101687439847332464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/edf-convicted-for-hacking-greenpeace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8101687439847332464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8101687439847332464'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/edf-convicted-for-hacking-greenpeace.html' title='EDF convicted for hacking greenpeace'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-oEftcpBZB70/Tr5b4SES40I/AAAAAAAABGk/bYQdHVdx_qY/s72-c/lgo_luminus%255B1%255D.ashx' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8760801488459743413</id><published>2011-11-09T16:49:00.000+01:00</published><updated>2011-11-09T16:53:27.867+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='law'/><category scheme='http://www.blogger.com/atom/ns#' term='copyright'/><category scheme='http://www.blogger.com/atom/ns#' term='SABAM'/><title type='text'>SABAM wants 3% of ISP subscriptions</title><content type='html'>After getting money out of children creches, computer hard disk, taxi's, company phone waiting tunes and the like, Belgium's author rights association SABAM is now attacking ISP's. They want their fair share of the pie, and ask for 3.4% of your ISP subscription, because it provides access to coyprighted work.&lt;br /&gt;SABAM says this does not mean that the sites that distribute coyrighted material (e.g. YouTube) do not have to pay for the copyright anymore (double pay!).&lt;br /&gt;SABAM does not want to be seen as the bad guy, and expresses the hope ISP's will not charge end users for the money they ask.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8760801488459743413?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8760801488459743413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/sabam-wants-3-of-isp-revenue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8760801488459743413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8760801488459743413'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/11/sabam-wants-3-of-isp-revenue.html' title='SABAM wants 3% of ISP subscriptions'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5508589082956425069</id><published>2011-10-28T08:54:00.000+02:00</published><updated>2011-10-28T11:18:03.228+02:00</updated><title type='text'>Patent war II</title><content type='html'>Earlier we reported on &lt;a href="http://rijkswatch.blogspot.com/2011/02/patent-war-games.html"&gt;different types of patent law suits between Microsoft and Motorola&lt;/a&gt;.&lt;br /&gt;Here's a global overview of lawsuits in the mobile world from &lt;a href="http://news.designlanguage.com/post/1252039209"&gt;Design Language News&lt;/a&gt;, a fine site specializing in visualizing data.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-E5mS4cF3WeU/TqlH44Kt-SI/AAAAAAAABGI/nzC1rHXx3NQ/s1600/tumblr_l9ucqq8ZMD1qa34geo1_r3_1280%255B1%255D.jpg_AWSAccessKeyId%253DAKIAJ6IHWSU3BX3X7X3Q%2526Expires%253D1319802820%2526Signature%253DAFDbV%25252FyA5%25252Be0adUr5DRWPSNlTB4%25253D" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-E5mS4cF3WeU/TqlH44Kt-SI/AAAAAAAABGI/nzC1rHXx3NQ/s1600/tumblr_l9ucqq8ZMD1qa34geo1_r3_1280%255B1%255D.jpg_AWSAccessKeyId%253DAKIAJ6IHWSU3BX3X7X3Q%2526Expires%253D1319802820%2526Signature%253DAFDbV%25252FyA5%25252Be0adUr5DRWPSNlTB4%25253D" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5508589082956425069?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5508589082956425069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/10/patent-war-ii.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5508589082956425069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5508589082956425069'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/10/patent-war-ii.html' title='Patent war II'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-E5mS4cF3WeU/TqlH44Kt-SI/AAAAAAAABGI/nzC1rHXx3NQ/s72-c/tumblr_l9ucqq8ZMD1qa34geo1_r3_1280%255B1%255D.jpg_AWSAccessKeyId%253DAKIAJ6IHWSU3BX3X7X3Q%2526Expires%253D1319802820%2526Signature%253DAFDbV%25252FyA5%25252Be0adUr5DRWPSNlTB4%25253D' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3714696222494045819</id><published>2011-10-25T09:37:00.001+02:00</published><updated>2011-10-25T13:00:42.775+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='light field camera'/><category scheme='http://www.blogger.com/atom/ns#' term='lytro'/><title type='text'>Light field camera</title><content type='html'>The eye and conventional camera's capture the colour and intensity of light. They need to focus to get a sharp image for a certain distance.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hq9CdunDs6c/TqZmp3uetEI/AAAAAAAABF8/YdFIUx_3UrQ/s1600/light_field_2%255B1%255D.jpg_1318980202" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="142" src="http://4.bp.blogspot.com/-hq9CdunDs6c/TqZmp3uetEI/AAAAAAAABF8/YdFIUx_3UrQ/s320/light_field_2%255B1%255D.jpg_1318980202" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Light field camera's also capture the direction of the light rays.&lt;br /&gt;This allows you to reprocess and refocus the light information afterwards.&lt;br /&gt;Storing this extra information takes up about 200 times the space of a classical picture. So the camera's have to sacrifice resolution to keep picture storage size within limits.&lt;br /&gt;Lytro will bring a consumer light field camera to the market next year.&amp;nbsp; An 8GB version costs $400 and stores 350 pictures.&lt;br /&gt;&lt;br /&gt;You can &lt;a href="https://www.lytro.com/living-pictures/282"&gt;refocus some pictures in a demo at their site&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3714696222494045819?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3714696222494045819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/10/light-field-camera.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3714696222494045819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3714696222494045819'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/10/light-field-camera.html' title='Light field camera'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-hq9CdunDs6c/TqZmp3uetEI/AAAAAAAABF8/YdFIUx_3UrQ/s72-c/light_field_2%255B1%255D.jpg_1318980202' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-6211346641331077709</id><published>2011-10-11T12:25:00.000+02:00</published><updated>2011-11-18T14:11:45.013+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DWS-4050-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='OO-226'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-500'/><title type='text'>Design patterns links (edit)</title><content type='html'>&lt;ul&gt;&lt;li&gt;Gang of Four (GoF, Gamma/Helm/Johnson/Vlissides)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mcdonaldland.info/files/designpatterns/designpatternscard.pdf"&gt;Catalog&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://nurkiewicz.blogspot.com/2009/09/state-pattern-introducing-domain-driven.html" title="John Vlissides"&gt;A state pattern implementation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://learnandshare.wikidot.com/design-patterns"&gt;Relationships&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.c2.com/cgi/wiki?CategoryPattern"&gt;Portland Pattern Repository&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.designpatternsfor.net/Presentations/AntiPatternsTheTopTenList.pdf"&gt;Antipatterns Top 10 &lt;/a&gt;&lt;/li&gt;&lt;li&gt;Architecture&lt;/li&gt;&lt;ul&gt;&lt;li&gt; &lt;a href="http://www.makeitfly.co.uk/Presentations/suntoneam_wp_5.24.pdf"&gt;SunTone&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Design guidelines blueprint&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/index.html"&gt;J2EE design guidelines blueprint&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.sun.com/developer/releases/petstore/petstore1_3_1_02.html"&gt;J2EE petstore 1.0 &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.net/projects/petstore/sources/svn/show/trunk/ws/apps/petstore"&gt;Java EE 5 petstore 2.0&lt;/a&gt; &lt;/li&gt;&lt;ul&gt;&lt;li&gt;subversion repository: https://svn.java.net/svn/petstore~svn/trunk&lt;/li&gt;&lt;li&gt;uses AJAX and JPA, but no EJB &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Architectural patterns&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Java EE design patterns &lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html"&gt;1st edition blueprint&lt;/a&gt; (more elaborate)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.corej2eepatterns.com/Patterns2ndEd"&gt;2nd edition &lt;/a&gt;(more patterns)&lt;/li&gt;&lt;li&gt;&lt;a href="http://theholyjava.wordpress.com/2010/05/08/book-real-world-java-ee-patterns-rethinking-best-practices-review-digest/"&gt;Real World Java EE Patterns digest&lt;/a&gt; (Java EE 5)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://martinfowler.com/eaaCatalog/"&gt;Patterns of Enterprise Application Architecture (Martin Fowler)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.enterpriseintegrationpatterns.com/"&gt;Enterprise Integration Patterns&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sigs.de/download/oop_08/Buschmann%20Mo2%20Patterns_OOP.pdf"&gt;Pattern Oriented Software Architecture&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-6211346641331077709?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/6211346641331077709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/02/design-pattern-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6211346641331077709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6211346641331077709'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/02/design-pattern-links.html' title='Design patterns links (edit)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8450464224573628740</id><published>2011-10-05T21:21:00.002+02:00</published><updated>2011-10-06T15:41:03.785+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tommee'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>Apache Tommee is Java EE6 web profile certified.</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zX2H5p_c9b8/ToyxUAdf7AI/AAAAAAAABF4/UXrkqoVnw2g/s1600/14.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-zX2H5p_c9b8/ToyxUAdf7AI/AAAAAAAABF4/UXrkqoVnw2g/s320/14.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://openejb.apache.org/"&gt;Apache Tommee&lt;/a&gt; is not a new product, but a bundle of Tomcat and Apache Java EE projects (OpenEJB, OpenJPA,...) by the Apache OpenEJB team.The lot is certified as a Java EE 6 Web Profile server.&lt;br /&gt;Tommee is pretty lean (24Mb) and can run embedded.&lt;br /&gt;The server bundles a set of components, all Apache gear:&amp;nbsp; &lt;br /&gt;&lt;table class="confluenceTable"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="confluenceTd"&gt;EJB&lt;/td&gt;&lt;td class="confluenceTd"&gt;OpenEJB &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="confluenceTd"&gt;CDI &lt;/td&gt;&lt;td class="confluenceTd"&gt;OpenWebBeans&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="confluenceTd"&gt;JSP/servlet &lt;/td&gt;&lt;td class="confluenceTd"&gt;Tomcat &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="confluenceTd"&gt;JSF &lt;/td&gt;&lt;td class="confluenceTd"&gt;MyFaces &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="confluenceTd"&gt;JPA&lt;/td&gt;&lt;td class="confluenceTd"&gt;OpenJPA &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="confluenceTd"&gt;JTA &lt;/td&gt;&lt;td class="confluenceTd"&gt;Geronimo Transaction &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="confluenceTd"&gt;JavaMail&lt;/td&gt;&lt;td class="confluenceTd"&gt;Geronimo JavaMail&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8450464224573628740?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8450464224573628740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/10/apache-tomee-javaee-6-web-profile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8450464224573628740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8450464224573628740'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/10/apache-tomee-javaee-6-web-profile.html' title='Apache Tommee is Java EE6 web profile certified.'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-zX2H5p_c9b8/ToyxUAdf7AI/AAAAAAAABF4/UXrkqoVnw2g/s72-c/14.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-1197351051036025961</id><published>2011-10-02T08:55:00.000+02:00</published><updated>2011-10-04T18:45:10.805+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OO-226'/><category scheme='http://www.blogger.com/atom/ns#' term='EDAM'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-500'/><title type='text'>EDAM: Easy Development And Maintenance</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DkGikkpEesM/Tos3rhW-qkI/AAAAAAAABF0/RpfwaQvBkiU/s1600/index.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-DkGikkpEesM/Tos3rhW-qkI/AAAAAAAABF0/RpfwaQvBkiU/s1600/index.png" /&gt;&lt;/a&gt;&lt;/div&gt;Design patterns make code more flexible and easier to evolve and test.&lt;br /&gt;Design patterns make code more complex and harder to write.&lt;br /&gt;Strike the right balance between easy work now (development) and later (maintenance).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-1197351051036025961?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/1197351051036025961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/10/edam-easy-development-and-maintenance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1197351051036025961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1197351051036025961'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/10/edam-easy-development-and-maintenance.html' title='EDAM: Easy Development And Maintenance'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-DkGikkpEesM/Tos3rhW-qkI/AAAAAAAABF0/RpfwaQvBkiU/s72-c/index.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4850397816824510825</id><published>2011-09-25T16:03:00.000+02:00</published><updated>2011-11-18T14:11:52.467+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA labs – alternate instructions (edit)</title><content type='html'>&lt;h3&gt;Lab 3 Exercise 2 Task 1&lt;/h3&gt;&lt;h4&gt;Adjusting the table and column names&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Create the com.acme.entities.AuctionUser entitiy&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Follow the same procedure as in Lab 1 Exercise 3 Task 3, steps 1-6&lt;/li&gt;&lt;li&gt;Add the attributes shown in the Student Guide page 2-9, Figure 2-4&lt;/li&gt;&lt;li&gt;Press ALT+INSERT to&amp;nbsp; add a default constructor and a constructor accepting all attributes except the auctionUserId &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Add an annotation to save the entity to the table &lt;i&gt;A_USER&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Add an annotation to save the auctionUserId attribute to the id column&lt;/li&gt;&lt;li&gt;Add an annotation to save the displayName attribute to the name column.&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Set the column length to 50.&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Modify the main method created in Lab 1 to save an AuctionUser entity&lt;/li&gt;&lt;ol&gt;&lt;li&gt;At the beginning of the method create auctionUser JaneDoe with email address jane@doe.com&lt;/li&gt;&lt;li&gt;After the statement to persist the item, add a similar statement to persist the user&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Choose Run -&amp;gt; Run Main Project&lt;/li&gt;&lt;li&gt;Follow the same procedure as in Lab 1 Exercise 3 Task 3, step 9 to run the project and verify the table was created as intended and JaneDoe was inserted. &lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;h3&gt;Lab 4 Exercise 2 Task 2&lt;/h3&gt;&lt;h4&gt;Working with the entity manager&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;In the Item entitiy&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Press ALT+INSERT to generate a constructor that takes all attributes except the id as an argument          &lt;/li&gt;&lt;li&gt;Press ALT+INSERT to generate a default constructor &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Create the ItemDao class in the (new) com.acme.daos package      &lt;ol&gt;&lt;li&gt;Add a static EntityManagerFactory attribute          &lt;ol&gt;&lt;li&gt;Initialize the attribute with an EntityManagerFactory for your persistence unit &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Implement the method      &lt;pre class="brush:java"&gt;private EntityManager getEntityManager()&lt;/pre&gt;The method should return an EntityManager created from the EntityManagerFactory attribute&lt;/li&gt;&lt;li&gt;Implement the method     &lt;pre class="brush:java"&gt;public Item save(Item item) &lt;/pre&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;The method should call the getEntityManager method &lt;/li&gt;&lt;li&gt;The method should persist the item within a transaction          &lt;ol&gt;&lt;li&gt;Look at the main method for inspiration &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;return the item &lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Create a unit test to test the save() method.      &lt;ol&gt;&lt;li&gt;Right-click the Project node and choose New –&amp;gt; Other. &lt;/li&gt;&lt;li&gt;Select JUnit from the list of Categories and JUnit Test from the list of File Types, then click Next &lt;/li&gt;&lt;ol&gt;&lt;li&gt;Type &lt;b&gt;ItemTest &lt;/b&gt;for the class name&lt;/li&gt;&lt;li&gt;Select &lt;b&gt;Test Packages&lt;/b&gt; as the location &lt;/li&gt;&lt;li&gt;Type &lt;b&gt;com.acme.daos &lt;/b&gt;for the package name&lt;/li&gt;&lt;li&gt;Click Finish.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Select JUnit 4.x if prompted for the JUnit version:&lt;/li&gt;&lt;li&gt;Add an import for static assertXXX JUnit utility methods:&lt;pre class="brush: java"&gt;import static org.junit.Assert.*;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Add a static ItemDao attribute. Initialise it in the @BeforeClass annotated method.&lt;/li&gt;&lt;li&gt;Create a test method called save() to test the save() method on the ItemDao          &lt;ol&gt;&lt;li&gt;Annotate the method with @Test &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;In the test method          &lt;ol&gt;&lt;li&gt;Create a new Item and set all attributes except the id &lt;/li&gt;&lt;li&gt;Save the Item using the ItemDao &lt;/li&gt;&lt;li&gt;Use the assertFalse method to test the Item id is not null&lt;/li&gt;&lt;pre class="brush:java"&gt;assertFalse("id should not be null", item.getId()==null);&lt;/pre&gt;&lt;li&gt;Right click ItemTest.java and choose Run File&lt;/li&gt;If you see a green bar with 100% in it, the test passed. If you see a red bar, the test failed. &lt;/ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;In the ItemDao class, implement the following method:      &lt;pre class="brush:java"&gt;public Item findByPrimaryKey(Long id)&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Create an annotated test method called find&amp;nbsp; in the ItemTest class to test the findByPrimaryKey method. In this method:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new Item and set all attributes except the id &lt;/li&gt;&lt;li&gt;Save the Item using the ItemDao &lt;/li&gt;&lt;li&gt;Pass the primary key of the saved item to findByPrimaryKey to retrieve the Item from the database &lt;/li&gt;&lt;li&gt;Use the assertEquals method to test that the key of the returned Item has the same key.&lt;/li&gt;&lt;li&gt; Run the test and correct errors until it succeeds.&lt;/li&gt;&lt;/ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;b&gt;Optional steps&lt;/b&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a method in the ItemDao class.      &lt;pre class="brush:java"&gt;public void deleteByPrimaryKey(Long id) &lt;/pre&gt;&lt;ol&gt;&lt;li&gt;Get an entity manager &lt;/li&gt;&lt;li&gt;Start a transaction &lt;/li&gt;&lt;li&gt;Look up the Item using the getReference method on the entity manager &lt;/li&gt;&lt;li&gt;Delete the item using the remove method on the entity manager &lt;/li&gt;&lt;li&gt;Commit the transaction &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Create an annotated test method called find in the ItemTest class to test the deleteByPrimaryKey method. in this method:            &lt;ol&gt;&lt;li&gt;Create a new Item and set all attributes except the id &lt;/li&gt;&lt;li&gt;Save the Item using the ItemDao &lt;/li&gt;&lt;li&gt;Pass the primary key of the saved item to deleteByPrimaryKey to delete the Item from the database &lt;/li&gt;&lt;li&gt;Pass the primary key of the saved item to findByPrimaryKey to retrieve the Item from the database &lt;/li&gt;&lt;li&gt;Use the AssertNull method to verify that the item is not found. &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 5 Exercise 2 Task 1&lt;/h3&gt;&lt;h4&gt;Creating a unidirectional One-to-One relationship between two entities&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Create the com.acme.entities.Auction entitiy with these attributes:&lt;pre class="brush: java"&gt;private Long auctionId;&lt;br /&gt;private BigDecimal startAmount;&lt;br /&gt;private BigDecimal increment;&lt;br /&gt;private String status;&lt;br /&gt;private Date openTime;&lt;br /&gt;private Date closeTime;&lt;br /&gt;private Item item;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Map the Date attributes to TIMESTAMP columns using the @Temporal annotation&lt;/li&gt;&lt;li&gt;Establish a OneToOne relation with Item&lt;/li&gt;&lt;li&gt;Press ALT+INSERT to generate getters and setters, a default constructor and a constructor accepting all attributes except the auctionId &lt;/li&gt;&lt;li&gt;Create the com.acme.daos.AuctionDao class&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Copy the static EntityManagerFactory attribute from ItemDao&lt;/li&gt;&lt;li&gt;implement the same methods as in ItemDao, but this time for the Auction entity&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Create a unit test to test the save() method.      &lt;/li&gt;&lt;ol&gt;&lt;li&gt;Right-click the Project node and choose New –&amp;gt; Other. &lt;/li&gt;&lt;li&gt;Select JUnit from the list of Categories and JUnit Test from the list of File Types, then click Next &lt;/li&gt;&lt;li&gt;Type &lt;b&gt;AuctionTest &lt;/b&gt;for the class name&lt;/li&gt;&lt;li&gt;Select &lt;b&gt;Test Packages&lt;/b&gt; as the location &lt;/li&gt;&lt;li&gt;Type &lt;b&gt;com.acme.daos &lt;/b&gt;for the package name&lt;/li&gt;&lt;li&gt;Click Finish.&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Add an import for static assertXXX JUnit utility methods:&lt;pre class="brush: java"&gt;import static org.junit.Assert.*;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;Add an attribute&lt;pre class="brush: java"&gt;static AuctionDao auctionDao;&lt;/pre&gt;&lt;/li&gt;&lt;lo&gt;&lt;li&gt; Initialise it in the @BeforeClass annotated method.&lt;/li&gt;&lt;/lo&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Create a test method called save() to test the save() method on the ItemDao&lt;/li&gt;&lt;ol&gt;&lt;li&gt;you may modify the method to pass the attributes in the constructor instead of using the setters &lt;/li&gt;&lt;/ol&gt;&lt;pre class="brush: java"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Test&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void save(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Auction auction = new Auction();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; auction.setOpenTime(new Date());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GregorianCalendar cal = new GregorianCalendar();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cal.roll(Calendar.MONTH, true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; auction.setCloseTime(cal.getTime());&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; auction.setStartAmount(new BigDecimal("100.00"));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; auction.setIncrement(new BigDecimal("10.00"));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; auction.setStatus(Status.OPEN)&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; auction = auctionDao.save(auction);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assertTrue("id is greater than zero", auction.getAuctionId() &amp;gt; 0);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/pre&gt;&lt;li&gt;Right click ItemTest.java and choose Run File. Run the test and correct errors until it succeeds.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 5 Exercise 3 Task 1&lt;/h3&gt;&lt;h4&gt;&lt;b&gt;Creating a bidirectional One-to-Many/Many-to-One relationship&lt;/b&gt;&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Add a bidirectional One-to-Many/Many-to-One relationship between Auction (1) and Bid (many)   &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add an annotated bids attribute to the Auction entity      &lt;ol&gt;&lt;li&gt;Set cascade mode to ALL&lt;/li&gt;&lt;li&gt;Initialize the attribute to an empty list of bids &lt;ol&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Add an auction attribute to the Bid entity      &lt;ol&gt;&lt;li&gt;Press ALT+INSERT to generate auction getter/setter methods &lt;/li&gt;&lt;li&gt;Add an annotation for the relationship &lt;/li&gt;&lt;li&gt;Press ALT+INSERT to generate a constructor that takes all attributes except the id as arguments&lt;/li&gt;&lt;li&gt;Press ALT+INSERT to generate a default constructor &lt;ol&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Implement these methods in the Auction entity      &lt;br /&gt;&lt;pre class="brush:java"&gt;public void addBid(Bid bid)&lt;br /&gt;public int getBidCount()&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Implement a saveBids() methods in the AuctionTest class   &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create an auction&lt;/li&gt;&lt;li&gt;Add 3 new bids with amounts of 150, 175 and 225&lt;/li&gt;&lt;li&gt;Save the auction&lt;/li&gt;&lt;li&gt;Assert that the saved auction got an ID&lt;/li&gt;&lt;li&gt;Assert that the new auction has 3 bids&lt;/li&gt;&lt;li&gt;Run the test until it passes.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 6 Exercise 2 Task 1&lt;/h3&gt;&lt;h4&gt;&lt;b&gt;Persisting an Entity with a superclass&lt;/b&gt;&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Create an entity called com.acme.entities BookItem.&lt;/li&gt;&lt;li&gt;Make the BookItem entity a subclass of Item.&lt;/li&gt;&lt;li&gt;The attributes of the entity are described in module 2 of the Student Guide.&lt;/li&gt;&lt;li&gt;In the main method add the creation of a BookItem and save it to the database.&lt;/li&gt;&lt;li&gt;Run the main method&lt;/li&gt;&lt;li&gt;Examine which changes were made to the database tables    &lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 7 Exercise 2 Task 1&lt;/h3&gt;&lt;h4&gt;Persisting an Entity with an enum Field&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Create the Status enum.      &lt;ol&gt;&lt;li&gt;Right click on the &lt;b&gt;com.acme.entities &lt;/b&gt;package and choose New&amp;gt;Java class           &lt;ol&gt;&lt;li&gt;Type &lt;b&gt;Status &lt;/b&gt;for the Class Name. &lt;/li&gt;&lt;li&gt;Choose enum for the type &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Click OK &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Add these values to the enum: &lt;b&gt;OPEN, CLOSED, CANCELLED&lt;/b&gt; &lt;/li&gt;&lt;li&gt;Refactor the type of Auction.status and change it to Status      &lt;ol&gt;&lt;li&gt;Change getter and setter methods &lt;/li&gt;&lt;li&gt;Change the call to setStatus in AuctionTest.java &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Run the AuctionTest and correct errors until it succeeds &lt;/li&gt;&lt;li&gt;Check the database definition of Auction.status and check the inserted data. What has changed? &lt;/li&gt;&lt;li&gt;Add an Enumerated annotation to the status field and set enumeration type to STRING &lt;/li&gt;&lt;li&gt;Run the AuctionTest and correct errors until it succeeds &lt;/li&gt;&lt;li&gt;Check the database definition of Auction.status and check the inserted data. What has changed? &lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 7 Exercise 3 Task 1&lt;/h3&gt;&lt;h4&gt;Persisting an Entity with a List field&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Add a Set of String keywords to the Item entity and initialize it to an empty Set.&lt;/li&gt;&lt;li&gt;Annotate it as an ElementCollection&lt;/li&gt;&lt;li&gt;Implement these methods:&lt;br /&gt;&lt;pre class="brush:java"&gt;public void addKeyword(String keyword)&lt;br /&gt;public List&amp;lt;String&amp;gt; getKeywords()&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Add an annotated test method saveKeywords() to ItemTest. You can use the test methods for bids in Auction as a source of inspiration.&lt;/li&gt;&lt;li&gt;Run the AuctionTest and correct errors until it succeeds.&lt;/li&gt;&lt;li&gt;Describe the database table where the keywords are saved.    &lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 8 Exercise 2&lt;/h3&gt;&lt;h4&gt;Performing a query with the Java Persistence API QL&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Add a dynamicJpqlQuery() test to the ItemTest class. In the method&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Perform this JPQL query (within a transaction)&lt;/li&gt;&lt;blockquote&gt;DELETE FROM Item i &lt;/blockquote&gt;&lt;ol&gt;&lt;li&gt; What does this query do?&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Create 3 Items using ItemDao.save(Item i), using different values for all atributes.&lt;/li&gt;&lt;li&gt;Save them to the database&lt;/li&gt;&lt;li&gt;Perform a JPQL query to retrieve&amp;nbsp; them&lt;/li&gt;&lt;li&gt;Assert you retrieved 3 results&lt;/li&gt;&lt;li&gt;perform a&amp;nbsp; JPQL query to retrieve only items in stock&lt;/li&gt;&lt;li&gt;Assert you retrieved the correct number of results&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;&lt;b&gt;Optional&lt;/b&gt;: Add a testPaging() test method that creates 25 Items and retrieves them in groups of maximum 10.  Verify that it runs correctly.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 8 Exercise 3&lt;/h3&gt;&lt;h4&gt;Performing a query with SQL&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Copy the dynamicJpqlQuery() test in the ItemTest class to nativeSqlQuery()&lt;/li&gt;&lt;li&gt;In the method replace all queries with native queries&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 8 Exercise 4&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Add a constructor to the Item class that accepts all attributes&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Type ALT+INSERT into the item class&lt;/li&gt;&lt;li&gt;Choose Constructor…&lt;/li&gt;&lt;li&gt;Check all attributes except the ID&lt;/li&gt;&lt;li&gt;Click Generate&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Add a default constructor to the Item class&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Type ALT+INSERT into the item class&lt;/li&gt;&lt;li&gt;Choose Constructor…&lt;/li&gt;&lt;li&gt;Click Generate&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Copy the CriteriaTest.java file from the labs08 directory to the com.acme.entities package in the test directory&lt;/li&gt;&lt;li&gt;Examine the code&lt;/li&gt;&lt;li&gt;Run the code&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 9 Exercise 2 Task 1&lt;/h3&gt;&lt;h4&gt;Creating and running a named query&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Define a named query called ClearAuctions using an annotiation on the Auction entity that deletes all auctions &lt;/li&gt;&lt;li&gt;Define a named query called FindByStatusAuctions using an annotiation on the Auction entity. To define multiple named queries use @NamedQueries:&lt;pre class="brush:java"&gt;@NamedQueries( {&lt;br /&gt;    @NamedQuery(name="xxx",query="XXXX"), &lt;br /&gt;    @NamedQuery(name="yyy",query="YYY") }&lt;/pre&gt;&lt;ol&gt;&lt;li&gt;The query should select all auctions with a certain status &lt;/li&gt;&lt;li&gt;Set the status in the query as a named parameter &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Add an annotated test method called testNamedQuery() to the AuctionTest clas.&lt;/li&gt;&lt;li&gt;Execute the ClearAuctions query (you can find inspiration in the tests in the previous chapter)      &lt;ul&gt;&lt;li&gt;Do not use the Dao, but create an EntityManager &lt;/li&gt;&lt;li&gt;Perform the delete operation within a transaction &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Execute the FindByStatusAuctions query to look for all closed auctions &lt;/li&gt;&lt;li&gt;Assert no entries are found &lt;/li&gt;&lt;li&gt;Run the test and correct errors until it succeeds &lt;/li&gt;&lt;li&gt;Modify the testNamedQuery() test to insert three auctions and add them to the auction table      &lt;ol&gt;&lt;li&gt;Add a convenience constructor with common attributes and a default constructor to the entity &lt;/li&gt;&lt;li&gt;The start date of the first auction should be between those of the second and the third item(we will use this in the next exercise)&lt;/li&gt;&lt;li&gt;Only two auctions should be in open &lt;/li&gt;&lt;li&gt;Save them using the Dao &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Assert one entry is found &lt;/li&gt;&lt;li&gt;Run the test and correct errors until it succeeds &lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 9 Exercise 2 &lt;b&gt;Task 2&lt;/b&gt;&lt;/h3&gt;&lt;h4&gt;&lt;b&gt;Creating multiple named queries&lt;/b&gt;&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Write a new NamedQuery FindAllAuctions that finds all auctions.&lt;/li&gt;&lt;li&gt;Copy the testNamedQuery() test to a new test and call it testOrderedQuery()&lt;/li&gt;&lt;li&gt;Replace the last query in the copied test method (FindByStatusAuctions) with the FindAllAuctions Query and store the results in a List&lt;/li&gt;&lt;li&gt;Assert that the first auction starts after the second.&lt;/li&gt;&lt;li&gt;Run the test and correct errors until it succeeds&lt;/li&gt;&lt;li&gt;Write a new NamedQuery called FindAllOrderByOpenTimeAuctions that sorts by ascending openTime.&lt;/li&gt;&lt;li&gt;Add the query at the end of testOrderedQuery.&lt;/li&gt;&lt;li&gt;Assert that the first auction starts before the second.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 10 Exercise 2&lt;/h3&gt;&lt;h4&gt;Performing a Query With Multiple Criteria&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Define a named query called clearItems that deletes all items. Use an annotation on the Item entity  &lt;/li&gt;&lt;li&gt;Add an annotated test method called incompleteItems() to the ItemTest class.&lt;/li&gt;&lt;li&gt;In the incompleteItems method      &lt;ol&gt;&lt;li&gt;Call the clearItems named query &lt;/li&gt;&lt;li&gt;Create 3 items.          &lt;ol&gt;&lt;li&gt;An Item with a description &lt;/li&gt;&lt;li&gt;An Item with an image &lt;/li&gt;&lt;li&gt;An Item with an image and a description &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Use test methods from previous labs for inspiration) &lt;/li&gt;&lt;li&gt;Build a criteria query that selects all items that have a description OR an image that is NULL      &lt;br /&gt;Hint: use CriteriaBuilder.isNull()&lt;ol&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Execute the query &lt;/li&gt;&lt;li&gt;Assert 2 entries are found &lt;/li&gt;&lt;li&gt;Run the test and correct errors until it succeeds &lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 10 Exercise 3 (extra)&lt;/h3&gt;&lt;h4&gt;Performing a query with a named parameter&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Copy the incompleteItems() test method and call the copy namedParameter() &lt;/li&gt;&lt;li&gt;Replace the query with a Criteria query that selects all items with a given description      &lt;ol&gt;&lt;li&gt;The description should be received as a parameter called “desc” &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Execute the query for each description in your items &lt;/li&gt;&lt;li&gt;Assert that you get exactly one result each time &lt;/li&gt;&lt;li&gt;Run the test and correct errors until it succeeds &lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;Lab 13 Exercise 2 Task 1&lt;/h4&gt;&lt;h4&gt;Creating a Composite Key&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Create the BookPk class in the com.acme.enitities package &lt;/li&gt;&lt;li&gt;Add the @Embeddable annotation and the Serializable interface to theclass declaration.      &lt;pre class="brush:java"&gt;@Embeddable&lt;br /&gt;public class BookPk implements Serializable{&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Add the following fields:      &lt;pre class="brush:java"&gt;private String title;&lt;br /&gt;private int edition;&lt;/pre&gt;&lt;ol&gt;&lt;li&gt;Right-click an empty line and choose Insert Code. &lt;/li&gt;&lt;li&gt;Choose Getter and Setter. &lt;/li&gt;&lt;li&gt;Select all fields and click Generate. &lt;/li&gt;&lt;li&gt;Right-click an empty line and choose equals() and hashCode(). &lt;/li&gt;&lt;li&gt;Select all fields in the list. &lt;/li&gt;&lt;li&gt;Click Generate. &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Create the TextBook entity class in the the com.acme.enitities package      &lt;ol&gt;&lt;li&gt;Add an EmbeddedId of type BookPk &lt;/li&gt;&lt;li&gt;Add attributes          &lt;pre class="brush:java"&gt;private List&amp;lt;String&amp;gt; authors;&lt;br /&gt;private int yearPublished;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Extra: Annotate the authors attribute as an ElementCollection &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;In the main method add the creation of a BookItem and save it to the database &lt;/li&gt;&lt;li&gt;Run the main method &lt;/li&gt;&lt;li&gt;Examine which changes were made to the database tables&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h4&gt;Lab 13 Extra: Exercise 3 Task 1&lt;/h4&gt;&lt;h4&gt;Using validation&lt;/h4&gt;&lt;h4&gt;&lt;span style="font-weight: normal;"&gt;This lab supposes the &lt;/span&gt;&lt;a href="http://sourceforge.net/projects/hibernate/files/hibernate-validator/" style="font-weight: normal;"&gt;validator reference implementation&lt;/a&gt;&lt;span style="font-weight: normal;"&gt; has been downloaded to $Home/pkg&lt;/span&gt;&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;In the projects window right click the libraries folder and select &lt;i&gt;Add Library&lt;/i&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Click &lt;i&gt;Create...&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Enter Library Name:&lt;i&gt; &lt;/i&gt;&lt;b&gt;Validation&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;Click OK&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Click &lt;i&gt;Add JAR/Folder...&lt;/i&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;Select $HOME/pkg/hibernate-validator/hibernate-validator*.jar&lt;/li&gt;&lt;ol&gt;&lt;li&gt;* depends on the version of validator&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;li&gt;Click &lt;i&gt;Add JAR/Folder...&lt;/i&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;Select $HOME/pkg/hibernate-validator/lib/required/validator-api-1.0.0.GA.jar&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Click &lt;i&gt;Add Library&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;In the Item entity annotate the image with a validation that&amp;nbsp;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;prints the message "Only JPG images are accepted"&lt;/li&gt;&lt;li&gt; only accept values matching this pattern&lt;/li&gt;&lt;/ol&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ".*\\.jpg"&lt;/blockquote&gt;&lt;li&gt;In the ItemTest class add a test method test Validation that&lt;/li&gt;&lt;ol&gt;&lt;li&gt;saves an Item with a null image&lt;/li&gt;&lt;li&gt;saves an item with an image string ending in .jpg&lt;/li&gt;&lt;li&gt;saves an item with an image string ending in .gif&lt;/li&gt;&lt;ol&gt;&lt;li&gt;surround the last save line with a try block&lt;/li&gt;&lt;li&gt;catch a ConstraintViolationException&amp;nbsp;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;add an empty catch block&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;in the try block add as a last line&lt;/li&gt;&lt;pre class="brush:java"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; fail("picture.gif should fail validation");&lt;/pre&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;li&gt;Run the test and correct errors until it succeeds&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4850397816824510825?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4850397816824510825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/04/jpa-lab-10-exercise-3-alternate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4850397816824510825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4850397816824510825'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/04/jpa-lab-10-exercise-3-alternate.html' title='JPA labs – alternate instructions (edit)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7807682648435753186</id><published>2011-09-25T13:31:00.000+02:00</published><updated>2011-11-18T14:11:58.604+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DWS-4050-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-351-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><title type='text'>NetBeans hints (edit)</title><content type='html'>&lt;h5&gt;Keyboard shortcuts&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;view, search (NB &amp;gt;= 6.7) &amp;amp; change shortcuts: tools =&amp;gt; options =&amp;gt; keymap&lt;/li&gt;&lt;ul&gt;&lt;li&gt;You can set the keymap to a profile from another IDE (Eclipse, IntelliJ...) here as well. &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;help =&amp;gt; keyboard shortcuts card. The pdf that is shown, lives in &lt;i&gt;&lt;br /&gt;netbeansInstallDir&lt;/i&gt;/nb/shortcuts.pdf. Some additional useful shortcuts: &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;CTRL SPACE: autocomplete popup&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;CTRL K: complete to recently typed word&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;CTRL click: go to definition &lt;/li&gt;&lt;ul&gt;&lt;li&gt;CTRL ALT click: go to implementation&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;CTRL –/+: fold/unfold code&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;CTRL ; =&amp;gt; add semicolon at end of line &lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;CTRL/ALT SHIFT F12: inspect members/hierarchy current selection&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h5&gt;Running code&lt;/h5&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: normal;"&gt;After you ran a program, and corrected some errors &lt;b&gt;Rerun &lt;/b&gt;using the &lt;b&gt;&amp;gt;&amp;gt;&lt;/b&gt; buttons. Other buttons are &lt;b&gt;Rerun with different parameters&lt;/b&gt; and &lt;b&gt;Stop&lt;/b&gt;.&lt;/span&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-BATs9tO1eLg/Tn8PLSzCO9I/AAAAAAAABFU/0B5SeA1HCfs/s1600/NetBeans+IDE+7.0.1_2011-09-25_13-15-32.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-BATs9tO1eLg/Tn8PLSzCO9I/AAAAAAAABFU/0B5SeA1HCfs/s1600/NetBeans+IDE+7.0.1_2011-09-25_13-15-32.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Similar options are available for (individual) tests.&lt;ul&gt;&lt;li&gt;You can also launch an individual test by&amp;nbsp; positioning the cursor in the method and selecting "Run focused test" from the right click menu.&lt;/li&gt;&lt;/ul&gt;&lt;img alt="" src="data:image/png;base64,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" /&gt;&lt;span style="font-weight: normal;"&gt;&lt;/span&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/760377872792883482-7807682648435753186?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7807682648435753186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2009/05/netbeans-starter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7807682648435753186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7807682648435753186'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2009/05/netbeans-starter.html' title='NetBeans hints (edit)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-BATs9tO1eLg/Tn8PLSzCO9I/AAAAAAAABFU/0B5SeA1HCfs/s72-c/NetBeans+IDE+7.0.1_2011-09-25_13-15-32.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8427942909980569218</id><published>2011-09-22T21:54:00.000+02:00</published><updated>2011-11-18T14:12:07.446+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA 2 differences (edit)</title><content type='html'>JPA 2 is a superset of JPA 1. Added features include: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Entities&lt;/li&gt;&lt;ul&gt;&lt;li&gt;mixing of field and getter method annotations&lt;/li&gt;&lt;li&gt;JSR 303 validation&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; Relations&lt;/li&gt;&lt;ul&gt;&lt;li&gt;unidirectional OneToMany&lt;/li&gt;&lt;li&gt;use JoinTable for all relation cardinalities&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Automatic actions upon Entity changes&lt;/li&gt;&lt;ul&gt;&lt;li&gt;CascadeType.DETACH&lt;/li&gt;&lt;li&gt;orphanRemoval: delete an orphan Entity if its relation to its parent Entity is broken&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Collections&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Support for mapping collections of Basic and Embeddable types (@ElementCollection)&lt;/li&gt;&lt;li&gt;Map keys and values can both be Basic, Embeddable and Entity types&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Embeddables&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Can be nested&lt;/li&gt;&lt;li&gt;Can have attributes with relations &lt;/li&gt;&lt;li&gt;Can inherit from a MappedSuperclass&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Ordering&lt;/li&gt;&lt;ul&gt;&lt;li&gt;@OrderBy: determine order in which elements of List attributes are loaded&lt;/li&gt;&lt;li&gt;@OrderColumn: support for preserving List order in the database using an OrderColumn&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Queries&lt;/li&gt;&lt;ul&gt;&lt;li&gt;TypedQuery &amp;lt;T&amp;gt; &lt;/li&gt;&lt;li&gt;Criteria API&lt;/li&gt;&lt;ul&gt;&lt;li&gt;metamodel generation&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;JPQL&lt;/li&gt;&lt;ul&gt;&lt;li&gt;functions and operations in SELECT clause&lt;/li&gt;&lt;li&gt;COALESCE function (returns first non null argument)&lt;/li&gt;&lt;li&gt;TYPE function: get class of Entity to compare with literal&lt;/li&gt;&lt;li&gt;CASE expression&lt;/li&gt;&lt;li&gt;KEY, VALUE, and ENTRY keywords for map operations &lt;/li&gt;&lt;li&gt;use of enums&lt;/li&gt;&lt;li&gt;enum and temporal literals &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt;Locking&lt;/li&gt;&lt;ul&gt;&lt;li&gt;pessimistic locking support&lt;/li&gt;&lt;li&gt;lock mode arguments in EntityManager methods&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Cache API&lt;/li&gt;&lt;/ul&gt;JPA 2 is implemented in Hibernate 3.5+&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8427942909980569218?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8427942909980569218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/04/jpa-2-differences.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8427942909980569218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8427942909980569218'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/04/jpa-2-differences.html' title='JPA 2 differences (edit)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8819078780341215012</id><published>2011-09-21T22:01:00.001+02:00</published><updated>2011-10-13T16:14:19.240+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enum'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA : choose your enum ordinals</title><content type='html'>Ordinal enums are brittle with JPA.&lt;br /&gt;If you change the order of the enum constants,&lt;br /&gt;the ordinal number that is saved to the database changes.&lt;br /&gt;&lt;br /&gt;You can solve that by assigning your own code in the enum (10,20,30 in the example).&lt;br /&gt;In the entity, make the enum transient.&lt;br /&gt;Before saving the entity put your code in an int attribute, which will be stored in the database.&lt;br /&gt;After loading convert the int back to the enum.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:java"&gt;public enum Status{&lt;br /&gt;&amp;nbsp; OPEN(10), CLOSED(20), CANCELLED(30);&lt;br /&gt;&amp;nbsp; private int code;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private Status(int code) {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.code = code;&amp;nbsp; &lt;br /&gt;&amp;nbsp; }&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; public int getCode() {&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return code;&amp;nbsp; &lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; public static&amp;nbsp; Status getStatus(int code){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (Status stat : Status.values()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (stat.getCode()==code) return stat;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return null; // not found: invalid code&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;@Entity&lt;br /&gt;public class Auction{&lt;br /&gt;&amp;nbsp; private int status;&lt;br /&gt;&amp;nbsp; @Transient private Status statEnum;&lt;br /&gt;&lt;br /&gt;  public int getStatus(){&lt;br /&gt;    return status;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;  public void setStatus(int status){&lt;br /&gt;    this.status = status;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;&amp;nbsp; @PostLoad private void int2enum(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; statenum = Status.getStatus(status);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;@PrePersist private void enum2int(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = statEnum.getCode();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; //...&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;NB: kudos to Guy for moving conversion to callbacks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8819078780341215012?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8819078780341215012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/jpa-choose-your-enum-ordinals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8819078780341215012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8819078780341215012'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/jpa-choose-your-enum-ordinals.html' title='JPA : choose your enum ordinals'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7476778776588709762</id><published>2011-09-19T17:09:00.000+02:00</published><updated>2011-09-20T13:10:11.830+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA entity state transitions and EntityManager methods</title><content type='html'>&lt;ul&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-oI9s7pkkXJs/Tnh0grho31I/AAAAAAAABFQ/-OIkW8ia5UQ/s1600/entity+states.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-oI9s7pkkXJs/Tnh0grho31I/AAAAAAAABFQ/-OIkW8ia5UQ/s1600/entity+states.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;only the most common EntityManager methods are mentioned&lt;/li&gt;&lt;li&gt;void return types have been omitted&lt;/li&gt;&lt;li&gt;refresh() is also loading from the database&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/760377872792883482-7476778776588709762?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7476778776588709762/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/jpa-entitymanager-methods-and-entity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7476778776588709762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7476778776588709762'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/jpa-entitymanager-methods-and-entity.html' title='JPA entity state transitions and EntityManager methods'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-oI9s7pkkXJs/Tnh0grho31I/AAAAAAAABFQ/-OIkW8ia5UQ/s72-c/entity+states.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3818465217082326385</id><published>2011-09-18T19:00:00.001+02:00</published><updated>2011-09-18T21:08:23.200+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='slf4j'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='log4j'/><title type='text'>Java logging toolkit levels mapping</title><content type='html'>A comparison of the logging levels (or methods) in different logging toolkits. I omitted the ALL and NONE levels.&lt;br /&gt;&lt;table border="0" cellpadding="2" cellspacing="0" style="width: 362px;"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td valign="top" width="199"&gt;&lt;b&gt;java.util logging&lt;/b&gt;&lt;/td&gt;        &lt;td valign="top" width="161"&gt;&lt;b&gt;log4j/slf4j&lt;/b&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="220"&gt;FINEST&lt;/td&gt;        &lt;td valign="top" width="169"&gt;TRACE&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="225"&gt;FINE&lt;/td&gt;        &lt;td valign="top" width="172"&gt;DEBUG&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="225"&gt;INFO&lt;/td&gt;        &lt;td valign="top" width="174"&gt;INFO&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="224"&gt;WARNING&lt;/td&gt;        &lt;td valign="top" width="175"&gt;WARN&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="223"&gt;SEVERE&lt;/td&gt;        &lt;td valign="top" width="176"&gt;ERROR&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3818465217082326385?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3818465217082326385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/java-logging-toolkit-level-mapping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3818465217082326385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3818465217082326385'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/java-logging-toolkit-level-mapping.html' title='Java logging toolkit levels mapping'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4088381704428129142</id><published>2011-09-16T11:35:00.000+02:00</published><updated>2011-09-20T07:01:03.412+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><title type='text'>Hibernate labs</title><content type='html'>&lt;h3&gt;&amp;nbsp;Lab 1 Exercise 0&lt;/h3&gt;&lt;h4&gt;Adding Hibernate JPA 2 support&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Start the NetBeans IDE&lt;/li&gt;&lt;li&gt;Select Tools &amp;gt; Libraries&lt;/li&gt;&lt;ol&gt;&lt;li&gt;New Library...&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Library Name: &lt;b&gt;HibernateJPA2&lt;/b&gt; &lt;/li&gt;&lt;li&gt;Add Jar/Folder...&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Go to the $HOME/pkg directory and add jars as described &lt;a href="http://rijkswatch.blogspot.com/2011/07/netbeans-hibernate-and-jpa2.html"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;li&gt;Click OK&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Select this library in subsequent exercises when you need to add a JPA 2 library&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 10 Exercise 2&lt;/h3&gt;&lt;h4&gt;Performing a Query With Multiple Criteria&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Define a named query called clearItems that deletes all items. Use an annotation on the Item entity  &lt;/li&gt;&lt;li&gt;Add an annotated test method called incompleteItems() to the ItemTest class.&lt;/li&gt;&lt;li&gt;In the incompleteItems method      &lt;ol&gt;&lt;li&gt;Call the clearItems named query &lt;/li&gt;&lt;li&gt;Create 3 items.          &lt;ol&gt;&lt;li&gt;An Item with a description &lt;/li&gt;&lt;li&gt;An Item with an image &lt;/li&gt;&lt;li&gt;An Item with an image and a description &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Use test methods from previous labs for inspiration) &lt;/li&gt;&lt;li&gt;Build a criteria query that selects all items that have a description OR an image that is NULL      &lt;br /&gt;Hint: use static methods in Restrictions&lt;ol&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Execute the query &lt;/li&gt;&lt;li&gt;Assert 2 entries are found &lt;/li&gt;&lt;li&gt;Run the test and correct errors until it succeeds&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Lab 10 Exercise 3&lt;/h3&gt;&lt;h4&gt;Using data filters&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Define a filter called BidsApproved that limits bids to those that have their approval set to "OK"&lt;/li&gt;&lt;li&gt;Annotate the Bid class to associate the filter BidsApproved with it.&lt;/li&gt;&lt;li&gt;Write a test method called testApprovedBids(). In the testmethod&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Initialize test data&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Clear all the Bids from the database&lt;/li&gt;&lt;li&gt;Clear all the Auctions from the database&lt;/li&gt;&lt;li&gt;Create an Auction&lt;/li&gt;&lt;li&gt;Create 3 bids&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Only one bid should have approved set to "OK"&lt;/li&gt;&lt;li&gt;All bids should be associated with the Auction&lt;/li&gt;&lt;li&gt;Add all bids to the Auction (bidirectional relation)&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Save the Auction&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Enable the BidsApproved filter&lt;/li&gt;&lt;li&gt;Select all the bids&lt;/li&gt;&lt;li&gt;Assert that only one bid is returned&lt;/li&gt;&lt;li&gt;Disable the BidsApproved filter &lt;/li&gt;&lt;li&gt;Run the test and correct errors until it succeeds &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Extend the test method (just before disabling the bidsApproved filter &lt;/li&gt;&lt;ol&gt;&lt;li&gt;Select all the Auctions&lt;/li&gt;&lt;li&gt;Get all the Bids from the first Auction that is returned&lt;/li&gt;&lt;li&gt;Assert that only one bid is returned&lt;/li&gt;&lt;li&gt;disable the&amp;nbsp; BidsApprovedfilter at the end of te&lt;/li&gt;&lt;li&gt;Run the test and write down the result&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Activate the filter on the bids Collection&lt;/li&gt;&lt;ol&gt;&lt;li&gt;In the Auction class, annotate the bids attribute with the BidsApproved filter&lt;/li&gt;&lt;li&gt;Run the test and correct errors until it succeeds&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;h3&gt;Lab Performance Exercise 1&lt;/h3&gt;&lt;h4&gt;Adding L2 EhCache support&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;In the projects tab, right click the Libraries folder and choose "Add Jar/Folder..."&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Go to the $HOME/pkgpkg/ehcache/lib directory and add the ehcache-core jar&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Add caching support to persistence.xml&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Set the &lt;span style="color: black; font-family: &amp;quot;Courier New&amp;quot;; font-size: 16pt;"&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;hibernate.cache.use_second_level_cache property to true&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Add the EhCache provider&amp;nbsp;&lt;/li&gt;&lt;pre class="brush: xml"&gt;&amp;nbsp;&amp;lt;property name="hibernate.cache.region.factory_class"&lt;br /&gt;&amp;nbsp;value="org.hibernate.cache.SingletonEhCacheRegionFactory"/&amp;gt;&lt;/pre&gt;&lt;/ol&gt;&lt;li&gt;For monitoring&lt;/li&gt;&lt;ol&gt;&lt;li&gt;set the hibernate.generate_statistics property to true&lt;/li&gt;&lt;li&gt;Make sure you log Hibernate generated SQL&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;h4&gt;Caching the Item entity&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Add READ_ONLY caching to the Item entity using the @Cache annotation (from org.hibernate.annotations)&lt;/li&gt;&lt;li&gt;Add an annotated test method called testReadCache() to the ItemTest class. Throughout this exercise, print out what you are doing before each database access, to make your test output easier to follow. In the test method do these actions:      &lt;ol&gt;&lt;li&gt;Create a &lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; font-size: small;"&gt;&lt;span style="color: black;"&gt;org.hibernate.stat.&lt;/span&gt;&lt;/span&gt;Statistics objec&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Get a hibernate SessionFactory from the EntityManagerFactory&lt;/li&gt;&lt;li&gt;Get the Statistics object from the SessionFactory&lt;br /&gt; &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Create an Item, save it and get its ID&lt;/li&gt;&lt;li&gt;Print out cache hits and misses&lt;/li&gt;&lt;li&gt;Lookup the Item again, using the ID&lt;/li&gt;&lt;li&gt;Print out cache hits and misses&lt;/li&gt;&lt;li&gt;Lookup the Item again, using the ID&lt;/li&gt;&lt;li&gt;Print out cache hits and misses &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt; Run the tests and correct any errors. Observe the cache behaviour. Observe that the generated SQL statements are not printed when the cache is used.&lt;/li&gt;&lt;li&gt;At the end of the test method add code to:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Evict everything from the cache&lt;/li&gt;&lt;li&gt;Lookup the Item&lt;/li&gt;&lt;li&gt;Print out cache hits and misses&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Run the tests and correct any errors. Observe the cache behaviour.&lt;/li&gt;&lt;li&gt;At the end of the test method add code to:&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Modfy the description of the Item to "changed"&lt;/li&gt;&lt;li&gt;Merge the saved Item to the database&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Add an update(Item it) method to the ItemDao class for this (if it did not exist yet).&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Lookup the Item&lt;/li&gt;&lt;li&gt;Print out cache hits and misses&lt;/li&gt;&lt;li&gt;Assert that the description of the looked up Item is set to "changed"&lt;/li&gt;&lt;/ol&gt;&lt;li&gt; Run the test. Record the cache behaviour. An exception can be thrown.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Modify the Item caching concurrency annotation to NONSTRICT_READ_WRITE&lt;/li&gt;&lt;li&gt;Run the test until it succeeds. Record the cache behaviour and compare with the previous result.&lt;/li&gt;&lt;li&gt;Modify the Item caching concurrency annotation to READ_WRITE&lt;/li&gt;&lt;li&gt;Run the test until it succeeds. Record the cache behaviour and compare with the previous result.&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;Caching the keywords collection&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;In the testReadCache() method, add some keywords to the Item, before it is initially saved to the database.&lt;/li&gt;&lt;li&gt; At the end of the method, add these instructions (remember to add some tracing statements as well):&lt;/li&gt;&lt;ol&gt;&lt;li&gt;get the number of keywords associated with the Item&lt;/li&gt;&lt;li&gt;Print out cache hits and misses&amp;nbsp;&lt;/li&gt;&lt;li&gt;Lookup the Item again, using the ID&lt;/li&gt;&lt;li&gt;Print out cache hits and misses &lt;/li&gt;&lt;li&gt;get the number of keywords associated with the Item&lt;/li&gt;&lt;li&gt;Print out cache hits and misses &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Run the test. Record the cache behaviour.&lt;/li&gt;&lt;li&gt;Annotate the keywords collection to cache it with READ_WRITE concurrency&lt;/li&gt;&lt;li&gt; Run the test until it succeeds. Record the cache behaviour and compare with the previous result.&lt;/li&gt;&lt;/ol&gt;&lt;h4&gt;&lt;/h4&gt;&lt;h3&gt;Lab Design Patterns Exercise 1&lt;/h3&gt;In this lab you will build a superclass with common behaviour for Data Access Objects.&lt;br /&gt;To keep things simple, this template supposes that all primary keys are of type Long.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Copy the GenericJpaDao template from $HOME/labs/lab_design to the com.acme.daos package.&lt;/li&gt;&lt;li&gt;Implement the empty methods (look for //TODO comments)&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Use the TClass attribute whenever you need to supply the entity class&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Adapt the class that interacts with the database for Item entities to use GenericJpaDao&amp;nbsp;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;Let the class inherit from GenericJpaDao&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;pre class="brush: java"&gt;public class ItemDao extends GenericJpaDao&amp;lt;Item&amp;gt; &lt;br /&gt;&lt;/pre&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;Refactor all methods in the ItemDao so there names match the names used in GenericJpaDao (Refactoring will update all classes that use these methods to use the new names)&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Then delete these methods &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;In the Item Test class&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Create attributes&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;pre class="brush: java"&gt;private static EntityManagerFactory emf;&lt;br /&gt;private static ItemDao itemDao;&lt;/pre&gt;&lt;br /&gt;&lt;ol&gt;&lt;ol&gt;&lt;ol&gt;&lt;li&gt;If not yet present, create a method&lt;/li&gt;&lt;pre class="brush: java"&gt;@BeforeClass public static void setUpClass(){}&lt;/pre&gt;&lt;li&gt;In the method&lt;/li&gt;&lt;ol&gt;&lt;li&gt;create a factory with the name of your persistence unit&lt;/li&gt;&lt;li&gt;call itemDao.setEntityManagerFactory(emf); &lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Create a static attribute for the ItemDao and assign an instance to it in SetUpClass()&lt;/li&gt;&lt;li&gt;Review your test methods and use the created Data Access Object in them&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Run the tests until they succeed&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Write down some suggestions for enhancing the GenericJpaDao class&lt;/li&gt;&lt;ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;ol&gt;&lt;ol&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4088381704428129142?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4088381704428129142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/hibernate-labs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4088381704428129142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4088381704428129142'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/hibernate-labs.html' title='Hibernate labs'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-1010500656716248742</id><published>2011-09-13T07:47:00.000+02:00</published><updated>2011-10-28T09:09:52.149+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='teaching'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='9/11'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>What did you do on 9/11?</title><content type='html'>I was teaching a Solaris security course that day, with some NATO people in the class.&lt;br /&gt;I remember meeting my colleague Guido in the corridor saying "World War III just started".&lt;br /&gt;I told the class the news and went on with the course.&lt;br /&gt;Next morning, Raoul, manager of Sun Education Belgium, had a minute of silence for everybody.&lt;br /&gt;One of the British officers told another NATO attendee he should not be wearing a US Army T-shirt, because he was exposing himself as a target.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-1010500656716248742?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/1010500656716248742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/what-did-you-do-on-911.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1010500656716248742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1010500656716248742'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/what-did-you-do-on-911.html' title='What did you do on 9/11?'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3405019611067080612</id><published>2011-09-08T14:43:00.000+02:00</published><updated>2011-09-13T07:30:33.949+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reasons to be'/><category scheme='http://www.blogger.com/atom/ns#' term='ian dury'/><title type='text'>Reasons to be</title><content type='html'>Summer, Buddy Holly, the working folly&lt;br /&gt;Good golly Miss Molly and boats&lt;br /&gt;Hammersmith Palais, the Bolshoi Ballet&lt;br /&gt;Jump back in the alley and nanny goats&lt;br /&gt;&lt;br /&gt;18-wheeler Scammels, Domenecker camels&lt;br /&gt;All other mammals plus equal votes&lt;br /&gt;Seeing Piccadilly, Fanny Smith and Willy&lt;br /&gt;Being rather silly, and porridge oats&lt;br /&gt;&lt;br /&gt;A bit of grin and bear it, a bit of come and share it&lt;br /&gt;You're welcome, we can spare it - yellow socks&lt;br /&gt;Too short to be haughty, too nutty to be naughty&lt;br /&gt;Going on 40 - no electric shocks&lt;br /&gt;&lt;br /&gt;The juice of the carrot, the smile of the parrot&lt;br /&gt;A little drop of claret - anything that rocks&lt;br /&gt;Elvis and Scotty, days when I ain't spotty,&lt;br /&gt;Sitting on the potty - curing smallpox&lt;br /&gt;&lt;br /&gt;Health service glasses  &lt;br /&gt;Gigolos and brasses  &lt;br /&gt;round or skinny bottoms  &lt;br /&gt;&lt;br /&gt;Take your mum to Paris  &lt;br /&gt;lighting up the chalice  &lt;br /&gt;Wee Willy Harris &lt;br /&gt;&lt;br /&gt;Bantu Stephen Biko, listening to Rico  &lt;br /&gt;Harpo, Groucho, Chico  &lt;br /&gt;&lt;br /&gt;Cheddar cheese and pickle, the Vincent motorsickle  &lt;br /&gt;Slap and tickle  &lt;br /&gt;Woody Allen, Dali, Dimitri and Pasquale  &lt;br /&gt;balabalabala and Volare&lt;br /&gt;&lt;br /&gt;Something nice to study, phoning up a buddy  &lt;br /&gt;Being in my nuddy  &lt;br /&gt;Saying hokey-dokey, Sing Along With Smokey  &lt;br /&gt;Coming out of chokey &lt;br /&gt;&lt;br /&gt;John Coltrane's soprano, Adi Celentano  &lt;br /&gt;Bonar Colleano&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Reasons to be cheerful, part 3 - Ian Dury&amp;nbsp; &lt;/i&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3405019611067080612?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3405019611067080612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/reasons-to-be.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3405019611067080612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3405019611067080612'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/09/reasons-to-be.html' title='Reasons to be'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3929252173504639656</id><published>2011-08-26T11:38:00.000+02:00</published><updated>2011-09-18T21:09:00.452+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SL-351-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='object relational mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='ORM'/><title type='text'>The Object Relational Gap (updated)</title><content type='html'>&lt;table border="0" cellpadding="2" cellspacing="0" style="width: 726px;"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;b&gt;&lt;span style="font-size: medium;"&gt;The Object&lt;/span&gt;&lt;/b&gt; &lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;span style="font-size: medium;"&gt;&lt;b&gt;Relational Gap&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;span style="color: red;"&gt;&lt;b&gt;transient (mostly)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;span style="color: red;"&gt;&lt;b&gt;persistent&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;span style="color: green;"&gt;&lt;b&gt;classes&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;span style="color: green;"&gt;&lt;b&gt;tables              &lt;br /&gt;(user defined datatypes)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: red;"&gt;inheritance&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;span style="color: green;"&gt;&lt;b&gt;attributes&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;span style="color: green;"&gt;&lt;b&gt;columns&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;span style="color: green;"&gt;&lt;b&gt;objects&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;span style="color: green;"&gt;&lt;b&gt;rows&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: green;"&gt;&lt;b&gt;instance attribute&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: green;"&gt;&lt;b&gt;field&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: red;"&gt;&lt;b&gt;implicity ID: reference&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: red;"&gt;&lt;b&gt;explicit ID: primary key&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;span style="color: green;"&gt;&lt;b&gt;relations&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;span style="color: green;"&gt;&lt;b&gt;relations&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: green;"&gt;&lt;b&gt;references&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: green;"&gt;&lt;b&gt;foreign keys&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: red;"&gt;&lt;b&gt;unidirectional&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: red;"&gt;&lt;b&gt;bidirectional&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: red;"&gt;&lt;b&gt;ordered (lists)&lt;/b&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;span style="color: red;"&gt;&lt;b&gt;behaviour centric&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;span style="color: red;"&gt;&lt;b&gt;data centric&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: red;"&gt;behaviour based partitioning&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: red;"&gt;relation based partitioning&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: green;"&gt;methods&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: green;"&gt;stored procedures&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: #ff8000;"&gt;tight behaviour-data coupling&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: #ff8000;"&gt;triggers, constraints&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: red;"&gt;&lt;b&gt;data hiding, encapsulation &lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td valign="top" width="307"&gt;&lt;br /&gt;&lt;/td&gt;        &lt;td valign="top" width="417"&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;span style="color: red;"&gt;Permissions&lt;/span&gt; &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3929252173504639656?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3929252173504639656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/object-relational-gap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3929252173504639656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3929252173504639656'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/object-relational-gap.html' title='The Object Relational Gap (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2343792039306843824</id><published>2011-07-20T13:37:00.000+02:00</published><updated>2011-07-20T13:37:37.934+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='java 7'/><category scheme='http://www.blogger.com/atom/ns#' term='coin'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='JUnit'/><title type='text'>NetBeans 7 new features (updated)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TQKh3DYcYcI/AAAAAAAABC8/6e8c8yVeWIY/s1600/Starting+NetBeans+IDE_2010-12-10_22-54-18.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="143" src="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TQKh3DYcYcI/AAAAAAAABC8/6e8c8yVeWIY/s320/Starting+NetBeans+IDE_2010-12-10_22-54-18.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;NetBeans 7 is approved for release now. Here's a list of &lt;a href="http://netbeans.org/community/releases/70/"&gt;new features&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Remote glassfish interaction &lt;/li&gt;&lt;li&gt;&lt;a href="https://jdk7.dev.java.net/"&gt;Java 7&lt;/a&gt; support&lt;/li&gt;&lt;ul&gt;&lt;li&gt;string switch&lt;/li&gt;&lt;li&gt; enhanced try/catch&lt;/li&gt;&lt;ul&gt;&lt;li&gt;multicatch&lt;/li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; catch(IOException | FileNotFoundException ex){...} &lt;/span&gt;&lt;li&gt;java.lang.AutoCloseable resources&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;literal enhancements: &lt;/li&gt;&lt;ul&gt;&lt;li&gt; binary numbers&lt;/li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; int localhost=0b1111111000000000000000000000001; &lt;/span&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt; underscores (for readability)&lt;/li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;double million&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;=2_000_000.00; &lt;/span&gt;&lt;/ul&gt;&lt;li&gt;static java.util.Objects#equals/hashCode/hash utilities&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Maven 3 support &lt;/li&gt;&lt;li&gt;HTML 5 support&lt;/li&gt;&lt;li&gt;JSON formatter&lt;/li&gt;&lt;li&gt;Git natively integrated &lt;/li&gt;&lt;li&gt;JUnit is now an unbundled plugin (Oracle legal had problems with the old CPL license)&lt;/li&gt;&lt;li&gt;easy JPA 2 metamodel generation&lt;/li&gt;&lt;/ul&gt;The netbeans 7.0/Glassfish 3.1 combination is still a bit flaky though.&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2343792039306843824?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2343792039306843824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/12/netbeans-7-new-features.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2343792039306843824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2343792039306843824'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/12/netbeans-7-new-features.html' title='NetBeans 7 new features (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ux7bLAPxr1s/TQKh3DYcYcI/AAAAAAAABC8/6e8c8yVeWIY/s72-c/Starting+NetBeans+IDE_2010-12-10_22-54-18.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4499932379319941284</id><published>2011-07-15T18:52:00.000+02:00</published><updated>2011-09-19T13:50:26.794+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>NetBeans, Hibernate and JPA2</title><content type='html'>When you create a new persistence unit in a standalone NetBeans project, it only proposes Hibernate with JPA1.&lt;br /&gt;This is because NetBeans bundles an old Hibernate release.&lt;br /&gt;To work with Hibernate/JPA2, download a recent Hibernate (&amp;gt;= 3.5) and SLF4J (same version as the one used in your hibernate download).&lt;br /&gt;Add a new persistence library with these jars from the hibernate installation directory:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; hibernate3.jar&lt;/li&gt;&lt;li&gt;jars from lib/jpa folder&lt;/li&gt;&lt;li&gt; jars from lib/required folder&lt;/li&gt;&lt;li&gt;an SLF4J implementation library from the SLF4J download, e.g. slf4j-jdk14-1.6.1.jar&lt;/li&gt;&lt;ul&gt;&lt;li&gt;if you are using ehcache there is no need to download SLF4J separately. It bundles&amp;nbsp; slf4j-jdk14-1.6.1.jar.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;NetBeans (&amp;gt;= 6.9) will recognize the library as a Hibernate/JPA2 provider.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4499932379319941284?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4499932379319941284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/07/netbeans-hibernate-and-jpa2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4499932379319941284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4499932379319941284'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/07/netbeans-hibernate-and-jpa2.html' title='NetBeans, Hibernate and JPA2'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5525178481975825765</id><published>2011-07-07T13:09:00.006+02:00</published><updated>2011-07-07T18:04:43.434+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unified process'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='cmmi'/><title type='text'>Mapping the Unified Process to CMMI</title><content type='html'>The (Rational) Unified Process (RUP or UP) is an iterative software development process. It was originally developed by the creators of UML at Rational Rose (now IBM).&lt;br /&gt;&lt;br /&gt;CMMI (Capability Maturity Model and Integration) is a model that identifies the characteristics for a good software process within an organisation and defines metrics to be used to measure and improve the maturity of this process. CMMI is developed and governed by the &lt;a href="http://www.sei.cmu.edu/"&gt;SEI at Carnegie Mellon University&lt;/a&gt;. CMMI identifies 5 maturity levels:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Initial&lt;/li&gt;&lt;li&gt;Managed (reactive process)&lt;/li&gt;&lt;li&gt;Defined (proactive process)&lt;/li&gt;&lt;li&gt;Quantitatively managed (measured &amp;amp; controlled)&lt;/li&gt;&lt;li&gt;Optimizing&lt;/li&gt;&lt;/ol&gt;The table below how well the Unified Process implements the CMMI constellation for Development (CMMI-DEV). The table below groups the CMMI-DEV process areas by category. The higher the maturity level associated with a process area, the darker blue the background color is. For each process area we show how well UP covers this project area, using a crude &lt;span style="background-color: #b6d7a8;"&gt;High&lt;/span&gt;-&lt;span style="background-color: #ffe599;"&gt;Medium&lt;/span&gt;-&lt;span style="background-color: #ea9999;"&gt;Low&lt;/span&gt; classification. The table is based on &lt;a href="http://www.sei.cmu.edu/library/assets/rup.pdf"&gt;data from SEI&lt;/a&gt; and &lt;a href="http://www.ibm.com/developerworks/rational/library/oct07/uttangi_rizwan/index.html"&gt;from IBM&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="width: 642px;"&gt;&lt;colgroup&gt;&lt;col style="mso-width-alt: 3657; mso-width-source: userset; width: 75pt;" width="100"&gt;&lt;/col&gt;  &lt;col style="mso-width-alt: 1645; mso-width-source: userset; width: 34pt;" width="45"&gt;&lt;/col&gt;  &lt;col style="mso-width-alt: 6619; mso-width-source: userset; width: 136pt;" width="181"&gt;&lt;/col&gt;  &lt;col style="mso-width-alt: 2340; mso-width-source: userset; width: 48pt;" width="64"&gt;&lt;/col&gt;  &lt;col style="mso-width-alt: 2304; mso-width-source: userset; width: 47pt;" width="63"&gt;&lt;/col&gt;  &lt;col style="mso-width-alt: 6912; mso-width-source: userset; width: 142pt;" width="189"&gt;&lt;/col&gt;  &lt;/colgroup&gt;&lt;tbody&gt;&lt;tr height="41" style="height: 30.75pt;"&gt;   &lt;td class="xl68" height="41" style="height: 30.75pt; width: 75pt;" width="100"&gt;&lt;b&gt;CMMI   Category&lt;/b&gt;&lt;/td&gt;   &lt;td class="xl107" colspan="2" style="mso-ignore: colspan; width: 170pt;" width="226"&gt;&lt;b&gt;Process   Area&lt;/b&gt;&lt;/td&gt;   &lt;td class="xl108" style="width: 48pt;" width="64"&gt;&lt;b&gt;Maturity level&lt;/b&gt;&lt;/td&gt;   &lt;td class="xl109" style="width: 47pt;" width="63"&gt;&lt;b&gt;UP support&lt;/b&gt;&lt;/td&gt;   &lt;td class="xl110" style="width: 142pt;" width="189"&gt;&lt;b&gt;UP remarks&lt;/b&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl70" height="40" style="background-color: #d0e0e3; height: 30pt; width: 75pt;" width="100"&gt;&lt;b&gt;Project   Management&lt;/b&gt;&lt;/td&gt;   &lt;td class="xl71" style="background-color: #d0e0e3; border-top: medium none;"&gt;PP&lt;/td&gt;   &lt;td class="xl72" style="background-color: #d0e0e3; border-top: medium none; width: 136pt;" width="181"&gt;Project Planning&lt;/td&gt;   &lt;td class="xl73" style="background-color: #d0e0e3; border-top: medium none;"&gt;2&lt;/td&gt;   &lt;td class="xl101" style="background-color: #b6d7a8; border-top: medium none;"&gt;High&lt;/td&gt;   &lt;td class="xl74" style="border-top: none; width: 142pt;" width="189"&gt;only software   aspects&lt;br /&gt;no data management&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl75" height="40" style="background-color: #d0e0e3; height: 30pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl76" style="background-color: #d0e0e3;"&gt;PMC&lt;/td&gt;   &lt;td class="xl77" style="background-color: #d0e0e3; width: 136pt;" width="181"&gt;Project Monitoring and Control&lt;/td&gt;   &lt;td class="xl78" style="background-color: #d0e0e3;"&gt;2&lt;/td&gt;   &lt;td class="xl101" style="background-color: #b6d7a8; border-top: medium none;"&gt;High&lt;/td&gt;  &lt;td class="xl79"&gt;no data management&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl75" height="40" style="background-color: #d0e0e3; height: 30pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl76" style="background-color: #d0e0e3;"&gt;SAM&lt;/td&gt;   &lt;td class="xl77" style="background-color: #d0e0e3; width: 136pt;" width="181"&gt;Supplier Agreement Management&lt;/td&gt;   &lt;td class="xl78" style="background-color: #d0e0e3;"&gt;2&lt;/td&gt;   &lt;td class="xl103" style="background-color: #ea9999;"&gt;Low&lt;/td&gt;   &lt;td class="xl79"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="60" style="height: 45.0pt;"&gt;   &lt;td class="xl80" height="60" style="background-color: #a2c4c9; height: 45pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;IPM&lt;/td&gt;   &lt;td class="xl111" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Integrated Project Management&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl104" style="background-color: #ffe599;"&gt;Medium&lt;/td&gt;   &lt;td class="xl83" style="width: 142pt;" width="189"&gt;weak integration of plans and   managing dependencies between them&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="20" style="height: 15.0pt;"&gt;   &lt;td class="xl80" height="20" style="background-color: #a2c4c9; height: 15pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl84" style="background-color: #a2c4c9;"&gt;RSKM&lt;/td&gt;   &lt;td class="xl111" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Risk Management&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl102" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl79"&gt;should add risk parameters&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="41" style="height: 30.75pt;"&gt;   &lt;td class="xl85" height="41" style="background-color: #76a5af; height: 30.75pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl86" style="background-color: #76a5af;"&gt;QPM&lt;/td&gt;   &lt;td class="xl87" style="background-color: #76a5af; width: 136pt;" width="181"&gt;Qunatitiative Project Management&lt;/td&gt;   &lt;td class="xl88" style="background-color: #76a5af;"&gt;4&lt;/td&gt;   &lt;td class="xl105" style="background-color: #ea9999;"&gt;Low&lt;/td&gt;   &lt;td class="xl100" style="width: 142pt;" width="189"&gt;no process   decomposition&lt;br /&gt;no statistical analysis&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl70" height="40" style="background-color: #d0e0e3; border-top: medium none; height: 30pt; width: 75pt;" width="100"&gt;&lt;b&gt;Engineering&lt;/b&gt;&lt;/td&gt;   &lt;td class="xl71" style="background-color: #d0e0e3; border-top: medium none;"&gt;REQM&lt;/td&gt;   &lt;td class="xl72" style="background-color: #d0e0e3; border-top: medium none; width: 136pt;" width="181"&gt;Requirements   Management&lt;/td&gt;   &lt;td class="xl73" style="background-color: #d0e0e3; border-top: medium none;"&gt;2&lt;/td&gt;   &lt;td class="xl101" style="background-color: #b6d7a8; border-top: medium none;"&gt;High&lt;/td&gt;   &lt;td class="xl90" style="border-top: none;"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl80" height="40" style="background-color: #a2c4c9; height: 30pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;RD&lt;/td&gt;   &lt;td class="xl91" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Requirements Development&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl102" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl83" style="width: 142pt;" width="189"&gt;&amp;nbsp;should add allocating component requirements&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl80" height="40" style="background-color: #a2c4c9; height: 30pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;TS&lt;/td&gt;   &lt;td class="xl91" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Technical Solution&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl102" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl83" style="width: 142pt;" width="189"&gt;no alternative solutions&lt;br /&gt;no reuse/build/buy analysis&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="20" style="height: 15.0pt;"&gt;   &lt;td class="xl80" height="20" style="background-color: #a2c4c9; height: 15pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;PI&lt;/td&gt;   &lt;td class="xl91" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Product Integration&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl102" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl79"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl80" height="40" style="background-color: #a2c4c9; height: 30pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;VER&lt;/td&gt;   &lt;td class="xl91" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Verification&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl102" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl83" style="width: 142pt;" width="189"&gt;should add recording mechanism   for reviews&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="21" style="height: 15.75pt;"&gt;   &lt;td class="xl80" height="21" style="background-color: #a2c4c9; height: 15.75pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;VAL&lt;/td&gt;   &lt;td class="xl91" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Validation&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl102" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl79"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="20" style="height: 15.0pt;"&gt;   &lt;td class="xl70" height="20" style="background-color: #d0e0e3; height: 15pt; width: 75pt;" width="100"&gt;&lt;b&gt;Support&lt;/b&gt;&lt;/td&gt;   &lt;td class="xl71" style="background-color: #d0e0e3;"&gt;CM&lt;/td&gt;   &lt;td class="xl72" style="background-color: #d0e0e3; width: 136pt;" width="181"&gt;Configuration Management&lt;/td&gt;   &lt;td class="xl73" style="background-color: #d0e0e3;"&gt;2&lt;/td&gt;   &lt;td class="xl101" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl90"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl75" height="40" style="background-color: #d0e0e3; height: 30pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl76" style="background-color: #d0e0e3;"&gt;PPQA&lt;/td&gt;   &lt;td class="xl77" style="background-color: #d0e0e3; width: 136pt;" width="181"&gt;Process and Product Quality   Assurance&lt;/td&gt;   &lt;td class="xl78" style="background-color: #d0e0e3;"&gt;2&lt;/td&gt;   &lt;td class="xl102" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl79"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl75" height="40" style="background-color: #d0e0e3; height: 30pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl76" style="background-color: #d0e0e3;"&gt;MA&lt;/td&gt;   &lt;td class="xl77" style="background-color: #d0e0e3; width: 136pt;" width="181"&gt;Measurement and Analysis&lt;/td&gt;   &lt;td class="xl78" style="background-color: #d0e0e3;"&gt;2&lt;/td&gt;   &lt;td class="xl102" style="background-color: #b6d7a8;"&gt;High&lt;/td&gt;   &lt;td class="xl83" style="width: 142pt;" width="189"&gt;should add quantitative metrics   and analysis&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl80" height="40" style="background-color: #a2c4c9; height: 30pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;DAR&lt;/td&gt;   &lt;td class="xl111" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Decision Analysis and   Resolution&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl103" style="background-color: #ea9999;"&gt;Low&lt;/td&gt;   &lt;td class="xl79"&gt;&lt;br /&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="41" style="height: 30.75pt;"&gt;   &lt;td class="xl92" height="41" style="background-color: #45818e; height: 30.75pt; width: 75pt;" width="100"&gt;&lt;br /&gt;&lt;/td&gt;   &lt;td class="xl93" style="background-color: #45818e;"&gt;CAR&lt;/td&gt;   &lt;td class="xl112" style="background-color: #45818e; width: 136pt;" width="181"&gt;Causal Analysis and Resolution&lt;/td&gt;   &lt;td class="xl94" style="background-color: #45818e;"&gt;5&lt;/td&gt;   &lt;td class="xl105" style="background-color: #ea9999;"&gt;Low&lt;/td&gt;   &lt;td class="xl100" style="width: 142pt;" width="189"&gt;support for actions on defects   and evaluation&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl95" height="40" style="background-color: #a2c4c9; border-top: medium none; height: 30pt; width: 75pt;" width="100"&gt;&lt;b&gt;Process Management&lt;/b&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;OPF&lt;/td&gt;   &lt;td class="xl111" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Organizational Process Focus&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl106" style="background-color: #ea9999; border-top: medium none;"&gt;Low&lt;/td&gt;   &lt;td class="xl74" style="border-top: none; width: 142pt;" width="189"&gt;basic support&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl80" height="40" style="background-color: #a2c4c9; height: 30pt; width: 75pt;" width="100"&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;OPD&lt;/td&gt;   &lt;td class="xl91" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Organisational Process Defintion&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl104" style="background-color: #ffe599;"&gt;Medium&lt;/td&gt;   &lt;td class="xl79"&gt;basic support&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="20" style="height: 15.0pt;"&gt;   &lt;td class="xl80" height="20" style="background-color: #a2c4c9; height: 15pt; width: 75pt;" width="100"&gt;&lt;/td&gt;   &lt;td class="xl81" style="background-color: #a2c4c9;"&gt;OT&lt;/td&gt;   &lt;td class="xl111" style="background-color: #a2c4c9; width: 136pt;" width="181"&gt;Organizational Training&lt;/td&gt;   &lt;td class="xl82" style="background-color: #a2c4c9;"&gt;3&lt;/td&gt;   &lt;td class="xl103" style="background-color: #ea9999;"&gt;Low&lt;/td&gt;   &lt;td class="xl79"&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="40" style="height: 30.0pt;"&gt;   &lt;td class="xl96" height="40" style="background-color: #76a5af; height: 30pt; width: 75pt;" width="100"&gt;&lt;/td&gt;   &lt;td class="xl97" style="background-color: #76a5af;"&gt;OPP&lt;/td&gt;   &lt;td class="xl98" style="background-color: #76a5af; width: 136pt;" width="181"&gt;Oprganisational Process   Performance&lt;/td&gt;   &lt;td class="xl99" style="background-color: #76a5af;"&gt;4&lt;/td&gt;   &lt;td class="xl103" style="background-color: #ea9999;"&gt;Low&lt;/td&gt;   &lt;td class="xl79"&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr height="41" style="height: 30.75pt;"&gt;   &lt;td class="xl92" height="41" style="background-color: #45818e; height: 30.75pt; width: 75pt;" width="100"&gt;&lt;/td&gt;   &lt;td class="xl93" style="background-color: #45818e;"&gt;OPM&lt;/td&gt;   &lt;td class="xl112" style="background-color: #45818e; width: 136pt;" width="181"&gt;Organizational Performance   Management&lt;/td&gt;   &lt;td class="xl94" style="background-color: #45818e;"&gt;5&lt;/td&gt;   &lt;td class="xl105" style="background-color: #ea9999;"&gt;Low&lt;/td&gt;   &lt;td class="xl89"&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5525178481975825765?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5525178481975825765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/07/mapping-unified-process-to-cmmi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5525178481975825765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5525178481975825765'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/07/mapping-unified-process-to-cmmi.html' title='Mapping the Unified Process to CMMI'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7375293751690990491</id><published>2011-07-04T14:52:00.000+02:00</published><updated>2011-07-04T14:52:03.978+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wikileaks'/><title type='text'>Wikileaks sues credit card companies</title><content type='html'>&lt;a href="http://rijkswatch.blogspot.com/2010/12/wikileaks-free-speech-to-test.html"&gt;We talked earlier&lt;/a&gt; about payment clearing houses blocking payments to Wikileaks.&lt;br /&gt;Wikileaks and their ISP are now &lt;a href="http://www.datacell.com/news/2011-07-02/legal_action_by_datacell_and_wikileaks_against_visa_and_mastercard"&gt;suing Visa and MasterCard&lt;/a&gt; in Denmark for this action.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-7375293751690990491?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7375293751690990491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/07/wikileaks-sues-credit-card-companies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7375293751690990491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7375293751690990491'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/07/wikileaks-sues-credit-card-companies.html' title='Wikileaks sues credit card companies'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8528021926280988388</id><published>2011-06-19T09:38:00.000+02:00</published><updated>2011-06-19T09:38:03.426+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><title type='text'>FJ-310, lab 4, Exercise 2, task 2, step 7</title><content type='html'>&lt;ol&gt;&lt;li&gt;Retrieve the "customerIdentity" request parameter&lt;/li&gt;&lt;li&gt;Use the identity to look up the customer in the model and save it to the "customer" attribute&lt;/li&gt;&lt;li&gt;Use the identity to look up the customer shares in the model and save them to the "shares" attribute&lt;/li&gt;&lt;li&gt;If there is an exception, save its message to the&amp;nbsp; "message" attribute &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8528021926280988388?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8528021926280988388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/06/fj-310-lab-4-exercise-2-task-2-step-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8528021926280988388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8528021926280988388'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/06/fj-310-lab-4-exercise-2-task-2-step-7.html' title='FJ-310, lab 4, Exercise 2, task 2, step 7'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-259533472249863928</id><published>2011-06-17T12:48:00.000+02:00</published><updated>2011-06-17T12:48:08.158+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DWS-4050-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><category scheme='http://www.blogger.com/atom/ns#' term='webservices'/><title type='text'>WSDL 1.1 data model (updated)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-KH9j4dgfACM/Tfswt_xLXOI/AAAAAAAABEQ/CBAHgEkRb4o/s1600/wsdl_class.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-KH9j4dgfACM/Tfswt_xLXOI/AAAAAAAABEQ/CBAHgEkRb4o/s1600/wsdl_class.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-W8zfnY_NWak/TeeIwT1LQII/AAAAAAAABDw/7paXebjEibc/s1600/wsdl-taxonomy%255B1%255D.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/-z1RYICwYekE/TeeI8T_UtSI/AAAAAAAABD0/u7rqZoqr9No/s1600/wsdl-links%255B1%255D.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-259533472249863928?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/259533472249863928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/06/wsdl-11-data-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/259533472249863928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/259533472249863928'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/06/wsdl-11-data-model.html' title='WSDL 1.1 data model (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-KH9j4dgfACM/Tfswt_xLXOI/AAAAAAAABEQ/CBAHgEkRb4o/s72-c/wsdl_class.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8727497892910505362</id><published>2011-06-16T12:03:00.003+02:00</published><updated>2011-06-17T07:56:29.945+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SII'/><category scheme='http://www.blogger.com/atom/ns#' term='uniway'/><title type='text'>Our new logo</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.uniway.be/Uniway_joins_SII.aspx" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="137" src="http://4.bp.blogspot.com/-b5Qy_jzSoVE/TfnUWIE3N9I/AAAAAAAABEI/2yNxEezJ7Ic/s200/iis.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;(thanks to Olivier)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8727497892910505362?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8727497892910505362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/06/our-new-logo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8727497892910505362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8727497892910505362'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/06/our-new-logo.html' title='Our new logo'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-b5Qy_jzSoVE/TfnUWIE3N9I/AAAAAAAABEI/2yNxEezJ7Ic/s72-c/iis.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2175222240473318051</id><published>2011-06-04T10:13:00.005+02:00</published><updated>2011-06-17T08:04:51.258+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DWS-4050-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP UI'/><category scheme='http://www.blogger.com/atom/ns#' term='JAXB'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='webservices'/><title type='text'>Web services/REST resources</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://cxf.apache.org/resources-and-articles.html"&gt;Apache CXF resources&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.innoq.com/soa/ws-standards/poster/innoQ%20WS-Standards%20Poster%202007-02.pdf"&gt;Webservices standards overview&lt;/a&gt; &lt;/li&gt;&lt;li&gt;SOAP UI beans and testing tool&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Netbeans and metro are fine, but this tool has got a few nice extra's&lt;/li&gt;&lt;li&gt;Pub for the Pro version is a bit disturbing&lt;/li&gt;&lt;li&gt;I tried the Netbeans plugin in Netbeans 7, but got an error when running it ('testrunner.bat' is not recognized as an internal or&lt;br /&gt;external command.).  Probably not a big deal, but I did not bother investigating and went for the desktop version which works fine.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.soapui.org/Getting-Started/your-first-soapui-project.html"&gt;Here's a little howto&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://jaxb.java.net/tutorial/index.html"&gt;JAXB tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-us/firefox/addon/restclient/"&gt;Firefox RESTClient addon&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://java.boot.by/ocewsd6-guide/"&gt;Oracle Certified Expert, Java Platform, Enterprise Edition 6 Web Services Developer Study Guide&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2175222240473318051?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2175222240473318051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/06/web-services-resources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2175222240473318051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2175222240473318051'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/06/web-services-resources.html' title='Web services/REST resources'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2804939811362525688</id><published>2011-05-16T12:44:00.000+02:00</published><updated>2011-05-21T12:51:56.441+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='civilization'/><category scheme='http://www.blogger.com/atom/ns#' term='civworld'/><title type='text'>Finally, a reason to use facebook</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://pc.ign.com/articles/116/1167265p1.html" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="366" src="http://2.bp.blogspot.com/-e9WDqcLVXa4/Tcv3J-t0LLI/AAAAAAAABDo/_JcZKrOic8U/s400/civworld-20110510095653798-000%255B1%255D.jpg" width="400" /&gt;&lt;span id="goog_1489184461"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span id="goog_1489184462"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2804939811362525688?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2804939811362525688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/05/finally-reason-to-use-facebook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2804939811362525688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2804939811362525688'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/05/finally-reason-to-use-facebook.html' title='Finally, a reason to use facebook'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-e9WDqcLVXa4/Tcv3J-t0LLI/AAAAAAAABDo/_JcZKrOic8U/s72-c/civworld-20110510095653798-000%255B1%255D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2310736585454699643</id><published>2011-05-14T12:44:00.000+02:00</published><updated>2011-10-28T09:27:06.836+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='law'/><category scheme='http://www.blogger.com/atom/ns#' term='censorship'/><category scheme='http://www.blogger.com/atom/ns#' term='protect IP'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='coica'/><title type='text'>PROTECT IP: new US website blocking bill</title><content type='html'>The PROTECT IP act, a new US law proposal, will greatly extend last year's &lt;a href="http://en.wikipedia.org/wiki/Combating_Online_Infringement_and_Counterfeits_Act"&gt;COICA &lt;/a&gt;internet censorship proposal:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;PROTECT IP is targeted at &lt;i&gt;infringement of rights, &lt;/i&gt;so it is targeted at distribution of copyrighted material and counterfeited articles.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;As such there does not seem to be a problem with that, but it remains to be seen how easily this can be stretched. It might be sufficient to find one non compliant item on a site to take action against the entire site. In the past single clips have caused actions against the entire YouTube site.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;PROTECT IP will no longer try to seize domain names, instead it will  target intermediate, servicing sites. &lt;/li&gt;&lt;ul&gt;&lt;li&gt;This makes it easier to target sites outside the US. &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Plaintiffs can by simple court order, take direct against revenue sources for these sites (payment clearing and advertisers).&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The site does not have to be notified to be able to defend itself.&lt;/li&gt;&lt;li&gt;The site is notified when action is taken against them starts, &lt;i&gt;if they have an address in the US.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;There is a procedure to fight the order &lt;i&gt;afterwards&lt;/i&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;If plaintiff completes a procedure at the Department Of Justice that declares that a site is infringing rights, it can also order the site to be removed from search engine results and ISP hosting.&lt;/li&gt;&lt;ul&gt;&lt;li&gt; This is a tactic that is  copied from the Great Chinese Firewall.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; PROTECT IP encourages intermediate sites to do &lt;i&gt;self censorship&lt;/i&gt;. If Google or Visa stop doing business with a site because they think it is not kosher, they are protected by law&lt;/li&gt;&lt;ul&gt;&lt;li&gt;We have seen such actions by &lt;a href="http://rijkswatch.blogspot.com/2010/12/wikileaks-free-speech-to-test.html"&gt;payment providers against WikiLeaks&lt;/a&gt;, without any legal order to do so.&lt;/li&gt;&lt;li&gt;Arbitrary business boycotts will now be legal.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;a href="http://www.dontcensorthenet.com/full-text-of-the-protect-ip-act-of-2011"&gt;Full text and petition against the act.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2310736585454699643?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2310736585454699643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/05/protect-ip-new-us-internet-site.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2310736585454699643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2310736585454699643'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/05/protect-ip-new-us-internet-site.html' title='PROTECT IP: new US website blocking bill'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4913303826385033011</id><published>2011-05-11T08:53:00.002+02:00</published><updated>2011-05-11T12:31:32.863+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='WebGL'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML 5'/><title type='text'>US CERT recommends disabling WebGL</title><content type='html'>HTML 5 is sometimes seen as a flash killer, because of the new &amp;lt;canvas&amp;gt; tag. &amp;lt;canvas&amp;gt; can be used to draw graphics via scripting (usually JavaScript).&lt;br /&gt;Firefox 4 and Chrome 9 support 3D graphics in&amp;nbsp; &amp;lt;canvas&amp;gt; through the WebGL API. WebGL is developed by the non-profit &lt;a href="http://www.khronos.org/webgl/"&gt;Khronos consortium&lt;/a&gt;, basically consisting of everybody but Microsoft.&lt;br /&gt;WebGL accesses your hardware driver, giving you hardware acceleration, but also exposing you to a set of &lt;a href="http://www.contextis.com/resources/blog/webgl/"&gt;vulnerabilities&lt;/a&gt;. US CERT now recommends disabling the feature.&lt;br /&gt;To disable WebGL in Firefox, change the preferences:&lt;br /&gt;&lt;ol&gt;&lt;li&gt; navigating to the special about:config URL.&lt;/li&gt;&lt;li&gt;promise to be careful on the warning page&lt;/li&gt;&lt;li&gt; type webgl in the filter bar&lt;/li&gt;&lt;li&gt;toggle the webgl:disabled setting to true&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://4.bp.blogspot.com/-9VcOzOZ2TmQ/Tcoxl96p8OI/AAAAAAAABDk/ol9xdKSk0g8/s1600/aboutconfig+-+Mozilla+Firefox_2011-05-11_07-43-37.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://4.bp.blogspot.com/-9VcOzOZ2TmQ/Tcoxl96p8OI/AAAAAAAABDk/ol9xdKSk0g8/s640/aboutconfig+-+Mozilla+Firefox_2011-05-11_07-43-37.png" width="640" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4913303826385033011?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4913303826385033011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/05/us-cert-recommends-disabling-webgl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4913303826385033011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4913303826385033011'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/05/us-cert-recommends-disabling-webgl.html' title='US CERT recommends disabling WebGL'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-9VcOzOZ2TmQ/Tcoxl96p8OI/AAAAAAAABDk/ol9xdKSk0g8/s72-c/aboutconfig+-+Mozilla+Firefox_2011-05-11_07-43-37.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-1250012573073734667</id><published>2011-05-06T10:27:00.006+02:00</published><updated>2011-05-06T18:07:16.157+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='univa'/><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle grid engine'/><category scheme='http://www.blogger.com/atom/ns#' term='sun grid engine'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='open grid scheduler'/><title type='text'>Sun Grid Engine @ Oracle</title><content type='html'>Sun Grid Engine used to be available as an Open Source product.&lt;br /&gt;With the purchase of Sun by Oracle, the product will be called &lt;a href="http://www.oracle.com/technetwork/oem/grid-engine-166852.html"&gt;Oracle Grid Engine&lt;/a&gt;.&lt;br /&gt;Future Oracle Grid Engine versions will no longer be open source.The current version of Oracle Grid Engine is 6.2 update 7.&lt;br /&gt;The Open Source version at the time of the transition (6.2 update 5) was moved to SourceForge and re-branded to &lt;a href="http://gridscheduler.sourceforge.net/"&gt;Open Grid Scheduler&lt;/a&gt;. There is limited activity and progress on the open source project.&lt;br /&gt;Univa provides &lt;a href="http://www.theregister.co.uk/2011/01/18/univa_forks_oracle_grid_engine/"&gt;commercial support&lt;/a&gt; for the open source product at $100 yearly per core. Univa also sells a product with closed source extensions as &lt;a href="http://www.univa.com/products/grid-engine.php"&gt;Univa Grid Engine&lt;/a&gt; version 8.&lt;br /&gt;&lt;br /&gt;Oracle recently reversed its policy of commercialising Sun open source projects for some products that successfully forked:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Oracle stopped the &lt;a href="http://rijkswatch.blogspot.com/2010/09/libreoffice-ooo-without-oracle.html"&gt;commercial version of OpenOffice&lt;/a&gt; (but AFAIK the ODF 1.2 plugin for MS Office is still not free)&lt;/li&gt;&lt;li&gt;Oracle proposed to moved &lt;a href="http://hudson-ci.org/docs/news.html#eclipse"&gt;control of Hudson to the Eclipse foundation&lt;/a&gt;, after the fork of &lt;a href="http://jenkins-ci.org/"&gt;Jenkins&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;I doubt that a similar move will happen for Grid Engine&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-1250012573073734667?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/1250012573073734667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/05/sun-grid-engine-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1250012573073734667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1250012573073734667'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/05/sun-grid-engine-oracle.html' title='Sun Grid Engine @ Oracle'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5448362772102762804</id><published>2011-04-25T23:18:00.003+02:00</published><updated>2011-06-17T08:01:35.482+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-351-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>JPA links (updated)</title><content type='html'>&lt;a href="http://www.eclipse.org/eclipselink/downloads/ri.php"&gt;Reference implementation.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Official documentation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.jcp.org/en/jsr/detail?id=317"&gt;JSR 317 JPA 2 specification&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.oracle.com/javaee/6/api/javax/persistence/package-summary.html"&gt;API&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://download.oracle.com/javaee/6/tutorial/doc/bnbpy.html"&gt;Java EE6 tutorial&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Others: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;&lt;a href="http://en.wikibooks.org/wiki/Java_Persistence"&gt;Wikibook&lt;/a&gt; (incomplete)&lt;/li&gt;&lt;/ul&gt;Providers often have good JPA documentation as well. Might include extensions (and JDO stuff) though:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://openjpa.apache.org/builds/latest/docs/manual/manual.html"&gt;Open JPA&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/eclipselink/jpa.php"&gt;EclipseLink JPA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.datanucleus.org/products/accessplatform/jpa"&gt;DataNucleus&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.objectdb.com/java/jpa"&gt;ObjectDB&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Some tips:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jdevelopment.nl/java/put-named-queries-jpa/"&gt;Where to define JPQL queries&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://weblogs.java.net/blog/archive/2009/08/21/jpa-caching"&gt;Caching &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5448362772102762804?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5448362772102762804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2008/12/jpa-provider-doc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5448362772102762804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5448362772102762804'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2008/12/jpa-provider-doc.html' title='JPA links (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8913183626004588785</id><published>2011-04-14T21:05:00.001+02:00</published><updated>2011-06-17T08:03:35.264+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='jsr315'/><category scheme='http://www.blogger.com/atom/ns#' term='servlet'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><category scheme='http://www.blogger.com/atom/ns#' term='servlet 3'/><title type='text'>Servlet 3 (JSR 315) containers (updated)</title><content type='html'>&amp;nbsp;Servlet v3 support in different web application containers + current support state&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Glassfish 3+ (12/2009)&lt;/li&gt;&lt;li&gt;Tomcat 7 (1/2011)&lt;/li&gt;&lt;li&gt;Jetty 8 (milestone)&lt;/li&gt;&lt;li&gt;JBoss 6 (12/2010)&lt;/li&gt;&lt;li&gt;IBM WebSphere v8 (beta)&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/760377872792883482-8913183626004588785?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8913183626004588785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/servlet-3-jsr-315-containers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8913183626004588785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8913183626004588785'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/servlet-3-jsr-315-containers.html' title='Servlet 3 (JSR 315) containers (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2128305142885215427</id><published>2011-04-06T11:14:00.004+02:00</published><updated>2011-04-29T13:54:02.435+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Google App Engine'/><category scheme='http://www.blogger.com/atom/ns#' term='objectify'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>Google App Engine: JPA or Objectify?</title><content type='html'>&lt;blockquote&gt;In practice, the biggest difference after abandoning JDO/JPA is that you will stop screaming loudly at your computer, annoying your coworkers.&lt;/blockquote&gt;&lt;div style="text-align: center;"&gt;Jeff Schnitzer &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="https://groups.google.com/forum/#%21topic/google-appengine-java/ssrSc198nPM/discussion"&gt;Full post&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2128305142885215427?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2128305142885215427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/04/google-app-engine-jpa-or-objectify.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2128305142885215427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2128305142885215427'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/04/google-app-engine-jpa-or-objectify.html' title='Google App Engine: JPA or Objectify?'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2232951294033554025</id><published>2011-03-25T11:31:00.002+01:00</published><updated>2011-03-25T11:34:24.845+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SA-300-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='ipv6'/><category scheme='http://www.blogger.com/atom/ns#' term='IPv4'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>IPv4 addresses more expensive than .com domains</title><content type='html'>Microsoft has bought more than half a million IPv4 addresses from the bankrupt Nortel Networks for 7 million dollar. At $11 per address, this is more expensive than a .com domain name. (although one can argue that it is not more expensive than a &lt;i&gt;good&lt;/i&gt; .com domain name).&lt;br /&gt;IPv4 free address space is depleted since February.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2232951294033554025?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2232951294033554025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/03/ipv4-adresses-more-expensive-than-com.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2232951294033554025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2232951294033554025'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/03/ipv4-adresses-more-expensive-than-com.html' title='IPv4 addresses more expensive than .com domains'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-385058447201492815</id><published>2011-03-22T21:29:00.002+01:00</published><updated>2011-03-22T22:15:27.175+01:00</updated><title type='text'></title><content type='html'>&lt;blockquote&gt;Most teams aren't teams at all but merely collections of individual relations with the boss. Each individual vying with the other for power, prestige and position&lt;/blockquote&gt;&lt;div style="text-align: center;"&gt;Douglas McGregor&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;The system being produced will tend to have a structure that mirrors the structure of the group that is producing it. One should take advantage of this fact and then deliberatly design the group structure so as to achieve the desired system structure.&lt;/div&gt;&lt;/blockquote&gt;Conway's law &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-385058447201492815?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/385058447201492815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/03/most-teams-arent-teams-at-all-but.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/385058447201492815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/385058447201492815'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/03/most-teams-arent-teams-at-all-but.html' title=''/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4670538518492612703</id><published>2011-03-18T10:07:00.000+01:00</published><updated>2011-03-18T10:07:36.336+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='london'/><category scheme='http://www.blogger.com/atom/ns#' term='e-commerce'/><category scheme='http://www.blogger.com/atom/ns#' term='vox teneo'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='olympics'/><title type='text'>Belgian ticket shop Olympic Games 2012 down</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-1BJ78t82mLU/TYMfalDu2ZI/AAAAAAAABDU/p4tZ8GlHeEY/s1600/call-to-action_jo%255B1%255D.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="182" src="https://lh4.googleusercontent.com/-1BJ78t82mLU/TYMfalDu2ZI/AAAAAAAABDU/p4tZ8GlHeEY/s200/call-to-action_jo%255B1%255D.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Belgian tickets for the London Olympic games are sold through an online webshop by &lt;a href="http://www.suseia.be/"&gt;Suseia&lt;/a&gt;.&lt;br /&gt;The sale started last tuesday night, but could not service the load. It was taken off line and restarted the next morning with doubled capacity. After the relaunch it still had problems and produced all kinds of errors in the sales process.&lt;br /&gt;The site is now taken offline for more than a &lt;b&gt;month &lt;/b&gt;to correct the problems.&lt;br /&gt;Suseia does not want to disclose the name of the company that built the shop.&lt;br /&gt;According to &lt;a href="http://twitter.com/jfhovinne/statuses/39049045037031424"&gt;a tweet&lt;/a&gt; by&lt;a href="http://twitter.com/jfhovinne/statuses/39049045037031424"&gt; JF Hovinne&lt;/a&gt;, a freelancer and working for &lt;a href="http://www.voxteneo.com/"&gt;Vox Teneo&lt;/a&gt;, the site was built with &lt;a href="http://drupal.org/"&gt;Drupal&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4670538518492612703?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4670538518492612703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/03/belgian-ticket-shop-olympic-games-2012.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4670538518492612703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4670538518492612703'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/03/belgian-ticket-shop-olympic-games-2012.html' title='Belgian ticket shop Olympic Games 2012 down'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-1BJ78t82mLU/TYMfalDu2ZI/AAAAAAAABDU/p4tZ8GlHeEY/s72-c/call-to-action_jo%255B1%255D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4612039833343015304</id><published>2011-02-28T20:43:00.002+01:00</published><updated>2011-02-28T20:49:48.119+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><category scheme='http://www.blogger.com/atom/ns#' term='site'/><title type='text'>Maven 2.1 site command trouble</title><content type='html'>The maven site command allows you to generate project documentation, as explained in an &lt;a href="http://rijkswatch.blogspot.com/2009/04/mvn-site.html"&gt;earlier post&lt;/a&gt; for maven 2.0.&lt;br /&gt;&lt;br /&gt;Running&amp;nbsp; mvn:site with Maven version 2.1, I had some problems however:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&amp;nbsp;site plugin version error&lt;br /&gt;&lt;blockquote&gt;SiteToolException: ArtifactNotFoundException: The skin does not exist: Un able to determine the release version&lt;/blockquote&gt;Apparently the skin plugin does not install automatically with a version, so force the issue, from the command line: &lt;blockquote&gt;$ svn checkout &lt;a href="http://svn.apache.org/repos/asf/maven/skins/trunk/"&gt;http://svn.apache.org/repos/asf/maven/skins/trunk/&lt;/a&gt;&lt;br /&gt;$ cd trunk &lt;br /&gt;$ mvn install -DupdateReleaseInfo=true &lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt; doxia ArrayIndexOutOfBoundsException&lt;br /&gt;&lt;blockquote&gt;[WARNING] Deprecated API called - not org.apache.&lt;b class="highlight"&gt;maven&lt;/b&gt;.doxia.sink.Sink &lt;br /&gt;instance and no SinkFactory available. Please update this &lt;b class="highlight"&gt;plugin&lt;/b&gt;. &lt;br /&gt;[INFO] ------------------------------------------------------------------------ &lt;br /&gt;[ERROR] FATAL ERROR &lt;br /&gt;[INFO] ------------------------------------------------------------------------ &lt;br /&gt;[INFO] &lt;b class="highlight"&gt;1&lt;/b&gt; &lt;br /&gt;[INFO] ------------------------------------------------------------------------ &lt;br /&gt;[DEBUG] Trace &lt;br /&gt;java.lang.ArrayIndexOutOfBoundsException: &lt;b class="highlight"&gt;1&lt;/b&gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; at org.apache.&lt;b class="highlight"&gt;maven&lt;/b&gt;.doxia.module.xhtml.XhtmlSink.tableCell(XhtmlSink.java:791)&amp;nbsp;&lt;/blockquote&gt;This error is caused by some maven/module version mismatches. &lt;br /&gt;To solve this second issue, add a &amp;lt;pluginManagement&amp;gt; element under the build element to set compatible versions. &amp;lt;pluginManagement&amp;gt; has a &amp;lt;plugins&amp;gt; child element. Do not confuse this with the &amp;lt;plugins&amp;gt; child of the &amp;lt;buid&amp;gt; element.  &lt;br /&gt;&lt;pre class="brush: xml"&gt;&amp;lt;project&amp;gt;&lt;br /&gt;   ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;build&amp;gt;&lt;br /&gt; &amp;nbsp;   &amp;lt;pluginManagement&amp;gt;&lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;plugins&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;plugin&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;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&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;lt;artifactId&amp;gt;maven-site-plugin&amp;lt;/artifactId&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;lt;version&amp;gt;2.1.1&amp;lt;/version&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;lt;dependencies&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;nbsp; &amp;lt;dependency&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;nbsp;&amp;nbsp;  &amp;lt;groupId&amp;gt;commons-httpclient&amp;lt;/groupId&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;nbsp;&amp;nbsp;  &amp;lt;artifactId&amp;gt;commons-httpclient&amp;lt;/artifactId&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;nbsp;&amp;nbsp;  &amp;lt;version&amp;gt;3.1&amp;lt;/version&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;nbsp;&amp;nbsp;  &amp;lt;exclusions&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;exclusion&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;groupId&amp;gt;commons-logging&amp;lt;/groupId&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;artifactId&amp;gt;commons-logging&amp;lt;/artifactId&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;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/exclusion&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;nbsp;&amp;nbsp; &amp;lt;/exclusions&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;/dependency&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;lt;/dependencies&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;/plugin&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/plugins&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/pluginManagement&amp;gt;&lt;br /&gt;&amp;nbsp;   ...&lt;br /&gt;&amp;nbsp;&amp;lt;/build&amp;gt;&lt;br /&gt;  ...&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&amp;nbsp;This modification takes care of the exception, and your documentation generation will succeed. The [WARNING]s above, however, will remain.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4612039833343015304?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4612039833343015304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/02/maven-21-site-command-problems.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4612039833343015304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4612039833343015304'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/02/maven-21-site-command-problems.html' title='Maven 2.1 site command trouble'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-6935591301959323631</id><published>2011-02-23T10:55:00.000+01:00</published><updated>2011-02-23T10:55:02.449+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SA-300-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><title type='text'>Networking bookmarks (updated)</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://book.dlf.ge/Addison%20Wesley/Addison%20Wesley%20-%20TCP-IP%20Illustrated%20-%20Volume%201.pdf"&gt;TCP/IP Illustrated Vol I (The protocols)&lt;/a&gt; / W Richard Stevens&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.faqs.org/rfcs/std/std-index.html"&gt;STD&lt;/a&gt;'s (Internet Protocal Standards)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ipv6actnow.org/info/statistics/"&gt;IPv6 adoption&lt;/a&gt; and &lt;a href="http://www.ipv6actnow.org/info/what-is-ipv4/"&gt;IPv4 depletion&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.internic.net/zones/named.root"&gt;DNS root servers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;NTP &lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.pool.ntp.org/zone/be"&gt;NTP server pool Belgium&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Blueprints&lt;/li&gt;&lt;ol&gt;&lt;li&gt; &lt;a href="http://www.sun.com/blueprints/0701/NTP.pdf"&gt;Intro&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sun.com/blueprints/0801/NTPpt2.pdf"&gt;Administration &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sun.com/blueprints/0901/NTPpt3.pdf"&gt;Trou&lt;u&gt;bleshooting&lt;/u&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-6935591301959323631?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/6935591301959323631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/networking-bookmarks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6935591301959323631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6935591301959323631'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/networking-bookmarks.html' title='Networking bookmarks (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8647478803870457960</id><published>2011-02-17T13:04:00.002+01:00</published><updated>2011-02-17T13:04:56.672+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>iPhone usage</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.blogcdn.com/www.tuaw.com/media/2011/01/appsvswebapps-full.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://www.blogcdn.com/www.tuaw.com/media/2011/01/appsvswebapps-full.jpg" width="416" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8647478803870457960?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8647478803870457960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/02/iphone-usage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8647478803870457960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8647478803870457960'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/02/iphone-usage.html' title='iPhone usage'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-500726397807072426</id><published>2011-02-09T19:26:00.003+01:00</published><updated>2011-02-09T19:27:59.160+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patents'/><title type='text'>Patent war games</title><content type='html'>&lt;a href="http://www.scribd.com/doc/45876349/MicrosoftVsMotorola-10-12-23"&gt;Some nice step by step presentations of recent patent wars by Florian Mueller:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Ux7bLAPxr1s/TVLawEdd6sI/AAAAAAAABDQ/DD4DPu0fII8/s1600/MicrosoftVsMotorola_10.12.23+-+Mozilla+Firefox_2011-02-09_19-16-44.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="301" src="http://1.bp.blogspot.com/_Ux7bLAPxr1s/TVLawEdd6sI/AAAAAAAABDQ/DD4DPu0fII8/s400/MicrosoftVsMotorola_10.12.23+-+Mozilla+Firefox_2011-02-09_19-16-44.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-500726397807072426?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/500726397807072426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/02/patent-war-games.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/500726397807072426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/500726397807072426'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/02/patent-war-games.html' title='Patent war games'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ux7bLAPxr1s/TVLawEdd6sI/AAAAAAAABDQ/DD4DPu0fII8/s72-c/MicrosoftVsMotorola_10.12.23+-+Mozilla+Firefox_2011-02-09_19-16-44.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4367775572375435728</id><published>2011-01-06T13:23:00.004+01:00</published><updated>2011-01-06T14:03:30.515+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lucene'/><category scheme='http://www.blogger.com/atom/ns#' term='searchblox'/><category scheme='http://www.blogger.com/atom/ns#' term='search'/><title type='text'>SearchBlox is now free</title><content type='html'>SearchBlox is an easy to use search server based on Apache Lucene.&lt;br /&gt;It comes as Java web application which you just deploy in your web container.&lt;br /&gt;Then you configure your search definitions through the web forms in the web application.&lt;br /&gt;You can integrate with the search engine using a REST based API.&lt;br /&gt;We have successfully integrated it in customer web sites without any hassle.&lt;br /&gt;The good news is that from now on SearchBlox is free, as in free beer. It is still closed source however.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Ux7bLAPxr1s/TSW0DOj4rLI/AAAAAAAABDI/B5uTvrOqvoE/s1600/Drawing1%255B1%255D.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Ux7bLAPxr1s/TSW0DOj4rLI/AAAAAAAABDI/B5uTvrOqvoE/s1600/Drawing1%255B1%255D.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4367775572375435728?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4367775572375435728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2011/01/searchblox-is-now-free.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4367775572375435728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4367775572375435728'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2011/01/searchblox-is-now-free.html' title='SearchBlox is now free'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ux7bLAPxr1s/TSW0DOj4rLI/AAAAAAAABDI/B5uTvrOqvoE/s72-c/Drawing1%255B1%255D.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-1337109297163713695</id><published>2010-12-19T14:25:00.003+01:00</published><updated>2011-07-06T09:35:06.799+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSTL'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><title type='text'>Adding JSTL/JSP  EL to your web applicaton (updated)</title><content type='html'>Quite some environments do not come with JSTL: Eclipse for JEE (Galileo), Tomcat 6, Jetty 6... Follow these steps to add them: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add JSTL&lt;br /&gt;Grab the &lt;a href="http://download.java.net/maven/glassfish/javax/servlet/jsp/jstl/jstl-api/1.2/jstl-api-1.2.jar"&gt;JSTL API (jstl-api.jar)&lt;/a&gt; and &lt;a href="http://download.java.net/maven/glassfish/org/glassfish/web/jstl-impl/1.2/jstl-impl-1.2.jar"&gt;JSTL implementation (jstl-impl-1.2.jar)&lt;/a&gt;.         &lt;br /&gt;Add the jars to your Container (e.g. Tomcat) lib directory (or your webapp lib).&lt;br /&gt;Alternatively add them using maven dependencies:&lt;br /&gt;&lt;pre class="brush: xml"&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;  &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;&lt;br /&gt;  &amp;lt;artifactId&amp;gt;jstl&amp;lt;/artifactId&amp;gt;&lt;br /&gt;  &amp;lt;version&amp;gt;1.2&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Make sure the web-app root element in web.xml supports &lt;i&gt;at least&lt;/i&gt; servlet 2.4/JSP 2.0 &lt;pre class="brush: xml"&gt;&amp;lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee"&lt;br /&gt; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" &lt;br /&gt; xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee&lt;br /&gt; http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"&amp;gt;&lt;/pre&gt;If you use &amp;lt;taglib&amp;gt; elements in web.xml, make sure they are embedded in a &amp;lt;jsp-config&amp;gt; element.   &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-1337109297163713695?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/1337109297163713695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/adding-jstl-jsp-el-to-your-webapp.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1337109297163713695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1337109297163713695'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/adding-jstl-jsp-el-to-your-webapp.html' title='Adding JSTL/JSP  EL to your web applicaton (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3525572528828262334</id><published>2010-12-04T11:03:00.006+01:00</published><updated>2010-12-05T10:29:07.261+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='wikileaks'/><title type='text'>Wikileaks: free speech to the test</title><content type='html'>As much as I understand that the US wants to protect its confidential information, incidents like these are a good test for democratic values. After all there's a lot of criticism on China. But just how much better are other regimes?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Wikileaks got bumped from US Amazon cloud servers. A good indication of inherent risks of control one has when running cloud based services.&lt;/li&gt;&lt;li&gt;Wikileaks was also removed from French servers. Because France does not want &lt;i&gt;confidential diplomatic information&lt;/i&gt; of other coutnries to be available. I doubt that France is applying this as a general rule to &lt;i&gt;all &lt;/i&gt;diplomatic information from &lt;i&gt;all &lt;/i&gt;countires. &lt;/li&gt;&lt;li&gt;Wikileaks was removed from DNS provider EveryDNS, because it breached the terms of contract. The ongoing denial of service attacks against the site were compromising the service for other clients. Instead of giving good service and protection and going after the attackers, the service provider says the customer is in error? Fun: now botnets can remove all EveryDNS customers by picking them as a DOS target.&lt;/li&gt;&lt;li&gt;Paypal (a subsidiary of US based eBay) blocks donations for WikiLeaks because they do not transfer money for criminal activities. The strange thing about these actions by US companies is that they are based on private &lt;i&gt;company regulations&lt;/i&gt; rather than public law.&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/760377872792883482-3525572528828262334?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3525572528828262334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/12/wikileaks-free-speech-to-test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3525572528828262334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3525572528828262334'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/12/wikileaks-free-speech-to-test.html' title='Wikileaks: free speech to the test'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4023794129182577362</id><published>2010-11-27T18:12:00.001+01:00</published><updated>2010-12-02T16:07:35.825+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><title type='text'>Using JPA with Spring</title><content type='html'>SL-370 module 1 shows an example of using JPA with Java SE.&lt;br /&gt;If you want to use Spring with JPA, the java code is just like in Java EE. Here's how the configuration files for Spring look for an example similar to the Java SE example:&lt;br /&gt;&lt;br /&gt;persistence.xml&lt;br /&gt;&lt;pre class="brush: xml"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;persistence version="2.0"&lt;br /&gt;xmlns="http://java.sun.com/xml/ns/persistence"&lt;br /&gt;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;xsi:schemaLocation="http://java.sun.com/xml/ns/persistence&lt;br /&gt;http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"&amp;gt;&lt;br /&gt; &amp;lt;persistence-unit name="StockPU" transaction-type="RESOURCE_LOCAL"&amp;gt;&lt;br /&gt; &amp;lt;provider&amp;gt;org.eclipse.persistence.jpa.PersistenceProvider&amp;lt;/provider&amp;gt;&lt;br /&gt; &amp;lt;properties&amp;gt;&lt;br /&gt;  &amp;lt;property name="javax.persistence.jdbc.user" value="public"/&amp;gt;&lt;br /&gt;  &amp;lt;property name="javax.persistence.jdbc.password" value="public"/&amp;gt;&lt;br /&gt;  &amp;lt;property name="javax.persistence.jdbc.url" &lt;br /&gt;   value="jdbc:derby:MyDB;create=true"/&amp;gt;&lt;br /&gt;  &amp;lt;property name="javax.persistence.jdbc.driver" &lt;br /&gt;   value="org.apache.derby.jdbc.EmbeddedDriver"/&amp;gt;&lt;br /&gt;  &amp;lt;property name="eclipselink.ddl-generation" value="drop-and-create-tables"/&amp;gt;&lt;br /&gt;  &amp;lt;property name="eclipselink.logging.level" value="SEVERE"/&amp;gt;&lt;br /&gt; &amp;lt;/properties&amp;gt;&lt;br /&gt; &amp;lt;/persistence-unit&amp;gt;&lt;br /&gt;&amp;lt;/persistence&amp;gt;&lt;br /&gt;&lt;/pre&gt;Spring XML configuration snippet(e.g. in application-config.xml):&lt;br /&gt;&lt;pre class="brush: xml"&gt;&amp;lt;bean id="entityManagerFactory" &lt;br /&gt; class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean" &lt;br /&gt; lazy-init="true"&amp;gt;&lt;br /&gt; &amp;lt;property name="persistenceUnitName" value="StockPU" /&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&amp;lt;bean name="transactionManager" &lt;br /&gt; class="org.springframework.orm.jpa.JpaTransactionManager"&amp;gt;&lt;br /&gt; &amp;lt;property name="entityManagerFactory" ref="entityManagerFactory" /&amp;gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;tx:annotation-driven /&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;tx:annotation-driven&gt;&lt;/tx:annotation-driven&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4023794129182577362?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4023794129182577362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/using-jpa-with-spring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4023794129182577362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4023794129182577362'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/using-jpa-with-spring.html' title='Using JPA with Spring'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-155021024426273533</id><published>2010-11-27T10:43:00.002+01:00</published><updated>2010-11-27T18:39:31.465+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SA-300-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris 10'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>IPFilter Components / Solaris 10</title><content type='html'>&amp;nbsp;For&amp;nbsp; Solaris 10 8/7 (u4) and higher:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Commands      &lt;ul&gt;&lt;li&gt;svcadm: enable/disable ipfilter &lt;/li&gt;&lt;li&gt;ipf: manage rulebase          &lt;ul&gt;&lt;li&gt;-Fa: flush (remove) all rules &lt;/li&gt;&lt;li&gt;-f &lt;i&gt;file&lt;/i&gt;: load rules from file &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;ipnat: manage Network Access Translation rules          &lt;ul&gt;&lt;li&gt;-F: flush (remove) all rules &lt;/li&gt;&lt;li&gt;-f &lt;i&gt;file&lt;/i&gt;: load rules from file &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;ipfstat: show statistics          &lt;ul&gt;&lt;li&gt;-io: show active rulebase &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Daemons      &lt;ul&gt;&lt;li&gt;ipmon: monitor logging device          &lt;ul&gt;&lt;li&gt;-D: daemon mode &lt;/li&gt;&lt;li&gt;-s: log to syslog local0 facility &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Files      &lt;ul&gt;&lt;li&gt;/dev/ipl: device from which you can read log entries &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Kernel module&lt;/li&gt;&lt;ul&gt;&lt;li&gt;ipf&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Links&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.phildev.net/ipf/"&gt;FAQ&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-155021024426273533?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/155021024426273533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/ipfilter-components-solaris-10-87.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/155021024426273533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/155021024426273533'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/ipfilter-components-solaris-10-87.html' title='IPFilter Components / Solaris 10'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5919880915951410156</id><published>2010-11-21T17:42:00.001+01:00</published><updated>2010-11-25T18:05:58.618+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='POSIX'/><category scheme='http://www.blogger.com/atom/ns#' term='SUA'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Windows 7: Subsystem for Unix-based applications (SUA)</title><content type='html'>Yesterday I was trying to telnet from my new Windows 7 PC and... telnet was not there anymore. I had to go to "Control panel&amp;gt;Programs and Features&amp;gt;Turn Windows features on or off" to activate it.&lt;br /&gt;While being in turn features on/off there was some other interesting stuff:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;NFS client (!)&lt;/li&gt;&lt;li&gt; Subsystem for Unix-based applications&lt;/li&gt;&lt;/ul&gt;Subsystem  for Unix-based applications (SUA) is the new name for Windows Services for UNIX (SFU),which in its turn is an evolution of the Interix system that Microsoft acquired. It is a set of utilities that make Windows POSIX compliant and eligible for tenders that require POSIX. Compliance is a very different goal then features and usability, so don't expect too much. The option is only present on Ultimate/Enterprise editions (Vista or later). &lt;br /&gt;&lt;br /&gt;After &lt;b&gt;rebooting&amp;nbsp; &lt;/b&gt;I could go to &lt;i&gt;All Programs &amp;gt; Subsystem  for Unix-based applications&lt;/i&gt; and...&lt;i&gt; download utilities for Subsystem  for Unix-based applications. &lt;/i&gt;That's right, it just enables the possibility to run POSIX programs, but&lt;i&gt; &lt;/i&gt;Unix utilities themselves were not bundled, not even a shell.&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Going to the download page you get these choices:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Utilities and SDK for UNIX-based Applications_AMD64.exe&lt;/li&gt;&lt;ul&gt;&lt;li&gt;use for 64 bit Windows on &lt;i&gt;Intel &lt;/i&gt;or AMD x86 processors &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Utilities and SDK for UNIX-based Applications_IA64.exe&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Use for Intel itanium &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Utilities and SDK for UNIX-based Applications_X86.exe&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;use for 32bit Windows on Intel or AMD x86 processors &lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;Take special care, to download the AMD64 file for Intel 64bit x86 architecture. Microsoft supposes unix heads know that AMD did not follow Intel on the 64bit Itanium path and made a 64 bit x86 (pentium) architecture version. Afterwards Intel followed the AMD strategy and started producing 64bit x86 processors as well.&lt;br /&gt;&lt;br /&gt;When installing, choose custom installation if you want to include GNU stuff.&amp;nbsp; When installation is done, Windows prompts for &lt;b&gt;another reboot&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Your system is by default installed with a root directory mapped to c:\Windows\SUA. You can now start a shell from the SUA menu. You can also run commands from windows by passing them as arguments&amp;nbsp; to c:\Windows\posix.exe. From a SUA shell you can access your windows drives from /dev/fs (e.g. /dev/fs/C is your C&amp;nbsp; drive).&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5919880915951410156?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5919880915951410156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/windows-7-subsystem-for-unix-based.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5919880915951410156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5919880915951410156'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/windows-7-subsystem-for-unix-based.html' title='Windows 7: Subsystem for Unix-based applications (SUA)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7074906497772956514</id><published>2010-11-20T16:11:00.001+01:00</published><updated>2010-11-21T11:42:32.363+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SA-300-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='STS-276-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris Bookmarks (updated)</title><content type='html'>&lt;h4&gt;&amp;nbsp;Oracle&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technetwork/server-storage/solaris/documentation"&gt;documentation&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://docs.sun.com/app/docs/prod/solaris.10#hic"&gt;Reference&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technetwork/server-storage/solaris/documentation/index-jsp-137508.html"&gt;Articles&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technetwork/systems/index.html"&gt;Oracle Technology Network (OTN)&lt;/a&gt; (was bigadmin)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.oracle.com/technetwork/systems/index.html"&gt;Technical Articles&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Solaris for Linux administrators&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wikis.sun.com/display/OTNTaskFinder/CommandComparo+Home"&gt;Oracle CommandComparo&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sun.com/software/solaris/sysadmin_guide.pdf"&gt;Linux to Solaris administration guide&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.opensolaris.org/os/communities/"&gt;OpenSolaris&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;With the purchase by Oracle the open source distribution of Solaris was discontinued. &lt;a href="http://openindiana.org/"&gt;OpenIndiana &lt;/a&gt;is a public domain fork.   Solaris Express continues with binary snapshots, starting with Solaris 11. &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h4&gt;&amp;nbsp;Information&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.softpanorama.org/Solaris"&gt;Softpanorama&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.c0t0d0s0.org/"&gt;c0t0d0s0 &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://learningsolaris.com/"&gt;Jean Christophe’s learning solaris&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;&lt;/h4&gt;&lt;h4&gt;Software&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sun.com/software/solaris/freeware/"&gt;Solaris&lt;/a&gt;&lt;a href="http://www.sun.com/software/solaris/freeware/"&gt; Companion&lt;/a&gt;&lt;a href="http://www.sun.com/software/solaris/freeware/"&gt; Software&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.opencsw.org/"&gt;Community SoftWare&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sunfreeware.com/"&gt;Sun Freeware&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.blastwave.org/"&gt;Blastwave&lt;/a&gt;&amp;nbsp; &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/760377872792883482-7074906497772956514?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7074906497772956514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2009/10/solaris-bookmarks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7074906497772956514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7074906497772956514'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2009/10/solaris-bookmarks.html' title='Solaris Bookmarks (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-6042452124650876560</id><published>2010-11-20T13:28:00.002+01:00</published><updated>2010-11-20T16:28:57.785+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris 11'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris 11 express released</title><content type='html'>Oracle has made the first release of Solaris 11 Express available for download. The final release will be somewhere next year. It is the first major Solaris release under the governance of Oracle. You can &lt;a href="http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html"&gt;download&lt;/a&gt; the OS for free (and for testing). Take care: the default download is a text based installer, scroll down to get a GUI based installer.&lt;br /&gt;&lt;br /&gt;New feature digest:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Image Packaging System (IPS)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;A new software package system&lt;/li&gt;&lt;li&gt;Repositories (depot servers) providing packages over the network&lt;/li&gt;&lt;ul&gt;&lt;li&gt;mirrors&lt;/li&gt;&lt;li&gt;can assist in network install (Automated Installer)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Automatic updates&lt;/li&gt;&lt;li&gt;legacy solaris packages (pkg) supported&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Distribution constructor builds an OS image from a manifest (descriptor file). Images can be&lt;/li&gt;&lt;ul&gt;&lt;li&gt;directly installed on client&lt;/li&gt;&lt;li&gt;ISO image&lt;/li&gt;&lt;li&gt;VM image&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Boot environments: streamlined Live Upgrade using ZFS snapshots&lt;/li&gt;&lt;li&gt;ZFS&lt;/li&gt;&lt;ul&gt;&lt;li&gt;ZFS boot/root environment &lt;/li&gt;&lt;li&gt;deduplication: detect duplicate data and store single copy&lt;/li&gt;&lt;li&gt;encrypted datasets &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;security&lt;/li&gt;&lt;ul&gt;&lt;li&gt;root is a role now&lt;/li&gt;&lt;li&gt;labeling extensions&lt;/li&gt;&lt;ul&gt;&lt;li&gt;apply labels to IPSec&lt;/li&gt;&lt;li&gt;apply labels to ZFS datasets&lt;br /&gt;&lt;/li&gt;&lt;li&gt;require an extra password to access a labeled resource&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;li&gt; bash is the default user shell, ksh the default system shell&lt;/li&gt;&lt;li&gt;optional graphical boot screen&lt;/li&gt;&lt;li&gt;CUPS printing service is the default printing service&lt;/li&gt;&lt;ul&gt;&lt;li&gt;printer discovery&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Open Sound System API support (Boomer)&lt;/li&gt;&lt;li&gt;Linux removable media management replaces the volume manager (vold)&lt;/li&gt;&lt;li&gt;Command assistant: full text search tool to get information on Solaris commands&lt;/li&gt;&lt;li&gt;git is bundled (distributed version control system for development)&lt;/li&gt;&lt;li&gt;&lt;a href="http://rijkswatch.blogspot.com/2010/11/solaris-11-networking-enhancements.html"&gt;Networking enhancements &lt;/a&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/760377872792883482-6042452124650876560?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/6042452124650876560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/solaris-11-express-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6042452124650876560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6042452124650876560'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/solaris-11-express-released.html' title='Solaris 11 express released'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5003532897798120122</id><published>2010-11-20T13:27:00.013+01:00</published><updated>2010-11-26T15:37:40.485+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SA-300-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris 11'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris 11 networking enhancements</title><content type='html'>As of Solaris 11 Express 2010.11 these enhancements are included:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Network automagic (NWAM): dynamically configure fixed or wireless network depending on discovery and profiles&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TOjxfKuDaiI/AAAAAAAABC0/ymBqqlv7Ahs/s1600/locationprefs-dialog%255B1%255D.gif" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="125" src="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TOjxfKuDaiI/AAAAAAAABC0/ymBqqlv7Ahs/s200/locationprefs-dialog%255B1%255D.gif" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Network automagic&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/li&gt;&lt;li&gt;sockets no longer use STREAMS&lt;/li&gt;&lt;li&gt;Solaris can work as a (L2) bridge (IETF TRILL)&lt;/li&gt;&lt;li&gt;unified handling of different types of network interfaces (project Clearview)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;dladm extended (project Brussels)&lt;/li&gt;&lt;li&gt;virtual interfaces, IP tunnels and IPMP can now be accessed as generic IP interfaces. They can now be sniffed (e.g. lo0, traffic between zones...) , asssigned as an exlusive stack to a zone...&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;use virtual network interfaces (VNIC), virtual switches (etherstubs) and virtual routers, bridges and servers (zones) to siumulate an entire network on a single system (project Crossbow)&lt;/li&gt;&lt;ul&gt;&lt;li&gt;zones can exclusivly own an IP stack without a dedicated physical interface (NIC)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Link protection: limit ability of NIC to send spoofed packets&lt;/li&gt;&lt;li&gt;VRRP&amp;nbsp; (Virtual Router Redundancy protocol)&lt;/li&gt;&lt;/ul&gt;Earlier &lt;a href="http://rijkswatch.blogspot.com/2009/04/solaris-10-networking-enhancements-by.html"&gt;Solaris 10 networking enhancements&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5003532897798120122?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5003532897798120122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/solaris-11-networking-enhancements.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5003532897798120122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5003532897798120122'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/11/solaris-11-networking-enhancements.html' title='Solaris 11 networking enhancements'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ux7bLAPxr1s/TOjxfKuDaiI/AAAAAAAABC0/ymBqqlv7Ahs/s72-c/locationprefs-dialog%255B1%255D.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-6985789592925623917</id><published>2010-11-07T16:10:00.004+01:00</published><updated>2011-06-17T08:01:35.494+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-351-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='annotations'/><title type='text'>Java annotations primer (updated)</title><content type='html'>&lt;a href="http://www.uniway.be/jdr/SL351/annotations.pdf"&gt;Slides&lt;/a&gt;: an introduction to annotations in Java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-6985789592925623917?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/6985789592925623917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2008/12/java-annotations-primer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6985789592925623917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6985789592925623917'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2008/12/java-annotations-primer.html' title='Java annotations primer (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4178934702627703682</id><published>2010-11-03T11:10:00.005+01:00</published><updated>2010-11-27T09:20:00.329+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SA-300-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris 10'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris 10 networking enhancements by release overview (updated)</title><content type='html'>Overview of most important changes for networking in solaris 10 releases.   &lt;br /&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: 85%; font-style: italic; font-weight: bold;"&gt;3/5 (base)&lt;/span&gt;     &lt;br /&gt;&lt;/span&gt;  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;specify source IP by (virtual) interface. Example:      &lt;blockquote&gt;&lt;kbd&gt;&lt;b&gt;# ifconfig eri0 usesrc vni0 &lt;/b&gt;          &lt;br /&gt;The virtual IP vni interface is not associated with any physical hardware and is thus immune to hardware failures. &lt;tt&gt;If vni0&lt;/tt&gt; has address 10.0.0.1 assigned to it, the system will prefer 10.0.0.1 as the source address for any packets originated by local connections that are sent through &lt;tt&gt;eri0&lt;/tt&gt;. &lt;/kbd&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;RIPv2, BGP, and OSPF through GNU Zebra (adapted for Solaris) &lt;/li&gt;&lt;li&gt;/usr/lib/mail -&amp;gt; /etc/mail/cf &lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.sun.com/app/docs/doc/816-5166/routeadm-1m?l=en&amp;amp;a=view"&gt;routeadm &lt;/a&gt;command&lt;/li&gt;&lt;li&gt;rdisc wrapped into in.routed &lt;/li&gt;&lt;li&gt;use ifconfig to configure ipforwarding for individual interfaces &lt;/li&gt;&lt;li&gt;IP quality of service (IPQoS) &lt;/li&gt;&lt;li&gt;WAN boot installation &lt;/li&gt;&lt;li&gt;SSH 3.5p1 (adapted for Solaris) &lt;/li&gt;&lt;li&gt;Stream Control Transmission Protocol (SCTP) &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 130%;"&gt;&lt;span style="font-size: 85%; font-style: italic; font-weight: bold;"&gt;1/6 (u1)&lt;/span&gt;     &lt;br /&gt;&lt;/span&gt;  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;SMTP over TLS&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;source address filtering on multicast traffic&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;dladm command for data link (layer 2) configuration, link aggregation (ethernet trunk)&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;IGMPv3 and MLDv2 (IPv6) routing support&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 100%;"&gt;&lt;span style="font-size: 100%; font-style: italic; font-weight: bold;"&gt;6/6 (u2)&lt;/span&gt;&lt;/span&gt;   &lt;br /&gt;&lt;ul&gt;&lt;li&gt;IPFilter for IPv6 &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 100%; font-style: italic; font-weight: bold;"&gt;11/6 (u3)&lt;/span&gt;   &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mandatory Access Control (from Trusted Solaris) for networking and other functions &lt;/li&gt;&lt;li&gt;Set &lt;span style="font-style: italic;"&gt;secure by default&lt;/span&gt; network profile during installation &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: 100%; font-style: italic; font-weight: bold;"&gt;8/7 (u4)&lt;/span&gt;   &lt;br /&gt;&lt;ul&gt;&lt;li&gt;SMF based routing services (svcadm in addition to routeadm) &lt;/li&gt;&lt;li&gt;merge /etc/inet/ipnodes (for IPv6) into /etc/inet/hosts &lt;/li&gt;&lt;li&gt;GNU Quagga routing suite replaces GNU Zebra &lt;/li&gt;&lt;li&gt;Key Management Framework for PKI &lt;/li&gt;&lt;li&gt;encryption kit included + MD4, MD5, SHA1, and SHA2 &lt;/li&gt;&lt;li&gt;exclusive access to physical network interfaces by non-global zones &lt;/li&gt;&lt;li&gt;DHCPv6 client &lt;/li&gt;&lt;li&gt;IPFilter firewall enhancements      &lt;br /&gt;&lt;ul&gt;&lt;li&gt;pfil driver/daemon removed (replaced by packet filter hooks)&lt;/li&gt;&lt;li&gt;IPv6 support &lt;/li&gt;&lt;li&gt;loopback interface support          &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;5/9 (u7)&lt;/span&gt;   &lt;br /&gt;&lt;ul&gt;&lt;li&gt;SHA2 512bit, Diffie-Hellman 4096 bit &lt;b&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;10/9 (u8)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;NTP 4.1.2&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;9/10 (u9)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The client queue runner is now a separate daemon (&lt;tt&gt;svc:/network/smtp:sendmail-client&lt;/tt&gt;). It used to be part of sendmail&amp;nbsp; (&lt;tt&gt;svc:/network/smtp:sendmail&lt;/tt&gt;).&lt;/li&gt;&lt;li&gt;The &lt;tt&gt;net_access&lt;/tt&gt; privilege has been added to the basic privilege set. Denying this privilege, cuts network access.&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/760377872792883482-4178934702627703682?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4178934702627703682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2009/04/solaris-10-networking-enhancements-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4178934702627703682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4178934702627703682'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2009/04/solaris-10-networking-enhancements-by.html' title='Solaris 10 networking enhancements by release overview (updated)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-6402794155095859797</id><published>2010-10-14T21:18:00.002+02:00</published><updated>2010-11-07T14:38:45.812+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LexicalHandler'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SAX'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-385'/><category scheme='http://www.blogger.com/atom/ns#' term='JAXP'/><title type='text'>Handling comments with SAX</title><content type='html'>DOM and StAX will readily handle XML comments.&lt;br /&gt;With SAX you will need to register an extra handler to be called for comments and other lexical events (CDATA, DTD, Entities).&lt;br /&gt;Here's a little code snippet, that shows how to set up your SAX parser to print comments:&lt;br /&gt;&lt;pre class="brush: java"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SAXParser parser = SAXParserFactory.newInstance().newSAXParser();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parser.setProperty(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "http://xml.org/sax/properties/lexical-handler",&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new LexicalHandler() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void comment(char[] ch, int start, int length)&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; throws SAXException {&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; System.out.println(&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;lt;!-- comment: " + String.valueOf(ch, start, length) + " --&amp;gt;");&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; public void startDTD(String name, String publicId, String systemId)&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; throws SAXException { }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void endDTD() throws SAXException { }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void startEntity(String name) throws SAXException { }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void endEntity(String name) throws SAXException { }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void startCDATA() throws SAXException { }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void endCDATA() throws SAXException { } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&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/760377872792883482-6402794155095859797?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/6402794155095859797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/handling-comments-with-sax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6402794155095859797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6402794155095859797'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/handling-comments-with-sax.html' title='Handling comments with SAX'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8440089916193864864</id><published>2010-10-11T14:43:00.008+02:00</published><updated>2010-11-07T14:38:45.829+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SL-385'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>New DOM modules by Level</title><content type='html'>The W3C DOM specification is partitioned in a set of modules&lt;br /&gt;Release versions of the DOM specification by W3C are called levels.&lt;br /&gt;The table below shows which new modules appeared in each Level. Each higher level contains all modules of previous&amp;nbsp; levels.&lt;br /&gt;Note: DOM Level 2 also introduces namespaces.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" style="width: 397px;"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td width="64"&gt;&lt;b&gt;Level 1&lt;/b&gt;&lt;/td&gt;        &lt;td width="144"&gt;&lt;b&gt;Level 2&lt;/b&gt;&lt;/td&gt;        &lt;td width="187"&gt;&lt;b&gt;Level 3&lt;/b&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;Core&lt;/td&gt;        &lt;td&gt;XML&lt;/td&gt;        &lt;td width="187"&gt;Xpath&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;HTML&lt;/td&gt;        &lt;td&gt;Views&lt;/td&gt;        &lt;td width="187"&gt;Validation&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;Range&lt;/td&gt;        &lt;td width="187"&gt;Load and Save&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;Traversal&lt;/td&gt;        &lt;td width="187"&gt;Asynchronous Load&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;Stylesheets&lt;/td&gt;        &lt;td width="187"&gt;Mutation Name Events&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;CSS&lt;/td&gt;        &lt;td width="187"&gt;UI Events&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;CSS2&lt;/td&gt;        &lt;td width="187"&gt;Text Events&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;Events&lt;/td&gt;        &lt;td width="187"&gt;Keyboard Events&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;User Interface Events&lt;/td&gt;        &lt;td width="187"&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;Mouse Events&lt;/td&gt;        &lt;td width="187"&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;Mutation Events&lt;/td&gt;        &lt;td width="187"&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td&gt;&lt;/td&gt;        &lt;td&gt;HTML Events&lt;/td&gt;        &lt;td width="187"&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Modules can be optional and can have different W3C recommendation statusses. You can check if your implementation supports a module using &lt;a href="http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#ID-5CED94D7"&gt;&lt;code&gt;DOMImplementation.hasFeature(module, level)&lt;/code&gt;&lt;/a&gt;. Append ".0" to the level number (e.g. "3.0" for Level 3).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8440089916193864864?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8440089916193864864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/new-dom-modules-by-level.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8440089916193864864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8440089916193864864'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/new-dom-modules-by-level.html' title='New DOM modules by Level'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8043564035105052348</id><published>2010-10-10T16:57:00.007+02:00</published><updated>2010-11-07T14:38:45.838+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SL-385'/><category scheme='http://www.blogger.com/atom/ns#' term='schema'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><title type='text'>DOM editing validation</title><content type='html'>The example below adds DOM schema validation while modifying the in-memory DOM. It uses &lt;a href="http://rijkswatch.blogspot.com/2010/10/writing-xml-with-dom-level-3.html"&gt;DOM load/save example&lt;/a&gt; as a basis.&lt;br /&gt;We are adding a text node instead of a comment now, to generate a schema inconsistency.&lt;br /&gt;The checking kicks off when you call normalizeDocument.&lt;br /&gt;Also compare with the &lt;a href="http://rijkswatch.blogspot.com/2010/10/dom-ls-xml-parsing.html"&gt;parsing validation example&lt;/a&gt;.&lt;br /&gt;&lt;pre class="brush: java"&gt;// SimpleDOML3MemXSD.java&lt;br /&gt;&lt;br /&gt;import com.sun.xml.internal.ws.developer.ValidationErrorHandler;&lt;br /&gt;import org.w3c.dom.*;&lt;br /&gt;import org.w3c.dom.bootstrap.DOMImplementationRegistry;&lt;br /&gt;import org.w3c.dom.ls.*;&lt;br /&gt;&lt;br /&gt;import javax.xml.XMLConstants;&lt;br /&gt;import java.io.OutputStreamWriter;&lt;br /&gt;&lt;br /&gt;public class SimpleDOML3MemXSD {&lt;br /&gt;&lt;br /&gt;  public static void main(String args[]) {&lt;br /&gt;    Document doc;&lt;br /&gt;    try {&lt;br /&gt;      // Create DOM Document using DOM Level 3 Load&lt;br /&gt;      DOMImplementationLS ls = (DOMImplementationLS) DOMImplementationRegistry.&lt;br /&gt;        newInstance().getDOMImplementation("LS");&lt;br /&gt;      LSParser builder = ls.createLSParser(&lt;br /&gt;        DOMImplementationLS.MODE_SYNCHRONOUS,&lt;br /&gt;        "http://www.w3.org/2001/XMLSchema");&lt;br /&gt;      doc = builder.parseURI(args[0]);&lt;br /&gt;      DOMConfiguration config = doc.getDomConfig();&lt;br /&gt;      // for DTD use XMLConstants.XML_DTD_NS_URI&lt;br /&gt;      config.setParameter("schema-type", XMLConstants.W3C_XML_SCHEMA_NS_URI);&lt;br /&gt;      config.setParameter("validate", true);&lt;br /&gt;      config.setParameter("error-handler", new StdErrorHandler());&lt;br /&gt;      //Obtain root elements&lt;br /&gt;      Element root = doc.getDocumentElement();&lt;br /&gt;&lt;br /&gt;      // Add text (NOT ALLOWED BY SCHEMA)&lt;br /&gt;      Text text = doc.createTextNode("Training text");&lt;br /&gt;      root.appendChild(text);&lt;br /&gt;&lt;br /&gt;      //Now validate&lt;br /&gt;      doc.normalizeDocument();&lt;br /&gt;&lt;br /&gt;     // Output to standard output; using DOM Level 3 save&lt;br /&gt;      LSOutput target = ls.createLSOutput();&lt;br /&gt;      target.setCharacterStream(new OutputStreamWriter(System.out));&lt;br /&gt;      ls.createLSSerializer().write(doc, target);&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;      System.out.println(e.getMessage());&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;      System.exit(0);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private static class StdErrorHandler implements DOMErrorHandler {&lt;br /&gt;&lt;br /&gt;    public boolean handleError(DOMError e) {&lt;br /&gt;      String prefix = "Severity ";&lt;br /&gt;      if (e.getLocation().getLineNumber() != -1) {&lt;br /&gt;         prefix = "Line " + e.getLocation().getLineNumber()&lt;br /&gt;          + " column  " + e.getLocation().getColumnNumber()&lt;br /&gt;          + ", severity ";&lt;br /&gt;      }&lt;br /&gt;      System.err.println(&lt;br /&gt;        prefix + e.getSeverity()&lt;br /&gt;          + " issue: " + e.getMessage());&lt;br /&gt;      return true;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&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/760377872792883482-8043564035105052348?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8043564035105052348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/java-dom-editing-validation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8043564035105052348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8043564035105052348'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/java-dom-editing-validation.html' title='DOM editing validation'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2515728467896391006</id><published>2010-10-10T14:49:00.012+02:00</published><updated>2010-11-07T14:38:45.847+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SL-385'/><category scheme='http://www.blogger.com/atom/ns#' term='schema'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>DOM XML Load validation</title><content type='html'>The example below adds DOM schema validation when you are parsing the XML input file to the &lt;a href="http://rijkswatch.blogspot.com/2010/10/writing-xml-with-dom-level-3.html"&gt;DOM load/save example&lt;/a&gt;.&lt;br /&gt;The example also features a DOM Level 3 DOMErrorHandler.&lt;br /&gt;Also compare with the &lt;a href="http://rijkswatch.blogspot.com/2010/10/java-dom-editing-validation.html"&gt;editing validation example&lt;/a&gt;.&lt;br /&gt;&lt;pre class="brush: java"&gt;// SimpleDOML3XSD.java&lt;br /&gt;&lt;br /&gt;import org.w3c.dom.*;&lt;br /&gt;import org.w3c.dom.bootstrap.DOMImplementationRegistry;&lt;br /&gt;import org.w3c.dom.ls.*;&lt;br /&gt;&lt;br /&gt;import javax.xml.XMLConstants;&lt;br /&gt;import java.io.OutputStreamWriter;&lt;br /&gt;&lt;br /&gt;public class SimpleDOML3LSXSD {&lt;br /&gt;&lt;br /&gt;  public static void main(String args[]) {&lt;br /&gt;    Document doc;&lt;br /&gt;    try {&lt;br /&gt;&lt;br /&gt;      // Create DOM Document using DOM Level 3 Load&lt;br /&gt;      DOMImplementationLS ls = (DOMImplementationLS) DOMImplementationRegistry.&lt;br /&gt;        newInstance().getDOMImplementation("LS");&lt;br /&gt;      LSParser builder = ls.createLSParser(&lt;br /&gt;        DOMImplementationLS.MODE_SYNCHRONOUS,&lt;br /&gt;        // for DTD use XMLConstants.XML_DTD_NS_URI&lt;br /&gt;        XMLConstants.W3C_XML_SCHEMA_NS_URI);&lt;br /&gt;      DOMConfiguration config = builder.getDomConfig();&lt;br /&gt;      config.setParameter("validate", true);&lt;br /&gt;      config.setParameter("error-handler", new StdErrorHandler());&lt;br /&gt;      doc = builder.parseURI(args[0]);&lt;br /&gt;&lt;br /&gt;      // Obtain root elements&lt;br /&gt;      Element root = doc.getDocumentElement();&lt;br /&gt;&lt;br /&gt;      // Add comment texts&lt;br /&gt;      Comment comment = doc.createComment("Training text");&lt;br /&gt;      root.appendChild(comment);&lt;br /&gt;&lt;br /&gt;      // Output to standard output; using DOM Level 3 save&lt;br /&gt;      LSOutput target = ls.createLSOutput();&lt;br /&gt;      target.setCharacterStream(new OutputStreamWriter(System.out));&lt;br /&gt;      ls.createLSSerializer().write(doc, target);&lt;br /&gt;&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;      System.out.println(e.getMessage());&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;      System.exit(0);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  private static class StdErrorHandler implements DOMErrorHandler {&lt;br /&gt;&lt;br /&gt;    public boolean handleError(DOMError e) {&lt;br /&gt;      String prefix = "Severity ";&lt;br /&gt;      if (e.getLocation().getLineNumber() != -1) {&lt;br /&gt;         prefix = "Line " + e.getLocation().getLineNumber()&lt;br /&gt;          + " column  " + e.getLocation().getColumnNumber()&lt;br /&gt;          + ", severity ";&lt;br /&gt;      }&lt;br /&gt;      System.err.println(&lt;br /&gt;        prefix + e.getSeverity()&lt;br /&gt;          + " issue: " + e.getMessage());&lt;br /&gt;      return true;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&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/760377872792883482-2515728467896391006?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2515728467896391006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/dom-ls-xml-parsing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2515728467896391006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2515728467896391006'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/dom-ls-xml-parsing.html' title='DOM XML Load validation'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2413534957729023220</id><published>2010-10-09T20:17:00.003+02:00</published><updated>2010-11-07T14:38:45.855+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-385'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='JAXP'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>Load and Save XML with DOM (Level 3)</title><content type='html'>Prior to DOM Level 3, DOM did not standardize reading and writing XML.&lt;br /&gt;Below is the&amp;nbsp; SL-385 code 4-2 modified to use the standard DOM level 3 Load and Save (LS) API.&lt;br /&gt;An alternative JAXP (but not DOM standard) way is to read using the JAXP DocumentBuilder and to write using the JAXP transformer (TrAX XSLT).&lt;br /&gt;(I included a comment that allows you to combine DocumentBuilder reading with DOM LS writing as well.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: java"&gt;// SimpleDOML3LS.java&lt;br /&gt;import org.w3c.dom.*;&lt;br /&gt;import org.w3c.dom.bootstrap.DOMImplementationRegistry;&lt;br /&gt;import org.w3c.dom.ls.*;&lt;br /&gt;import java.io.OutputStreamWriter;&lt;br /&gt;&lt;br /&gt;public class SimpleDOML3LS {&lt;br /&gt;&lt;br /&gt;  public static void main(String args[]) {&lt;br /&gt;    Document doc;&lt;br /&gt;    try {&lt;br /&gt;&lt;br /&gt;      // Create DOM Document using DOM Level 3 Load &lt;br /&gt;      DOMImplementationLS ls = (DOMImplementationLS) DOMImplementationRegistry.&lt;br /&gt;          newInstance().getDOMImplementation("LS");&lt;br /&gt;      LSParser builder = ls.createLSParser(&lt;br /&gt;        DOMImplementationLS.MODE_SYNCHRONOUS,&lt;br /&gt;        null);&lt;br /&gt;      doc = builder.parseURI(args[0]);&lt;br /&gt;&lt;br /&gt;      // Obtain root elements&lt;br /&gt;      Element root = doc.getDocumentElement();&lt;br /&gt;&lt;br /&gt;      // Add comment texts&lt;br /&gt;      Comment comment = doc.createComment("Training text");&lt;br /&gt;      root.appendChild(comment);&lt;br /&gt;&lt;br /&gt;      // Output to standard output; using DOM Level 3 save&lt;br /&gt;&lt;br /&gt;      // If you parsed using a JAXP DocumentBuilder&lt;br /&gt;      // you can also get your LSimplementation from your Document:&lt;br /&gt;      // DOMImplementationLS ls = (DOMImplementationLS) doc.&lt;br /&gt;      //   getImplementation().getFeature("LS","3.0");&lt;br /&gt;      LSOutput target = ls.createLSOutput();&lt;br /&gt;      target.setCharacterStream(new OutputStreamWriter(System.out));&lt;br /&gt;      ls.createLSSerializer().write(doc, target);&lt;br /&gt;&lt;br /&gt;    } catch (Exception e) {&lt;br /&gt;      System.out.println(e.getMessage());&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;      System.exit(0);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;To add newlines/indents to enhance readability of the output, replace in the above example&lt;br /&gt;&lt;pre class="brush: java"&gt;ls.createLSSerializer().write(doc, target);&lt;br /&gt;&lt;/pre&gt;with&lt;br /&gt;&lt;pre class="brush: java"&gt;      LSSerializer serializer = ls.createLSSerializer();&lt;br /&gt;      DOMConfiguration serializerConfig = serializer.getDomConfig();&lt;br /&gt;      serializerConfig.setParameter("format-pretty-print", Boolean.TRUE);&lt;br /&gt;      serializer.write(doc, target);&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/760377872792883482-2413534957729023220?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2413534957729023220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/writing-xml-with-dom-level-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2413534957729023220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2413534957729023220'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/writing-xml-with-dom-level-3.html' title='Load and Save XML with DOM (Level 3)'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7040749811008405546</id><published>2010-10-06T13:49:00.000+02:00</published><updated>2010-11-07T14:38:45.864+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Identity and Access Management'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Passlogix'/><title type='text'>Oracle buys Passlogix SSO</title><content type='html'>You got to eat if you want to grow, and Oracle keeps on festing on other companies.&lt;br /&gt;The last buy is a very rational one, and one that will easily integrate into the company.&lt;br /&gt;Oracle was already reselling Passlogix under its own brand as part of its Identity and access management suite and is in-housing the technology now. Additionally Sun Microsystems, which became a piece of the Oracle pie last year, was partnering with PassLogix for Sun Identity and Access management as well.&lt;br /&gt;Oracle's Identity and Access Management suite, will emerge as of the completest in the market.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-7040749811008405546?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7040749811008405546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/oracle-buys-passlogix-sso.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7040749811008405546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7040749811008405546'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/oracle-buys-passlogix-sso.html' title='Oracle buys Passlogix SSO'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3657365899307247009</id><published>2010-10-03T22:07:00.010+02:00</published><updated>2010-11-07T14:38:45.872+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DTD'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SAX'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-385'/><category scheme='http://www.blogger.com/atom/ns#' term='schema'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='JAXP'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>JAXP DOM/SAX validating parser variations</title><content type='html'>You have a JAXP (version &amp;gt;= 1.2) parser that validates using a DTD. Here are some variations that can be used when validating&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Suppose you are using SAX and obtained this parser from the SAXParserFactory:&lt;/li&gt;&lt;pre&gt;javax.xml.parsers.SAXParser parser&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;To validated using a schema (xsd) add this line of code to your parser setup:  &lt;/li&gt;&lt;pre&gt;&lt;span class="highlight"&gt;parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage",&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="highlight"&gt;&amp;nbsp; XMLConstants.W3C_XML_SCHEMA_NS_URI);&lt;/span&gt;&amp;nbsp;&lt;/pre&gt;&lt;li&gt;To specify the schema file in your code (for both DTD and XSD) add this line to your parser setup:&lt;/li&gt;&lt;pre&gt;&lt;span class="highlight"&gt;parser.setProperty("http://java.sun.com/xml/jaxp/properties/&lt;/span&gt;schemaSource&lt;span class="highlight"&gt;",&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="highlight"&gt;&amp;nbsp; new File("checkers.xsd"));&lt;/span&gt; &lt;/pre&gt;&lt;/ul&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SL-385.B: add to code 3-2 after line 17&lt;/i&gt;&lt;/ul&gt;&lt;ul&gt;&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;li&gt;If you are using DOM, and you created this instance from the DocumentBuilderFactory:&lt;br /&gt;&lt;/li&gt;&lt;pre&gt;javax.xml.parsers.DocumentBuilderFactory builder&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;To validated using a schema (xsd) add this line of code to your parser setup:  &lt;/li&gt;&lt;pre&gt;&lt;span class="highlight"&gt;builder.&lt;b&gt;setAttribute&lt;/b&gt;("http://java.sun.com/xml/jaxp/properties/schemaLanguage",&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="highlight"&gt;&amp;nbsp; XMLConstants.W3C_XML_SCHEMA_NS_URI);&lt;/span&gt;&lt;/pre&gt;&lt;li&gt;To specify the schema file in your code (for both DTD and XSD) add this line to your parser setup:&lt;/li&gt;&lt;pre&gt;&lt;span class="highlight"&gt;builder.&lt;b&gt;setAttribute&lt;/b&gt;&lt;/span&gt;&lt;span class="highlight"&gt;("http://java.sun.com/xml/jaxp/properties/&lt;/span&gt;schemaSource&lt;span class="highlight"&gt;",&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="highlight"&gt;&amp;nbsp; new File("checkers.xsd"));&lt;/span&gt; &lt;/pre&gt;&lt;/ul&gt;&lt;li&gt;&lt;pre&gt;&lt;span class="highlight"&gt;XMLConstants.W3C_XML_SCHEMA_NS_URI = &lt;/span&gt;&lt;code&gt;http://www.w3.org/2001/XMLSchema&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&lt;pre&gt;&lt;code&gt;The corresponding constant for DTD (the default) in these cases is &lt;/code&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;li&gt;&lt;pre&gt;&lt;code&gt;XMLConstants.XML_DTD_NS_URI&lt;/code&gt; = &lt;code&gt;http://www.w3.org/TR/REC-xml&lt;/code&gt;&lt;/pre&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/760377872792883482-3657365899307247009?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3657365899307247009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/jaxp-sax-validating-parsner-from-dtd-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3657365899307247009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3657365899307247009'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/jaxp-sax-validating-parsner-from-dtd-to.html' title='JAXP DOM/SAX validating parser variations'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3504694028482350050</id><published>2010-10-03T09:38:00.000+02:00</published><updated>2010-11-07T14:38:45.881+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='search'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google adds keyboard search navigation</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TKgxYv69F8I/AAAAAAAABB0/mW_LB5MVRQA/s1600/ScreenShot730.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="249" src="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TKgxYv69F8I/AAAAAAAABB0/mW_LB5MVRQA/s320/ScreenShot730.jpg" width="320" /&gt;&lt;/a&gt;Google's empire is built on providing a mundane search utility. Still it keeps finding opportunities for enhancement while keeping it simple.&lt;br /&gt;We already have suggest, a drop down box that with search term autocompletion suggestions.&lt;br /&gt;Only last month we got instant search, showing search results as you type.&lt;br /&gt;Both are shown in the picture to the left. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Ux7bLAPxr1s/TKgymZZasyI/AAAAAAAABB4/78gfWICu8ns/s1600/ScreenShot731.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="164" src="http://1.bp.blogspot.com/_Ux7bLAPxr1s/TKgymZZasyI/AAAAAAAABB4/78gfWICu8ns/s320/ScreenShot731.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Now Google is adding keyboard navigation, allowing you to move down through results (and to next page) using the arrow keys. Keyboard navigation starts after you hit enter in the search box. The current selected item is indicated by the little blue arrow head to the left. Hit enter again to go to the target page.&lt;br /&gt;&lt;br /&gt;You need to be logged in with instant search enabled, which is a good way of Google to use a faitfull crowd as Guinea pigs.&lt;br /&gt;&lt;br /&gt;Still, &lt;a href="http://blog.greenlightsearch.com/greenlights_search_blog/2010/10/google-instants-blue-arrow-could-see-clicks-stolen-from-natural-results.html?utm_source=feedburner&amp;amp;utm_medium=twitter&amp;amp;utm_campaign=Feed%3A+typepad%2FGreenlights_search_blog+%28Greenlight%27s+search+blog%29"&gt;criticists &lt;/a&gt;say that the blue arrow could be interpreted as a recommendation of the link to the user. It will point to the first position which is often an advertisement, Google's primary source of revenue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3504694028482350050?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3504694028482350050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/google-adds-keyboard-search-navigation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3504694028482350050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3504694028482350050'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/google-adds-keyboard-search-navigation.html' title='Google adds keyboard search navigation'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ux7bLAPxr1s/TKgxYv69F8I/AAAAAAAABB0/mW_LB5MVRQA/s72-c/ScreenShot730.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7941334488654785056</id><published>2010-10-01T22:40:00.004+02:00</published><updated>2011-06-17T08:03:35.270+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><title type='text'>jspx document</title><content type='html'>Minimal solution of list headers JSTL exercise (SL-314-EE6 mod 6 lab 1) without any &amp;lt;%…%&amp;gt;&amp;nbsp; tags (e.g. for taglib declaration).&lt;br /&gt;The document must be saved in a .jspx file (e.g. index.jspx):&lt;br /&gt;&lt;pre class="brush: xml"&gt;&amp;lt;html xmlns:jsp="http://java.sun.com/JSP/Page"&lt;br /&gt;   &amp;nbsp;&amp;nbsp; xmlns:c="http://java.sun.com/jsp/jstl/core"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;jsp:directive.page contentType="text/html;charset=UTF-8"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Header jspx page&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;    Request headers:&lt;br /&gt;    &amp;lt;ul&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;    &amp;lt;c:forEach var="zheader" items="${header}"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &amp;lt;li&amp;gt;${zheader}&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;    &amp;lt;/c:forEach&amp;gt;&lt;br /&gt;    &amp;lt;/ul&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/body&amp;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;&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; &lt;br /&gt;&amp;lt;/html&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/760377872792883482-7941334488654785056?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7941334488654785056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/jspx-document.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7941334488654785056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7941334488654785056'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/10/jspx-document.html' title='jspx document'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-516602896340728196</id><published>2010-09-28T20:31:00.009+02:00</published><updated>2011-08-01T12:42:52.881+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SAX'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-385'/><category scheme='http://www.blogger.com/atom/ns#' term='JAXP'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><title type='text'>JAXP history</title><content type='html'>&lt;table border="1" cellpadding="2" cellspacing="0" style="width: 460px;"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td width="62"&gt;&lt;b&gt;Java SE&lt;/b&gt;&lt;/td&gt;        &lt;td width="43"&gt;&lt;b&gt;JAXP&lt;/b&gt;&lt;/td&gt;        &lt;td width="353"&gt;&lt;b&gt;What’s new&lt;/b&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td width="62"&gt;&lt;/td&gt;        &lt;td width="43"&gt;&lt;/td&gt;        &lt;td width="353"&gt;DOM level 0: javascript in NS/IE v3&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td width="62"&gt;&lt;/td&gt;        &lt;td width="43"&gt;&lt;div align="right"&gt;1.0&lt;/div&gt;&lt;/td&gt;        &lt;td width="353"&gt;DOM level 1 (tree), SAX 1.0 (push)         &lt;br /&gt;org.xml.sax.Parser&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td width="62"&gt;&lt;div align="right"&gt;1.4&lt;/div&gt;&lt;/td&gt;        &lt;td width="43"&gt;&lt;div align="right"&gt;1.1&lt;/div&gt;&lt;/td&gt;        &lt;td width="353"&gt;DOM Level 2, SAX 2.0 (+validation), TrAX (XSLT)         &lt;br /&gt;Apache Crimson XMLReader &lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td width="62"&gt;&lt;/td&gt;        &lt;td width="43"&gt;&lt;div align="right"&gt;1.2&lt;/div&gt;&lt;/td&gt;        &lt;td width="353"&gt;XML Schema         &lt;br /&gt;Apache Xerces2 XMLReader &lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td width="62"&gt;&lt;div align="right"&gt;5&lt;/div&gt;&lt;/td&gt;        &lt;td width="43"&gt;&lt;div align="right"&gt;1.3&lt;/div&gt;&lt;/td&gt;        &lt;td width="353"&gt;DOM level 3, XML 1.1, XInclude 1.0, Xpath 1, Validator API&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td width="62"&gt;&lt;div align="right"&gt;6&lt;/div&gt;&lt;/td&gt;        &lt;td width="43"&gt;&lt;div align="right"&gt;1.4&lt;/div&gt;&lt;/td&gt;        &lt;td width="353"&gt;StAX (pull)         &lt;br /&gt;SE also bundles JAXB&lt;/td&gt;     &lt;/tr&gt;&lt;tr&gt;       &lt;td width="62"&gt;&lt;div align="right"&gt;8&lt;/div&gt;&lt;/td&gt;        &lt;td style="text-align: right;" width="43"&gt;1.5&lt;/td&gt;        &lt;td width="353"&gt;XQJ (Xquery)&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a href="http://rijkswatch.blogspot.com/2010/10/new-dom-modules-by-level.html"&gt;More details on DOM levels&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-516602896340728196?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/516602896340728196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/jaxp-history.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/516602896340728196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/516602896340728196'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/jaxp-history.html' title='JAXP history'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7930248423890879656</id><published>2010-09-28T16:24:00.000+02:00</published><updated>2011-06-17T08:03:35.275+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSTL'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><category scheme='http://www.blogger.com/atom/ns#' term='servlets'/><title type='text'>servlets / JSP links</title><content type='html'>&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.coreservlets.com/"&gt;Core servlets&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://volume1.coreservlets.com/archive/coreservlets/ServletUtilities.java"&gt;servlet utilities sample code &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://java.sun.com/products/jsp/"&gt;JSP technology home&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jcp.org/aboutJava/communityprocess/mrel/jsr052/index2.html"&gt;JSTL specification&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-7930248423890879656?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7930248423890879656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/servlets-jsp-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7930248423890879656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7930248423890879656'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/servlets-jsp-links.html' title='servlets / JSP links'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-1857954057981954457</id><published>2010-09-28T11:54:00.000+02:00</published><updated>2010-11-07T14:38:45.934+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='staroffice'/><category scheme='http://www.blogger.com/atom/ns#' term='libreoffice'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSolaris'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='openoffice'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenIndiana'/><title type='text'>LibreOffice: OOo without Oracle</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Ux7bLAPxr1s/TKG7CU4CefI/AAAAAAAABBs/ExQw2q3chJo/s1600/ScreenShot729.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Ux7bLAPxr1s/TKG7CU4CefI/AAAAAAAABBs/ExQw2q3chJo/s1600/ScreenShot729.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;The OpenOffice public domain community has separated itself from its Oracle head. The body will walk on as &lt;a href="http://www.documentfoundation.org/"&gt;The Document Foundation&lt;/a&gt;.&lt;br /&gt;Back in the previous millenium Sun Microystems bought a German office suit, called StarOffice, running on Unix as well as Windows.&lt;br /&gt;Sun rebranded the product to OpenOffice and made it a free, public domain competitor for MS Office.&lt;br /&gt;OpenOffice came under the stewardship of Oracle, when it acquired Sun.&lt;br /&gt;Oracle's decision to &lt;a href="http://rijkswatch.blogspot.com/2010/04/oracle-restricts-access-to-solaris.html"&gt;charge for a previously free MSOffice plugin&lt;/a&gt;, that allows it to read the Open Document Format (ODF), created a lot of irritation in the public domain community.&lt;br /&gt;Meanwhile Oracle is continuing work on, Oracle Cloud Office, based on JavaFX technology. Remark that it&amp;nbsp; does not have the &lt;i&gt;Open&lt;/i&gt; word in its name.&lt;br /&gt;Recently Oracle closed up Sun's OpenSolaris OS. In response a community project, &lt;a href="http://openindiana.org/"&gt;OpenIndiana&lt;/a&gt;, was created.&lt;br /&gt;In a preemtive strike, the community (FSF, Oasis, Google, Novell, Red Hat, Gnome...)&amp;nbsp; now has declared it's independance of Oracle. Because Oracle holds the trademark, the suite has been rebranded to &lt;a href="http://www.documentfoundation.org/download/"&gt;LibreOffice&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-1857954057981954457?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/1857954057981954457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/libreoffice-ooo-without-oracle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1857954057981954457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1857954057981954457'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/libreoffice-ooo-without-oracle.html' title='LibreOffice: OOo without Oracle'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ux7bLAPxr1s/TKG7CU4CefI/AAAAAAAABBs/ExQw2q3chJo/s72-c/ScreenShot729.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-6191384660432906784</id><published>2010-09-22T13:05:00.003+02:00</published><updated>2011-06-03T15:24:53.135+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><title type='text'>Glassfish 3 Admin Console hangs behind a proxy</title><content type='html'>When installing glassfish you can install the updatetool (default on) and configure proxysettings for it.&lt;br /&gt;If the proxy settings do not match the currently active proxy the glassfish admin console may hang.&lt;br /&gt;The glassfish web admin console will not forward your browser proxy settings to the updatetool, which has its own settings. It will wait for the updatetool to return, which never happens.&lt;br /&gt;&lt;br /&gt;Here's a solution from the forums:&lt;br /&gt;Change the update configuration using updatetool in &lt;i&gt;GlassfishInstallDir/bin&lt;/i&gt; (it may ask you to install the tool first, just do so and start updatetool again).&lt;br /&gt;In the tool go to preferences and enter correct proxy settings&amp;nbsp; (or disable automatic updates in the updates tab).&lt;br /&gt;&lt;br /&gt;Alternatively, if you fail to install the tool, you can just kick out the module $GLASSFISH_HOME/glassfish/modules/console-updatecenter-plugin.jar by renaming it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-6191384660432906784?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/6191384660432906784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/glassfish-3-console-hangs-behind-proxy.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6191384660432906784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6191384660432906784'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/glassfish-3-console-hangs-behind-proxy.html' title='Glassfish 3 Admin Console hangs behind a proxy'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7257196373346286953</id><published>2010-09-18T17:05:00.000+02:00</published><updated>2010-11-07T14:38:45.951+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='gwt'/><title type='text'>Google just bought  you some GWT tools</title><content type='html'>Google bought the instantiations developer tools and makes them avaialable for free. The suite contains Eclipse GUI builders, code analysis and testing tools. &lt;a href="http://googlewebtoolkit.blogspot.com/2010/09/google-relaunches-instantiations.html"&gt;more...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-7257196373346286953?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7257196373346286953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/google-bought-you-some-gwt-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7257196373346286953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7257196373346286953'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/google-bought-you-some-gwt-tools.html' title='Google just bought  you some GWT tools'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5619836033429914567</id><published>2010-09-17T12:33:00.000+02:00</published><updated>2011-10-06T15:09:38.590+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='FJ-310'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='OO-226'/><category scheme='http://www.blogger.com/atom/ns#' term='model 2'/><title type='text'>JSP Model 2 / Web MVC</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Ux7bLAPxr1s/TJNDfXeDazI/AAAAAAAABBg/e6KjAj1HYNM/s1600/model2%5B1%5D.GIF" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Ux7bLAPxr1s/TJNDfXeDazI/AAAAAAAABBg/e6KjAj1HYNM/s1600/model2%5B1%5D.GIF" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5619836033429914567?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5619836033429914567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/jsp-model-2-web-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5619836033429914567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5619836033429914567'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/jsp-model-2-web-mvc.html' title='JSP Model 2 / Web MVC'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ux7bLAPxr1s/TJNDfXeDazI/AAAAAAAABBg/e6KjAj1HYNM/s72-c/model2%5B1%5D.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2371575084506469680</id><published>2010-09-16T16:29:00.000+02:00</published><updated>2010-11-07T14:38:45.975+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='indigov'/><category scheme='http://www.blogger.com/atom/ns#' term='sint-niklaas'/><category scheme='http://www.blogger.com/atom/ns#' term='uniway'/><title type='text'>Bronze medal for website Sint-Niklaas</title><content type='html'>The new website of the city of &lt;a href="http://www.sint-niklaas.be/"&gt;Sint-Niklaas&lt;/a&gt;, &lt;a href="http://www.uniway.be/"&gt;we &lt;/a&gt;built in partnership with the fine crew at &lt;a href="http://www.coworks.net/"&gt;coworks&lt;/a&gt;, ended on a &lt;a href="http://www.sint-niklaas.be/over-de-stad/website-sint-niklaas-derde-beste-gemeentelijke-website"&gt;third place in the Indigov Monitor&lt;/a&gt;. Indigov monitor screens all communal websites in Flanders and Brussels. &lt;br /&gt;Great news!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2371575084506469680?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2371575084506469680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/bronze-medal-for-website-sint-niklaas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2371575084506469680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2371575084506469680'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/bronze-medal-for-website-sint-niklaas.html' title='Bronze medal for website Sint-Niklaas'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-6851869432761464887</id><published>2010-09-15T09:11:00.003+02:00</published><updated>2010-12-19T14:23:16.610+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>How to get Java EE6 libraries</title><content type='html'>If you want to download Java EE6 libraries, Oracle bundles the whole glassfish server, and more with the java EE6 SDK. Other application servers also bundle the libraries.&lt;br /&gt;That’ a whole lot of bloat if you just want to compile a little webapp. You can just put a small subset of the glassfish jars in your classpath:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;glassfish_install_dir/glassfish/&lt;/i&gt;modules/javax.servlet.jar &lt;/li&gt;&lt;li&gt;&lt;i&gt;glassfish_install_dir/glassfish/&lt;/i&gt;modules/javax.servlet.jsp.jar &lt;/li&gt;&lt;li&gt;&lt;i&gt;glassfish_install_dir/glassfish/&lt;/i&gt;modules/javax.servlet.jsp.jstl.jar&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;i&gt;glassfish_install_dir/glassfish/&lt;/i&gt;modules/jstl-impl.jar &lt;/li&gt;&lt;li&gt;&lt;i&gt;glassfish_install_dir/glassfish/&lt;/i&gt;modules/javax.ejb.jar (if using ejb) &lt;/li&gt;&lt;/ul&gt;If you are using maven this is not so much of a problem, just add a dependency to your POM. &lt;br /&gt;&lt;pre class="brush: xml"&gt;&amp;lt;dependencies&amp;gt;&lt;br /&gt;  &amp;lt;dependency&amp;gt;&lt;br /&gt;    &amp;lt;groupId&amp;gt;javaee&amp;lt;/groupId&amp;gt;&lt;br /&gt;    &amp;lt;artifactId&amp;gt;javaee-api&amp;lt;/artifactId&amp;gt;&lt;br /&gt;    &amp;lt;version&amp;gt;6.0&amp;lt;/version&amp;gt;&lt;br /&gt;    &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;br /&gt;  &amp;lt;/dependency&amp;gt;&lt;br /&gt;&amp;lt;/dependencies&amp;gt;&lt;br /&gt;&amp;lt;repository&amp;gt;&lt;br /&gt;   &amp;lt;id&amp;gt;java.net&amp;lt;/id&amp;gt;&lt;br /&gt;   &amp;lt;name&amp;gt;GlassFish Maven Repository&amp;lt;/name&amp;gt;&lt;br /&gt;   &amp;lt;url&amp;gt;http://download.java.net/maven/2&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;lt;/repository&amp;gt;&lt;br /&gt;&lt;/pre&gt;Use artifactId javaee-web-api if you just want the web profile. &lt;br /&gt;If you are not using maven, you can just download the jars from the maven repository: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://download.java.net/maven/2/javax/javaee-web-api/6.0/javaee-web-api-6.0.jar" title="http://download.java.net/maven/2/javax/javaee-web-api/6.0/javaee-web-api-6.0.jar"&gt;http://download.java.net/maven/2/javax/javaee-api/6.0/javaee-api-6.0.jar&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://download.java.net/maven/2/javax/javaee-web-api/6.0/javaee-web-api-6.0.jar" title="http://download.java.net/maven/2/javax/javaee-web-api/6.0/javaee-web-api-6.0.jar"&gt;http://download.java.net/maven/2/javax/javaee-web-api/6.0/javaee-web-api-6.0.jar&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;For Java EE5 that is: &lt;br /&gt;&lt;pre class="brush: xml"&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;  &amp;lt;groupId&amp;gt;javaee&amp;lt;/groupId&amp;gt;&lt;br /&gt;  &amp;lt;artifactId&amp;gt;javaee-api&amp;lt;/artifactId&amp;gt;&lt;br /&gt;  &amp;lt;version&amp;gt;5&amp;lt;/version&amp;gt;&lt;br /&gt;  &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;&lt;br /&gt;&amp;lt;/dependency&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://download.java.net/maven/1/javaee/jars/javaee-api-5.jar" title="http://download.java.net/maven/1/javaee/jars/javaee-api-5.jar"&gt;http://download.java.net/maven/1/javaee/jars/javaee-api-5.jar&lt;/a&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/760377872792883482-6851869432761464887?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/6851869432761464887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/how-to-get-java-ee6-libraries.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6851869432761464887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6851869432761464887'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/how-to-get-java-ee6-libraries.html' title='How to get Java EE6 libraries'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-1644084340654117055</id><published>2010-09-11T16:04:00.000+02:00</published><updated>2011-07-07T13:23:47.103+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prince2'/><category scheme='http://www.blogger.com/atom/ns#' term='unified process'/><category scheme='http://www.blogger.com/atom/ns#' term='xp'/><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Project cycle coverage by methodology</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TI49nO3WqhI/AAAAAAAABBY/gxtvOZDB-jU/s1600/ScreenShot727.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="217" src="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TI49nO3WqhI/AAAAAAAABBY/gxtvOZDB-jU/s400/ScreenShot727.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-1644084340654117055?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/1644084340654117055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/project-methodology-coverage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1644084340654117055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1644084340654117055'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/project-methodology-coverage.html' title='Project cycle coverage by methodology'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ux7bLAPxr1s/TI49nO3WqhI/AAAAAAAABBY/gxtvOZDB-jU/s72-c/ScreenShot727.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3150753622606973908</id><published>2010-09-10T18:30:00.000+02:00</published><updated>2010-09-10T18:31:45.487+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Internet map</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Ux7bLAPxr1s/TIpdFLOV_JI/AAAAAAAABBI/BlvslJHQnm4/s1600/hyperbolic_internet_map.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="598" src="http://2.bp.blogspot.com/_Ux7bLAPxr1s/TIpdFLOV_JI/AAAAAAAABBI/BlvslJHQnm4/s640/hyperbolic_internet_map.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3150753622606973908?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3150753622606973908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/internet-map.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3150753622606973908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3150753622606973908'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/internet-map.html' title='Internet map'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ux7bLAPxr1s/TIpdFLOV_JI/AAAAAAAABBI/BlvslJHQnm4/s72-c/hyperbolic_internet_map.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8745131152654949480</id><published>2010-09-09T19:27:00.000+02:00</published><updated>2010-09-10T12:21:23.217+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newspapers'/><category scheme='http://www.blogger.com/atom/ns#' term='RTBF'/><category scheme='http://www.blogger.com/atom/ns#' term='websites'/><title type='text'>French/Belgian newspapers sue public television</title><content type='html'>&lt;a href="http://www.lesoir.be/culture/medias/2010-09-09/les-editeurs-de-journaux-assignent-la-rtbf-en-justice-792268.php"&gt;Newspapers judge&lt;/a&gt; that articles on the &lt;a href="http://www.rtbf.be/info/"&gt;new RTBF site&lt;/a&gt; are unfair comptition, given that RTBF articles are payed by the government.The RTBF site is slooow, but that might just be a youth disease.&lt;br /&gt;Having worked for the &lt;a href="http://www.standaard.be/"&gt;Corelio newspapers&lt;/a&gt;, I've seen the difficulty of making an online newspaper profitable.&lt;br /&gt;You can argue that a public server is not needed where a good commercial service exists.&lt;br /&gt;Then again, I would not like to see public television dropped in favour of commercial television, which is a case that is very similar to the public/commercial e-newspaper debate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8745131152654949480?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8745131152654949480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/frenchbelgian-newspapers-sue-public.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8745131152654949480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8745131152654949480'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/frenchbelgian-newspapers-sue-public.html' title='French/Belgian newspapers sue public television'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3888468886722662887</id><published>2010-09-08T18:17:00.000+02:00</published><updated>2010-09-09T19:31:38.417+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google scribe'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Google scribe</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TIe1kIgRU5I/AAAAAAAABBA/Fehj5byzFok/s1600/ScreenShot721.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TIe1kIgRU5I/AAAAAAAABBA/Fehj5byzFok/s320/ScreenShot721.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;This is the ultimate blog entry: Written by the tool on topic. Put &lt;a href="http://scribe.googlelabs.com/"&gt;Scribe &lt;/a&gt;in your toolbar and it will autocomplete web forms.&lt;br /&gt;Superb toy, at first glance it seems a bit too eager though, when positioned in the middle of a sentence, it tends to add stuff without asking.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3888468886722662887?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3888468886722662887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/google-scribe.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3888468886722662887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3888468886722662887'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/09/google-scribe.html' title='Google scribe'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ux7bLAPxr1s/TIe1kIgRU5I/AAAAAAAABBA/Fehj5byzFok/s72-c/ScreenShot721.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-9180853669726254682</id><published>2010-07-28T09:20:00.000+02:00</published><updated>2010-07-28T09:22:30.443+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='intel'/><category scheme='http://www.blogger.com/atom/ns#' term='chip'/><title type='text'>Intel integrates optical connections in a chip</title><content type='html'>Intel has &lt;a href="http://www.intel.com/pressroom/archive/releases/20100727comp_sm.htm#story"&gt;integrated optical transmitters (lasers) in silicon chips&lt;/a&gt;. Together with existing (and new high speed) optical receivers this will allow chips to communicate directly through optical connections.&lt;br /&gt;In the medium term this can signal the end of electronical chip wiring.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TE_ZuU-Yc6I/AAAAAAAABAw/WBqkDw4zkJg/s1600/ScreenShot716.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="369" src="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TE_ZuU-Yc6I/AAAAAAAABAw/WBqkDw4zkJg/s640/ScreenShot716.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-9180853669726254682?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/9180853669726254682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/07/intel-integrates-optical-connections-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/9180853669726254682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/9180853669726254682'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/07/intel-integrates-optical-connections-in.html' title='Intel integrates optical connections in a chip'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ux7bLAPxr1s/TE_ZuU-Yc6I/AAAAAAAABAw/WBqkDw4zkJg/s72-c/ScreenShot716.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4778995958582042737</id><published>2010-07-27T16:30:00.000+02:00</published><updated>2010-07-27T16:30:14.715+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='joda time'/><title type='text'>Joda Time Presentation</title><content type='html'>Joda time is an alternative to java.util.Date and java.util.Calendar. &lt;a href="http://www.uniway.be/jdr/joda.pdf"&gt;An introduction&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4778995958582042737?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4778995958582042737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/07/joda-time-presentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4778995958582042737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4778995958582042737'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/07/joda-time-presentation.html' title='Joda Time Presentation'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3825508021242929002</id><published>2010-07-27T09:39:00.000+02:00</published><updated>2010-07-27T09:39:11.485+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='law'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Apps'/><title type='text'>The national cloud</title><content type='html'>Google has launched &lt;a href="http://googleblog.blogspot.com/2010/07/introducing-google-apps-for-government.html"&gt;Google Apps for Government&lt;/a&gt;. It is a variant of its cloud application suite (mail, calendar, docs, ...) that is guaranteed to store its data in the US. Similar services for other countries may follow. It is clear that one country does not want to store its data in another country for security reasons.&lt;br /&gt;It is interesting to see if this service will also come to Google App Engine and commercial applications.&lt;br /&gt;It may remove an important legal hurdle: the country where an application's are stored will determine the laws that will be applied to them and under which jurisdiction actions on your data can be ordered.&lt;br /&gt;Note that although Google guarantees where your data are stored, it does not guarantee where your application runs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3825508021242929002?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3825508021242929002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/07/national-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3825508021242929002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3825508021242929002'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/07/national-cloud.html' title='The national cloud'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-2412740416658721122</id><published>2010-06-21T12:50:00.002+02:00</published><updated>2011-10-06T15:24:37.995+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='OO-226'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-285'/><title type='text'>MVC communication diagram</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Communition diagram for the InfoTool MVC example in SL-285&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TCsZGmlHXYI/AAAAAAAABAo/s1Lem7iF4Ls/s1600/mvc+infotool.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/_Ux7bLAPxr1s/TCsZGmlHXYI/AAAAAAAABAo/s1Lem7iF4Ls/s400/mvc+infotool.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-2412740416658721122?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/2412740416658721122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/infotool-mvc-communication-diagram.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2412740416658721122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/2412740416658721122'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/infotool-mvc-communication-diagram.html' title='MVC communication diagram'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ux7bLAPxr1s/TCsZGmlHXYI/AAAAAAAABAo/s1Lem7iF4Ls/s72-c/mvc+infotool.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8301611484350572546</id><published>2010-06-18T14:15:00.000+02:00</published><updated>2010-06-20T11:04:35.860+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newspapers'/><category scheme='http://www.blogger.com/atom/ns#' term='e-commerce'/><category scheme='http://www.blogger.com/atom/ns#' term='newspass'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google to introduce micropayment links</title><content type='html'>According to &lt;a href="http://www.repubblica.it/tecnologia/2010/06/17/news/google_pay-4932905/?ref=HREC1-1"&gt;La Repubblica&lt;/a&gt; Google is developing a pay-per-click system, for visiting indexed links, called Newspass. Content propviders will be able to offer text, images and video that is found and payed through Google. &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8301611484350572546?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8301611484350572546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/google-to-introduce-micropayment-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8301611484350572546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8301611484350572546'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/google-to-introduce-micropayment-links.html' title='Google to introduce micropayment links'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3029993751346766450</id><published>2010-06-12T09:43:00.001+02:00</published><updated>2010-06-12T10:03:24.559+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applying UML and patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='quote'/><category scheme='http://www.blogger.com/atom/ns#' term='Craig Larman'/><title type='text'>Applying UML and patterns: Quotes</title><content type='html'>&lt;blockquote&gt;Le temps est un gran professeur,     &lt;br /&gt;mais malheureusement il tue tous ses élèves.&lt;br /&gt;&lt;div align="center"&gt;Hector Berlioz&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;You should use iterative development only on projects you want to succeed.&lt;/div&gt;&lt;div align="center"&gt;Martin Fowler&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Le mieux est l’ennemi du bien.&lt;/div&gt;&lt;div align="center"&gt;Voltaire&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Fast, cheap, good: choose any two.&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;In theory, there’s no difference between practice and theory.     &lt;br /&gt;But, in practice, there is.&lt;/div&gt;&lt;div align="center"&gt;Jan van de Snepscheut&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Hardware, n: The parts of a computer system that can be kicked.&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;0x2B | ~0x2B&lt;/div&gt;&lt;div align="center"&gt;Hamlet&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Je n’aime pas ce mot bombe.     &lt;br /&gt;Ce n’est pas une bombe mais simplement un appareil qui explose.&lt;/div&gt;&lt;div align="center"&gt;&lt;b&gt;Jacques Le Blanc&lt;/b&gt;, French ambassador to New Zealand, on France's nuclear testing&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Cats are smarter than dogs.     &lt;br /&gt;You can’t get eight cats to pull a sled through the snow.&lt;/div&gt;&lt;div align="center"&gt;Jeff Valdez&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;To iterare is human,     &lt;br /&gt;to recurse divine.&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Any sufficiently advanced bug is indistinguishable from a feature.&lt;/div&gt;&lt;div align="center"&gt;Rich Kulawiec&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Luck is the residue of design.&lt;/div&gt;&lt;div align="center"&gt;Branch Rickey&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Virtue is insufficient temptation.&lt;/div&gt;&lt;div align="center"&gt;George Bernard Shaw&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;Error, no keyboard – Press F1 to continue&lt;/div&gt;&lt;div align="center"&gt;early PC BIOS message&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;If you were plowing a field,     &lt;br /&gt;which would you rather use?      &lt;br /&gt;Two strong oxen or 1024 chickens?&lt;/div&gt;&lt;div align="center"&gt;Seymour Cray&lt;/div&gt;&lt;/blockquote&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div align="left"&gt;The most likely way for the world to be destroyed, most experts agree, us by accident.     &lt;br /&gt;That’s where we come in;      &lt;br /&gt;we’re computer professionals.      &lt;br /&gt;We cause accidents.&lt;/div&gt;&lt;div align="center"&gt;Nathaniel Borenstein&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3029993751346766450?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3029993751346766450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/applying-uml-and-patterns-quotes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3029993751346766450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3029993751346766450'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/applying-uml-and-patterns-quotes.html' title='Applying UML and patterns: Quotes'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-7170269628375903799</id><published>2010-06-10T12:05:00.000+02:00</published><updated>2011-11-09T16:52:55.571+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='law'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>internet liability</title><content type='html'>&lt;ul&gt;&lt;li&gt;A German court ruled someone can be &lt;a href="http://www.scmagazineuk.com/german-wifi-owners-are-now-liable-for-what-third-party-users-download-while-connected-to-their-network/article/170061/"&gt;liable if his WIFI connection is unprotected&lt;/a&gt; and that connection is used for illegal acts.&lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Many end users do not understand a thing about internet security, it seams a bit harsh to punish them for that.&lt;/li&gt;&lt;li&gt; It is like jailing someone because he left his car open and it was stolen to rob a bank.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;A US court ruled that if you are &lt;a href="http://www.theregister.co.uk/2010/06/10/perry_blog_ruling/"&gt;mailing a link to a website, you are liable for the contents&lt;/a&gt; of the page it links to.&lt;/li&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This is similar to an earlier ruling on links to illegal downloads.&lt;/li&gt;&lt;li&gt;Liability for actual text is a different case all together.&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-7170269628375903799?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/7170269628375903799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/internet-liability.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7170269628375903799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/7170269628375903799'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/internet-liability.html' title='internet liability'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-4799682481102440151</id><published>2010-06-04T11:23:00.000+02:00</published><updated>2010-06-04T15:58:14.665+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>standalone tomcat?</title><content type='html'>A returning topic here is wether you should always run apache httpd as a front end to tomcat for a website.&lt;br /&gt;While apache is more feature rich (non-JVM technologies, URL rewriting, authentication features...) performance is fine on a standalone tomcat:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.tomcatexpert.com/blog/2010/03/24/myth-or-truth-one-should-always-use-apache-httpd-front-apache-tomcat-improve-perform" target="_blank"&gt;&lt;img border="0" height="273" src="http://www.tomcatexpert.com/sites/default/files/uploads/all/mthomas-blog-perf-graph.JPG" width="640" /&gt;&lt;span id="goog_1151774175"&gt;&lt;/span&gt;&lt;span id="goog_1151774176"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-4799682481102440151?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/4799682481102440151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/naked-tomcat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4799682481102440151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/4799682481102440151'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/06/naked-tomcat.html' title='standalone tomcat?'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-550026781613006350</id><published>2010-05-25T21:29:00.001+02:00</published><updated>2010-09-15T08:00:54.660+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSTL'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='struts'/><title type='text'>JSP history of writing bean properties</title><content type='html'>&lt;ul&gt;   &lt;li&gt;JSP 0.9 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;% ActionForm form = (ActionForm) request.getAttribute(”LoginForm”); %&amp;gt;      &lt;br /&gt;&amp;lt;%= form.getUserName()%&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;JSP 1.0 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;jsp:useBean id=“form&amp;quot; class=“be.uniway.LoginForm&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;lt;jsp:getProperty name=“form&amp;quot; property=“userName&amp;quot; /&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Struts &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;bean:write name=“loginForm&amp;quot; property=&amp;quot;userName&amp;quot;/&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;JSP 1.2 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;c:out value} =&amp;quot;${loginForm.userName}&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;JSP 2.0 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;${loginForm.userName}&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-550026781613006350?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/550026781613006350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/jsp-history-of-writing-bean-properties.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/550026781613006350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/550026781613006350'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/jsp-history-of-writing-bean-properties.html' title='JSP history of writing bean properties'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3118901028074004989</id><published>2010-05-17T23:28:00.000+02:00</published><updated>2010-05-17T23:28:12.244+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fingerprinting'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Browser fingerprinting</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://panopticlick.eff.org/"&gt;&lt;img border="0" height="436" src="http://1.bp.blogspot.com/_Ux7bLAPxr1s/S_G0U_kieRI/AAAAAAAABAM/KqXXaAhAO_c/s640/ScreenShot616.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-3118901028074004989?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3118901028074004989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/browser-fingerprinting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3118901028074004989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3118901028074004989'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/browser-fingerprinting.html' title='Browser fingerprinting'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ux7bLAPxr1s/S_G0U_kieRI/AAAAAAAABAM/KqXXaAhAO_c/s72-c/ScreenShot616.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5294874486144229919</id><published>2010-05-16T21:12:00.000+02:00</published><updated>2010-09-30T13:04:14.351+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSTL'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='EL'/><category scheme='http://www.blogger.com/atom/ns#' term='struts'/><title type='text'>JSTL/JSP EL alternate Struts excercise solution</title><content type='html'>The De Post/PMC excercises (and the Struts blank sample application) are based on &lt;ul&gt;&lt;li&gt;Struts&lt;ul&gt;&lt;li&gt;tags-bean &lt;/li&gt;&lt;li&gt;tags-logic &lt;/li&gt;&lt;li&gt;tags-html &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;JSP scriptlets &lt;/li&gt;&lt;/ul&gt;In this post we will show how to move this to&lt;ul&gt;&lt;li&gt;Struts&lt;ul&gt;&lt;li&gt;tags-html &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;JSTL &lt;/li&gt;&lt;li&gt;JSP expression language &lt;/li&gt;&lt;/ul&gt;To enable JSTL/JSP/EL support in your application &lt;a href="http://rijkswatch.blogspot.com/2010/09/adding-jstl-jsp-el-to-your-webapp.html"&gt;follow these instructions&lt;/a&gt;.Here’s the table from the excercise rendered with JSTL/JSP EL:&lt;pre class="brush: xml"&gt;&amp;lt;c:forEach&amp;nbsp; var="product" items="${List}"&amp;nbsp; varStatus ="status"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;tr class="${(status.index%2==1)?'odd':'even'}"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html:link action="&amp;lt;%=modify%&amp;gt;" paramId="id" paramName="product" paramProperty="id"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html:img srcKey="icon.edit" altKey="icon.alt.edit" border="0"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html:link&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html:link action="&amp;lt;%=remove %&amp;gt;" paramId="id" paramName="product" paramProperty="id"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;html:img srcKey="icon.trash" altKey="icon.alt.trash" border="0"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html:link&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt; ${product.name}&amp;lt;/td&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt; ${product.description}&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/c:forEach&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5294874486144229919?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5294874486144229919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/jstl-with-eclipsetomcat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5294874486144229919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5294874486144229919'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/jstl-with-eclipsetomcat.html' title='JSTL/JSP EL alternate Struts excercise solution'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-1855760683838243731</id><published>2010-05-15T21:13:00.000+02:00</published><updated>2010-05-15T21:13:39.538+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Sybase'/><title type='text'>SAP buys Sybase</title><content type='html'>In my previous company our two main products were Sun and Sybase.&lt;br /&gt;Both have now been sold within a short interval:&lt;br /&gt;Sybase to SAP&lt;br /&gt;Sun to Oracle&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-1855760683838243731?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/1855760683838243731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/sap-buys-sybase.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1855760683838243731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/1855760683838243731'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/sap-buys-sybase.html' title='SAP buys Sybase'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-9132219918833530220</id><published>2010-05-15T11:06:00.000+02:00</published><updated>2010-05-16T10:12:17.616+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='action'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-314-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='struts'/><title type='text'>Struts 1 action (mapping) element</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Ux7bLAPxr1s/S-5pOhRHEbI/AAAAAAAABAE/SxnGNuMi5pk/s1600/Struts+1+action+element.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="410" src="http://2.bp.blogspot.com/_Ux7bLAPxr1s/S-5pOhRHEbI/AAAAAAAABAE/SxnGNuMi5pk/s640/Struts+1+action+element.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-9132219918833530220?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/9132219918833530220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/struts-1-action-element.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/9132219918833530220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/9132219918833530220'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/05/struts-1-action-element.html' title='Struts 1 action (mapping) element'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ux7bLAPxr1s/S-5pOhRHEbI/AAAAAAAABAE/SxnGNuMi5pk/s72-c/Struts+1+action+element.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-9060860205184828941</id><published>2010-04-28T14:44:00.002+02:00</published><updated>2010-11-27T18:21:42.721+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-351-EE5'/><category scheme='http://www.blogger.com/atom/ns#' term='SL-370-EE6'/><category scheme='http://www.blogger.com/atom/ns#' term='JPA'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Dealing with Hibernate proxies</title><content type='html'>To deal with lazy loading Hibernate uses proxy objects.  &lt;br /&gt;Pitfalls for this approach have been &lt;a href="http://blog.xebia.com/2008/03/08/advanced-hibernate-proxy-pitfalls/"&gt;documented&lt;/a&gt;. Basically the instanceof operator can fail on a sublcass of an entity.&lt;br /&gt;The &lt;a href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-103"&gt;bug ticket&lt;/a&gt; on this has been rejected, with typical JBoss flair:  &lt;br /&gt;&lt;blockquote&gt;If you think this through a bit more carefully, you will see why it is impossible.   &lt;br /&gt;&lt;div align="center"&gt;Gavin King&lt;/div&gt;&lt;/blockquote&gt;Still JPA compliancy requires the instanceof operator to work correctly.  &lt;br /&gt;Here are some ways to deal with the proxies:  &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://forum.hibernate.org/viewtopic.php?f=1&amp;amp;t=987738&amp;amp;start=0"&gt;de-proxy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://community.jboss.org/wiki/ProxyVisitorPattern"&gt;visitor&lt;/a&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/760377872792883482-9060860205184828941?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/9060860205184828941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/dealing-with-hibernate-proxies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/9060860205184828941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/9060860205184828941'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/dealing-with-hibernate-proxies.html' title='Dealing with Hibernate proxies'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-6017258003023587770</id><published>2010-04-26T09:22:00.000+02:00</published><updated>2010-04-26T09:38:43.461+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zfs'/><category scheme='http://www.blogger.com/atom/ns#' term='STS-276-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>ZFS Commands</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Ux7bLAPxr1s/S9U_GhfxUII/AAAAAAAAA_U/0mWv9BhdC8Y/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="427" src="http://3.bp.blogspot.com/_Ux7bLAPxr1s/S9U_GhfxUII/AAAAAAAAA_U/0mWv9BhdC8Y/s640/Untitled.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-6017258003023587770?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/6017258003023587770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/zfs-commands.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6017258003023587770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/6017258003023587770'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/zfs-commands.html' title='ZFS Commands'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ux7bLAPxr1s/S9U_GhfxUII/AAAAAAAAA_U/0mWv9BhdC8Y/s72-c/Untitled.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-979295532205403228</id><published>2010-04-22T07:52:00.000+02:00</published><updated>2010-04-22T07:57:44.878+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STS-276-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>Rosetta stone for Unix</title><content type='html'>&lt;a href="http://bhami.com/rosetta.html"&gt;A dynamic table with command equivalents for different flavours of Unix&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-979295532205403228?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/979295532205403228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/unix-command-equivalents.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/979295532205403228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/979295532205403228'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/unix-command-equivalents.html' title='Rosetta stone for Unix'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-3299384867530657893</id><published>2010-04-20T18:15:00.001+02:00</published><updated>2010-04-30T16:22:04.880+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='STS-276-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='office'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='openoffice'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Oracle free software reality check</title><content type='html'>Policy shifts, almost 3 months after Oracle acquired Sun:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Oracle has blocked access to Solaris security patches for people without a support contract. &lt;/li&gt;&lt;li&gt;Oracle has stopped shipping free OpenSolaris CD’s. &lt;/li&gt;&lt;li&gt;Oracle is discontinuing the open and free Sun Identity Manager. &lt;/li&gt;&lt;li&gt;Oracle has made the MS Office ODF 1.2 plugin paying (with a minimum of $9000 for 100 users). &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/760377872792883482-3299384867530657893?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/3299384867530657893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/oracle-restricts-access-to-solaris.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3299384867530657893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/3299384867530657893'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/oracle-restricts-access-to-solaris.html' title='Oracle free software reality check'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-8864588499337361486</id><published>2010-04-17T16:30:00.000+02:00</published><updated>2010-04-17T16:30:37.288+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='e-commerce'/><category scheme='http://www.blogger.com/atom/ns#' term='april fools day'/><title type='text'>7500 users sell their soul online</title><content type='html'>From the legal conditions of GameStation:&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: arial,helvetica,clean,sans-serif; font-size: 13px; line-height: 20px; text-align: left;"&gt;&lt;i&gt;By placing an order via this Web site on the first day of the fourth month of the year 2010 Anno Domini, you agree to grant Us a non transferable option to claim, for now and for ever more, your immortal soul. Should We wish to exercise this option, you agree to surrender your immortal soul, and any claim you may have on it, within 5 (five) working days of receiving written notification from gamestation.co.uk or one of its duly authorised minions.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-8864588499337361486?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/8864588499337361486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/7500-users-sell-their-soul-online.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8864588499337361486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/8864588499337361486'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/7500-users-sell-their-soul-online.html' title='7500 users sell their soul online'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-815358770253129893</id><published>2010-04-15T17:06:00.001+02:00</published><updated>2010-04-20T13:37:52.210+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vtoc'/><category scheme='http://www.blogger.com/atom/ns#' term='disk'/><category scheme='http://www.blogger.com/atom/ns#' term='STS-276-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Solaris disk layout</title><content type='html'>&lt;br /&gt;On a SPARC system &lt;br /&gt;&lt;ul&gt;&lt;li&gt;VTOC is in cylinder 0, sector 0 and can contain 8 slices      &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;slice 2 by convention represents the entire disk &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;the primary boot block is in cylinder 0, sectors 1-15 &lt;/li&gt;&lt;li&gt;A file system can start on cylinder 0, sector 16 &lt;/li&gt;&lt;/ul&gt;On x86 the situation is a bit more complicated:&lt;br /&gt;&lt;img height="456" src="http://developers.sun.com/solaris/developer/support/driver/wps/realmode_env/figures/mbr.gif" width="640" /&gt; &lt;br /&gt;If Solaris is installed on cylinder 1 (typical) disk cylinder 1 = Solaris (relative) cylinder 0.&lt;br /&gt;Solaris x86 VTOC supports 16 slices:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;0-7: like SPARC slices &lt;/li&gt;&lt;li&gt;8: boot slice (relative cylinder 0) &lt;/li&gt;&lt;li&gt;9: on IDE/SATA disks default alternate slice (relative cylinder 1 and 2) &lt;/li&gt;&lt;li&gt;10-15: unused &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/760377872792883482-815358770253129893?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/815358770253129893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/solaris-disk-layout.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/815358770253129893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/815358770253129893'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/solaris-disk-layout.html' title='Solaris disk layout'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-760377872792883482.post-5183443174170301619</id><published>2010-04-15T10:39:00.001+02:00</published><updated>2010-04-15T10:39:03.805+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='STS-276-S10'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Register a Solaris system for patch updates</title><content type='html'>&lt;p&gt;You can bring a Solaris automatically up to date with the latest recommended or security (if you do not have a support contract) patches.&lt;/p&gt;  &lt;p&gt;You can do this using &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;a graphical tool: /usr/bin/updatemanager &lt;/li&gt;    &lt;li&gt;a command line tool: /usr/sbin/smpatch &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;updatemanager will guide you through a series of screens to register yourself and your system. Even if you use the graphical tool to register, you can use the command line interface later on to keep your system up to date.&lt;/p&gt;  &lt;p&gt;Here’s the procedure to register &lt;em&gt;without&lt;/em&gt; using the graphical updatemanager tool.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Register for a &lt;a href="https://reg.sun.com/"&gt;Sun Online account&lt;/a&gt; on the web. This is a common account for accessing SunSolve, Sun developer connection… &lt;/li&gt;    &lt;li&gt;Prepare a registration file and fill in your user name, password, system and optionally other information like contract number and proxy. You can use /usr/lib/breg/data/RegistrationProfile.properties&amp;#160; as a template.&lt;/li&gt;    &lt;li&gt;Register your system&lt;/li&gt; &lt;/ol&gt; &lt;code&gt;   &lt;p&gt;&amp;#160;&lt;strong&gt;# sconadm –a –r &lt;em&gt;&amp;lt;yourRegistrationFile&amp;gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://sunsolve.sun.com/search/document.do?assetkey=1-9-82688-1"&gt;Here’s a Sunsolve howto on this topic.&lt;/a&gt;&lt;/p&gt;&lt;/code&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/760377872792883482-5183443174170301619?l=rijkswatch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rijkswatch.blogspot.com/feeds/5183443174170301619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/register-solaris-system-for-patch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5183443174170301619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/760377872792883482/posts/default/5183443174170301619'/><link rel='alternate' type='text/html' href='http://rijkswatch.blogspot.com/2010/04/register-solaris-system-for-patch.html' title='Register a Solaris system for patch updates'/><author><name>Jan</name><uri>http://www.blogger.com/profile/01228779291952101982</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://media.linkedin.com/media/p/2/000/002/32a/1b739c5.jpg'/></author><thr:total>0</thr:total></entry></feed>
