7 Dinge, die mit Java 11 entfernt werden

Gegen September 2018 soll Java 11 veröffentlicht werden, doch bereits jetzt gibt es einige Informationen, was, und insbesondere, was nicht mehr in Java 11 enthalten sein wird. Hier eine kleine Liste der 7 wichtigsten Features, Module und Frameworks, die mit Java 11 aus dem JDK entfernt werden.

1. JavaFX

Das 2007 veröffentlichte Oberflächenframework JavaFX ist seit 2011 Open Source und seit 2012 im Oracle JDK. Jedoch wird es im Release von Java 11 nicht mehr enthalten sein. Stattdessen soll JavaFX entkoppelt vom JDK als separater Download angeboten werden. Oracle begründet diesen Schritt damit, die OpenJFX-Community stärken zu wollen und den Weg für neue Open-Source-Entwickler frei machen zu wollen. Ein weiterer Grund ist das mit Java 9 eingeführte Modulsystem. Hierdurch wurde der Aufwand, derartige Teile des JDK komplett auszugliedern, massiv gesenkt.

2. JAX-WS

Seit Java 9 sind sämtliche Module der Java Standard Edition (JSE), welche Technologien aus der Java Enterprise Edition (JEE) enthalten, bereits mit @Deprecated annotiert. Diese Module werden nun mit Java 11 nicht mehr Teil des Java SE JDK sein.

Dazu gehört zunächst die Java API for XML-Based Web Services (JAX-WS) 2.0. Diese ist in JSR 224 spezifiziert und ist nach der Einführung mit Java EE 5 auch seit Java 1.6 Teil des Java SE JDK. Mit JAX-WS sollte die Erstellung von Client-Server Webservices in Java vereinfacht werden. Die Kommunikation ist protokoll- und transportunabhängig und läuft über SOAP-Nachrichten. JAX-WS ist auch stark mit JAXB integriert, um XML-Daten gleich in die passenden Java-Klassen zu “importieren”.

3. JAXB

Die Java Architecture für XML Binding (JAXB) bietet ein Framework, mit dem beispielsweise XML-Daten aus einer Instanz eines XML-Metamodels (XML-Schema) direkt an Java-Klassen gebunden werden können. Auch lassen sich Java Klassen direkt aus dem XML-Schema generieren. Den Prozess, Daten aus Java-Klassen in XML zu konvertieren und zurück nennt man Marshalling und Unmarshalling. JAXB konnte man neben dem Standardeinsatz mit JAX-WS insbesondere im Bereich der modellgetriebenen Softwareentwicklung auffinden.

4. JAF

Das Java Beans Activation Framework (JAF) wird ebenfalls mit Java 11 aus dem Java SE JDK entfernt. Die Hauptaufgabe dieses Frameworks ist es, den Datentyp eines beliebigen Datenobjektes festzustellen, den Zugriff darauf zu kapseln, mögliche Operationen, die auf dem Objekt ausgeführt werden könnten, zu finden und eine passende Bean zu instanziieren, die diese Operationen ausführen könnte. In einem Webbrowser beispielsweise könnte JAF zur Anwendung kommen, um einen empfangenen Binärstrom zunächst als JPEG-Bild zu identifizieren. Anschließend könnte JAF dann einen Service suchen und starten, der das Bild anzeigen kann.

5. Common Annotation

Das Modul Common Annotations enthält einige allgemeine Annotationen, wie @PostConstruct, @PreDestroy oder @Resource, welche in anderen (Enterprise-) Frameworks wie etwa Spring verwendet werden und als Orientierungshilfe dienen sollten.

6. CORBA

Auch die Common Object Request Architecture (CORBA [pdf]) wird ab Java 11 nicht mehr im JSE JDK enthalten sein. CORBA ist die Spezifikation einer objektorientierten Middleware mit Object Request Broker. Außerdem sind einige von der Object Management Group definierte plattformübergreifende Dienste und Protokolle enthalten, welche das Erstellen verteilter Anwendungen insbesondere in heterogenen Umgebungen vereinfachen.

7. JTA

Die Java Transaction API (JTA) war in der Java Standard Edition nie vollständig enthalten, nur Teile haben es aus dem JEE in die JEE geschafft. Diese Teile werden nun wieder entfernt. Die Java Transaction API sollte ursprünglich das Transaktionsmanagement für verteilte Transaktionen auf X/Open-XA-Ressourcen (eXtended Architecture) übernehmen. Im Kern geht es darum, mehrere unterschiedliche Systeme (etwa einen Datenbankserver, einen Anwendungsserver, ein Messagingsystem, etc.) innerhalb einer einzelnen Transaktion ansprechen zu können.

Auch alle weitere Tools, die zu den nun entfernten Java-EE Modulen gehören, werden aus dem Java SE JDK genommen. Dazu zählen wsgen und wsimport, die zur Ressourcengeneration auf Basis einer WSDL im Zusammenhang mit JAX-WS verwendet wurden. Ebenso wird es schemagen und xjc nicht mehr geben, mit denen aus einem bestehenden Java-Klassengraphen ein XML-Schema, sowie aus dem XML die Java Klassen generiert werden können. Schließlich werden der indlj (IDL to Java Compiler), sowie die CORBA-bezogenen Tools orbd, servertool und tnamesrv aus dem JDK entfernt.

Zusammenfassung

Dass JavaFX nun aus dem offiziellen JDK ausgegliedert wird, ergibt Sinn, da das JavaFX-Projekt ohnehin bereits Open Source ist und die Entwicklung jetzt schon eher unabhängig von der Entwicklung des JDK abläuft. Dadurch wird das Projekt vollständig unabhängig vom JDK. Dazu gehört auch, nun neue Versionen des Frameworks in einem eigenen Releasezyklus veröffentlicht zu können.

Neben JavaFX werden auch sämtliche Java-EE-Module aus Java SE entfernt (JEP 320). Diese wurden ja bereits mit Java SE 9 mit @Deprecated annotiert und hatten teilweise ohnehin nur einen eingeschränkten Funktionsumfang im Vergleich zu den Originalmodulen in Java EE.

Die meisten Module, Frameworks und Features, die nun aus der Java SE entfernt werden sollen, sind dann ja nicht weg. Sie sind nur ausgegliedert und können nach wie vor beispielsweise über Maven oder Gradle als separate Bibliotheken importiert und eingebunden werden.

Abschließend noch einmal eine zusammenfassende Tabelle, die eine Übersicht über die ausgegliederten Features und deren zugehörige Module darstellt:

Feature Kürzel Modul(e)
JavaFX JavaFX javafx
Java API for XML-based Web Services JAX-WS java.xml.ws, jdk.xml.ws, java.se.ee
Java Architecture for XML Binding JAXB java.xml.bind, jdk.xml.bind
JavaBeans Activation Framework JAF java.beans.activation
Common Annotations java.xml.ws.annotation
OMG Corba API CORBA java.corba
Java Transaction API JTA javax.transaction
Short URL for this post: https://wp.me/p4nxik-35E
This entry was posted in Java Basics, Java EE and tagged , , , . Bookmark the permalink.

Leave a Reply