W specyfikacji CDI (Contexts and Dependency Injection) w wersji 1.1 wprowadzono tryb wykrywania niejawnych komponentów bean, który powoduje zmiany działania i wydajności w stosunku do implementacji specyfikacji CDI 1.0 na platformie Java Platform, Enterprise Edition (Java EE) 6 używanej na serwerze WebSphere Application Server. Niejawny komponent bean to archiwum zawierające jedną lub więcej klas komponentów bean z adnotacją definiującą komponent bean albo z jednym lub większą liczbę komponentów bean sesji.
Przy przechodzeniu ze środowiska Java EE 6 CDI 1.0 do środowiska Java EE 7 CDI 1.1 lub nowszego wykrywanie niejawnych komponentów bean skutkuje skanowaniem wszystkich plików WAR i JAR w czasie wykonywania, nawet jeśli nie mają one pliku beans.xml. To skanowanie to zmiana działania w stosunku do wersji Java EE 6 CDI 1.0, w której brak pliku beans.xml zapobiegał skanowaniu archiwów w aplikacji.
Ta reguła powoduje oznaczenie poniższych adnotacji definiujących komponenty bean i komponenty EJB (Enterprise JavaBeans) sesji we wszystkich plikach WAR i JAR, dla których nie istnieje plik beans.xml.
Skaner aplikacji binarnych flaguje klasy, które są opatrzone adnotacją @NormalScope.
Te adnotacje mogą zostać wykryte, nawet jeśli pojawiają się poza kontekstem beans.xml które jawnie lub niejawnie ich używają.
Aby wyłączyć tę zmianę działania specyfikacji CDI w czasie wykonywania na poziomie plików WAR lub JAR, należy dodać plik beans.xml z trybem wykrywania komponentów bean ustawionym na wartość none, jak pokazano w poniższym przykładzie.
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="none" version="1.1">
</beans>
Na serwerze Liberty można również wyłączyć to działanie, dodając następującą właściwość do pliku server.xml.
<cdi12 enableImplicitBeanArchives="false"/>
Więcej informacji na temat implementacji Java EE 7 CDI 1.2 można znaleźć na stronie Zmiany w działaniu specyfikacji Contexts and Dependency Injection 1.2.