[ 
https://issues.apache.org/jira/browse/DELTASPIKE-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14217972#comment-14217972
 ] 

Romain Manni-Bucau commented on DELTASPIKE-783:
-----------------------------------------------

I know xbean for instance is very "in between" cause it allows you to get this 
information and potentially you can rely on it to generate proxies or whatever 
before having loaded any classes in the app classloader. In TomEE we enforced 
it ensuring by reflection bytecode information are valid but not sure it is the 
case everywhere.

> 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)

Reply via email to