Verificar uma mudança de comportamento no método InjectionPoint getAnnotated

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.