În CDI, înainte de versiunea 4.0, arhivele JAR și WAR care conțin un fișier de descriptor de implementare beans.xml fără
niciun element <beans> 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,
furnizați un element beans în fișier și specificați atât atributul version (setat al 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>
Pentru mai multe informații despre migrarea Jakarta 10, vedeți Diferențe între Jakarta Contexts and Dependency Injection 4.0 și 3.0.