Mudança de comportamento para descoberta de bean em módulos com o arquivo beans.xml sem nenhuma versão especificada

No CDI anterior ao CDI 4.0, os archives JAR e WAR que contêm um arquivo descritor de implementação beans.xml que não especifica um atributo uma versão no elemento raiz <beans> são considerados archives de bean explícitos. Nesses archives, o CDI pode gerenciar e injetar qualquer bean, exceto aqueles anotados com @Vetoed.

No CDI 4.0, esses archives são considerados archives de bean implícitos. Em archives de bean implícitos, o CDI só pode gerenciar e injetar beans anotados com uma anotação de definição de bean.

Para marcar um archive como um archive de bean explícito e restaurar o comportamento de descoberta de bean da liberação anterior, especifique o atributo version (configurado como 1.1 ou mais recente) e o atributo bean-discovery-mode="all", no 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>

Essa regra possui uma correção automatizada para incluir os atributos version e bean-discover = "all " ausentes. Copie a configuração customizada para seu arquivo de construção do aplicativo para ativar a automação de correção.

Para obter mais informações de migração do Jakarta 10, consulte Diferenças entre o Jakarta Contexts and Dependency Injection 4.0 e o 3.0.