Being a Java Enterprise Developer

The lonely Shepherd

Bis zum Feierabend ist noch ein bisschen Zeit, und so widme ich mich meinem aktuellen Projekt. Es geht um unser Vertragsfreischaltportal, eine mittlerweile doch recht stattliche Java-Enterprise-Applikation, von JBoss AS4 auf JBoss AS5 (und in weiterer Folge auf JBoss AS6) zu migrieren. Einer der Hauptentwickler dieses Systems meinte unlängst, nachdem er wieder einmal länger nach einer Lösung für ein eigentlich triviales Problem suchte, dass der Spruch, wie jemand zu einem kleinen Vermögen kommt, auch ganz gut für Webapplikationen passen würde. Hat man viel Geld, dann entwickle man Webanwendungen, hat man sehr viel Geld, dann verwende man dazu JSF. Ganz unrecht hat mein Kollege sicherlich nicht. Irgendwie sind wir tatsächlich vor einiger Zeit gewaltig vom Weg abgekommen. Das beginnt bereits beim statuslosen HTTP, das nur über Umwege für solche Applikationen nutzbar gemacht werden kann, und erreicht seinen absoluten Höhepunkt, wenn HTML-Tags, CSS-Anweisungen, JavaScript-Befehle und Java-Code in einer Skriptdatei aufeinandertreffen. Sogleich werden Erinnerungen an die alten Zeiten wach, als tolle Applikationen noch in wenigen Stunden geschrieben werden konnten – natürlich nicht mit Java Enterprise, sondern mit Visual Basic 6. Sie haben recht, dieser Vergleich ist höchst unfair, doch wäre der Kunde oftmals nicht auch mit zweiter Lösung mehr als zufrieden?

Die Migration geht seit Tagen gut voran. Anstatt die Bibliotheken in die WAR hinzuzupacken, nutze ich nun die vom JBoss AS5 standardmäßig bereitgestellten. Das Upgrade auf JSF 2.0 ging ebenfalls problemlos über die Bühne. Der größte Aufwand hierbei war das bisher eingesetzte QuipuKit 1.6.2 durch OpenFaces 2.0 zu ersetzen. Heute bin ich mit dem Nachbessern etlicher Hibernate Queries beschäftigt. Durch den Versionssprung wird nun plötzlich bei impliziten Joins über Collections eine Exception geworfen. Diese Kurzschreibweise wurde eigentlich auch nie offiziell unterstützt, funktionierte bisher aber trotzdem:

select f.bars.baz from Foo f;            // FALSCH!
select b.baz from Foo f join f.bars b;   // RICHTIG!

Wieder einmal übersehe ich die Zeit, und dadurch, dass ich „im Tunnel bin“, merke ich gar nicht, dass ich ab 17:00 Uhr der einzige Entwickler bin, der sich noch nicht ins Wochenende verabschiedet hat. Üblicherweise lichten sich bei uns an den Freitagen sehr früh die Reihen und so gleicht das Büro oftmals schon am späten Nachmittag einer Geisterfirma. Ich korrigiere Abfrage um Abfrage und kurz vor 20:30 Uhr stelle ich erfreut fest, dass JUnit nun wieder die Lieblingsfarbe aller Tester zeigt, nämlich grün. So lange wollte ich eigentlich gar nicht bleiben – war ich also doch einmal mehr ein Held der Arbeit!

Vienna calling

Ein produktiver Werktag liegt hinter mir. Manchmal kann es aber schon passieren, dass ich mich abends frage, was ich denn den ganzen Tag gemacht habe. Das passiert speziell an Arbeitstagen, an denen ich nach der Lösung eines Problems suche und dazu stundenlang alle möglichen Foren durchkämme. Am Montag soll ich bei meinem Chef vorbeischauen. Er murmelte etwas von einem Artikel im Java Magazin und meinte danach noch zwinkernd, dass ich übers Wochenende schon einmal meinen Lebenslauf auf Vordermann bringen sollte. Ich werde diesen demnächst brauchen. Für die nächste Woche habe ich mir vorgenommen, die JBoss-Migration abzuschließen. Zum Abschluss des Tages geht es mangels Alternative – wie so oft in letzter Zeit – in eine amerikanische Frittenbude mit einem goldenen M an der Fassade. Das sollte ich aus figürlichen Gründen ebenfalls bleiben lassen. Heute zwar noch nicht, aber bestimmt ab Montag, dann .

Bernhard Löwenstein (b.loewenstein[at]gmx.at) ist als Projektleiter und Softwareentwickler für die Potsdamer Intervista AG tätig. Er unterrichtet außerdem als IT-Trainer am WIFI Niederösterreich und schreibt an der TU Wien an seiner Dissertation.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.