Buscar un cambio de comportamiento en el método de InjectionPoint getAnnotated

En la implementación de CDI (Contexts and Dependency Injection) 1.0, el método getAnnotated en una clase que implementa la interfaz javax.enterprise.inject.spi.InjectionPoint puede devolver una instancia de javax.enterprise.inject.spi.Annotated. En la implementación de CDI 1.2, el método getAnnotated debe devolver una instancia de AnnotatedField o AnnotatedParameter, en función de si el punto de inyección es un campo inyectado o un parámetro en un constructor o método.

Esta regla señala las llamadas al constructor Annotated en un método getAnnotated de una clase que implementa la interfaz javax.enterprise.inject.spi.InjectionPoint. Por ejemplo, se señala la siguiente llamada a new Annotated():

< code> public class MyInjectionPoint implementa InjectionPoint {

    public Annotated getAnnotated() {
        return new Annotated () {

            public Set < Annotation> getAnnotations() {
                return null;
            }
            ...
        };
    }
    ...
} < /código>

El explorador de aplicaciones binarias marca todos los métodos getAnnotated en las clases que implementan la interfaz javax.enterprise.inject.spi.InjectionPoint. Si el método getAnnotated marcado devuelve una instancia de AnnotatedParameter o AnnotatedField, esta regla se puede ignorar. Si el método getAnnotated devuelve una instancia de Annotated, el código se debe cambiar.

En la implementación de CDI 1.2, la aplicación que contiene la clase MyInjectionPoint no se inicia y emite la siguiente excepción:

org.jboss.weld.exceptions.IllegalArgumentException: WELD-001521: InjectionPoint.getAnnotated() debe devolver AnnotatedParameter o AnnotatedField

Para resolver este problema, sustituya la llamada a new Annotated() con new AnnotatedField() o new AnnotatedParameter(), en función de si el punto de inyección es un campo inyectado o un parámetro en un constructor o método.

Para obtener más información sobre la implementación de EE 7 CDI 1.2, consulte Cambios de comportamiento de Contexts and Dependency Injection 1.2.