Dans les versions de CDI antérieures à CDI 4.0, les archives JAR et WAR qui contiennent un fichier de descripteur de déploiement beans.xml sans
aucun élément <beans> sont considérées comme des archives de bean explicites.
Dans ces archives, CDI peut gérer et injecter n'importe quel bean, à l'exception de ceux comportant l'annotation @Vetoed.
Dans CDI 4.0, ces archives sont considérées comme des archives de bean implicites. Dans les archives de bean implicites, CDI ne peut gérer et injecter que les beans comportant une annotation de définition de bean.
Pour marquer une archive comme étant une archive de bean explicite et restaurer le comportement de reconnaissance de bean de l'édition précédente,
fournissez un élément beans dans le fichier et spécifiez l'attribut version (défini sur 1.1 ou une version ultérieure) et l'attribut bean-discovery-mode="all"
sur l'élément 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>
Pour plus d'informations sur la migration de Jakarta 10, voir Différences entre Jakarta Contexts and Dependency Injection 4.0 et 3.0.