[cdi-dev] [JBoss JIRA] (CDI-132) Clarify which initial info AnnotatedType should contain

Jozef Hartinger (JIRA) jira-events at lists.jboss.org
Tue Oct 23 13:19:01 EDT 2012


     [ https://issues.jboss.org/browse/CDI-132?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jozef Hartinger reopened CDI-132:
---------------------------------



Thinking about the issue more, there is still a scenario where AnnotatedType.getAnnotations() does not return enough information.

{code:JAVA}
@Dependent
public class Foo {
}

@RequestScoped
public class Bar extends Foo {
}

public class FooExtension implements Extension {

    public void wrap(@Observer ProcessAnnotatedType<Bar> event) {
        final AnnotatedType<Bar> bar = event.getAnnotatedType();
        event.setAnnotatedType(new ForwardingAnnotatedType(bar));
    }
}
{code}

If there was no Extension, the Bar bean would be recognized as @RequestScoped. However, the extension sees both @Dependent and @RequestScoped and so does the CDI implementation once the AnnotatedType is wrapped.

We could avoid that if we say that AnnotatedType.getAnnotations() returns all the annotations on the type and all the annotations from supertypes that are inherited taking scope inheritance (Section 4.1) into account.
                
> Clarify which initial info AnnotatedType should contain
> -------------------------------------------------------
>
>                 Key: CDI-132
>                 URL: https://issues.jboss.org/browse/CDI-132
>             Project: CDI Specification Issues
>          Issue Type: Clarification
>          Components: Portable Extensions
>            Reporter: Mark Struberg
>            Assignee: Pete Muir
>            Priority: Minor
>             Fix For: 1.1.PRD
>
>
> The spec is not exactly clear about the initial content of AnnotatedType.
> When initially building the AnnotatedType (e.g. before handing it over to the Extensions) we need to pre-fill them with the info from the annotations from the classes.
> Should this AnnotatedType:
> 1.) contain no annotations from superclasses?
> 2.) contain all annotations from superclasses?
> 3.) contain @Inherited annotations from superclasses?
> I think the other questions already got cleared up in CDI-70:
> Should AnnotatedType contain derived public? protected? private? methods/fields from a superclass?
> Imo it should contain all information which would be available by manually parsing any annotations. In other words: it should be possible to completely modify or emulate annotations of a parsed type.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the cdi-dev mailing list