Jozef Hartinger created DELTASPIKE-783:
------------------------------------------

             Summary: 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