Zmiana zachowania na wykrywanie komponentów bean w modułach z plikiem beans.xml bez podanej wersji

W CDI wcześniejszych niż CDI 4.0 archiwa JAR i WAR zawierające plik deskryptora wdrażania beans.xml, który nie określa atrybutu version w elemencie głównym <beans>, są uważane za jawne archiwa komponentów bean. W tych archiwach CDI może zarządzać i wstrzykiwać dowolny komponent bean, z wyjątkiem tych, które są opatrzone adnotacjami @Vetoed.

W CDI 4.0 archiwa te są uważane za dorozumiane archiwa komponentów bean. W dorozumianych archiwach komponentów bean CDI może zarządzać i wstrzykiwać komponenty bean tylko z adnotacją definiującą komponent bean.

Aby oznaczyć archiwum jako jawne archiwum komponentu bean i przywrócić zachowanie wykrywania komponentów bean z poprzedniej wersji, należy w elemencie beans określić zarówno atrybut version (ustawiony na wartość 1.1 lub nowszą), jak i atrybut bean-discovery-mode="all":


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

Ta reguła zawiera zautomatyzowaną poprawkę, która dodaje brakujące atrybuty version i bean-discover = "all " . Skopiuj konfigurację niestandardową do pliku budowania aplikacji, aby włączyć automatyzację poprawek.

Więcej informacji na temat migracji Jakarta 10 znajduje się w sekcji Różnice między kontekstami Dżakarta a wstrzykiwaniem zależności 4.0 i 3.0.