[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