[ https://issues.apache.org/jira/browse/DELTASPIKE-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14217945#comment-14217945 ]
Jozef Hartinger commented on DELTASPIKE-783: -------------------------------------------- {quote}for sure a bytecode scanning tool can see it and then is it a bug if it throws an exception?{quote} Definitelly! Annotations were designed this way. As a result, Java runtimes *purposely ignore unknown annotations*. If a bytecode scanning tool does not comply with this, causing exceptions in valid applications, then this is a bug. Btw are you sure there is a particular bytecode scanning tool behaving the what you describe or are we just hypothetical here? > 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)