Gestern Sonne und heute Regen ohne Ende. Unter solchen Bedingungen, beladen mit zwei Rucksäcken, durch die Stadt zu wandern, macht absolut keinen Spaß. Im Foyer tummelten sich aber schon eine ganze Menge Leute und bis zur ersten Session war es wieder richtig voll.

foyer

Im Augenblick komme ich mir ein wenig verloren vor .  Mit einer Handvoll Leute sitze ich im Kongress-Saal und lausche den ersten Ausführungen von Vaclav Pech über Codeanalyse mit IntelliJ.

Ein paar Features:

  • Mit dem Code Inspector kann eine Analyse des Codes vorgenommen werden. Das Ergebnis wird in einem Report angezeigt. Korrekturen können sofort vorgenommen werden und die Kriterien des Inspectors sind konfigurierbar. Eigene Kriterien können über semantische Suchpattern hinzugefügt werden.
  • Durch automatische Test ist die Entwicklung der Codequalität visualisierbar. In Diagrammen und Tabellen werden die Ergebnisse diesbezüglicher automatischer Tests dargestellt.
  • Analyse von Stracktraces ist möglich.
  • Data Flow Analysis. Das ist sehr interessant. Für eine Klassenvariable kann überprüft werden, welche Werte die Variable haben kann und wo und wie sie im Projekt verändert wird.
  • Kombinierte Unterstützung von HTML und JavaScript in einem JSP File. Kontexthilfe unterscheidet automatisch die Syntax.
  • Duplicate Code Analysis, ein semantischer Check auf identischen Code.
  • Dependency Structure Matrix, zeigt die Abhängigkeiten in einem Projekt an.

oracle

Doug Clarke

Jetzt geht es weiter mit Doug Clarke (Oracle):  Building OSGi Applications with JPA . Umgesetzt mit Helios, EclipseLink und Jetty.

EclipseLink Implementierungen existieren für J2SE, JEE, Spring und OSGi. Entstand aus der TopLink Codebasis von Oracle und ist nun JPA 2.0 Referenz Implementierung. Einsatz von Dali für das Persistence Tooling.  Auch hier sieht man den offensichtlichen Trend für die verstärkte Orientierung in Richtung OSGi.  Das Gemini Projekt unterstreicht dies noch indem hier eine Modularisierung von JEE angestrebt wird.  Vermutlich ist das ein großes Thema auf der WJAX.

EclipseLink ist die Lösung für Java Persistence in OSGi!

Letzte Keynote der Jax: Unlimited data performance for your JVM mit Iran Hutchinson. Wie twitterte einer der Teilnehmer:  Diese Keynote ist technischer als viele der technischen Sessions. Eigentlich, so muss ich gestehen, ich habe gar nicht so recht verstanden, was Iran Hutchinson da auf der Bühne macht.  Offensichtlich lief es nicht so gut ( kill -9 ist ganz schlecht). Dazu murmelte er ständig vor sich hin, der Sinn blieb mir jedoch verborgen.  Als nach der Hälfte seiner Keynote die ersten Zuschauer den Saal verließen wurde mir klar, dass ich nicht der einzige war, dem viele Fragezeichen über der Stirn schwebten.

Heute hatte das 'In-der-Mittagessenschlange-stehen' auch etwas Gutes. Ich konnte meine Telefonate in Ruhe erledigen.  Fast wäre ich noch zur Jigsaw-Session von Dalibor Topic zuspätgekommen. Aber die Macs wollen manchmal wohl auch nicht mit den Projektoren zusammenarbeiten und so dauerte es und dauerte und dauerte...

Aber es hatte durchaus  Charme, die Modularisierungsanstrengungen für JDK7, die im Projekt Jigsaw gebündelt werden, als Analogie zu Shakespeares Romeo und Julia darzubieten.  Es gibt eine Menge neuer Tools, um Pakete und Libraries zu bilden. Allerdings gebricht es noch an den Binaries. Damit werden nur eingefleischte Konfigurationsjunkies den Versuch wagen, die aktuelle Version auf ihrem Rechner zu bauen. Ich bin auf die produktive Version gespannt. Bleibt auch abzuwarten, wie sich alles im Kontext von OSGi entwickeln wird.

dsls

Wer die ArchitekTOUR-Podcasts des Heise-Verlags verfolgt (http://www.heise.de/developer/podcast/) konnte hier auf der Jax sowohl Stefan Tilkov als auch Markus Völter treffen. Letzterer referierte  auch im vorletzten Panel, welches ich mir anschaute.  Thema: DSLs, Modelle und Softwarearchitektur.

Zur Dokumentation einer Architektur sollten formale Modelle benutzt werden (Verarbeitung durch Tools muss möglich sein). DSLs sind eingeschränkte, toolverarbeitbare Sprachen, die zur Beschreibung einer bestimmten Domain verwendet werden können.  Das Beispiel einer DSL für die Modellierung eines OSGi-Systems beeindruckt.  Eine weitere DSL wurde für das Deployment generiert.  Statische Überprüfung der Requirements wurden durch eine weitere Implementierung möglich.  Weiterhin gab es eine  DSL für eine  Skriptsprache zur Ausführung von Lasttests.  Erkenntnis war, dass man sich damit Java angenähert hat. Flexibler und natürlicher wäre es jedoch, wenn Java solche Features selber anzubieten hätte.

Das Beispiel der Roboter, die mit einem DSL-C- Programm und  JetBrains MPS Feature programmiert wurden, ist schon extrem cool. Allerdings ist es nichts, was in kurzer Zeit erlernbar ist. Genial die verschiedenen Sichten auf die Sprache (Code,  Darstellung in Tabelle, Diagramme?).

Fazit:

  • Architektur sollte explizit, ohne Technologieabhängigkeit, beschrieben werden
  • Die Beschreibung sollte formal in Textform erfolgen.
  • DSLs ermöglichen einen gewissen Grad an Automatisierung verschiedener Prozesse (Tests)
  • Bilder sind mehr für Dokumentation (Management-View)
  • Tooling: xtext, Eclipse Modelling Project, MPS

Der letzte Talk (neudeutsch) war wirklich noch einmal ein Highlight. Ursprünglich wollte ich noch einmal Ted Neward sehen, aber dann überwog die Einsicht, lieber etwas früher gen Flughafen zu starten. Hier sitze ich nun auch und denke mit etwas Wehmut an die letzten vier Tage zurück.  Alle Taschen voll mit Informationen, Pläne ohne Ende, viele Vorsätze und im Hinterkopf die Erkenntnis, der Tag hat nur 24 Stunden und es wird nicht anders sein, als im vergangenen Jahr.

Insgesamt hatte ich schon den Eindruck, dass die Qualität der Keynotes ziemlich variiert hat.  Auch das Kaffee- und WLAN-Problem (ob es da einen Zusammenhang gibt?) wird inzwischen zu einer gepflegten JAX-Kultur. Mehr als im vergangenen habe ich  in diesem Jahr eine Menge interessanter Leute getroffen, Gespräche geführt und mich für ein paar Tage aus dem 'normalen' Projektalltag ausklinken können.  Ich freue mich darauf, ein paar bekannte Gesichter zum Java Forum Stuttgart, auf dem Source Talk in Göttingen oder gar bei der WJAX wiederzusehen.

Damit Ende und Aus!