[weld-commits] Weld SVN: r4622 - core/trunk/impl/src/main/java/org/jboss/weld/event and 1 other directory.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Tue Nov 3 12:53:49 EST 2009


Author: pete.muir at jboss.org
Date: 2009-11-03 12:53:48 -0500 (Tue, 03 Nov 2009)
New Revision: 4622

Modified:
   cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/container/event/ContainerEventTest.java
   cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/container/event/ProcessInjectionTargetObserver.java
   core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java
Log:
WELD-218

Modified: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/container/event/ContainerEventTest.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/container/event/ContainerEventTest.java	2009-11-03 17:34:07 UTC (rev 4621)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/container/event/ContainerEventTest.java	2009-11-03 17:53:48 UTC (rev 4622)
@@ -92,6 +92,7 @@
       assert ProcessInjectionTargetObserver.getEvent3Observed() == 0;
       assert ProcessInjectionTargetObserver.getEvent4Observed() == 0;
       assert ProcessInjectionTargetObserver.getEvent5Observed() == 1;
+      assert ProcessInjectionTargetObserver.getEventWithTypeVariable() != null;
    }
 
    @Test

Modified: cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/container/event/ProcessInjectionTargetObserver.java
===================================================================
--- cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/container/event/ProcessInjectionTargetObserver.java	2009-11-03 17:34:07 UTC (rev 4621)
+++ cdi-tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/extensions/container/event/ProcessInjectionTargetObserver.java	2009-11-03 17:53:48 UTC (rev 4622)
@@ -10,6 +10,7 @@
    private static ProcessInjectionTarget<Cow> statefulSessionBeanEvent = null;
    private static ProcessInjectionTarget<SheepInterceptor> sessionBeanInterceptorEvent = null;
    private static ProcessInjectionTarget<Farm> managedBeanEvent = null;
+   private static ProcessInjectionTarget<?> eventWithTypeVariable = null;
    
    private static int event1Observed = 0;
    private static int event2Observed = 0;
@@ -54,6 +55,11 @@
       event5Observed++;
    }
    
+   public <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> event)
+   {
+      eventWithTypeVariable = event;
+   } 
+   
    public static ProcessInjectionTarget<Sheep> getStatelessSessionBeanEvent()
    {
       return statelessSessionBeanEvent;
@@ -73,6 +79,11 @@
    {
       return managedBeanEvent;
    }
+   
+   public static ProcessInjectionTarget<?> getEventWithTypeVariable()
+   {
+      return eventWithTypeVariable;
+   }
 
    public static int getEvent1Observed()
    {

Modified: core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java	2009-11-03 17:34:07 UTC (rev 4621)
+++ core/trunk/impl/src/main/java/org/jboss/weld/event/ObserverMethodImpl.java	2009-11-03 17:53:48 UTC (rev 4622)
@@ -18,7 +18,6 @@
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
@@ -122,28 +121,6 @@
       {
          throw new DefinitionException(this + " is invalid because it contains more than event parameter annotated @Observes");
       }
-      // Make sure the event object above is not parameterized with a type
-      // variable or wildcard
-      if (eventObjects.size() > 0)
-      {
-         WeldParameter<?, ?> eventParam = eventObjects.iterator().next();
-         if (eventParam.isParameterizedType())
-         {
-            for (Type type : eventParam.getActualTypeArguments())
-            {
-               if (type instanceof TypeVariable<?>)
-               {
-                  throw new DefinitionException("Cannot use a type variable " + type + " in an parameterized type " + toString());
-               }
-               // else if (type instanceof WildcardType)
-               // {
-               // throw new
-               // DefinitionException("Cannot use a wildcard variable " + type +
-               // " in an parameterized type " + toString());
-               // }
-            }
-         }
-      }
       // Check for parameters annotated with @Disposes
       List<WeldParameter<?, X>> disposeParams = this.observerMethod.getAnnotatedParameters(Disposes.class);
       if (disposeParams.size() > 0)



More information about the weld-commits mailing list