Cambio de comportamiento en el descubrimiento de beans en módulos con el archivo beans.xml vacío

En CDI anterior a CDI 4.0, los archivos JAR y WAR que contienen un archivo de descriptor de despliegue beans.xml sin ningún elemento <beans> se consideran archivos de beans explícitos. En estos archivos, CDI puede gestionar e inyectar cualquier bean, excepto los anotados con @Vetoed.

En CDI 4.0, estos archivos se consideran archivos de beans implícitos. En los archivos de beans implícitos, CDI solo puede gestionar e inyectar beans anotados con una anotación de definición de bean.

Para marcar un archivo como un archivo de beans explícito y restaurar el comportamiento de descubrimiento de beans del release anterior, proporcione un elemento beans en el archivo y especifique el atributo version (establecido en 1.1 o posterior) y el atributo bean-discovery-mode="all" en el elemento 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>

Para obtener más información sobre la migración de Jakarta 10, consulte Diferencias entre los contextos de Jakarta y la inyección de dependencias 4.0 y 3.0.