[ https://issues.apache.org/jira/browse/DELTASPIKE-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14217897#comment-14217897 ]
Romain Manni-Bucau commented on DELTASPIKE-783: ----------------------------------------------- [~jharting] I fear it is not portable. You are right using 100% reflection but using bytecode scanning you can still fail if you don't want to allow it which is most of the time what you want for user annotations (= avoid wrong packaging). + IIRC in practise for annotations you get java.lang.TypeNotPresentException lazily > Use @WithAnnotations > -------------------- > > Key: DELTASPIKE-783 > URL: https://issues.apache.org/jira/browse/DELTASPIKE-783 > Project: DeltaSpike > Issue Type: Improvement > Affects Versions: 1.1.0 > Reporter: Jozef Hartinger > > Make use of CDI's @WithAnnotations feature. > Each extension that does something like: > {code:JAVA} > <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> event) { > if (!event.getAnnotatedType().isAnnotationPresent(Foo.class)) { > return; > } > // ... > {code} > can be extended to: > {code:JAVA} > <X> void processAnnotatedType(@Observes @WithAnnotations(Foo.class) > ProcessAnnotatedType<X> event) { > if (!event.getAnnotatedType().isAnnotationPresent(Foo.class)) { > return; > } > // ... > {code} > This can yield performance boost in CDI 1.1+ environment because: > 1) the observer method will be only called for annotated types that have the > annotation, not for all the types in the deployment > 2) the container may not event need to load the annotated type and its class > at all if there are no observers requesting the type and the type does not > represent a bean. > In addition, this works nice in CDI 1.0 environment where the class > definition for the annotation is not be found and is ignored. -- This message was sent by Atlassian JIRA (v6.3.4#6332)