© Excellent backgrounds/Shutterstock.com
Java Magazin
Kolumne: EnterpriseTales

Maintenance-Modus: Weiterentwicklung von Java EE

Das Release von Java EE 7 ist jetzt bald ein Jahr her. Java EE 8 ist noch nicht in Sicht. Aber was passiert in der Zwischenzeit? Steht die Arbeit in den Spezifikationskomitees still? Wie wird damit umgegangen, wenn sich in der einen oder anderen Spec doch ein Fehler eingeschlichen hat? Wer stellt die Fehler eigentlich fest und wie kann sich die Community an diesem Prozess beteiligen? Diese Kolumne wirft am Beispiel der CDI Spec einen kleinen Blick hinter die Kulissen.

Arne Limburg, Lars Röwekamp


Auch zwischen zwei Major-Releases von Java EE (also z. B. zwischen Java EE 7 und Java EE 8) arbeiten die Spezifikationskomitees weiter, wenn auch mit geringerer Priorität und Frequenz. Einerseits benötigt ein Major-Release eine enorme Vorbereitungszeit und so wurde mit den Vorbereitungen von Java EE 8 bereits begonnen. Andererseits kann es auch Zwischenversionen der Spezifikationen geben, die in Java EE 7 enthalten sind, so genannte Maintenance-Releases. Sie enthalten in der Regel Fehlerkorrekturen, manchmal aber auch signifikante neue Features.JCP in Theorie und PraxisEin Musterbeispiel für diesen neuen offenen Prozess ist das Spezifikationskomitee der CDI Spec. Informationen werden über die eigene Webseite weitergegeben [2], die Mailing-Liste ist für jedermann geöffnet und Bugs und Feature Requests werden in einem öffentlichen Issue Tracker erfasst. Auch hier kann sich jedermann registrieren und Tickets anlegen und kommentieren. Maintenance-ReleaseAndererseits gibt es auch tatsächliche Änderungen gegenüber der ursprünglichen CDI 1.1 Spec. Die größten Änderungen lassen sich im Bereich des Bean Scanning und des „Implicit Bean Archives“ finden. Mit der Einführung von „Implicit Bean Archives“ in CDI 1.1 entfiel die Notwendigkeit, jedem CDI Archive eine beans.xml beilegen zu müssen. Stattdessen ist laut Spezifikation jedes Java Archive, in dem sich eine Klasse befindet, die eine bean-defining Annotation besitzt, automatisch ein CDI Bean Archive. bean-defining Annotations waren dabei bisher alle Scope Annotations. Auf den ersten Blick klingt das wie eine gute Ergänzung der CDI Spec, weil es gerade bei CDI-Anfängern ein beliebter Fehler ist, die (in CDI 1.0 notwendige) beans.xml zu vergessen und sich dann zu wundern, dass der CDI-Container die Beans im Archiv einfach ignoriert.In der Praxis führte dieses Feature allerdings zu erheblichen Problemen, insbesondere dann, wenn in einem Java-EE-Container eine Applikation deployt werden sollte, die keine CDI-Applikation war, aber dennoch bean-defining Annotations enthielt. Das ist z. B. bei den meisten Spring-Anwendungen der Fall, weil Spring den JSR-330 implementiert, der eben solche bean-defining Annotations enthält. Jeder Scope in Spring, der über eine Annotation definiert wird, ist auch eine bean-defining Annotation im CDI-Sinn. Da es zu Problemen führt, wenn sowohl der Spring- als auch der CDI-Container sich um das Management eines Bean Archives kümmern wollen, kann sich jeder denken. Zwar war man bereits in d...

Java Magazin
Kolumne: EnterpriseTales

Maintenance-Modus: Weiterentwicklung von Java EE

Das Release von Java EE 7 ist jetzt bald ein Jahr her. Java EE 8 ist noch nicht in Sicht. Aber was passiert in der Zwischenzeit? Steht die Arbeit in den Spezifikationskomitees still? Wie wird damit umgegangen, wenn sich in der einen oder anderen Spec doch ein Fehler eingeschlichen hat? Wer stellt die Fehler eigentlich fest und wie kann sich die Community an diesem Prozess beteiligen? Diese Kolumne wirft am Beispiel der CDI Spec einen kleinen Blick hinter die Kulissen.

Arne Limburg, Lars Röwekamp


Auch zwischen zwei Major-Releases von Java EE (also z. B. zwischen Java EE 7 und Java EE 8) arbeiten die Spezifikationskomitees weiter, wenn auch mit geringerer Priorität und Frequenz. Einerseits benötigt ein Major-Release eine enorme Vorbereitungszeit und so wurde mit den Vorbereitungen von Java EE 8 bereits begonnen. Andererseits kann es auch Zwischenversionen der Spezifikationen geben, die in Java EE 7 enthalten sind, so genannte Maintenance-Releases. Sie enthalten in der Regel Fehlerkorrekturen, manchmal aber auch signifikante neue Features.JCP in Theorie und PraxisEin Musterbeispiel für diesen neuen offenen Prozess ist das Spezifikationskomitee der CDI Spec. Informationen werden über die eigene Webseite weitergegeben [2], die Mailing-Liste ist für jedermann geöffnet und Bugs und Feature Requests werden in einem öffentlichen Issue Tracker erfasst. Auch hier kann sich jedermann registrieren und Tickets anlegen und kommentieren. Maintenance-ReleaseAndererseits gibt es auch tatsächliche Änderungen gegenüber der ursprünglichen CDI 1.1 Spec. Die größten Änderungen lassen sich im Bereich des Bean Scanning und des „Implicit Bean Archives“ finden. Mit der Einführung von „Implicit Bean Archives“ in CDI 1.1 entfiel die Notwendigkeit, jedem CDI Archive eine beans.xml beilegen zu müssen. Stattdessen ist laut Spezifikation jedes Java Archive, in dem sich eine Klasse befindet, die eine bean-defining Annotation besitzt, automatisch ein CDI Bean Archive. bean-defining Annotations waren dabei bisher alle Scope Annotations. Auf den ersten Blick klingt das wie eine gute Ergänzung der CDI Spec, weil es gerade bei CDI-Anfängern ein beliebter Fehler ist, die (in CDI 1.0 notwendige) beans.xml zu vergessen und sich dann zu wundern, dass der CDI-Container die Beans im Archiv einfach ignoriert.In der Praxis führte dieses Feature allerdings zu erheblichen Problemen, insbesondere dann, wenn in einem Java-EE-Container eine Applikation deployt werden sollte, die keine CDI-Applikation war, aber dennoch bean-defining Annotations enthielt. Das ist z. B. bei den meisten Spring-Anwendungen der Fall, weil Spring den JSR-330 implementiert, der eben solche bean-defining Annotations enthält. Jeder Scope in Spring, der über eine Annotation definiert wird, ist auch eine bean-defining Annotation im CDI-Sinn. Da es zu Problemen führt, wenn sowohl der Spring- als auch der CDI-Container sich um das Management eines Bean Archives kümmern wollen, kann sich jeder denken. Zwar war man bereits in d...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang