Na implementação de Contexts and Dependency Injection (CDI) 1.0, o método getAnnotated em uma classe que implementa a
interface javax.enterprise.inject.spi.InjectionPoint pode retornar uma instância de javax.enterprise.inject.spi.Annotated.
Na implementação do CDI 1.2, o método getAnnotated deve retornar uma instância de AnnotatedField ou
de AnnotatedParameter, dependendo de o ponto de injeção ser um campo injetado ou um parâmetro em um construtor ou método.
Esta regra sinaliza chamadas para o construtor Annotated dentro de um método getAnnotated em uma classe que implementa a
interface javax.enterprise.inject.spi.InjectionPoint. Por exemplo, a chamada a seguir para new Annotated() é sinalizada:
< code> public class MyInjectionPoint implementa InjectionPoint {
public Anotado getAnnotated() {
retornar novo Anotado () {
public Set < Annotation> getAnnotations() {
return null;
}
...
};
}
...
} < /code>
O scanner do aplicativo binário sinaliza todos os métodos getAnnotated em classes que implementam a interface javax.enterprise.inject.spi.InjectionPoint. Se o método getAnnotated sinalizado retornar uma instância de AnnotatedParameter ou AnnotatedField, essa regra poderá
ser ignorada. Se o método getAnnotated retornar uma instância de Annotated, o código deverá ser mudado.
Na implementação do CDI 1.2, o aplicativo que contém a classe MyInjectionPoint não é iniciado e lança a exceção a seguir:
org.jboss.weld.exceptions.IllegalArgumentException: WELD-001521: InjectionPoint.getAnnotated() deve retornar AnnotatedParameter ou AnnotatedField
Para resolver esse problema, substitua a chamada para new Annotated() por new AnnotatedField() ou
new AnnotatedParameter(), dependendo de o ponto de injeção ser um campo injetado ou um parâmetro em um construtor ou método.
Para obter mais informações sobre a implementação do Java EE 7 CDI 1.2, consulte Mudanças de comportamento do Contexts and Dependency Injection 1.2.