You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by gp...@apache.org on 2013/04/29 21:30:39 UTC
svn commit: r1477289 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event:
EventUtil.java NotificationManager.java
Author: gpetracek
Date: Mon Apr 29 19:30:34 2013
New Revision: 1477289
URL: http://svn.apache.org/r1477289
Log:
OWB-798 first performance improvement
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/EventUtil.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/EventUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/EventUtil.java?rev=1477289&r1=1477288&r2=1477289&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/EventUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/EventUtil.java Mon Apr 29 19:30:34 2013
@@ -54,20 +54,23 @@ public final class EventUtil
}
}
- public static void checkEventBindings(WebBeansContext webBeansContext, Set<Annotation> annotations)
+ //expensive check needed by the TCK (EventBindingTypesTest#testFireEventWithNonRuntimeBindingTypeFails) - see OWB-798
+ public static void checkQualifierImplementations(Set<Annotation> qualifiers)
{
- for(Annotation ann : annotations)
+ for (Annotation qualifier : qualifiers)
{
//This is added, because TCK Event tests for this.
- Retention retention = ann.annotationType().getAnnotation(Retention.class);
+ Retention retention = qualifier.annotationType().getAnnotation(Retention.class);
RetentionPolicy policy = retention.value();
if(!policy.equals(RetentionPolicy.RUNTIME))
{
- throw new IllegalArgumentException("Event qualifiere RetentionPolicy must be RUNTIME for qualifier : " + ann);
+ throw new IllegalArgumentException("Event qualifier RetentionPolicy must be RUNTIME for qualifier : " + qualifier.annotationType().getName());
}
- ///////////////////////////////////////////////////////
-
}
+ }
+
+ public static void checkEventBindings(WebBeansContext webBeansContext, Set<Annotation> annotations)
+ {
webBeansContext.getAnnotationManager().checkQualifierConditions(annotations);
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java?rev=1477289&r1=1477288&r2=1477289&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/event/NotificationManager.java Mon Apr 29 19:30:34 2013
@@ -129,6 +129,12 @@ public final class NotificationManager
observersMethods = filterByQualifiers(observersMethods, metadata.getQualifiers());
+ //this check for the TCK is only needed if no observer was found
+ if (observersMethods.isEmpty())
+ {
+ EventUtil.checkQualifierImplementations(metadata.getQualifiers());
+ }
+
return observersMethods;
}