Alternatives are explicitly declared within beans.xml
for them to be considered by the container for typesafe resolution, as they are disabled by default. One of the common uses of alternatives is for different deployment scenarios, such as for test deployments.
To create an alternative, a bean only requires the @Alternative
annotation to be present on its type:
@Alternative @Admin @User public class MockAccount implements Account { ... }
Activation of the alternative, for beans within the same archive, would need a beans.xml
with:
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> <alternatives> <class>org.cdibook.chapter2.alternatives.MockAccount</class> </alternatives> </beans>