<?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'><id>tag:blogger.com,1999:blog-18862554</id><updated>2010-01-29T18:13:42.080+01:00</updated><title type='text'>Java Blog</title><subtitle type='html'>In diesem Blog schreibt Christian Ullenboom über aktuelle Java-Entwicklungen, Neuerungen im Buch ›Java ist auch eine Insel‹, Updates bei Java Open-Source-Bibliotheken, Best-Practices, Fortschritte bei den IDEs und neue Eclipse-Plugins.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.tutego.com/blog/javainsel/atom.xml'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>454</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18862554.post-6249906571344343255</id><published>2010-01-29T18:13:00.001+01:00</published><updated>2010-01-29T18:13:42.247+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>GWT Drag and Drop</title><content type='html'>&lt;p&gt;Das Projekt unter &lt;a href="http://code.google.com/p/gwt-dnd/"&gt;http://code.google.com/p/gwt-dnd/&lt;/a&gt; gehört mit den zu den bekanntesten Drag &amp;amp; Drop Bibliotheken für GWT. Die von Fred Allen-Sauer geschriebene Bibliothek ist ordentlich mit Beispielen hinterlegt, sodass der Einstieg einfach ist. Ein kleines Beispiel soll die Bibliothek demonstrieren.&lt;/p&gt; &lt;p&gt;a) Nach dem Einbinden der Jar-Datei ist in der XML-Datei für GWT folgendes einzutragen:&lt;/p&gt;&lt;pre&gt;&amp;lt;inherits name='com.allen_sauer.gwt.dnd.gwt-dnd'/&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;b) Von &lt;a title="http://code.google.com/p/gwt-dnd/source/browse/trunk/DragDrop/war/DragDropDemo.css&lt;br /&gt;" href="http://code.google.com/p/gwt-dnd/source/browse/trunk/DragDrop/war/DragDropDemo.css"&gt;http://code.google.com/p/gwt-dnd/source/browse/trunk/DragDrop/war/DragDropDemo.css&lt;/a&gt; sind die Einträge beginnend mit demo-FlexTableRowExample in die eigene CSS-Datei mit aufzunehmen (nicht alle Einträge sind nötig)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;c) Aus &lt;a href="http://code.google.com/p/gwt-dnd/source/browse/trunk/DragDrop/#DragDrop/war/images"&gt;http://code.google.com/p/gwt-dnd/source/browse/trunk/DragDrop/#DragDrop/war/images&lt;/a&gt; nimmt man die Grafik row-dragger-8.gif passend etwa in das WEB-INF/images mit auf und schaut auf den URL-Eintrag in der CSS, dass der Pfad passt.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;c) Von &lt;a href="http://code.google.com/p/gwt-dnd/source/browse/trunk/DragDrop/#DragDrop/demo/com/allen_sauer/gwt/dnd/demo/client/example/flextable"&gt;http://code.google.com/p/gwt-dnd/source/browse/trunk/DragDrop/#DragDrop/demo/com/allen_sauer/gwt/dnd/demo/client/example/flextable&lt;/a&gt; kopiert man die Dateien &lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;FlexTableRowDragController&lt;/li&gt;&lt;br /&gt;&lt;li&gt;FlexTableRowDropController&lt;/li&gt;&lt;br /&gt;&lt;li&gt;FlexTableUtil&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;in das eigene GWT-Projekt.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In onModuleLoad() kann es dann so aussehen:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;AbsolutePanel panel = new AbsolutePanel();&lt;br&gt;panel.setPixelSize(450, 300);&lt;br&gt;panel.addStyleName("demo-FlexTableRowExample"); &lt;br /&gt;&lt;p&gt;FlexTableRowDragController dragController = new FlexTableRowDragController( panel );&lt;br&gt;FlexTable table = new FlexTable(); &lt;br /&gt;&lt;p&gt;table.addStyleName( "demo-flextable" ); &lt;br /&gt;&lt;p&gt;HTML handle1 = new HTML( "&amp;lt;b&amp;gt;Heinzelmann&amp;lt;/b&amp;gt; (100 €)" );&lt;br&gt;handle1.addStyleName( "demo-drag-handle" );&lt;br&gt;table.setWidget( 0, 0, handle1 );&lt;br&gt;dragController.makeDraggable( handle1 ); &lt;br /&gt;&lt;p&gt;HTML handle2 = new HTML( "&amp;lt;b&amp;gt;Wumme&amp;lt;/b&amp;gt; (200 €)" );&lt;br&gt;handle2.addStyleName( "demo-drag-handle" );&lt;br&gt;table.setWidget( 1, 0, handle2 );&lt;br&gt;dragController.makeDraggable( handle2 ); &lt;br /&gt;&lt;p&gt;HTML handle3 = new HTML( "&amp;lt;b&amp;gt;Fred&amp;lt;/b&amp;gt; (90 €)" );&lt;br&gt;handle3.addStyleName( "demo-drag-handle" );&lt;br&gt;table.setWidget( 2, 0, handle3 );&lt;br&gt;dragController.makeDraggable( handle3 ); &lt;br /&gt;&lt;p&gt;panel.add(table, 10, 20);&lt;br&gt;FlexTableRowDropController dropController = new FlexTableRowDropController(table);&lt;br&gt;dragController.registerDropController(dropController);&amp;nbsp; &lt;p&gt;RootPanel.get().add( panel );&lt;br /&gt;&lt;p&gt;Anschließend haben wir eine Webseite mit&lt;br /&gt;&lt;p&gt;&lt;b&gt;Heinzelmann&lt;/b&gt; (100 €)&lt;br /&gt;&lt;p&gt;&lt;b&gt;Wumme&lt;/b&gt; (200 €)&lt;br /&gt;&lt;p&gt;&lt;b&gt;Fred&lt;/b&gt; (90 €)&lt;br /&gt;&lt;p&gt;wobei wir die 3 Einträge in der Reihenfolge verschieben können.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-6249906571344343255?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/6249906571344343255/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=6249906571344343255' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/6249906571344343255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/6249906571344343255'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/gwt-drag-and-drop.html' title='GWT Drag and Drop'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-7520311428972902653</id><published>2010-01-23T12:03:00.001+01:00</published><updated>2010-01-23T12:03:00.061+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>Dokumentation zur standardisierten Dependency Injection (CDI)</title><content type='html'>&lt;p&gt;Beschreibt die zweiteilige Dokumentation unter &lt;a title="http://www.theserverside.com/tt/articles/article.tss?l=DependencyInjectioninJavaEE6" href="http://www.theserverside.com/tt/articles/article.tss?l=DependencyInjectioninJavaEE6"&gt;http://www.theserverside.com/tt/articles/article.tss?l=DependencyInjectioninJavaEE6&lt;/a&gt;. Die Referenzimplementierung von &lt;strong&gt;Contexts and Dependency Injection for Java EE (CDI)&lt;/strong&gt; ist &lt;a href="http://seamframework.org/Weld"&gt;Weld&lt;/a&gt; und auch dort gibt es eine sehr gute &lt;a href="http://docs.jboss.org/weld/reference/1.0.0/en-US/html/"&gt;Dokumentation&lt;/a&gt;. DZone hat auch schon gleich eine &lt;a href="http://refcardz.dzone.com/refcardz/contexts-and-depencency"&gt;Reference Card&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-7520311428972902653?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/7520311428972902653/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=7520311428972902653' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/7520311428972902653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/7520311428972902653'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/dokumentation-zur-standardisierten.html' title='Dokumentation zur standardisierten Dependency Injection (CDI)'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-1575927506624825518</id><published>2010-01-23T11:38:00.001+01:00</published><updated>2010-01-23T11:38:09.225+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java 7'/><title type='text'>Erste Spezifikation der neuen Java 7 Closures</title><content type='html'>&lt;p&gt;Die gibt es unter &lt;a title="http://mail.openjdk.java.net/pipermail/lambda-dev/2010-January/000349.html" href="http://mail.openjdk.java.net/pipermail/lambda-dev/2010-January/000349.html"&gt;http://mail.openjdk.java.net/pipermail/lambda-dev/2010-January/000349.html&lt;/a&gt;. Das ganze heißt “Projekt Lambda”. Vom ersten Überfliegen her wirklich eine starke Vereinfachung der ersten BGGA-Closures Variante und ohne große Überraschungen.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-1575927506624825518?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/1575927506624825518/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=1575927506624825518' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1575927506624825518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1575927506624825518'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/erste-spezifikation-der-neuen-java-7.html' title='Erste Spezifikation der neuen Java 7 Closures'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-89121795618214717</id><published>2010-01-22T02:11:00.001+01:00</published><updated>2010-01-22T02:11:02.862+01:00</updated><title type='text'>“This is still an issue.” – Bug-Fixes bei Eclipse</title><content type='html'>&lt;p&gt;&lt;strong&gt;2006 &lt;/strong&gt;habe ich einen &lt;a title="https://bugs.eclipse.org/bugs/show_bug.cgi?id=149380" href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=149380"&gt;https://bugs.eclipse.org/bugs/show_bug.cgi?id=149380&lt;/a&gt; bei Eclipse eingetragen. Heute purzelt mal wieder eine Nachricht rein “This is still an issue.” Wie wahr nach 4 Jahren. Aber vielleicht bin ich einfach zu ungeduldig…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-89121795618214717?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/89121795618214717/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=89121795618214717' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/89121795618214717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/89121795618214717'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/this-is-still-issue-bug-fixes-bei.html' title='“This is still an issue.” – Bug-Fixes bei Eclipse'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-1939930018683956253</id><published>2010-01-20T07:46:00.001+01:00</published><updated>2010-01-20T07:46:37.173+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Architektur'/><title type='text'>Denormalisierung für schnelle Key/Value Speichersysteme</title><content type='html'>&lt;p&gt;RDBMS kommen im distributed Cloud-Computing selten vor. Daher muss man auch die Datenhaltung überdenken. Ein Blog-Eintrag diskutiert die Änderungen sehr gut: &lt;a title="http://highscalability.com/how-i-learned-stop-worrying-and-love-using-lot-disk-space-scale" href="http://highscalability.com/how-i-learned-stop-worrying-and-love-using-lot-disk-space-scale"&gt;http://highscalability.com/how-i-learned-stop-worrying-and-love-using-lot-disk-space-scale&lt;/a&gt;. Im Prinzip geht es darum, aus Joins zu verzichten, und Daten in den verschiedenen Entities zu duplizieren. Die Erfahrung habe ich bei meinen GWT und GAE/J Projekt ebenfalls gemacht. Es führt zu weniger Lesezugriffen insgesamt, wenn man die Daten lokal in der Entity hält und nicht erst aus verschiedenen Entities zusammensucht, wie man bei normalisierten relationalen Modellen tut. (Außerdem ist es bei vielen lese-Zugriffen auch billiger, die Daten an einer Stelle zu haben, anstatt sie von verschiedenen Stellen über Lesezugriffe, die jeweils Kosten nach sich ziehen, einzusammeln.)&lt;/p&gt; &lt;p&gt;In meinen GWT-GAE/J-Projekt habe ich noch einen anderen Ansatz, die Zugriffe auf die Big-Table zu minimieren. Grundsätzlich: Alle GWT-RPC Implementierungen sind Fassaden, die auf Services zurückgreifen (Googe Guice injiziert diese in die RPC-Fassaden). Für diese Endpoints gibt es dann noch einmal einen Caching-Dekorator als eine Art Caching-Aspekt, der sich wie ein Proxy um die eigentlichen RPC-Implementierungen legt. Diese speichert relevante Daten im MemCache zwischen und minimiert so (langsame) Zugriffe auf die Big-Table. Bei Schreibzugriffen löscht der Caching-Proxy die relevanten Daten aus dem Cache, sodass sie neu geladen werden müssen. Das ist einfach und fix.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-1939930018683956253?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/1939930018683956253/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=1939930018683956253' title='4 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1939930018683956253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1939930018683956253'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/denormalisierung-fur-schnelle-keyvalue.html' title='Denormalisierung für schnelle Key/Value Speichersysteme'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-9010004752253140467</id><published>2010-01-20T07:14:00.001+01:00</published><updated>2010-01-20T07:14:49.426+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>Groovy 1.7 und Groovy Eclipse 2.0</title><content type='html'>&lt;p&gt;Ein paar Tage ist es schon her, da wurde &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt; 1.7 veröffentlicht. Die Neuerungen gibt es unter &lt;a title="http://docs.codehaus.org/display/GROOVY/Groovy+1.7+release+notes" href="http://docs.codehaus.org/display/GROOVY/Groovy+1.7+release+notes"&gt;http://docs.codehaus.org/display/GROOVY/Groovy+1.7+release+notes&lt;/a&gt;. Im Wesentlichen sind es die Unterstützung von geschachtelten und anonymen inneren Klassen, ein paar AST-Sachen.&lt;/p&gt; &lt;p&gt;Ganz frisch ist nun das Update der &lt;a href="http://groovy.codehaus.org/Eclipse+Plugin"&gt;Groovy IDE&lt;/a&gt; auf Eclipse Basis. Die Version 2.0 ist fertig und ist nahezu ein vollständiger rewrite. Die News listet &lt;a title="http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.0+New+and+Noteworthy" href="http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.0+New+and+Noteworthy"&gt;http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.0+New+and+Noteworthy&lt;/a&gt; auf. Weiterhin mit bunten Bildern:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.0M1+New+and+Noteworthy"&gt;Groovy-Eclipse 2.0.0M1 New and Noteworthy&lt;/a&gt; &lt;li&gt;&lt;a href="http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.0M2+New+and+Noteworthy"&gt;Groovy-Eclipse 2.0.0M2 New and Noteworthy&lt;/a&gt; &lt;li&gt;&lt;a href="http://docs.codehaus.org/display/GROOVY/Groovy-Eclipse+2.0.0RC1+New+and+Noteworthy"&gt;Groovy-Eclipse 2.0.0RC1 New and Noteworthy&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/18862554-9010004752253140467?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/9010004752253140467/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=9010004752253140467' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/9010004752253140467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/9010004752253140467'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/groovy-17-und-groovy-eclipse-20.html' title='Groovy 1.7 und Groovy Eclipse 2.0'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-1805101271135261282</id><published>2010-01-20T05:05:00.001+01:00</published><updated>2010-01-20T05:05:07.217+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java SE'/><title type='text'>Java 6 Update 18</title><content type='html'>&lt;p&gt;Die Änderungen &lt;a title="http://java.sun.com/javase/6/webnotes/6u18.html" href="http://java.sun.com/javase/6/webnotes/6u18.html"&gt;http://java.sun.com/javase/6/webnotes/6u18.html&lt;/a&gt; sind vielfältig. Zum einen für die Systemkonfigurationen:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a name="supported-configs-1.6.0_18"&gt;Ubuntu 8.04 LTS Desktop Edition for both JFB and Java SE (x86) in 32-bit&lt;/a&gt;  &lt;li&gt;&lt;a name="supported-configs-1.6.0_18"&gt;SLES 11 &lt;/a&gt; &lt;li&gt;&lt;a name="supported-configs-1.6.0_18"&gt;Windows 7 support is now available&lt;/a&gt;  &lt;li&gt;&lt;a name="supported-configs-1.6.0_18"&gt;Red Hat Enterprise Linux 5.3 &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Dann:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a name="visualvm-1.6.0_18"&gt;VisualVM 1.2 is included in 1.6.0_18&lt;/a&gt;. Mehr unter &lt;a title="https://visualvm.dev.java.net/relnotes121.html" href="https://visualvm.dev.java.net/relnotes121.html"&gt;https://visualvm.dev.java.net/relnotes121.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Im JDK gibt es ein Update der Datenbank&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a name="javadb-1.6.0_18"&gt;Java DB 10.5.3.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Aus dem Bereich XML:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a name="stax1.2-1.6.0_18"&gt;JSR-173 StAX 1.2 API Upgrade&lt;/a&gt;. In erster Linie JavaDoc Korrekturen aber auch Änderungen, da der richtige Klassenlader nun genutzt wird. &lt;a title="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6861589" href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6861589"&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6861589&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Und vieles mehr im Bereich Tuning und Fehlerbehebung.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-1805101271135261282?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/1805101271135261282/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=1805101271135261282' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1805101271135261282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1805101271135261282'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/java-6-update-18.html' title='Java 6 Update 18'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-7753484948099912407</id><published>2010-01-20T04:31:00.001+01:00</published><updated>2010-01-20T04:31:31.781+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Die wöchentliche Dosis Java'/><title type='text'>Thema der Woche: “Sicheres” Programmieren</title><content type='html'>&lt;p&gt;Studiere im Artikel &lt;a title="http://java.sun.com/security/seccodeguide.html" href="http://java.sun.com/security/seccodeguide.html"&gt;http://java.sun.com/security/seccodeguide.html&lt;/a&gt; die Guidelines 0 bis 5.&lt;/p&gt; &lt;p&gt;Gib für alle einzelnen Tipps ein alternatives Beispiel. (Aufgabe für 2 Wochen.)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-7753484948099912407?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/7753484948099912407/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=7753484948099912407' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/7753484948099912407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/7753484948099912407'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/thema-der-woche-sicheres-programmieren.html' title='Thema der Woche: “Sicheres” Programmieren'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-1714152101550459845</id><published>2010-01-19T17:54:00.001+01:00</published><updated>2010-01-19T17:54:14.053+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>Ant 1.8.0RC1 ist auf dem Weg</title><content type='html'>&lt;p&gt;Ant 1.7 gibt’s ja schon gefühlte ewige Zeit und bei &lt;a href="http://ant.apache.org/"&gt;Ant&lt;/a&gt;, dem make des 2.0 Zeitalters, steht ein Update ein. Nichts großes, sondern eher Detailverbesserungen:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Apache Ant 1.8.0RC1 is now available for &lt;a href="http://ant.apache.org/bindownload.cgi"&gt;download&lt;/a&gt; .  &lt;ul&gt; &lt;li&gt;a new top level element extension-point allows build files to be extended with custom targets more easily  &lt;li&gt;if and unless attributes will be evaluated according to the values of the properties entered if these properties evaluate to true, false, on, off  &lt;li&gt;Ant now requires Java 1.4 or later  &lt;li&gt;new task include provides an alternative to &amp;lt;import&amp;gt; that should be preferred when you don't want to override any targets  &lt;li&gt;numerous bug fixes and improvements as documented in Bugzilla and in WHATSNEW &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;While in open source projects a final release date strongly depends on the free time of the volunteers/committers, the final release is expected one to two months maximum after this RC. So Ant 1.8.0 is expected between mid February and mid March 2010.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-1714152101550459845?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/1714152101550459845/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=1714152101550459845' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1714152101550459845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1714152101550459845'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/ant-180rc1-ist-auf-dem-weg.html' title='Ant 1.8.0RC1 ist auf dem Weg'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-8159271178212267046</id><published>2010-01-06T03:55:00.001+01:00</published><updated>2010-01-06T03:55:23.534+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Android'/><title type='text'>Googles erstes Smartphone mit Android 2.1 verfügbar</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Einige Informationen dazu:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='http://www.heise.de/newsticker/meldung/Googles-erstes-Smartphone-896356.html'&gt;http://www.heise.de/newsticker/meldung/Googles-erstes-Smartphone-896356.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://gizmodo.com/5440720/a-visual-guide-to-android-21'&gt;http://gizmodo.com/5440720/a-visual-guide-to-android-21&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='http://www.engadget.com/tag/NexusOne/'&gt;http://www.engadget.com/tag/NexusOne/&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=628b229c-9500-8206-829d-65d907cd132b' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-8159271178212267046?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/8159271178212267046/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=8159271178212267046' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/8159271178212267046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/8159271178212267046'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/googles-erstes-smartphone-mit-android.html' title='Googles erstes Smartphone mit Android 2.1 verfügbar'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-3663847670628447682</id><published>2010-01-04T06:36:00.001+01:00</published><updated>2010-01-04T06:36:06.538+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>Mit dem MVP-Modell GWT-Anwendungen entwickeln</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Unter http://code.google.com/webtoolkit/doc/latest/tutorial/mvp-architecture.html widmet sich Google nun etwas mehr der Architektur von GWT-Anwendungen. Der Artikel "Large scale application development and MVP" beschreibt, wie die drei Teile Model, View und Presenter zusammenarbeiten und getestet werden können. Komplexer wird das Bsp. da noch History-Management und der Event-Bus mit ins Boot kommen.&lt;br/&gt;&lt;br/&gt;Im Quellcode auf der Seite gibt es einige Fehler durch ein falsch verarbeitet &amp;lt;. So steht etwa&lt;br/&gt;&lt;br/&gt;  public interface Display extends HasValue&amp;gt; {&lt;br/&gt;    HasClickHandlers getAddButton();&lt;br/&gt;    HasClickHandlers getDeleteButton();&lt;br/&gt;    HasClickHandlers getList();&lt;br/&gt;    void setData(List data);&lt;br/&gt;    int getClickedRow(ClickEvent event);&lt;br/&gt;    List getSelectedRows();&lt;br/&gt;    Widget asWidget();&lt;br/&gt;  }&lt;br/&gt;&lt;br/&gt;statt&lt;br/&gt;&lt;br/&gt;  public interface Display {&lt;br/&gt;    HasClickHandlers getAddButton();&lt;br/&gt;    HasClickHandlers getDeleteButton();&lt;br/&gt;    HasClickHandlers getList();&lt;br/&gt;    void setData(List&amp;lt;String&amp;gt; data);&lt;br/&gt;    int getClickedRow(ClickEvent event);&lt;br/&gt;    List&amp;lt;Integer&amp;gt; getSelectedRows();&lt;br/&gt;    Widget asWidget();&lt;br/&gt;  }&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=c4f9367d-ed88-884a-9593-aa8864fe60ef' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-3663847670628447682?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/3663847670628447682/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=3663847670628447682' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/3663847670628447682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/3663847670628447682'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/mit-dem-mvp-modell-gwt-anwendungen.html' title='Mit dem MVP-Modell GWT-Anwendungen entwickeln'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-4624442246776057200</id><published>2010-01-01T09:04:00.001+01:00</published><updated>2010-01-01T09:04:42.543+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>Google Collections Library 1.0 ist raus und bald nicht mehr eigenständig</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Überraschung zum 30.12.2009: Die Google Collections Library (&lt;a href='http://code.google.com/p/google-collections/'&gt;http://code.google.com/p/google-collections/&lt;/a&gt;) sieht der Version 1.0. Zweite Überraschung: Die Coll. Lib. wird Teil von Googles allgemeiner Java-Utility-Lib. &lt;a href='http://code.google.com/p/guava-libraries/'&gt;http://code.google.com/p/guava-libraries/&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=7a1eee68-05ca-8629-9da2-5f646ab306ad' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-4624442246776057200?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/4624442246776057200/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=4624442246776057200' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/4624442246776057200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/4624442246776057200'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2010/01/google-collections-library-10-ist-raus.html' title='Google Collections Library 1.0 ist raus und bald nicht mehr eigenständig'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-8757017576197789871</id><published>2009-12-16T13:29:00.001+01:00</published><updated>2009-12-16T13:29:48.013+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entwicklungsumgebung'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>NetBeans 6.8</title><content type='html'>&lt;p&gt;Von &lt;a title="http://www.netbeans.com/" href="http://www.netbeans.com/"&gt;http://www.netbeans.com/&lt;/a&gt; gibt es eine neue Version, die insbesondere im Bereich des neuen Java EE 6 punktet.&amp;nbsp; Die Neuigkeiten führt &lt;a title="http://wiki.netbeans.org/NewAndNoteworthyNB68" href="http://wiki.netbeans.org/NewAndNoteworthyNB68"&gt;http://wiki.netbeans.org/NewAndNoteworthyNB68&lt;/a&gt; auf.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-8757017576197789871?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/8757017576197789871/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=8757017576197789871' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/8757017576197789871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/8757017576197789871'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/netbeans-68.html' title='NetBeans 6.8'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-5751670864386582397</id><published>2009-12-16T13:15:00.001+01:00</published><updated>2009-12-16T13:15:03.637+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Frameworks'/><title type='text'>Google App Engine 1.3</title><content type='html'>&lt;p&gt;Kurz nach 1.2.8 veröffentlich Google nun die &lt;a href="http://code.google.com/appengine/"&gt;Google App Engine 1.3&lt;/a&gt;. Von &lt;a title="http://googleappengine.blogspot.com/2009/12/app-engine-sdk-130-released-including.html" href="http://googleappengine.blogspot.com/2009/12/app-engine-sdk-130-released-including.html"&gt;http://googleappengine.blogspot.com/2009/12/app-engine-sdk-130-released-including.html&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;b&gt;Store and Serve&lt;/b&gt; - Files can be uploaded and stored as blobs, to be served later in response to user requests. Developers can build their own organizational structures and access controls on top of blobs.&lt;br&gt;&lt;b&gt;Pricing and Quotas&lt;/b&gt; - We include blob storage and transfer under the same datastore pricing and quotas you're already familiar with. For more information, see the &lt;a href="http://code.google.com/appengine/docs/quotas.html"&gt;App Engine quotas&lt;/a&gt; page.&lt;br&gt;The new Blobstore API is now available in both App Engine SDKs for local development. At this time it can only be used by applications that have enabled billing. There's a lot more information about the API and how it works in the Blobstore documentation (&lt;a href="http://code.google.com/appengine/docs/python/blobstore/"&gt;Python&lt;/a&gt;, &lt;a href="http://code.google.com/appengine/docs/java/blobstore/"&gt;Java&lt;/a&gt;) so please check that out and post any questions to the groups.&lt;br&gt;This release also includes some performance tweaks to the Java runtime. For example, we've sped up many reflective operations by up to 10x resulting in improvements on the order of 10% for applications based on dynamic languages. As always, there are a few other minor changes and bug fixes in this release, so make sure to read our release notes (&lt;a href="http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes"&gt;Python&lt;/a&gt;, &lt;a href="http://code.google.com/p/googleappengine/wiki/SdkForJavaReleaseNotes"&gt;Java&lt;/a&gt;).&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-5751670864386582397?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/5751670864386582397/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=5751670864386582397' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/5751670864386582397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/5751670864386582397'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/google-app-engine-13.html' title='Google App Engine 1.3'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-5483644492174410792</id><published>2009-12-16T13:11:00.001+01:00</published><updated>2009-12-16T13:11:35.752+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Die wöchentliche Dosis Java'/><title type='text'>Thema der Woche: MVC/MVP</title><content type='html'>&lt;p&gt;Lies die Einträge&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="http://de.wikipedia.org/wiki/Model_View_Presenter" href="http://de.wikipedia.org/wiki/Model_View_Presenter"&gt;http://de.wikipedia.org/wiki/Model_View_Presenter&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a title="http://blogs.infragistics.com/blogs/todd_snyder/archive/2007/10/17/mvc-or-mvp-pattern-whats-the-difference.aspx" href="http://blogs.infragistics.com/blogs/todd_snyder/archive/2007/10/17/mvc-or-mvp-pattern-whats-the-difference.aspx"&gt;http://blogs.infragistics.com/blogs/todd_snyder/archive/2007/10/17/mvc-or-mvp-pattern-whats-the-difference.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;und skizziere kurz die Unterschiede zwischen den beiden Gui-Pattern MVC und MVP.&lt;/p&gt; &lt;p&gt;Skizziert &lt;a title="http://www.c-sharpcorner.com/UploadFile/OVZh/Introducing_MVCSharp_framework03062008064516AM/Images/Untitled-2.gif" href="http://www.c-sharpcorner.com/UploadFile/OVZh/Introducing_MVCSharp_framework03062008064516AM/Images/Untitled-2.gif"&gt;http://www.c-sharpcorner.com/UploadFile/OVZh/Introducing_MVCSharp_framework03062008064516AM/Images/Untitled-2.gif&lt;/a&gt; den Unterschied? Was hat das allen mit Testen zu tun?&lt;/p&gt; &lt;p&gt;Das MVP ist weiterhin gültig, aber der Name hat sich etwas verändert. Erkläre das am Beispiel des Diagramms &lt;a title="http://geekswithblogs.net/dchristiansen/archive/2007/12/07/microsoft-patterns-and-practices-team-release-the-model-view-presenter.aspx" href="http://geekswithblogs.net/dchristiansen/archive/2007/12/07/microsoft-patterns-and-practices-team-release-the-model-view-presenter.aspx"&gt;http://geekswithblogs.net/dchristiansen/archive/2007/12/07/microsoft-patterns-and-practices-team-release-the-model-view-presenter.aspx&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Schreibe ein Beispielprogramm.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Eine Maske soll nach dem Benutzernamen und Passwort fragen.&lt;/li&gt; &lt;li&gt;Ein Fake-Login-Service soll eine bekanntes Username/Passwort-Pärchen authentifizieren. Sind die Werte korrekt, soll eine einfache Meldung erscheinen und der Dialog geschlossen werden.&lt;/li&gt; &lt;li&gt;Schreibe einen JUnit-Testfall&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/18862554-5483644492174410792?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/5483644492174410792/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=5483644492174410792' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/5483644492174410792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/5483644492174410792'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/thema-der-woche-mvcmvp.html' title='Thema der Woche: MVC/MVP'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-508452908235303206</id><published>2009-12-11T18:31:00.001+01:00</published><updated>2009-12-11T18:31:19.650+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entwicklungsumgebung'/><title type='text'>IntelliJ IDEA 9 ist draußen – kommerziell und die Open-Source-Version</title><content type='html'>&lt;p&gt;Die Webseite &lt;a href="http://www.jetbrains.com/idea/whatsnew/index.htm"&gt;http://www.jetbrains.com/idea/whatsnew/index.htm&lt;/a&gt; listet die wichtigsten Neuerungen auf:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Faster_Environment"&gt;Faster Environment&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Improved_Code_Understanding"&gt;Improved Code Understanding&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Cleaner_More_Productive_Coding"&gt;Cleaner, More Productive Coding&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#More_Efficient_User_Interface"&gt;More Efficient User Interface&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#More_Flexible_Project_Structure"&gt;More Flexible Project Structure&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Preliminary_Java_7_Features_Support"&gt;Preliminary Java 7 Features Support&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Java_EE_6_Support"&gt;Java EE 6 Support&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Improved_Groovy_support"&gt;Improved Groovy support&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Extended_Polyglot_Arsenal"&gt;Extended Polyglot Arsenal&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#New_Web_Frameworks_Support"&gt;New Web Frameworks Support&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#OSGi_Application_Development"&gt;OSGi Application Development&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Enhanced_Maven_Support"&gt;Enhanced Maven Support&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Android_Development"&gt;Android Development&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Better_JavaScript_and_HTML"&gt;Better JavaScript and HTML&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Flex_Development"&gt;Flex Development&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Context_Management"&gt;Context Management&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#UML_Support"&gt;UML Support&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Version_Control_Integration"&gt;Version Control Integration&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.jetbrains.com/#Other_Interesting_Things"&gt;Other Interesting Things&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/18862554-508452908235303206?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/508452908235303206/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=508452908235303206' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/508452908235303206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/508452908235303206'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/intellij-idea-9-ist-drauen-kommerziell.html' title='IntelliJ IDEA 9 ist draußen – kommerziell und die Open-Source-Version'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-3306756649010728692</id><published>2009-12-11T17:33:00.001+01:00</published><updated>2009-12-11T17:33:57.781+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>GlassFish v3 und Java EE 6 freigegeben</title><content type='html'>&lt;p&gt;Unter &lt;a href="http://www.theserverside.com/news/thread.tss?thread_id=58858"&gt;http://www.theserverside.com/news/thread.tss?thread_id=58858&lt;/a&gt; ist heute zu lesen:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Sun has released the &lt;a href="http://www.sun.com/aboutsun/pr/2009-12/sunflash.20091210.1.xml"&gt;Java Platform Enterprise Edition 6&lt;/a&gt;and the &lt;a href="http://www.sun.com/aboutsun/pr/2009-12/sunflash.20091210.2.xml"&gt;GlassFish Enterprise Server v3&lt;/a&gt;.&lt;br&gt;Java EE 6 includes new specifications that add new functionality to the platform, like dependency injection, Bean Valiation and RESTful services, as well as improvements to the existing specifications including very significant improvements to Java Server Faces, Enterprise Java Beans, JPA, Servlets and Java Connectors. Java EE 6 also includes a Web Profile. Additional information on Java EE 6 is available from the &lt;a href="http://java.sun.com/javaee/"&gt;WebSite&lt;/a&gt; and this &lt;a href="http://www.sun.com/featured-articles/2009-1210/feature/index.jsp"&gt;Overview Article&lt;/a&gt;.&lt;br&gt;The GlassFish v3 Server implements the Java EE 6 specification. GlassFish v3 is Open Source and fully modular, built on an OSGi kernel and the Grizzly NIO infrastructure. GlassFish v3 is suitable for a wide range of applications, from development to deployments. The long list of additional GFv3 features includes embeddability, very fast startup, redeploy-on-save, session state persistence, dynamic language support, management and monitoring facilities, graphical, CLI and REST command interfaces, and an update center. GlassFish v3 is supported by NetBeans, Eclipse and IntelliJ IDEA.&lt;br&gt;Additional information on GlassFish v3 Server is available from the &lt;a href="http://www.sun.com/software/products/glassfishv3/"&gt;Product Page&lt;/a&gt; and our main &lt;a href="http://blogs.sun.com/theaquarium/entry/glassfish_v3_is_now_available"&gt;Team Announcement&lt;/a&gt;. GFv3 can be downloaded &lt;a href="http://java.sun.com/javaee/downloads/index.jsp"&gt;here&lt;/a&gt;; the full version is 70MB and the Web Profile 50MB.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-3306756649010728692?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/3306756649010728692/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=3306756649010728692' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/3306756649010728692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/3306756649010728692'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/glassfish-v3-und-java-ee-6-freigegeben.html' title='GlassFish v3 und Java EE 6 freigegeben'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-1636521734738266862</id><published>2009-12-09T15:24:00.001+01:00</published><updated>2009-12-09T15:24:30.943+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT  2.0 ist fertig</title><content type='html'>&lt;p&gt;&lt;a href="http://code.google.com/intl/de-DE/webtoolkit/download.html"&gt;http://code.google.com/intl/de-DE/webtoolkit/download.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-1636521734738266862?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/1636521734738266862/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=1636521734738266862' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1636521734738266862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1636521734738266862'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/gwt-20-ist-fertig.html' title='GWT  2.0 ist fertig'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-5506304885656230925</id><published>2009-12-08T18:57:00.001+01:00</published><updated>2009-12-08T18:57:25.655+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>App Engine Java SDK 1.2.8 aktualisiert</title><content type='html'>&lt;p&gt;Von der &lt;a title="http://code.google.com/p/googleappengine/" href="http://code.google.com/p/googleappengine/"&gt;http://code.google.com/p/googleappengine/&lt;/a&gt; gibt’s eine neue Version. Die Neuerungen in kürze:&lt;/p&gt; &lt;blockquote&gt; &lt;ul&gt; &lt;li&gt;&lt;a name="Version_1.2.8_-_December_3,_2009"&gt;Support for JAXB. JAXB is included in JDK 1.6 (and App Engine's production servers). If you're using JDK 1.5 with your local dev_appserver, you will need to include the JAXB libraries with your application to use it. &lt;/a&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1267"&gt;http://code.google.com/p/googleappengine/issues/detail?id=1267&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;New support for application pre-compilation to reduce the length of loading requests. To enable pre-compilation on your application, add this flag to your appengine-web.xml:  &lt;ul&gt; &lt;li&gt;&lt;tt&gt;&amp;lt;precompilation-enabled&amp;gt;&lt;/tt&gt;true&lt;tt&gt;&amp;lt;/precompilation-enabled&amp;gt;&lt;/tt&gt; &lt;li&gt;If you have trouble deploying your application, you should remove this flag or set it to false. &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Added Quota API (com.google.appengine.api.quota) to match Python  &lt;li&gt;Low-level Memcache API now supports incrementAll()  &lt;li&gt;HTTPResponse object now has getFinalUrl() method for 302 redirects.  &lt;ul&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=1464"&gt;http://code.google.com/p/googleappengine/issues/detail?id=1464&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Java Dev Appserver now automatically executes tasks. If you prefer the old behavior where tasks do not automatically execute you can use the --jvm_flag=-Dtask_queue.disable_auto_task_execution flag when starting the server.  &lt;li&gt;Additional file extensions permitted when sending mail.  &lt;ul&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=494"&gt;http://code.google.com/p/googleappengine/issues/detail?id=494&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Fixed issue with Java mail handler not processing multipart messages correctly  &lt;li&gt;Fixed agent code included in appengine-local-runtime.jar results in RuntimeException  &lt;ul&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=2280"&gt;http://code.google.com/p/googleappengine/issues/detail?id=2280&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Fixed issue with sort orders defined on properties that allow multiple values  &lt;ul&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=2349"&gt;http://code.google.com/p/googleappengine/issues/detail?id=2349&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Fixed problem with dropped query strings after requiring log-in  &lt;ul&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=2225"&gt;http://code.google.com/p/googleappengine/issues/detail?id=2225&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Removed limitation preventing multiple parameters with the same name  &lt;ul&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=2090"&gt;http://code.google.com/p/googleappengine/issues/detail?id=2090&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Fixed issue with local datastore incorrectly sorting results of ancestor queries  &lt;ul&gt; &lt;li&gt;&lt;a href="http://code.google.com/p/googleappengine/issues/detail?id=2177"&gt;http://code.google.com/p/googleappengine/issues/detail?id=2177&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-5506304885656230925?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/5506304885656230925/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=5506304885656230925' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/5506304885656230925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/5506304885656230925'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/app-engine-java-sdk-128-aktualisiert.html' title='App Engine Java SDK 1.2.8 aktualisiert'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-7402024989902731830</id><published>2009-12-08T18:52:00.001+01:00</published><updated>2009-12-08T18:52:08.629+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>Neu: Release 5.0</title><content type='html'>&lt;p&gt;Vom Quellcode-Checker &lt;a href="http://checkstyle.sourceforge.net/"&gt;Checkstyle&lt;/a&gt; gibt es eine neue Version 5. Die Änderungen beschreiben die Seite &lt;a title="http://checkstyle.sourceforge.net/releasenotes.html" href="http://checkstyle.sourceforge.net/releasenotes.html"&gt;http://checkstyle.sourceforge.net/releasenotes.html&lt;/a&gt;.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;The following checks were added since release 4.4: &lt;ul&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_annotation.html#AnnotationUseStyle"&gt;AnnotationUseStyle&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated"&gt;MissingDeprecated&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_annotation.html#MissingOverride"&gt;MissingOverride&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_annotation.html#PackageAnnotation"&gt;PackageAnnotation&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_annotation.html#SuppressWarnings"&gt;SuppressWarnings&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_coding.html#EqualsAvoidNull"&gt;EqualsAvoidNull&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_coding.html#NoClone"&gt;NoClone&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_coding.html#NoFinalizer"&gt;NoFinalizer&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_imports.html#AvoidStaticImport"&gt;AvoidStaticImport&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocPackage"&gt;JavadocPackage&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_naming.html#ClassTypeParameterName"&gt;ClassTypeParameterName&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_naming.html#MethodTypeParameterName"&gt;MethodTypeParameterName&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_regexp.html#RegexpMultiline"&gt;RegexpMultiline&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_regexp.html#RegexpSingleline"&gt;RegexpSingleline&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_regexp.html#RegexpSinglelineJava"&gt;RegexpSinglelineJava&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_sizes.html#OuterTypeNumber"&gt;OuterTypeNumber&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_whitespace.html#FileTabCharacter"&gt;FileTabCharacter&lt;/a&gt; &lt;li&gt;&lt;a href="http://checkstyle.sourceforge.net/config_whitespace.html#GenericWhitespace"&gt;GenericWhitespace&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-7402024989902731830?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/7402024989902731830/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=7402024989902731830' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/7402024989902731830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/7402024989902731830'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/neu-release-50.html' title='Neu: Release 5.0'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-656288520908358123</id><published>2009-12-02T19:53:00.001+01:00</published><updated>2009-12-02T19:53:05.354+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>JUnit 4.8 freigegeben</title><content type='html'>&lt;p&gt;Die Infos gibt es unter &lt;a title="http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html" href="http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html"&gt;http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html&lt;/a&gt;. Die Änderungen halten sich in Grenzen:&lt;/p&gt; &lt;blockquote&gt; &lt;h4&gt;Summary of Changes in version 4.8&lt;/h4&gt; &lt;h5&gt;Categories&lt;/h5&gt; &lt;p&gt;From a given set of test classes, the &lt;code&gt;Categories&lt;/code&gt; runner runs only the classes and methods that are annotated with either the category given with the &lt;code&gt;@IncludeCategory&lt;/code&gt; annotation, or a subtype of that category. Either classes or interfaces can be used as categories. Subtyping works, so if you say &lt;code&gt;@IncludeCategory(SuperClass.class)&lt;/code&gt;, a test marked &lt;code&gt;@Category({SubClass.class})&lt;/code&gt; will be run. &lt;p&gt;You can also exclude categories by using the &lt;code&gt;@ExcludeCategory&lt;/code&gt; annotation &lt;p&gt;Example:&lt;pre&gt;&lt;code&gt;public interface FastTests { /* category marker */ }&lt;br /&gt;public interface SlowTests { /* category marker */ }&lt;br /&gt;&lt;br /&gt;public static class A {&lt;br /&gt;    @Test&lt;br /&gt;    public void a() {&lt;br /&gt;        fail();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    @Category(SlowTests.class)&lt;br /&gt;    @Test&lt;br /&gt;    public void b() {&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@Category({SlowTests.class, FastTests.class})&lt;br /&gt;public static class B {&lt;br /&gt;    @Test&lt;br /&gt;    public void c() {&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@RunWith(Categories.class)&lt;br /&gt;@IncludeCategory(SlowTests.class)&lt;br /&gt;@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite&lt;br /&gt;public static class SlowTestSuite {&lt;br /&gt;  // Will run A.b and B.c, but not A.a&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;@RunWith(Categories.class)&lt;br /&gt;@IncludeCategory(SlowTests.class)&lt;br /&gt;@ExcludeCategory(FastTests.class)&lt;br /&gt;@SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite&lt;br /&gt;public static class SlowTestSuite {&lt;br /&gt;  // Will run A.b, but not A.a or B.c&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;h5&gt;Bug fixes&lt;/h5&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;github#16: thread safety of Result counting &lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-656288520908358123?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/656288520908358123/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=656288520908358123' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/656288520908358123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/656288520908358123'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/12/junit-48-freigegeben.html' title='JUnit 4.8 freigegeben'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-8964770941138004320</id><published>2009-11-22T16:55:00.001+01:00</published><updated>2009-11-22T16:55:02.739+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Swing'/><title type='text'>Update von Swing Look and Feel Synthetica V2.9 – tolle Screenshots</title><content type='html'>&lt;p&gt;Die Version 2.9 verbesser der Aussehen insbesondere bei den neuen Java 6 Updates. Infos gibt &lt;a title="http://weblogs.java.net/blog/wzberger/archive/2009/11/22/synthetica-blackeye-highlights" href="http://weblogs.java.net/blog/wzberger/archive/2009/11/22/synthetica-blackeye-highlights"&gt;http://weblogs.java.net/blog/wzberger/archive/2009/11/22/synthetica-blackeye-highlights&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;img height="145" alt="Window Shape" src="http://www.javasoft.de/images/screenshots/syntheticaBlackEye/highlights/windowTranslucent.png" width="300"&gt;&lt;/p&gt; &lt;p&gt;&lt;img height="246" alt="Smart Panel Background" hspace="20" src="http://www.javasoft.de/images/screenshots/syntheticaBlackEye/highlights/smartBackground.png" width="190"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img height="244" alt="Outer Focus" hspace="20" src="http://www.javasoft.de/images/screenshots/syntheticaBlackEye/highlights/outerFocus.png" width="216"&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img height="170" alt="Disabled Icons" hspace="20" src="http://www.javasoft.de/images/screenshots/syntheticaBlackEye/highlights/disabledIcon1.png" width="170"&gt;&lt;img height="170" alt="Disabled Icons" src="http://www.javasoft.de/images/screenshots/syntheticaBlackEye/highlights/disabledIcon2.png" width="170"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img height="79" alt="ProgressBar" hspace="20" src="http://www.javasoft.de/images/screenshots/syntheticaBlackEye/highlights/progressBar.png" width="169"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img height="290" alt="Alternating Tabe Rows" hspace="20" src="http://www.javasoft.de/images/screenshots/syntheticaBlackEye/highlights/alternatingTableRows.png" width="354"&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;img height="591" alt="JFileChooser Popup" hspace="20" src="http://www.javasoft.de/images/screenshots/syntheticaBlackEye/highlights/fileChooserPopup.jpg" width="390"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-8964770941138004320?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/8964770941138004320/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=8964770941138004320' title='2 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/8964770941138004320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/8964770941138004320'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/11/update-von-swing-look-and-feel.html' title='Update von Swing Look and Feel Synthetica V2.9 – tolle Screenshots'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-1202035294256941310</id><published>2009-11-21T18:25:00.002+01:00</published><updated>2009-12-03T05:19:04.827+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Insel'/><title type='text'>Der vorgegebene Konstruktor (engl. default constructor) und Begriffsverwirrungen</title><content type='html'>&lt;h5&gt;Wenn wir in unserer Klasse überhaupt keinen Konstruktor angeben, legt der Compiler automatisch einen an. Dieser Konstruktor nennt Sun default constructor, was wir als &lt;i&gt;vorgegebener Konstruktor&lt;/i&gt; (selten auch &lt;i&gt;Vorgabekonstruktor&lt;/i&gt;) eindeutschen wollen.&lt;/h5&gt;&lt;p&gt;Schreiben wir nur &lt;p&gt;class Player&lt;br /&gt;{&lt;br /&gt;} &lt;p&gt;macht der Compiler daraus immer automatisch: &lt;p&gt;class Player&lt;br /&gt;{&lt;br /&gt;Player() { }&lt;br /&gt;} &lt;p&gt;Der vorgegebene Konstruktor hat immer die gleiche Sichtbarkeit wie die Klasse. Ist also die Klasse public/private/protected, wird auch der automatisch eingeführte Konstruktor public/private/protected sein. Ist die Klasse paketsichtbar, ist es auch der Konstruktor. &lt;h6&gt;Vorgegebener und expliziter Standard-Konstruktor&lt;/h6&gt;&lt;p&gt;Ob ein parameterloser Konstruktor vom Compiler oder Entwickler angelegt wurde ist ein Implementierungsdetail, der für Nutzer der Klasse irrelevant ist. Daher ist es im Grunde egal, ob wir einen Standard-Konstruktor selbst anlegen oder wir uns einen vorgegebenen Konstruktor vom Compiler generieren lassen: im Bytecode lässt sich das nicht mehr unterscheiden. Selbst die JavaDoc API-Dokumentation, von einer public class C1 {} und public class C2 { public C2(){} } wäre strukturell gleich. &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_gE1YIJtpGBw/SwgihhgD2tI/AAAAAAAAALs/HhgZLW24IQc/s1600-h/constructorBytecode1%5B2%5D.png"&gt;&lt;img title="constructorBytecode1" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="137" alt="constructorBytecode1" src="http://lh6.ggpht.com/_gE1YIJtpGBw/Swgii8N6CJI/AAAAAAAAALw/ZUJ8Taw-S8c/constructorBytecode1_thumb.png?imgmax=800" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://lh4.ggpht.com/_gE1YIJtpGBw/SwgikNNL5aI/AAAAAAAAAL0/FzEa3j5n9FU/s1600-h/constructorBytecode2%5B2%5D.png"&gt;&lt;img title="constructorBytecode2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="137" alt="constructorBytecode2" src="http://lh5.ggpht.com/_gE1YIJtpGBw/SwgimsQ6HNI/AAAAAAAAAL4/ik6VBMeEkcg/constructorBytecode2_thumb.png?imgmax=800" width="244" border="0"&gt;&lt;/a&gt;  &lt;p&gt;&lt;em&gt;Bytecode der Klassen C1 und C2 im Vergleich&lt;/em&gt; &lt;p&gt;In der Begriffswelt der Insel heißt ein parameterloser Konstruktor immer Standard-Konstruktor, was natürlich den Unterschied verschwimmen lässt, ob der Standard-Konstruktor von Hand angelegt wurde oder als vorgegebener Konstruktor vom Compiler eingeführt wurde. Um das noch klarer zu unterscheiden, können wir es mit &lt;i&gt;vorgegebener (Standard-)Konstruktor&lt;/i&gt; und &lt;i&gt;expliziter Standard-Konstruktor&lt;/i&gt; weiter präzisieren. &lt;p&gt;Auch wenn der Compiler einen vorgegeben Konstruktor anlegt, ist es oft sinnvoll, einen eigenen Standard-Konstruktor anzugeben, auch wenn der Rumpf leer ist. Ein Grund ist, ihn zu mit JavaDoc zu dokumentieren, eine anderer, die Sichtbarkeit explizit zu wählen, etwa wenn die Kasse public ist, aber der Konstruktor nur die Paketsichtbarkeit haben soll.&lt;/p&gt;&lt;p&gt;&lt;table cellspacing="0" cellpadding="0" border="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td valign="top" width="501"&gt; &lt;p&gt;Begrifflichkeit I In der Java-Language Specification gibt es bei den Konstruktoren nur die Trennungen in &lt;i&gt;no-arg-constructor&lt;/i&gt; (parameterloser Konstruktor) und &lt;i&gt;default constructor&lt;/i&gt; (vorgegebener Konstruktor), aber den Begriff „standard constructor“ gibt es nicht. Viele Autoren übersetzen die englische Bezeichnung „default constructor“ (unserem vorgegebenen Konstruktor) einfach nur mit „Standard-Konstruktor“.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;table cellspacing="0" cellpadding="0" border="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td valign="top" width="501"&gt; &lt;p&gt;Begrifflichkeit II Einige Autoren nennen nur den vom Entwickler explizit geschriebenen parameterlosen Konstruktor „Standard-Konstruktor“ und trennen dies sprachlich vom Compiler generierten Konstruktor, den sie weiterhin „Default-Konstruktor“ nennen. Beide werden dann zusammengefasst einfach parameterlose Konstruktoren genannt. Wenn also etwa die Frage gestellt wird, ob die Deklaration class C { } einen Standard-Konstruktor enthält, ist die Begrifflichkeit des Autors zu prüfen. Wenn der Autor nur den ausprogrammierten parameterlosen Konstruktor „Standard-Konstruktor“ genannt hat, so hätte die Klasse C nach dessen Definition &lt;i&gt;keinen&lt;/i&gt; „Standard-Konstruktor“. Nach der Insel-Definition hätte die Klasse zwar einen vorgegebenen (Standard-)Konstruktor, aber keinen expliziten Standard-Konstruktor.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-1202035294256941310?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/1202035294256941310/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=1202035294256941310' title='5 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1202035294256941310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/1202035294256941310'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/11/der-vorgegebene-konstruktor-engl.html' title='Der vorgegebene Konstruktor (engl. default constructor) und Begriffsverwirrungen'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-6166774009667900189</id><published>2009-11-19T17:40:00.001+01:00</published><updated>2009-11-19T17:40:00.839+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java 7'/><title type='text'>Frustrierend: Java 7 doch später</title><content type='html'>&lt;p&gt;Heute auf der Devoxx Konferenz gab es die Info, dass wegen der neuen Spracheigenschaften sich Java 7 von Februar auf etwa September verschieben wird. Immerhin wird es dann wohl Closures geben und das Projekt Coin wird vermutlich noch mehr aufnehmen, etwa die Aufzählung von mehreren Exceptions im catch-Block.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18862554-6166774009667900189?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/6166774009667900189/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=6166774009667900189' title='0 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/6166774009667900189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/6166774009667900189'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/11/frustrierend-java-7-doch-spater.html' title='Frustrierend: Java 7 doch später'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18862554.post-8481543165096799143</id><published>2009-11-19T17:20:00.001+01:00</published><updated>2009-11-19T17:20:42.922+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java 7'/><title type='text'>Überraschung: Wohl doch Closures in Java 7</title><content type='html'>&lt;ul&gt; &lt;li&gt;&lt;a title="http://weblogs.java.net/blog/editor/archive/2009/11/19/devoxx-surprise-out-nowhere-closures-jdk-7" href="http://weblogs.java.net/blog/editor/archive/2009/11/19/devoxx-surprise-out-nowhere-closures-jdk-7"&gt;http://weblogs.java.net/blog/editor/archive/2009/11/19/devoxx-surprise-out-nowhere-closures-jdk-7&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a title="http://java.dzone.com/news/closures-coming-java-7" href="http://java.dzone.com/news/closures-coming-java-7"&gt;http://java.dzone.com/news/closures-coming-java-7&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a title="http://www.javac.info/closures-v06a.html" href="http://www.javac.info/closures-v06a.html"&gt;http://www.javac.info/closures-v06a.html&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/18862554-8481543165096799143?l=www.tutego.com%2Fblog%2Fjavainsel' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/8481543165096799143/comments/default' title='Kommentare zum Post'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=18862554&amp;postID=8481543165096799143' title='1 Kommentare'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/8481543165096799143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18862554/posts/default/8481543165096799143'/><link rel='alternate' type='text/html' href='http://www.tutego.com/blog/javainsel/2009/11/uberraschung-wohl-doch-closures-in-java.html' title='Überraschung: Wohl doch Closures in Java 7'/><author><name>Christian Ullenboom</name><uri>http://www.blogger.com/profile/02403398196910607248</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01526790562813987856'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>