Modificare de comportament la descoperirea bean-urilor în module cu fișier beans.xml fără nicio versiune specificată

În CDI, înainte de versiunea 4.0, arhivele JAR și WAR care conțin un fișier de descriptor de implementare beans.xml ce nu specifică un atribut version pentru elementul <beans> rădăcină sunt considerate arhive de bean-uri explicite. În aceste arhive, CDI poate administra și injecta orice bean, cu excepția celor adnotate cu @Vetoed.

În CDI 4.0, aceste arhive sunt considerate arhive de bean-uri implicite. În arhivele de bean-uri implicite, CDI poate gestiona și injecta doar bean-uri adnotate cu o adnotare de definire a bean-ului.

Pentru a marca o arhivă ca o arhivă de bean-uri explicită și a restaura comportamentul de descoperire a bean-urilor din edițiile anterioare, specificați atât atributul version (setat la 1.1 sau o versiune mai nouă), cât și atributul bean-discovery-mode="all" pentru elementul beans:


<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>

Această regulă are un fix automat pentru a adăuga atributele lipsă versiune și bean-discover = "all " . Copiați configurația personalizată pe fișierul de build al aplicației pentru a activa automatizarea corectării.

Pentru mai multe informații despre migrarea Jakarta 10, vedeți Diferențe între Jakarta Contexts and Dependency Injection 4.0 și 3.0.