[cdi-dev] [JBoss JIRA] (CDI-43) Allow Extensions to specify the annotations that they are interested in
Pete Muir (JIRA)
jira-events at lists.jboss.org
Mon Aug 20 13:50:14 EDT 2012
[ https://issues.jboss.org/browse/CDI-43?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12712513#comment-12712513 ]
Pete Muir edited comment on CDI-43 at 8/20/12 1:48 PM:
-------------------------------------------------------
A more formal proposal:
Add
{code}
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface HandlesTypes {
Class[] value();
}
{code}
(Name is a strawman...)
This annotation can be applied to an extension class, and provides a hint to the container about classes or annotations which this extension is interested in.
If this annotation is used, the container, as a performance optimisation, may only call ProcessAnnotatedType observer methods:
* that have the event type (or a super class or super interface of the event type) in the set of handled types
* that have an annotation (applied to the type, constructor, constructor parameter, method, method parameter or field) that is in the set of handled types
and may not call a ProcessAnnotatedType observer method for other event types.
was (Author: pmuir):
A more formal proposal:
Add
{code}
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.CLASS)
public @interface HandlesTypes {
Class[] value();
}
{code}
(Name is a strawman...)
This annotation can be applied to an extension class, and provides a hint to the container about classes or annotations which this extension is interested in.
If this annotation is used, the container, as a performance optimisation, may only call ProcessAnnotatedType observer methods:
* that have the event type (or a super class or super interface of the event type) in the set of handled types
* that have an annotation (applied to the type, constructor, constructor parameter, method, method parameter or field) that is in the set of handled types
and may not call a ProcessAnnotatedType observer method for other event types.
> Allow Extensions to specify the annotations that they are interested in
> -----------------------------------------------------------------------
>
> Key: CDI-43
> URL: https://issues.jboss.org/browse/CDI-43
> Project: CDI Specification Issues
> Issue Type: Feature Request
> Components: Portable Extensions
> Affects Versions: 1.0
> Reporter: Stuart Douglas
> Fix For: 1.1 (Proposed)
>
>
> Currently portable extensions that wish to look for a specific annotation have to look through all availible classes in the ProcessAnnotatatedType event, which is quite inefficient. It would be good if extensions could do something like:
> public void processAnnotatedType(@Observes @RequireAnnotations({@Unwraps.class}) ProcessAnnotatedType pat)
> This could allow the container to take advantage of annotation indexing to improve boot time performance, as well as reducing uneeded processing in the observer.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the cdi-dev
mailing list