CDI 1.1: Entwurf der neuen Dependency-Injection-Spec verfügbar

Hartmut Schlosser

Die Context and Dependency Injection (CDI) Spezifikation (JSR 346) soll im Rahmen von Java EE 7 auf einen neuen Stand gebracht werden. Aktuell steht ein Entwurfspapier für CDI 1.1 im Public Review bereit, das bereits zahlreiche neue Features enthält.

Spec-Lead Pete Muir beschreibt die Status von CDI 1.1 auf seinem Blog. Man habe keine wirklich großen Neuerungen eingeplant, sei aber gut vorangekommen mit dem Feinschliff und der schrittweisen Verbesserung der 1.0-Specs. Bereits umgesetzt sind u.a.:

  • Die Klasse CDI stellt programmatisch den Zugriff auf CDI-Funktionen von außerhalb einer Managed Bean bereit
  • Über die Annotation @Vetoed lässt sich deklarativ ein Veto gegen eine Bean einlegen
  • Konversationen in Servlet Requests
  • Application Lifecycle Events in Java EE
  • Injektion von Bean-Metadaten in Bean-Instanzen
  • Die Möglichkeit, via BeanAttributes die Attribute einer Bean zu überschreiben
  • Die Möglichkeit, Module via ProcessModule anzusprechen
  • InjectionPoint lässt sich wrappen
  • Globale Einrichtung von Interceptors und Decorators
  • Globale Selektion von Alternativen
  • @New ist nun deprecated
  • Verschieden annotierte Typen pro Java-Klasse sind nun möglich

Die Expertengruppe hat aber auch einige offene Fragen an die Community gestellt und wartet auf das Feedback. Beispielsweise ist noch zu klären, wie die Sichtbarkeit von Beans beim Ersetzen einer bestimmten Bean-Implementierung gehandhabt werden soll. Bisher können nur solche Beans in eine andere Bean injiziert werden, deren Bean-Klasse gemäß den Standard-Classloader-Sichtbarkeitsregeln zugänglich sind. Etwa war eine Bean in WAR bisher nicht in einem EJB-Modul verfügbar. Die Expertengruppe denkt darüber nach, hier einen alternativen Sichtbarkeits-Modus einzuführen, der einen Bruch der Abwärtskompatibilität bedeuten würde.

Weitere offene Punkte sind: Wie sollen @ApplicationScoped Beans zwischen EAR Modulen geteilt werden? Soll ein Startup Event eingeführt werden, das die Anwendung bereits vor dem Bedienen von Requests arbeiten lässt? Sollen Entwickler die Möglichkeit haben, einzuschränken, welche Klassen in der beans.xml von CDI gescannt werden sollen?

Diskussionen zu diesen und weiteren Detailfragen werden in den Mailling-Listen und auch direkt auf Pete´s Blog geführt. Der Public Review Draft selbst steht auf der JSR-Seite bereit und kann noch bis zum 3. Dezember eingesehen werden. Danach beginnt die Abstimmung über die Spec, die am 17. Dezember 2012 abgeschlossen sein soll.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

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