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