Neues von OpenJDK

Viva Java Libre: JDK 7 kommt voran

Endlich wird’s mal wieder richtig Sommer! Die höheren Temperaturen sorgen für mehr Action – alles drängt und sprießt, und aus dem fruchtbaren Boden von OpenJDK schält sich das zarte Pflänzchen des JDK 7 heraus.

Schlängeln entlang der Meilensteine

Bereits bei der Devoxx im Dezember hatte Mark Reinhold, Principal Engineer bei Sun Microsystems und Project Lead für JDK 7, bei seiner Keynote und i

n einem Interview die Liste der zu erwarteten Features ausführlich besprochen. Bei der FOSDEM im Februar legte er die Details des Entwicklungsprozesses von JDK 7 nach, und veröffentlichte im März einen Blogeintrag, in dem er die Pläne für JDK 7 zusammenfasste, und detaillierte Angaben zu Features, Milestones und Builds machte. Einiges davon ist bereits davor klar gewesen – JDK 7 wird selbstverständlich weiterhin als Open-Source-Projekt im Rahmen von OpenJDK gemeinsam mit der Community entwickelt.

Neu ist die klare Ansage, dass für Features, die ins JDK 7 eingebunden werden sollen, erwartet wird, dass sie offen entwickelt werden – egal ob sie innerhalb von OpenJDK im JDK-7-Projekt oder in einem anderen Projekt innerhalb der OpenJDK Community entstanden sind, z.B. die XRender Java 2D Pipeline, oder außerhalb von OpenJDK, sowie das mustergültig als Open-Source-Projekt von Doug Lea seit Jahren geleitete JSR-166. Dessen neueste Inkarnation, JSR-166y, befindet sich als Fork/Join Framework auf dem Weg ins JDK 7. Klar ist auch, dass die OpenJDK Community einen Weg bekommen soll, eigene Features ins JDK einzubringen. Neben den bisherigen Projekten bei OpenJDK im JDK-7-Entwicklungsprozess (der erste Draft ist unter hier verfügbar) auch die Arbeit von bisher Sun-internen Institutionen wie der Release- und Designteams transparent gemacht, und das Designteam um Mitglieder außerhalb von Sun erweitert.

Das Releaseteam, bestehend aus Joe Darcy (Core), Phil Race (Client), Paul Hohensee (VM), Vita Santrucek (Qualität) und Mark Reinhold (Vorsitzender), wird dabei für das JDK-7-Release verantwortlich sein und unter anderem die Liste der Features verwalten. Die aktuelle Liste, mit den zu erwarteten Milestones für die Integration, findet sich auf den Seiten des JDK-7-Projektes bei OpenJDK.

Das Designteam wird sich aus dem Releaseteam und weiteren erfahrenen Entwicklern innerhalb und außerhalb von Sun zusammensetzen. Es wird ein Augenmerk auf Integrität, Korrektheit und Performanz haben, und dabei vor allem Reviews von Änderungen der APIs, Sprachfeatures und weiteren Interfaces als Aufgaben haben. Damit wäre es das OpenJDK-Pendant zum Change Control Committee der früheren Platformreleases.

Neue Features werden zuerst auf der jdk7-dev-Mailing-Liste besprochen, bevor sie dem Releaseteam vorgelegt werden. Falls dieses für ein Feature grünes Licht gibt, werden im nächsten Schritt der Ansatz und das Design des Features vom Designteam begutachtet. Wenn ein Feature soweit ist, in einen Milestone integriert zu werden, muss es noch einmal dem Designteam und dem Releaseteam vorgelegt werden. Letzteres entscheidet dann, in welchem Milestone das Feature integriert wird.

Prozessinnovationen

Nicht jede Änderung ist groß genug für ein Feature – kleinere Patches und Erweiterungen werden weiterhin ihren Weg über den OpenJDK Bugzilla nehmen. Damit dieser Weg in Zukunft für Entwickler ohne Commit-Rechte in die OpenJDK Mercurial Repositories etwas einfacher wird, wurden die bisherigen Prozesse überarbeitet. Die eine Hälfte davon ist der Prozess für Contributors, die andere Hälfte der für Sponsoren von Patches.

