You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/04/29 19:12:43 UTC

svn commit: r1477204 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java

Author: rmannibucau
Date: Mon Apr 29 17:12:03 2013
New Revision: 1477204

URL: http://svn.apache.org/r1477204
Log:
resolveObserverMethods not consistent with fireEevnt

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java?rev=1477204&r1=1477203&r2=1477204&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/WebappBeanManager.java Mon Apr 29 17:12:03 2013
@@ -32,7 +32,9 @@ import javax.enterprise.inject.spi.Annot
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.InjectionPoint;
 import javax.enterprise.inject.spi.InjectionTarget;
+import javax.enterprise.inject.spi.ObserverMethod;
 import java.lang.annotation.Annotation;
+import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArraySet;
 
@@ -58,6 +60,18 @@ public class WebappBeanManager extends B
     }
 
     @Override
+    public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, EventMetadata metadata) {
+        if(ClassUtil.isDefinitionContainsTypeVariables(ClassUtil.getClass(metadata.getType()))) {
+            throw new IllegalArgumentException("Event type can not contain type variables. Event class is : " + event.getClass());
+        }
+
+        final Set<ObserverMethod<? super T>> set = new HashSet<ObserverMethod<? super T>>();
+        set.addAll(getNotificationManager().resolveObservers(event, metadata));
+        set.addAll(getParentBm().getNotificationManager().resolveObservers(event, metadata));
+        return set;
+    }
+
+    @Override
     public Object getInjectableReference(InjectionPoint injectionPoint, CreationalContext<?> ctx) {
         try {
             return super.getInjectableReference(injectionPoint, ctx);