Java 1-2013 | Frühjahr | www. ijug.eu aktuell l Praxis. Wissen. Networking. Das Magazin für Entwickler l e u t k a a v a J Java – 7 7 9 6 1- 9 21 Programmiersprache N S S I R U E mit Tiefgang 0 8 5, x: u el n e B F Neu auf dem Markt H C 0 8 9, Eclipse 4, Seite 18 H: C R Geronimo 3.0, Seite 65 U E 0 6 5, A: Mainframe R U 0 E Modernisieren mit Java, Seite 27 9 4, D: Wissen für Entwickler Garbage Collection, Seite 36 Scrum & Kanban, Seite 61 Java und Oracle i i Kostenlose ADF-Version, Seite 45 iiiiiii 1 PL/SQL-Logik in Java-Anwendungen, Seite 46 i 0 i i Debugging für Forms 11g, Seite 50 3 iJUG 0 9 4 0 3 Verbund 8 7 9 1 9 1 4 iiiiiiiii www.ijug.eu iii Java ist erwachsen Die Java User Group Stuttgart stellt den entsprechenden Rahmen und unser Autor Oliver Böhm findet die richtigen Worte: Es sind mittlerweile 20 Jahre vergangen, seit Java aus dem „Green“- Projekt hervorgegangen ist (siehe Seite 60). 20 Jahre sind ein Alter, bei dem unsereins gerade erwachsen wird. In der IT ist das anders; nur wenige Produkte werden überhaupt so alt. Java er- freut sich bester Gesundheit und dank einer aktiven Community sind Fallstricke und Sackgassen weitgehend ausgeblieben. Von daher gilt es nach wie vor, Java weiterhin gemeinsam auf dem richtigen Kurs zu halten. Ob es mit Java wohl eines Tages so geht wie mit dem IBM-Mainframe? Marc Bauer und Tobias Leicher zeigen in dieser Ausgabe auf, wie wichtig manche Applikationen, die weit zurück im letzten Jahrtausend in Cobol oder PL/I geschrieben wurden, insbesondere für große Unterneh- men sind. Gleichzeitig erklären sie, wie sich heute Java-Anwendungen mit diesen Uralt-Applika- Wolfgang Taschner tionen verbinden lassen. Wie wohl Java in dreißig Jahren ausschauen mag? Chefredakteur Java aktuell In eine ganz andere Richtung blickt Angelo Veltens in seinem Artikel über Linked Data. Ein Thema, mit dem er sich seit dem Studium beschäftigt und das ihn seitdem nicht mehr loslässt. Im Prinzip geht es darum, die Daten, die sich hinter einer Webseite verbergen, zu standardisie- ren und allgemein verfügbar zu machen. Ebenfalls in die Jahre gekommen ist Oracle Forms. Unter anderem dank einer Initiative der DOAG Deutsche ORACLE-Anwendergruppe e.V., die Gründungsmitglied im iJUG ist, konnte das bei Entwicklern beliebte Tool vor einigen Jahren vor dem Aus durch Oracle bewahrt werden. Unser Autor Björn Christoph Fischer zeigt in seinem Artikel, wie man solche Forms-Anwendun- gen nach Java migriert. Frank Christian Hoffmann hingegen gibt hilfreiche Tipps, wie man Java Beans in Oracle Forms einbindet. Darüber hinaus wird es viele Oracle-Entwickler freuen, dass der Hersteller eine lizenzfreie Version seines Application Development Framework (ADF) auf dem Markt gebracht hat (siehe Seite 45). In diesem Sinne wünsche ich Ihnen viel Erfolg mit Ihren Entwicklungsprojekten und hoffe, dass Ihnen auch der eine oder andere Artikel in dieser Java aktuell dabei weiterhilft. Ihr aformatik ® Trainings für Java / Java EE Wissen wie´s geht • Java Grundlagen- und Expertenkurse Unsere Schulungen können gerne (cid:131) • Java EE: Web-Entwicklung & EJB auf Ihre individuellen Anforderungen angepasst und erweitert werden. • JSF, JPA, Spring, Struts aformatik Training & Consulting GmbH & Co. KG • Eclipse, Open Source Weitere Themen und Informationen Tilsiter Str. 6 | 71065 Sindelfingen | 07031 238070 zu unserem Schulungs- und • IBM WebSphere, Portal und RAD Beratungsangebot finden Sie www.aformatik.de • Host-Grundlagen für Java Entwickler unter www.aformatik.de Java aktuell 1-2013 | 3 Inhalt 3 Editorial Wolfgang Taschner 5 Das Java-Tagebuch Andreas Badelt 8 Neues von der JavaOne 2012 Mylène Diacquenod Intergenerational References bei der Garbage Collection, Seite 36 9 Java als Treiber für den Erfolg der Kunden Wolfgang Taschner 11 Datum in Java Jürgen Lampe 16 „Wir möchten nicht, dass Java eine Einzelunternehmens-Plattform wird …“ Interview mit Gil Tene, CTO von Azul Systems und Mitglied im Exe- kutiv-Komitee des Java Community Process (JCP) Das Entity Data Model im Open Data Protocol, Seite 30 18 Ein erster Blick auf Eclipse 4 Dr. Jonas Helming und Marc Teufel 50 Oracle Forms 11g – Debugging, 23 Immer hübsch der Reihe nach … Statusmeldungen und Masken- Uwe Sauerbrei steuerung durch eine Erweiterung des Java-Timers 27 Modernisieren mit Java Frank Christian Hoffmann auf dem Mainframe Marc Bauer und Tobias Leicher 54 Linked Data – ein Web aus Daten Angelo Veltens 30 Java und das Open Data Protocol Klaus Rohe 58 Der Herbstcampus 2012 aus Sicht eines Besuchers 35 „Ich bin sehr zufrieden mit der Steven Schwenke Sprache …“ Interview mit Dominik Dorn, Vorsitzender der Java Student 60 20 Jahre Java, 20 Folien, 20 Sekunden User Group Wien (JSUG) Oliver Böhm Das neue Framework, Seite 18 36 Garbage Collection im Java-Umfeld 61 Scrum & Kanban in der Praxis Mathias Dolag, Prof. Dr. Peter Mandl Martin Dilger und Christoph Pohl 65 Geronimo 3.0 − modulare Hybride 45 Oracle bietet kostenlose ADF-Version fahren gut Detlef Müller Frank Pientka 46 Der Tiger im Tank: PL/SQL-Logik in 22 Impressum Java-Anwendungen optimal nutzen Björn Christoph Fischer Agiles Entwickeln, Seite 61 34 Inserentenverzeichnis 4 | iiiiiiiii www.ijug.eu iii Das Java-Tagebuch Andreas Badelt, Leiter der DOAG SIG Java Das Java-Tagebuch gibt einen Überblick über die wichtigsten Geschehnisse rund um Java – in kompri- mierter Form und chronologisch geordnet. Der vorliegende Teil widmet sich den Ereignissen im dritten Quartal 2012. hoch (12 beziehungsweise 26 Prozent), ses bringen werden (http://openjdk.java. 25. Juli 2012 was zusätzlich unterstreicht, wie schwer es net/jeps/0). http://weblogs.java.net/blog/ ist, JavaFX einzuordnen. Wie heißt es doch editor/archive/2012/08/04/want-know- Codename One gleich: „Prognosen sind schwierig, beson- where-jdks-going-follow-jeps In den Java-Blogs auf oracle.com findet ders wenn sie die Zukunft betreffen.“ sich ein Hinweis auf ein vielversprechen- Nachtrag: Oracle-Blogger Geertjan Wielen- des Projekt namens „Codename One“. Da- ga hat am 10. Oktober 2012 einen interes- 8. August 2012 bei geht es um Werkzeuge zur Erstellung santen Kommentar zum Verhältnis Swing mobiler und nativer Apps auf allen gängi- und JavaFX anhand der Duke‘s Choice Java SE 6: Kostenloser Support verlängert gen Plattformen aus Java heraus. Der Java- Awards 2012 veröffentlicht. Als Reaktion Ursprünglich sollte der kostenlose Support Code wird dann beispielsweise zunächst auf die Aussage „Swing took a bit of a für das JDK 6 im November eingestellt wer- in Objective-C übersetzt, bevor er in eine beating this week“ auf der JavaOne kon- den. Nach vielen Diskussionen wird dieser iPhone-App kompiliert wird. Plug-ins sind statiert er, dass mehr Preisgewinner Java jetzt doch bis Februar 2013 verlängert; un- für Eclipse und NetBeans erhältlich, es ist Swing nutzen als irgendeine andere UI- ter anderem hatte der iJUG eine Umfrage auch ein GUI-Builder verfügbar. Auf den Technologie (wenn man seiner Argumen- durchgeführt (siehe Tagebuch in der letz- ersten Blick sieht das recht ausgereift aus tation folgt): die NATO mit „MICE“, Liquid ten Ausgabe der Java aktuell beziehungs- und könnte eine Lösung für die fragmen- Robotics, AgroSense sowie das Flücht- weise http://www.ijug.eu/home-ijug/aktu- tierte „Mobile-Apps“-Landschaft sein. Al- lingshilfswerk der UN mit einem NetBeans- elle-news/article/oracle-reagiert-auf-for- lerdings ist die Nutzung nur in der Basis- basierten Registrierungstool. derung-der-anwender-und-verlaengert- Version kostenfrei, wobei der Support und http://weblogs.java.net/blog/editor/archi- jdk-6-support.html). Etwas mehr Zeit also, die Anzahl der Builds pro Monat einge- ve/2012/07/28/will-javafx-ever-become- die Migration auf Java SE 7 zu vollziehen schränkt sind. predominant-developing-java-clientdesk- und alle gegebenenfalls noch hinderlichen https://blogs.oracle.com/kevinr/entry/ top-apps-poll-result Bugs auszumerzen. Wie erwartet, ist das codename_one Echo geteilt: Die einen sind froh über diese Entscheidung, für die anderen lässt damit 4. August 2012 der Druck zu sehr nach, damit alle auf das 25. Juli 2012 neueste Release umsteigen und gemein- Wer kennt die JEPs? sam Java nach vorn bringen. Umfrage: Die Zukunft von JavaFX java.net-Chefredakteur Kevin Farnham https://blogs.oracle.com/henrik/entry/ Eine java.net-Umfrage zur Zukunft von rührt die Werbetrommel für den „JDK En- java_6_eol_h_h JavaFX hat ein sehr uneinheitliches Mei- hancement-Proposal & Roadmap Process“ nungsbild ergeben. Befragt, ob JavaFX (JEP) und ich greife das gerne auf, da dieser jemals führend für die Entwicklung von Prozess ein geeignetes Mittel ist, um alle 10. August 2012 Java-Client und Desktop-Apps sein wird, Interessierten in die Weiterentwicklung antworteten 23 Prozent der immerhin 660 des JDK einzubeziehen. JEPs sollen dazu Kein Jigsaw im JDK 8 – heiße Diskussionen Teilnehmer mit „Niemals“. Fast ein Drittel dienen, Verbesserungsvorschläge jenseits oder heiße Luft? allerdings glaubt, dass das innerhalb der von trivialen Änderungen strukturiert zu Nach Mark Reinholds Ankündigung, das nächsten zwei beziehungsweise fünf Jahre erfassen und daraus Roadmaps für die Java-Modulsystem „Project Jigsaw“ auf (14 Prozent und 17 Prozent) eintreten wird. zukünftigen JDK-Releases zusammenzu- das JDK 9 zu verschieben, gab es teilwei- Weitere sechs Prozent sind der Meinung, stellen. Sie stehen nicht in Konkurrenz zum se heftige Reaktionen aus der Community dass es bis zu zehn Jahre dauert, drei Pro- JCP, sondern sind eine Ergänzung dazu. Je- (Blogger Markus Eisele sprach von: „Plan zent rechnen damit, dass JavaFX mehr als der kann so Verbesserungsvorschläge für B? That is Plan N … Nothing“). Auf java.net zehn Jahre brauchen wird, sich aber dann das JDK einreichen (http://openjdk.java. wurde daher eine Umfrage durchgeführt doch durchsetzt. Die Zahl der „Ich weiß net/jeps/1) und durch diese lässt sich auch mit dem Ziel, ein etwas umfassenderes nicht“- und „Andere“-Stimmen ist recht leicht verfolgen, was die nächsten Relea- Stimmungsbild aus der Community zu Java aktuell 1-2013 | 5 Java-Tagebuch bekommen. Sie endete gestern. Die Betei- gefallen hat, ist der Link auf das „unofficial zent) oder etwas ganz anderes im Sinn (17 ligung (445 Teilnehmer) war recht niedrig manifesto“ im Blog (http://ceylon-lang. Prozent). Die Teilnehmerzahl war diesmal für ein so heiß diskutiertes Thema. Liegt org/blog/2012/08/13/latest-news/ bezie- wieder etwas höher (683). das an der Sommerpause? Oder denkt hungsweise http://progmofo.com), das ich http://weblogs.java.net/blog/editor/ar- eine große Zahl der Entwickler, dass für ein zugegebenermaßen noch nicht kannte: chive/2012/08/29/poll-result-community- eingebautes Modulsystem nicht nur der eine nicht ganz ernst gemeinte Replik auf prefers-major-java-releases-regular-time- JDK 8 „Release Train“, sondern generell der das Agile Manifest für den Agile-gestress- intervals-also-lambda-jigsaw-and-m Zug abgefahren ist? Haben sie sich bereits ten Entwickler. mit OSGi und anderen Optionen arrangiert http://ceylon-lang.org/documentation/1.0/ und die Diskussionen sind nur noch für roadmap/#milestone_3_done 30. August 2012 den harten Kern der Community relevant? Von denjenigen, die abgestimmt haben, Java EE 7 Roadmap „realigned” will die größte Gruppe (29 Prozent) lieber 24. August 2012 Nach den Diskussionen um Java SE 8 wird das gesamte JDK 8 verschieben, während nun auch die Release-Planung für Java 23 Prozent die Einhaltung des JDK-8-Zeit- Mark Reinhold veröffentlicht EE 7 neu aufgerollt. Specification-Lead plans als wichtiger ansehen. Immerhin 20 Q&A-Blog-Eintrag zu Project Jigsaw Linda DeMichiel berichtet von zu lang- Prozent sind der Meinung, dass Jigsaw Oracle reagiert auf die Diskussionen um samem Fortschritt für wichtige Aspekte sowieso zu spät kommt und es keine Rolle Jigsaw und das JDK 8. Mark Reinhold hat in der PaaS- und Multi-Mandanten-Features. mehr spielt. Der Rest entfällt auf „Ich weiß seinem Blog einen Q&A-Eintrag zu diesem Teilweise liegt das an dem generell lang- nicht“ und „Andere“. Thema veröffentlicht. Ein guter und gut samen Reifeprozess dieser Themen aller- http://weblogs.java.net/blog/editor/archi- vorbereiteter Schritt, um die Community orts – schließlich soll im Rahmen des JCP ve/2012/08/11/poll-result-mixed-views- einzubinden: Unter anderem verlinkt er nur eine Standardisierung vorgenommen project-jigsaw-removal-java-8 auf eine Mail aus dem OpenJDK-Verteiler werden und nicht die eigentliche Innova- mit einer Liste von (externen) Blogs und tion stattfinden. Um das Release nicht um Artikeln, die für die Entscheidungsfindung mehr als ein Jahr zu verschieben, sollen 14. August 2012 der Expert Group zusammengestellt wur- die entsprechenden Features erst mit Java de. Weiteres Feedback möge über die „Java EE 8 kommen, so der Vorschlag an die Ex- Java SE 7 Update 6: SE 8 Comments List“ direkt an die Expert pert Group. Auch hier gibt es enttäuschte Mac OS X und ARM-Port im Fokus Group gesendet werden. Die Sache ist bei Reaktionen aus der Community, auch weil JDK 7u6 ist veröffentlicht worden. Die we- Erscheinen des Tagebuchs zwar schon ab- die Ankündigung relativ spät kommt (EE 7 sentlichen Neuerungen: Der Mac-OS-X- geschlossen, aber es sei hier als generell sollte ursprünglich schon im Q4 2012 ver- Port ist jetzt vollständig. Außerdem gibt es gute Möglichkeit erwähnt, Feedback zu al- öffentlicht werden und wurde vor einiger einen Port für Linux auf ARM-Prozessoren, len möglichen anderen Themen direkt an Zeit auf das Frühjahr 2013 verschoben). Im der allerdings nicht alle JDK-Features um- die „Entscheider“ hinter dem JDK-Projekt Gegensatz zu Project Jigsaw scheint aber fasst und kein „Desktop JRE“ enthält (was zu schicken. eine deutliche Mehrheit DeMichiels Mei- für die ARM-Zielgruppe sicher kein Hinder- http://mreinhold.org/blog/late-for-the- nung zu teilen, dass die Cloud noch ein nis ist). Henrik Ståhl erklärt in seinem Blog train-qa wenig Zeit braucht. Details dazu, insbesondere zum Linux/ http://blog.eisele.net/2012/08/realigning- ARM-Port. java-ee-7-promise-is-cloud.html https://blogs.oracle.com/henrik/entry/ 29. August 2012 oracle_releases_jdk_for_linux Umfrage zu regelmäßigen „Release Trains“ für Java 5. September 2012 Eine weitere java.net-Umfrage endete ges- 16. August 2012 tern, diesmal zur Frage „Soll Java einen fes- Apache Wicket 6.0 veröffentlicht ten Release-Zeitplan haben“? Während bei Gute Neuigkeiten für Web-Entwickler: Ceylon: Milestone 3 erreicht der vorherigen Umfrage konkret zu Project Wicket 6.0 ist veröffentlicht worden – ein Die Programmiersprache Ceylon hat vor Jigsaw nur 23 Prozent der Teilnehmer den deutlicher Zahlensprung von 1.5, die kurzem Milestone 3 (von 5 auf dem Weg Zeitplan über den Inhalt gestellt haben, Nummerierung wurde umgestellt und zum Release 1.0) erreicht, die Ceylon IDE sieht es bei dieser allgemeineren Frage dieses Release ist das sechste „Major Re- (ein Eclipse-Plug-in) ist heute bereits in der schon anders aus: 48 Prozent sprechen lease“. Für die neue Version wurde viel im Version M3.2 freigegeben worden. Einige sich dafür aus, weitere zwölf Prozent wün- Bereich „JavaScript/Aja“ getan. So wurde der neuen Features: „Nested Interfaces“, schen sich einen festen Zeitplan „mit etwas die eigene JavaScript-Bibliothek komplett anonyme Funktionen und Zugriff auf hier- Flexibilität“. Nur 18 Prozent würden die Re- durch JQuery ersetzt; gleichzeitig hat man archische Filesysteme. Außerdem kann der lease-Pläne vollständig der Verfügbarkeit darauf geachtet, den Austausch der Ajax- Compiler jetzt auch JavaScript statt Byte- von sinnvollen Neuerungen unterwerfen. Implementierung möglichst einfach zu code erzeugen. Was mir aber am besten Der Rest hatte keine feste Meinung (5 Pro- gestalten, sodass auch andere Frameworks 6 | iiiiiiiii www.ijug.eu iii eingesetzt werden können. Ein weiteres (vier Prozent), Clojure, JRuby oder irgend- zubringen, hat Oracle auch eine eigene Feature ist die (experimentelle) Unterstüt- einer anderen bereits existierenden Spra- „Java-Embedded“-Konferenz am Rande zung für WebSockets. che (je ein Prozent) eine Ablösung von der JavaOne im Oktober in San Francisco https://blogs.apache.org/foundation/ent- Java in diesem Zeitraum zu. Sechs Prozent organisiert. ry/the_apache_software_foundation_an- glauben, dass es eine noch zu erfindende https://blogs.oracle.com/henrik/entry/ nounces31 Sprache schafft. oracle_releases_two_new_embedded http://weblogs.java.net/blog/editor/ar- chive/2012/09/13/poll-result-community- 13. September 2012 believes-java-will-still-be-dominant-jvm- 3. Oktober 2012 language-10-years-now Java 7 bei 79 Prozent Anteil? Java-Deployment über Apples App Store Henrik Ståhl hat einen Blog-Eintrag mit Die Zusammenarbeit zwischen Oracle und dem reißerischen Titel „Java 7 Adoption at 21. September 2012 Apple funktioniert. Noch vor nicht allzu 79 Prozent“ veröffentlicht. Er bezieht sich langer Zeit musste man befürchten, dass dabei auf eine aktuelle Statistik des Cloud- Project Jigsaw verschoben Java auf Mac OS zum Aussterben verurteilt Providers Jelastic und schwächt die Aus- Nun ist es offiziell: Die Expert Group zu ist. Jetzt gab es auf der JavaOne eine Ses- sage direkt etwas ab („this is a single data Java SE 8 hat entschieden, Jigsaw auf das sion, in der ausführlich erklärt wurde, wie point“), um dann allerdings hinzuzufügen, folgende Release zu verschieben. Der Java-Applikationen auf dem Mac einge- dass sich dies mit anderen von Oracle ge- IBM-Vertreter macht aber deutlich, dass setzt werden, insbesondere über den App sammelten Statistiken deckt (Downloads, er trotzdem Grundlagen bereits in Java SE Store. Details unter: Online-Aktivitäten etc.). Aber diese Zahlen 8 sehen möchte (das Metadaten-Format, https://blogs.oracle.com/thejavatutorials/ wirken trotzdem überoptimistisch. Soft- erste Definitionen von Modulgrenzen), da entry/javaone_2012_java_deployment_ ware, die bei Jelastic in der Cloud gehostet die Änderungen insgesamt zu groß für ein on wird, ist sicher mehrheitlich für die Cloud einzelnes Release seien. „Runtime Enforce- neu entwickelt worden. Wer würde da ment“ sei dann ein Thema für Java SE 9. noch mit einem älteren Release loslegen, Das wäre zumindest ein Hoffnungsschim- 6. Oktober 2012 das bald keinen freien Support mehr hat? mer, damit sich das Schicksal von Jigsaw Ähnliches gilt auch für andere Statistiken nicht bei jedem Release wiederholt. JavaOne-Nachlese – es gibt einfach mehr Anlässe, ein neu- http://mreinhold.org/blog/on-the-next- Die JavaOne ist vorgestern zu Ende ge- es Release herunterzuladen oder Fragen train gangen, Zeit für eine Mini-Nachlese. Wel- dazu zu stellen, als ein Release, das schon che Neuigkeiten und Strategien wurden viele Jahre alt ist und bei dem sich die verkündet, welche Eindrücke sind bei den Downloads in der Regel auf Security Up- 25. September 2012 Teilnehmern hängen geblieben? Die geän- dates beschränken. Es wird auch in einem derten Roadmaps für Java SE 8 und Java Jahr noch einen hohen Prozentsatz von Oracle bringt neue EE 7 waren natürlich ein Thema, aber zur Anwendungen auf Java 6 (und früher) ge- Java-Embedded-Produkte heraus Konferenz waren die Weichen ja bereits ben – mit kostenpflichtigem Support oder Oracle marschiert im Embedded-Segment gestellt. Die neuen Produkte im Bereich Mut zum Risiko. weiter voran. Heute hat der Konzern zwei „ME und Embedded“ wurden auch schon https://blogs.oracle.com/henrik/entry/ neue Produkte veröffentlicht: Java ME Em- einige Tage vorher ins Rampenlicht ge- java_7_adoption_at_79 bedded 3.2 (basierend auf dem Java Wirel- stellt. Generell fehlten die großen oder ess Client) und die Java Embedded Suite überraschenden Neuheiten, aber nach 7.0, die auf Basis von Java SE Embedded Meinung vieler Teilnehmer stand die Kon- 13. September 2012 einen integrierten Middleware-Stack lie- vergenz der verschiedenen Produkte und fert. Java ist ja ursprünglich für den Einsatz Technologien ganz vorne. Ein paar Splitter Java.net-Umfrage: Welche Sprache wird in zehn in TV-Steuerungen und Ähnlichem ent- aus den Keynotes und anderen Sessions, Jahren bei Neuentwicklungen für die JVM führen? wickelt worden, aber wer hätte gedacht, die das auch unterstreichen: Das Zusam- Noch eine interessante java.net-Umfrage. dass darauf mal ein GlassFish-Application- menwachsen der HotSpot- und JRockit- Diesmal wurden erstaunliche 1038 Stim- Server läuft? Oracle-Blogger wie Terrence VMs soll mit JDK 8 abgeschlossen sein. men abgegeben, das Thema scheint also Barr und Henrik Ståhl präsentieren direkt JavaFX 8 (neue Nummerierung) wird das die Leute zu bewegen. Auch etwas über- Details zum technischen Umfang und zur Default-UI-Toolkit für Java SE 8 Embedded raschend ist das Resultat, nämlich dass Zielsetzung. Dabei wird immer wieder der werden. Mit Java SE 9 sollen relevante Teile die überwältigende Mehrheit (68 Prozent) Begriff „Java im Internet der Dinge“ verwen- von JavaFX im JCP standardisiert werden auch in zehn Jahren noch mit der Sprache det. Dieser Satz geistert schon seit mehr (was offensichtlich bedeutet, dass JavaFX Java als „führend“ rechnet. Zehn Jahre sind als zehn Jahren herum, aber offensichtlich den Standard vorgibt). Project Nashorn, schließlich ein langer Zeitraum. Nur weni- ist der Markt aus Oracles Sicht jetzt lang- die neue JavaScript-Engine für die JVM, ge trauen Scala (sieben Prozent), Groovy sam reif. Um das Thema weiter voran- soll im Rahmen des OpenJDK weiterführt Java aktuell 1-2013 | 7 Java-Tagebuch werden. Bei den Tools tauschen NetBeans alles rund läuft: Beide Seiten können inzwi- auf der JavaOne waren, oder sich dort (dessen neue Version 7.3 zur JavaOne als schen konstruktiv miteinander umgehen. kaum entscheiden konnten zwischen den Beta freigegeben wurde) und JDeveloper vielen parallelen Streams. zumindest einzelne Features aus (bislang https://blogs.oracle.com/java/entry/java- eher von NetBeans in Richtung JDevel- 8. Oktober 2012 one_content_available_for_free oper). Und last but not least: Die JavaOne Andreas Badelt ist Technology und James Gosling sind wieder vereint! JavaOne: Hunderte Stunden Material Architect bei Infosys Limited. Der Vater von Java war Teil der Java-Com- für die „ruhige Jahreszeit“! Daneben organisiert er seit munity-Keynote und wurde begeistert Sämtliche JavaOne-Sessions einschließlich 2001 ehrenamtlich die Spe- empfangen. Generell scheint die JavaOne der BoF-Treffen und Tutorials sind frei über cial Interest Group (SIG) De- wieder ein großes Fest für die Community das Oracle-Media-Network verfügbar – velopment sowie die SIG Java zu sein, das Oracle-Bashing vergangener Hunderte von Stunden Material! Das ist ein der DOAG Deutsche ORACLE- Jahre war nicht zu hören. Auch wenn nicht sehr sinnvolles Geschenk an alle, die nicht Anwendergruppe e.V. UPDATE An dieser Stelle erhalten Sie in jeder Ausgabe ein Update über das Geschehen in der Java-Comunity Neues von der JavaOne 2012 Mylène Diacquenod, DOAG Online Oracle betonte auf der Veranstaltung die Kontinuität der Arbeit mit der Community. Die Java-Keynote war auch Anlass, eine Bilanz zu ziehen und die weitere Roadmap vorzustellen. Java SE erfreut sich insgesamt stärkerer Be- JavaScript-Implementierung auf der JVM langfristig realisierbar sein, damit eine Auf- teiligung von Unternehmen wie Suse oder gearbeitet, die auch besser mit Java zu- wärtskompatibilität weiterhin gewährleis- CBOE. Auch Open JDK findet immer mehr sammenspielt. Ferner existiert seit JDK 7 tet werden kann. Zuspruch und verbucht 68 neue Einzel- mit „invokedynamic“ eine Unterstützung Während der Schwerpunkt bei Java EE 7 Kontributoren. Im Java Community Pro- dynamischer Sprachen auf der JVM. Auch klar auf HTML 5 und WebSocket lag, steht cess (JCP) wurde die Zusammenführung die aktuellen Fortschritte in puncto Modu- in Java EE 8 klar die Unterstützung von der beiden Executive Committees von Java larität basierend auf Jigsaw wurden vorge- Cloud-Architekturen im Vordergrund. Des- SE und Java ME eingeleitet. stellt. Diese ist für Java 9 vorgesehen. wegen werden Erfahrungen in entstehen- Das Projekt „Penrose“, das die Interopera- 2011 kündigte Oracle auch die Integration den PaaS-Implementierungen gesammelt bilität zwischen Project Jigsaw und OSGi von Java FX 3.0 in JDK 8 an. Die Umsetzung und an der Mandantenfähigkeit zur Unter- sicherstellen soll, wurde vorgestellt. Gear- soll tatsächlich kommen – allerdings unter stützung einer SaaS weitergearbeitet. beitet wurde auch am Open-Sourcing von dem Namen „Java FX 8“. Java FX ist noch Java FX sowie dem Projekt „Sumatra“. Die- nicht Teil der Java-SE-Spezifikationen. Weitere Informationen ses soll eine transparente Unterstützung Mit Java Embedded sieht Oracle einen Markt, • https://blogs.oracle.com/javaone/entry/ von Graphics Processing Units (GPU) und der kommerzielles Potenzial hat und noch the_javaone_2012_sunday_technical Accelerated Processing Units (APU) für die nicht erschlossen wurde. Aus diesem Grund • http://medianetwork.oracle.com/vi- Java Virtual Machine (JVM) ermöglichen, will Oracle die Entscheider im Rahmen der deo/player/1871687106001 was wiederum zu einer besseren Perfor- Konferenz „Java Embedded @JavaOne“ mance führen soll. Inzwischen ist Java 7 für adressieren. Das sogenannte „Internet of zwei weitere Plattformen verfügbar: Mac Things“ – so das Schlagwort der Keynote – Mylène Diacquenod ist seit Juli OSX und Linux/ARM. soll von Java Embedded profitieren. 2011 als Online-Redakteurin bei Für JDK 8 geht das Projekt Lambda, In der jüngsten Vergangenheit war das der DOAG tätig. Sie hat es sich das 2011 angekündigt wurde, in die finale Java-Plug-in mehrfach aufgrund von Secu- zum Ziel gesetzt, die Online- Phase, während die Modularität Bestand- rity-Problemen negativ aufgefallen. Oracle Medien der DOAG als wichtige teil von JDK 9 ist. Im Projekt „Nashorn“ beabsichtigt, sich nun davon zu verab- Plattform für den Wissensaus- wird an einer neuen und performanteren schieden. Allerdings wird das Projekt nur tausch zu etablieren. 8 | iiiiiiiii www.ijug.eu iii Java als Treiber für den Erfolg der Kunden Wolfgang Taschner, Chefredakteur Java aktuell Als führender Web-Dienstleister in der Schweiz und in Deutschland profitiert Namics von den Erfahrungen und der Kompetenz seiner Java-Entwickler. Diese setzen sich intensiv mit der Programmiersprache auseinander und sind auch gewillt, neue Wege zu gehen. Java-Entwicklung findet bei Namics im wahl der optimalen Technologie. Sobald Alle Aktivitäten rund um die Programmie- Umfeld von kommerziellen Produkten konzeptionell die Weichen gestellt sind, rung in Java sind in einer Java-Practice ge- statt. Der Fokus liegt auf der System-Inte- fängt die eigentliche Entwicklung an. bündelt, die sowohl die Arbeit der Entwick- gration von Content-Management- und Der Erfolg von Namics ist eng mit dem ler als auch die der Architekten und CTOs E-Commerce-Lösungen auf der Basis von Content-Management-System von Adobe umfasst. Diese Practice stellt sicher, dass Adobe WCMS und Hybris Multichannel verbunden, das in Java programmiert ist im gesamten Unternehmen eine standar- Commerce. Daraus entstehen individuelle und über Java an alle Arten von Applika- disierte Methodik im Entwicklungsprozess Web-Lösungen für den Kunden. Deren Lis- tionen angepasst werden kann. „Java ist und einheitliche Entwicklungswerkzeuge te ist lang, darunter weltbekannte Unter- für uns der Schlüssel zur Flexibilität“, er- eingesetzt sind. Sie umfasst auch die Wei- nehmen aus der Automobilbranche, aus klärt Sven Niedner, Head of Technology. terbildung sowie regelmäßige Technolo- dem öffentliche Bereich sowie Versiche- „Die Funktionalität der Standard-Version gie- und Innovations-Updates. So sind eine rungen und Banken. des Content-Management-Systems ist in konstant hohe Qualität, breit abgestütztes „Unser Anspruch ist es, die Online- vielen Dingen sehr eingeschränkt. Deshalb Know-how und eine hohe Innovationsfä- Präsenz unserer Auftraggeber nachhaltig erweitern wir es überall dort, wo der Kun- higkeit sichergestellt. zu prägen, um somit die Firmen online de Bedarf hat, und implementieren neue Die Technologie ist allerdings nur ein messbar erfolgreicher zu machen“, erklärt Geschäftsfunktionen.“ Dafür sind bei Na- Teil des Erfolgs von Namics. Der Schlüssel Patrick Habel, verantwortlich für Head of mics mehr als hundert Java-Entwickler ak- sind die Menschen, die Kompetenz besit- Marketing. „Dazu stellen wir uns den On- tiv. Sie arbeiten projektbezogen in einzel- zen und bereit sind, diese weiterzugeben. line-Herausforderungen der Unternehmen nen Teams, je nach Anforderung zwischen Die Mitarbeiterinnen und Mitarbeiter üben und bieten entsprechende Lösungen – bis drei und zwölf Entwicklern. Sven Niedner eine kreative Arbeit in einem teamorien- hin zum kompletten Portal. Alle Aufgaben fasst zusammen: „Java hat bei Namics stra- tierten, leistungsfördernden Umfeld aus. haben eines gemeinsam: Sie sind busi- tegische Bedeutung und Tradition. Seit Sie können dort kontinuierlich dazulernen nesskritisch für das Unternehmen.“ mehr als zehn Jahren implementieren wir und sich weiterentwickeln. Die Beschäftig- Typischerweise wird ein Projekt in en- Java-Technologie in unseren Commerce-, ten kommen je zur Hälfte aus dem gestal- ger Zusammenarbeit mit dem Auftragge- Content-Management- und Produktinfor- terischen und aus dem technologischen ber ausgeführt. Das beginnt mit der Aus- mations-Projekten.“ Bereich. Teamarbeit: Im Rahmen eines Kreativ-Tages werden Floße gebaut und anschließend zu einem lustigen Rennen eingesetzt Java aktuell 1-2013 | 9 Java in der Praxis „Software Engineering“. Die vorgegebenen dazu lässt sich mit modernen Sprachen Projektziele erreicht das interdisziplinär wie Scala oder Ruby vieles einfacher reali- aufgestellte Team dann über die einzelnen sieren.“ Ob diese modernen Sprachen mit Sprints und gewährleistet so eine optimale Java kombiniert werden dürfen, hängt von Lösung für die Kunden. der Infrastruktur des Kunden ab. „Leider Im Großraum-Büro der Entwickler hängt geht das dann häufig zugunsten von Pure ein Scrum-Board an der Wand, davor steht Java aus.“ ein Tisch mit Poker-Chips. „Diese Poker- Stefan Bechtold, ebenfalls Software En- Chips repräsentieren den Aufwand für gineer, sieht im reifen Alter von Java aber einen bestimmten Teil eines Projekts“, auch Vorteile: „Die Sprache ist über die Zeit erläutert Software Engineer Pascal Erb. gewachsen und bringt deshalb eine ent- „Jeder Entwickler liefert beim Stand-up- sprechende Robustheit mit. Java könnte Stand der Dinge: Das Scrum-Board dokumen- Meeting die Anzahl der Chips ab, von der aber in manchen Bereichen sicherlich eine tiert den Projekt-Status er der Meinung ist, dass er diese im Projekt elegantere und schlankere Programmie- abgearbeitet hat. Auf diese Weise ist der rung bieten.“ Namics ist erst vor fünfzehn Jahren in Stand des Projekts jederzeit auch optisch Form eines Spin-offs der Hochschule St. ersichtlich.“ Gleichzeitig wird der Projekt- Nachwuchs gesucht Gallen als Beratungsunternehmen für Lo- verlauf auf dem Scrum-Board an der Wand Die interessanten Projekte machen Namics tus Notes entstanden. Später kam das Con- gegenüber dem Team und dem Kunden auch zu einem interessanten Arbeitgeber. tent-Management hinzu. Das Portfolio ist dokumentiert. Die Entwickler bewegen Deshalb ist man auch laufend auf der Su- mit dem Aufkommen neuer Technologien ihre Zettel und diskutieren untereinander che nach Java-Entwicklern. Nico Gerhold, und dem steigenden Bedarf der Kunden darüber. Human Resources Manager, skizziert die laufend gewachsen. Aus dem ursprünglich Ein weiteres auffallendes Symbol in Anforderungen: „Das Wichtigste bei einem achtköpfigen Team ist heute ein Unterneh- diesem Raum ist eine originale Verkehrs- Software-Entwickler ist die Leidenschaft men mit 380 Mitarbeitern in der Schweiz ampel. Sobald Pascal Erb einen Build star- für seine Arbeit.“ Es geht also primär weni- und in Deutschland geworden. „Die tet, nehmen alle Entwickler gespannt die ger um Noten als um die Begeisterung. „Da Schweizer haben sehr viel Basis-Demokra- Ampel ins Visier. „Wenn der Build Fehler die Release-Zyklen der Projekte sehr kurz tie und viel Transparenz eingebracht, aber meldet, geht die Ampel auf Rot, ansonsten sind, müssen die Bewerber das hohe Tem- auch viel Pragmatismus und die Ergebnis- gibt sie grünes Licht.“ po mögen“, bringt sie es auf den Punkt. Orientierung“, so Patrick Habel. Namics bietet den Bewerbern die Mög- In die Jahre gekommen lichkeit, an einem Schnuppertag die Firma Auf dem Weg zur agilen Entwicklung Zurück zu Java: Benedikt Eger, Senior Soft- und das Team kennenzulernen. Danach „Wir haben vor einem Jahr festgestellt, dass ware Engineer, sieht große Vorteile durch besitzen sie einen relativ guten Eindruck, wir besonders leistungsfähig sind, wenn die weite Verbreitung der Programmier- worauf sie sich einlassen. Attraktive Projek- wir agil arbeiten“, erläutert Sven Niedner. sprache: „Es gibt für jedes Problem nicht te gibt es genügend. „Seitdem sind wir dabei, den gesamten nur eine Lösung, sondern gleich mehrere Entwicklungsprozess darauf umzustellen. Frameworks, aus denen der Entwickler Sobald das Grobkonzept fertig ist, begin- wählen kann. Das Gleiche gilt für die Ent- nen wir mit dem Programmieren.“ Da eine wicklungstools.“ Er äußert sich auch positiv solche Umstellung auf agile Entwicklung über die Community: „Selbst auf schwieri- Über Namics nicht von heute auf morgen stattfinden ge Fragen findet man schnell eine Ant- kann, sind die Teams noch am Experimen- wort in irgendwelchen Foren. Zudem ist es Das inhabergeführte Unterneh- tieren und Ausprobieren, welcher Weg am einfacher, einen guten Java-Entwickler zu men wurde 1995 gegründet. An besten realisierbar ist. Gerade hier setzt die finden, als dies bei weniger verbreiteten den Standorten in Frankfurt, Ham- Basis-Demokratie ein – das Thema wird auf Technologien der Fall ist.“ burg, München, St. Gallen und dem firmeneigenen Blog http://blog.na- Sein Kritikpunkt an Java ist, dass neue Zürich betreuen 380 Mitarbeiter mics.com viel diskutiert. Sprachfeatures wie Generics recht kom- unter anderem folgende Kunden: Das agile Entwickeln erfolgt in meh- pliziert sind, damit sie abwärtskompatibel ABB, BASF, Bauhaus, Bausparkasse reren kurzen Iterationen, sogenannten bleiben. Auch die lange Historie von Java Schwäbisch Hall, Daimler, EnBW, „Sprints“. Dies ermöglicht einen schnellen ist ein Komplexitätstreiber. Das findet auch European Patent Office (EPO), und flexiblen Projektfortschritt in einer Pascal Erb, der Software Engineer: „Java ist Fraunhofer Gesellschaft, Migros, sich ständig verändernden Umgebung. Je- schon sehr in die Jahre gekommen. In die- Panalpina, SBB, Swiss Life, UBS, des Scrum-Team besteht dabei aus einem ser Zeit haben sich viele Dinge angesam- Viessmann und Webasto. Weitere Product Owner, einem Scum Master und melt, die jetzt extrem unflexibel sind, bei- Informationen unter http://www. den Teammitgliedern aus den Disziplinen spielsweise, dass wir Funktionen nicht als namics.com/ „Konzeption“, „Frontend Engineering“ und Objekte behandeln können. Im Vergleich 10 | Forms2Java iiiiiiiii www.ijug.eu iii Datum in Java Foto: Fotolia Jürgen Lampe, A:gon Solutions GmbH Java fehlt es bis heute an einem durchdachten Konzept für die Abbildung des Datums. Der ohne gründlichere Überlegungen eingeführte Typ „java.util.Date“ ist nichts anderes als ein unreflektiert aus der Unix-Welt übernommener Zeitstempel. In der Praxis führt das immer wieder zu unerwarteten Fehlern oder unnötig aufwändigen Lösungen. Dass diese Klasse „java.util.Date“ nicht be- eines Kalender-Objekts ist aufwändig. convert DATE into character format, because sonders gut gelungen war, ist wohl auch Wenn Datums-Konvertierungen oder the program usually deals with data in a cha- den Entwicklern bei Sun recht schnell be- -Berechnungen sehr häufig nötig sind, racter format, such as DD-MON-YY” [1]. wusst geworden. Inzwischen sind 22 der braucht es spezielle Maßnahmen, um Ein ganz spezielles Problem kann beim 33 öffentlichen („public“) Methoden be- zu vermeiden, dass daraus ein Perfor- Remote Procedure Call (RPC) oder bei ziehungsweise Konstruktoren als überholt mance-Engpass entsteht. anderen Protokollen, die Objekt-Seriali- („deprecated“) gekennzeichnet. Allerdings sierung verwenden, auftreten, wenn die ist eine echte Aufarbeitung bisher leider un- Die diffuse Interpretation des Datum- beteiligten Seiten mit unterschiedlichen terblieben, was bedeutet, dass innerhalb der Begriffs findet sich auch in der JDBC-Spe- Zeitzonen-Einstellungen arbeiten. Weil Da- Java-Bibliotheken diese problematischen zifikation wieder. Da „java.sql.Date“ eine tumswerte in der Regel als „Zeitstempel“ Funktionen weiterhin zum Einsatz kommen. Subklasse von „java.util.Date“ ist, hat man Mitternacht der entsprechenden Zeitzone So verwendet z.B. die statische Methode es de facto immer mit einem Zeitpunkt realisieren, führt das bei der Übertragung „java.sql.Date.valueOf(String)“ immer noch zu tun, der erst in ein Datum konver- ohne spezielle Vorkehrungen in einer Rich- den überholten Konstruktor „Date(int, int, tiert werden muss. Das kann zu subtilen tung immer zu einer Verschiebung um ei- int)“. Das kann zu unerwarteten Ergebnis- Fehlern führen, wenn man sich auf die nen Tag – in der anderen Richtung nur zu sen führen, wenn sich die Zeitzonen-Einstel- Standard-Einstellungen verlässt, weil SQL einer dem Zeitzonen-Offset entsprechen- lungen der Datenbank von denen der Java- für „DATE“ keine Zeitzone kennt (nur für den Stundenverschiebung. Dafür kann es Anwendung unterscheiden. „TIME“ und „TIMESTAMP“). Die erforder- keine generelle Lösung geben, weil dieses Bereits mit Version 1.1 wurden die Klas- liche explizite Behandlung etwa durch Auf- Verhalten für „Zeitstempel“ absolut korrekt sen „java.util.Calendar“/„GregorianCalen- ruf der „getDate“-Methode mit „Calendar“- ist und die Serialisierung nicht unterschei- dar“ kreiert, um die offensichtlichsten Defi- Parameter (seit JDBC 2.0) ist eine völlig den kann, ob ein „Date“-Objekt nun einen zite beim Umgang mit „Date“ zu beheben. unangemessene Verkomplizierung, die Zeitpunkt oder ein reines Datum darstellt. Grundsätzlich leisten diese Klassen bei kon- überdies Leistung kostet. Außerdem kann Aus heutiger Sicht war es ebenfalls sequenter Anwendung das Erwartete. Aller- die im Allgemeinen unterschiedliche und falsch, „Date“-Objekte nicht unveränder- dings gibt es zwei problematische Punkte: nicht immer standardkonforme Imple- bar zu machen, ähnlich „Integer“ oder mentierung des „DATE“-Typs von SQL in „Long“ [2]. Das ist zwar keine prinzipielle • Kalender benötigen immer eine Zeit- den verbreiteten Datenbanken zu weite- Frage, aber die Veränderbarkeit hat an vie- zone. Für die bequemere Verwendung ren Problemen führen. len Stellen für Verwirrung gesorgt. muss diese jedoch nicht unbedingt ex- Bei Oracle, wo der Typ „DATE” immer mit Ein Versuch, Unzulänglichkeiten bei plizit angegeben werden. Falls sie fehlt, Zeit, aber standardmäßig ohne Zeitzone ab- der Zeitbehandlung in Java zu beheben, wird die Default-Zone der jeweiligen In- gelegt wird („If no time was specified when ist das Joda-Time-Projekt [3]. Ebenso wie stallation genommen. Da das gängige the date was created, the time defaults to beim daraus hervorgegangenen JSR 310 Programmierpraxis ist, erhält man impli- midnight”), findet sich folgender Hinweis: besteht das Ziel darin, eine funktionale zite Abhängigkeiten von der Installation. „There is little need to use the Oracle ex- Alternative für die Standard-Funktionen • Die Berechnungen des Kalenders sind ternal DATE datatype in ordinary database rund um „java.util.Date“ zu bieten. Schwer- relativ kompliziert und die Erzeugung operations. It is much more convenient to punkte sind eine verständlichere API und Java aktuell 1-2013 | 11
Description: