Toto pravidlo značí třídy, které jsou anotovány s použitím anotací @Specializes a @Alternative.
Je-li třída odkazována třídou z jiného modulu, není tato třída vkládána do druhého modulu, pokud není uvedena jako <alternative> v souboru META-INF/beans.xml jiného modulu.
V následujícím příkladu je třída AltClass3 uvedena v souboru jar2/META-INF/beans.xml jako <alternative>. Třída není uvedena jako <alternative> v souboru jar1/META-INF/beans.xml.
|
V implementaci CDI (Contexts and Dependency Injection) verze 1.0 je třída Class2 vložena a použita jako producent pro třídu Class1.foo.
V implementaci CDI není vložena třída Class2 a aplikace se nespouští a uvádí, že nelze nalézt žádného producenta pro třídu Class1.foo.
Problém můžete vyřešit dvěma způsoby:
@Specializes z AltClass3AltClass3 jako <alternative> v souboru jar1/META-INF/beans.xmlDalší informace o implementaci Java Platform, Enterprise Edition (Java EE) 7 CDI 1.2 viz Změny chování Contexts and Dependency Injection 1.2.