In Kürze: Patches von Entwicklern ohne Commit-Rechte (bitte die dazugehörigen Tests nicht vergessen!) kommen erst einmal in den Bugzilla, damit sie nicht auf den Mailing-Listen verloren gehen. Sponsoren übernehmen die Verknüpfung der Patches mit Bugs im Sun-internen Bugtracker auf bugs.sun.com und kümmern sich um den Review, der je nach Umfang der Patches und den Review-Regeln des OpenJDK-Projekts, für das sie bestimmt sind, auch mehrere OpenJDK-Entwickler involvieren kann. Wenn die Patches und Tests durch die Review-Prozesse erfolgreich durchgelaufen sind, werden sie vom Sponsor eingecheckt und die entsprechenden Bugs als gefixt im Sun-internen Bugtracker markiert.

Rückblickend auf ein Jahr mit Mercurial-Schreibrechten für Entwickler außerhalb von Sun Microsystems lässt sich an der Liste der OpenJDK-Entwickler ablesen, dass über ein Fünftel von ihnen nicht bei Sun Microsystems arbeiten, und mit insgesamt 12 der 25 Projekten in der Zwischenzeit fast die Hälfte der Projekte bei OpenJDK leiten. Für ein Jahr aktiver Zusammenarbeit in der OpenJDK Community ist das schon ein ganz guter Start.

Sprachlabor

Joe Darcys Project Coin für kleine Sprachänderungen hat die Community im März geradezu magisch angezogen. Die Mailing-Liste wurde mit Vorschlägen, konstruktiver Kritik, Gegenvorschlägen und anderen Beiträgen überhäuft. Von den letzteren möchte ich an dieser Stelle vor allem der LOLCAT-Syntax für Strings würdigen. Leider wurde dieses Feature jedoch von den Sprachexperten für Project Coin abgelehnt. Für alle Fans von einer vereinfachten Schreibweise für Smileys in Strings heißt es daher, mindestens noch ein Release zu warten. Mindestens … Es gab aber auch genügend interessante ernst gemeinte Vorschläge, die ausführlich auf das Für und Wider abgeklopft wurden. Joe stellte in einer Serie (hier, hier, hier und hier von Blogs die Vorschläge kurz vor, die in den ersten vier Wochen eingereicht wurden, und hob in einem separaten Posting diejenigen Vorschläge hervor, die es wohl am ehesten in die engere Auswahl schaffen könnten.

Darunter befinden sich ausgereifte Ideen von Neal Gafter, Joshua Bloch, Jeremy Manson und Bob Lee, von denen beispielsweise das automatische Ressourcenmanagement und das gleichzeitige Abfangen mehrerer Exceptions sich nach sehr praktischen Features anhören, die man am liebsten sofort einsetzen möchte. Für alle, deren Ideen es nicht in die engere Auswahl schaffen sollten, bleibt der Trost, dass die eigenen Vorschläge von Suns, Googles und dank Neal, auch Microsofts Java-Experten unter die Lupe genommen wurden. Dass es mal so eine Konstellation in der Entwicklung dieser Programmiersprache geben wird, hatte sich wohl niemand vor ein paar Jahren gedacht. Open Source macht’s möglich!

Das Beste zum Schluss

Wie am Anfang dieser Kolumne bereits angedeutet, wird JDK 7 in einer Folge von Milestones entwickelt. Wer es genau wissen will, kann sich den JDK-7-Kalender anschauen. Der letzte Milestone, M8, soll im Februar 2010 abgeschlossen werden, wobei sich natürlich wie bei vielen anderen großen Softwareprojekten kleinere Verschiebungen ergeben könnten. Darauf soll ein Release-Candidate folgen, und nach einer längeren Pause, die sich wahrscheinlich um vier bis acht Wochen ziehen wird, soll es dann das Final Release geben. Für Java-Entwickler könnten daher im nächsten Jahr Weihnachten und Ostern sozusagen zusammenfallen. Bis zum nächsten Osterurlaub muss man aber nicht warten, um die Milestones zu testen. Die testfertigen Builds von JDK 7 gibt es jede Woche frisch zum Download unter der üblichen Adresse. Viel Spaß damit!

Dalibor Topić arbeitet als Java F/OSS Ambassador bei Sun Microsystems in Hamburg mit der OpenJDK Community daran Java in GNU/Linux-Distributionen fest zu verankern und Portierungen auf neue Plattformen in das OpenJDK-Projekt einzubinden. Kontakt: Dalibor.Topic@Sun.COM .
Geschrieben von
Kommentare

Schreibe einen Kommentar

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