[
https://issues.jboss.org/browse/CDI-132?page=com.atlassian.jira.plugin.sy...
]
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