Java EE 8 erscheint aus dem Nebel

Neuigkeiten von der Insel  –  1 Kommentare

Oracle hat sich dazu entschieden, deutlicher zu werden, wie die neue Java-EE-Version mit der Nummer 8 aussehen soll. Seit einigen Wochen schon kursiert ein erster Entwurf des Specification Request zu Java EE 8.

Die unscheinbare Textdatei enthält den von Oracle vorgeschlagenen Rahmen und die neue Ausrichtung. Nach den vorausgegangenen Umfragen in der Nutzergemeinschaft wurde die offizielle Reaktion hier schon mit Spannung erwartet.

"The main focus of this release is on support for HTML5 and the emerging HTTP 2.0 standard; enhanced simplification and managed bean integration; and improved infrastructure for applications running in the cloud."
(Quelle: EG e-mail Attachment)

Da ist das Unwort der vergangenen Jahre auch schon wieder. Auch wenn aus den Auswertungen der Umfragen nur ungefähr 50 Prozent der Antworten andeuten, dass es Zeit wäre, die Themen PaaS und SaaS noch mal in der Spezifikation anzugehen. Das Geschäft mit der Cloud ist einfach zu wichtig für Oracle, als das man hier nicht ein paar grundlegende Arbeiten in der Spezifikation erledigen will.

Also konsequent richtig kann die fortwährende Ausrichtung für die Entwicklerproduktivität angesehen werden. Hier gibt es keinen Zweifel, dass gerade im Umfeld der Managed Beans und der Zusammenarbeit der einzelnen Spezifikationen noch eine Menge Arbeit zu tun ist. Und die Themen HTTP 2.0 sowie HTML5 gerade jetzt zu vernachlässigen, wäre auch schlicht strafbar.

Webtechnologien

Aber was genau steckt in den einzelnen Bereichen denn jetzt voraussichtlich drin? HTML5-Unterstützung wird auf dem Server verbessert. Die mit HTML5 spezifizierten Server Send Events (SSE) beherrscht bisher nur der GlassFish und sind nicht Bestandteil der Java-EE-7-Spezifikation. In die gleiche Richtung geht das Erstellen einer JSON Binding API für einen standardisierten Binding-Mechanismus zwischen JSON und Java-Objekten. HTTP 2.0 wird dann in der Servlet API nachgezogen, und Gerüchte besagen, dass sich in Richtung MVC auch etwas tut. Im JSR-Entwurf wird auf eine potenzielle Unterstützung im JAX-RS-Umfeld hingedeutet (action-based MVC).

In diesem Zuge wird natürlich auch das Web-Profil entsprechend auf Version 8 gehoben und mit den neuen Versionen der enthaltenen JSRs aktualisiert. Der Wunsch, auch im Web-Profil neue Funktionalitäten aufzunehmen, wurde in den Nutzerumfragen klar geäußert. Im Entwurf des JSR ist davon noch nicht viel enthalten. Aller Voraussicht nach wird wohl die neue API für JSON Binding mit aufgenommen.

Entwicklerfreundlichkeit

Ein großer Kritikpunkt an den bisherigen Java-EE-Versionen ist die Varianz bei den verschiedenen Komponentenmodellen. Genauer gesagt sind dies die verschiedenen sogenannten Managed Beans. Neben denen im Java EE Umbrella gibt es noch welche in JSF, und auch CDI bietet sie an. Am Ende reihen sich auch die EJBs in diesen Reigen ein. Da die verschiedenen Implementierungen unterschiedliche Funktionen bieten, können diese auch nicht konsistent oder übergreifend verwendet werden. Die Security-Annotationen sind dabei ein gutes Beispiel. Java EE 8 wird dem hoffentlich deutlich entgegenwirken können. Damit könnten die CDI-Interzeptoren und Benachrichtigungen in allen anderen Managed Beans verfügbar werden.

Cloud-Unterstützung

Nachdem Java EE 8 nicht gänzlich unter dem Titel Cloud steht, bleibt zu hoffen, dass sich die Änderungen doch vergleichsweise kleinteilig und technisch auswirken werden. Ein neuer Configuration JSR steht hier im Raum genauso wie das Mandantenthema, das noch nicht vollständig in Java EE 7 bearbeitet wurde. Auch sollen Monitoring und Management auf REST aufbauen. Gerade letzteres ist ja in vielen Servern heute schon der Fall.

Basierend auf Java SE 8

Endlich wird auch die Java-EE-Version wieder auf der entsprechenden SE-Version aufsetzen. Alle enthaltenen JSRs sind damit angehalten, die neuen Sprachfunktionen von Java 8 zu verwenden (repeating annotations, lambda expressions, Date/Time API, type annotations, Completable Futures etc.).

Aufräumarbeiten

Es wird auch mal wieder ein wenig aufgeräumt werden. Neben den EJB 2.x Client View APIs (EJBObject, EJBHome, EJBLocalObject, EJBLocalHome) wird auch die Unterstützung für CORBA-IIOP-Interoperabilität nur noch als optionale Funktionalität geführt. Ein klares Signal, dass von Java EE 8 ab an auf moderne, Web-Schnittstellentechnologien zu setzen ist.

Der Plan und das weitere Vorgehen

Bis zum dritten Quartal 2014 soll die zuständige Expert Group geformt sein. Der JSR selbst soll noch vor der JavaOne im Sommer in den Java Community Process eingereicht werden. Läuft alles nach Plan, wird es spätestens im dritten Quartal 2016 eine neue Version von Java EE 8 geben.

Cameron Purdy über Java EE 8 (Bild: Java Day Tokyo 2014 - Oracle Recording)

Auf dem kürzlich stattgefundenen Java Day in Tokio hat Oracles Cameron Purdy (@cpurdy) die Java-EE-Strategie von Oracle vorgestellt (mp4, 363 MByte Download von 48:30 bis 1:03:30 Min.). Wichtigster Punkt hier ist, dass auch dieser Bereich im Oracle-Portfolio sich dem Thema Internet Of Things (IoT) verschrieben hat. Wie genau dies aussehen soll, findet sich bisher nur in Andeutungen.