Geändertes Verhalten bei Bean-Erkennung in Modulen mit Datei beans.xml ohne Angabe einer Version

In CDI vor CDI 4.0 werden JAR- und WAR-Archive, die die Deskriptordatei beans.xml für die Bereitstellung enthalten, die kein Attribut version im Stammelement <beans> angibt, als explizite Bean-Archive betrachtet. In diesen Archiven kann CDI jede Bean mit Ausnahme der mit @Vetoed annotierten Beans verwalten und einfügen.

In CDI 4.0 werden diese Archive als implizite Bean-Archive betrachtet. In impliziten Bean-Archiven kann CDI nur Beans verwalten und einfügen , die mit einer Bean-definierenden Annotation annotiert sind.

Um ein Archiv als explizites Bean-Archiv zu markieren und das Verhalten zur Bean-Erkennung des Vorgängerrelease wiederherzustellen, geben Sie sowohl das Attribut version (auf 1.1 oder höher gesetzt) als auch das Attribut bean-discovery-mode="all" im Element beans an:


<beans xmlns="https://jakarta.ee/xml/ns/jakartaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
    bean-discovery-mode="all"
    version="4.0">
</beans>

Diese Regel verfügt über einen automatisierten Fix zum Hinzufügen der fehlenden Attribute version und bean-discover = "all " . Kopieren Sie die angepasste Konfiguration in die Builddatei Ihrer Anwendung, um die Fixautomatisierung zu aktivieren.

Weitere Informationen zur Migration von Jakarta 10 finden Sie unter Unterschiede zwischen Jakarta Contexts and Dependency Injection 4.0 und 3.0.