Hinter den Kulissen

Einblick in OpenJDK – Inside Java 7

Alexander Schunk

Im Mai dieses Jahres erfolgte auf der JavaOne-Konferenz endlich die von Sun angekündigte Offenlegung eines Großteils des Java-SE-Quellcodes unter dem Namen OpenJDK. Damit ist es interessierten externen Entwicklern möglich, einen Blick hinter die Kulissen von Java und Sun zu werfen. Aber auch hier, wie bei jedem großen Softwareprojekt, ist nicht alles Gold, was glänzt, und mittlerweile räumt man bei Sun auch Schwierigkeiten bei der Umsetzung ein. So gibt es unter anderem noch diverse Lizenzfragen zu klären, da viele Teile des Java SDK nicht von Sun selbst lizenziert sind; doch auch hier gibt es zurzeit Fortschritte.

Am 13. November 2006 wurde erstmals öffentlich bekannt gemacht, dass Sun Teile des Quellcodes von Java als Open-Source-Plattform offen legen wird. Seit wann der Name OpenJDK offiziell existiert, ist nicht mehr ermittelbar, aber vielleicht kann man den 8. Mai 2007 als Geburtsstunde der OpenJDK Community festlegen, denn an diesem Tag wurde die OpenJDK Charta von Laurie Tolson, Vizepräsidenten der Client Software Group, unterschrieben, die das Verhältnis zwischen Sun und der OpenJDK Community regelt. Seit November letzten Jahres hat sich dann die neue OpenJDK Community langsam etabliert, und auch auf verwandten Websites ist einiges passiert, unter anderem hat sich die Verwaltung von Projekten und der Project Space für Mitglieder technisch und farblich verändert.

Open Source Java: Ein Begriff, viele Interpretationen

OpenJDK ist kein reines Open-Source-Projekt wie zum Beispiel Linux. Zumindest zurzeit noch nicht. Was bedeutet also der Begriff Open Source im Rahmen des OpenJDK-Projekts? Wenn Sun von Open Source Java spricht, dann bedeutet das nicht, dass Java nun eine komplett GPL-kompatible Software ist. Im Gegenteil, durch die Offenlegung des Quellcodes von Java haben sich eine Reihe von Lizenzproblemen ergeben, die zum einen durch die Verwendung der GPL selbst und zum anderen durch existierende Lizenzen entstanden sind. Die GPL, wie sie von Sun benutzt wird, hat die Lizenzversion 2 mit einer Zusatzklausel. Diese Zusatzklausel wurde vom GNU-Classpath-Projekt übernommen, daher wird die GPL, wie sie von Sun benutzt wird, auch GPL mit Classpath Exception genannt. Im Gegensatz zu anderen großen Open-Source-Projekten, die von Anfang an als Open Source Software geplant und entwickelt wurden, findet bei OpenJDK also die Transformierung eines kommerziellen Produkts in ein Open-Source-Produkt statt. Sun benutzt zurzeit ein „duales Lizenzsystem“, um zum einen seine alten Kunden weiterhin bedienen zu können und zum anderen neue Kunden in der Open-Source-Szene, insbesondere in der Linux-Welt, zu gewinnen.

OpenJDK-Projekt: Überblick und Rechtsgrundlagen

Bevor man beim OpenJDK-Projekt als externer Entwickler einsteigt, sollte man sich zunächst über die rechtlichen Fragen informieren und dann schauen, an welchem Ende man mitarbeiten will. Wenn Sie als Entwickler bei OpenJDK mitmachen möchten, ist es vielleicht hilfreich, vorher ein paar Informationen darüber zu haben, wie und wo und unter welchen rechtlichen Voraussetzungen Sie das am besten tun können. Auf der Projekt-Webseite findet man die für OpenJDK gültigen Rechtsdokumente. Um überhaupt aktiv mitmachen zu können, muss man zunächst ein Agreement – Sun Contributor Agreement – unterschreiben, in dem bestimmte rechtliche Fragen geklärt werden, zum Beispiel die Frage nach der Nutzung des Codes, dem geistigen Eigentum, möglichen Patentrechten, der Weitergabe des Quellcodes usw. Wenn man die SCA unterschreibt, überlässt man Sun automatisch alle Rechte am eigenen Code, darf sein Programm aber selbst weiter benutzen und vertreiben. Dieses Agreement gilt allerdings nicht nur für das OpenJDK-Projekt, sondern grundsätzlich für alle Projekte, die unter www.java.net gehostet werden. Auf den ersten Blick mag die SCA nicht in Einklang mit der GPL 2 stehen, denn diese kennt Begriffe wie Copyright und geistiges Eigentum nicht. Hier ist es daher hilfreich, wenn man den Hintergrund der SCA kennt. Die SCA existierte schon lange vor OpenJDK und wurde bereits beim Mustang-Projekt – Java 6 – eingesetzt. Für OpenJDK wäre es mit Blick auf die GPL 2 allerdings besser, auf den Einsatz der SCA zu verzichten. Wenn man Open Source Software für ein Open-Source-Projekt schreibt, braucht man keinen Vertrag, in dem Dinge wie Copyright, Patente und geistiges Eigentum geklärt werden.

OpenJDK Charta und TCK Compliance License

Auf der Webseite des Projekts findet man noch weitere wichtige Dokumente, zum Beispiel die OpenJDK Community Charta, die das Verhältnis zwischen Sun und der OpenJDK Community regelt, und die kürzlich verabschiedete TCK Compliance License. Die TCK Compliance Licenseist ein Mittel zur Qualitätssicherung und soll helfen, die Kompatibilität von externen Codebeiträgen zu bestehenden Java-6-Implementierungen zu sichern bzw. zu künftigen OpenJDK-Implementierungen zu garantieren. Damit will Sun sicherstellen, dass alle externen Codebeiträge zum einen unter den gleichen Voraussetzungen in das Java SDK integriert werden und zum anderen, dass nur die wirklich kompatiblen Beiträge aus der Community in das SDK aufgenommen werden.

Geschrieben von
Alexander Schunk
Kommentare

Schreibe einen Kommentar

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