Я не могу получить бин, какой хочу, при использовании CDI и аннотации @Qualifier
@Qualifier @interface
для Type
@Repeatable(Type.List.class)
@Target({TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface Type {
String value();
@Target({TYPE})
@Retention(RetentionPolicy.RUNTIME)
@interface List {
Type[] value();
}
}
и AnnotationLiteral
реализация
public class TypeAL extends AnnotationLiteral<Type> implements Type {
private final String type;
public TypeAL(String type) {
this.type = type;
}
@Override
public String value() {
return type;
}
}
@Qualifier @interface
для Related
@Target({TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Qualifier
public @interface Related {
Class value();
}
и AnnotationLiteral
реализация
public class RelatedAL extends AnnotationLiteral<Related> implements Related {
private final Class clazz;
public RelatedAL(Class clazz) {
this.clazz = clazz;
}
@Override
public Class value() {
return clazz;
}
}
Когда я комментирую что-то вроде этого:
@Type(TYPE_ONE)
@Type(TYPE_TWO)
@Related(RelatedClassWhichWillDoLogic.class)
public class LogicToRelatedClass implements BaseLogic {}
и когда я хотел бы получить CDI.current().select(BaseLogic.class, new TypeAL(TYPE_ONE), new RelatedAL(RelatedClassWhichWillDoLogic.class))
я ничего не иду ...
Почему это?