[webbeans-commits] Webbeans SVN: r1702 - in tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event: firesall and 7 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Wed Feb 25 06:46:13 EST 2009
Author: dallen6
Date: 2009-02-25 06:46:12 -0500 (Wed, 25 Feb 2009)
New Revision: 1702
Added:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ConditionalEvent.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EJBEvent.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/SimpleEventType.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AbstractEvent.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesObserver.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/ComplexEvent.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/GeneralEvent.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/AnimalStereotypeAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ConsumerNotifiedForEventTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/DuplicateBindingsToAddObserverTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ManagerAddObserverTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/NonBindingTypesToAddObserverTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ObserverExceptionAbortsTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/Role.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/RoleBinding.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/Tame.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/TameAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotypeAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/DuplicateBindingsToRemoveObserverTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/ManagerRemoveObserverTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/NonBindingTypesToRemoveObserverTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Role.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/RoleBinding.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Tame.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/TameAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeA.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeABinding.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeB.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeBBinding.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeC.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeCBinding.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotypeAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksEventTypeWhenResolvingTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksTypeParametersWhenResolvingTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/UnusedEventType.java
Removed:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AbstractEvent.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AllEventTypesObserver.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeA.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeABinding.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeB.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeBBinding.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeC.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeCBinding.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ComplexEvent.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/GeneralEvent.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/UnusedEventType.java
Modified:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EventTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Pomeranian.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/PomeranianInterface.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/RecluseSpider.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Spitz.java
Log:
Refactored event tests which interfere with one another
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AbstractEvent.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AbstractEvent.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AbstractEvent.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,28 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jboss.jsr299.tck.unit.event;
-
-/**
- * Abstract level of event hierarchy used to test firing
- * a concrete type and observing each of the event types
- * associated with that concrete type.
- *
- * @author David Allen
- *
- */
-abstract class AbstractEvent implements GeneralEvent {}
\ No newline at end of file
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AllEventTypesObserver.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AllEventTypesObserver.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AllEventTypesObserver.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,62 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jboss.jsr299.tck.unit.event;
-
-import javax.event.Observes;
-
-/**
- * This class declares observer methods for every superclass and interface
- * contained in the hierarchy for the {@link ComplexEvent} event type.
- *
- * @author David Allen
- *
- */
-class AllEventTypesObserver
-{
- private static int objectEventQuantity = 0;
- private static int generalEventQuantity = 0;
- private static int abstractEventQuantity = 0;
- private static int complexEventQuantity = 0;
-
- public void observeObject(@Observes Object event)
- {
- // Avoid counting implicit container events
- if (event instanceof ComplexEvent)
- objectEventQuantity++;
- }
-
- public void observeGeneralEvent(@Observes GeneralEvent event)
- {
- generalEventQuantity++;
- }
-
- public void observeAbstractEvent(@Observes AbstractEvent event)
- {
- abstractEventQuantity++;
- }
-
- public void observeComplexEvent(@Observes ComplexEvent event)
- {
- complexEventQuantity++;
- }
-
- public int getTotalEventsObserved()
- {
- return objectEventQuantity + generalEventQuantity + abstractEventQuantity + complexEventQuantity;
- }
-}
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeA.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeA.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeA.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,22 +0,0 @@
-package org.jboss.jsr299.tck.unit.event;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import javax.inject.BindingType;
-
- at Target( { TYPE, METHOD, PARAMETER, FIELD })
- at Retention(RUNTIME)
- at Documented
- at BindingType
- at interface BindingTypeA
-{
-
-}
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeABinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeABinding.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeABinding.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,5 +0,0 @@
-package org.jboss.jsr299.tck.unit.event;
-
-import javax.inject.AnnotationLiteral;
-
-public class BindingTypeABinding extends AnnotationLiteral<BindingTypeA> implements BindingTypeA {}
\ No newline at end of file
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeB.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeB.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeB.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,22 +0,0 @@
-package org.jboss.jsr299.tck.unit.event;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import javax.inject.BindingType;
-
- at Target( { TYPE, METHOD, PARAMETER, FIELD })
- at Retention(RUNTIME)
- at Documented
- at BindingType
- at interface BindingTypeB
-{
-
-}
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeBBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeBBinding.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeBBinding.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,5 +0,0 @@
-package org.jboss.jsr299.tck.unit.event;
-
-import javax.inject.AnnotationLiteral;
-
-public class BindingTypeBBinding extends AnnotationLiteral<BindingTypeB> implements BindingTypeB {}
\ No newline at end of file
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeC.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeC.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeC.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,22 +0,0 @@
-package org.jboss.jsr299.tck.unit.event;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import javax.inject.BindingType;
-
- at Target( { TYPE, METHOD, PARAMETER, FIELD })
- at Retention(RUNTIME)
- at Documented
- at BindingType
- at interface BindingTypeC
-{
- public String value();
-}
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeCBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeCBinding.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeCBinding.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,19 +0,0 @@
-package org.jboss.jsr299.tck.unit.event;
-
-import javax.inject.AnnotationLiteral;
-
-public class BindingTypeCBinding extends AnnotationLiteral<BindingTypeC> implements BindingTypeC
-{
-
- private String stringValue;
-
- public BindingTypeCBinding(String value)
- {
- this.stringValue = value;
- }
-
- public String value()
- {
- return this.stringValue;
- }
-}
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ComplexEvent.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ComplexEvent.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ComplexEvent.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,30 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jboss.jsr299.tck.unit.event;
-
-/**
- * An event type with a class/interface hierarchy complex enough
- * to test observing all event types.
- *
- * @author David Allen
- *
- */
-public class ComplexEvent extends AbstractEvent implements GeneralEvent
-{
-
-}
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ConditionalEvent.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ConditionalEvent.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ConditionalEvent.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.event;
+
+class ConditionalEvent
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ConditionalEvent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EJBEvent.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EJBEvent.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EJBEvent.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.event;
+
+class EJBEvent
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EJBEvent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EventTest.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/EventTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,6 +1,5 @@
package org.jboss.jsr299.tck.unit.event;
-import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Set;
@@ -9,7 +8,6 @@
import javax.event.Observer;
import javax.inject.DuplicateBindingTypeException;
import javax.inject.Standard;
-import javax.inject.TypeLiteral;
import javax.inject.manager.Bean;
import org.hibernate.tck.annotations.SpecAssertion;
@@ -82,31 +80,6 @@
}
}
- /**
- * The event types of the event include all superclasses and interfaces of
- * the class of the event object.
- *
- * @throws Exception
- */
- @Test(groups = { "events", "broken" })
- @SpecAssertion(section = "7.1", id = "b")
- public void testEventTypeIncludesAllSuperclassesAndInterfacesOfEventObject() throws Exception
- {
- // Fire a single complex type of event with many observers
- new RunInDependentContext()
- {
-
- @Override
- protected void execute() throws Exception
- {
- AllEventTypesObserver theObserver = getCurrentManager().getInstanceByType(AllEventTypesObserver.class);
- getCurrentManager().fireEvent(new ComplexEvent());
- assert theObserver.getTotalEventsObserved() == 4;
- }
-
- }.run();
- }
-
@Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
@SpecAssertions( { @SpecAssertion(section = "7.1", id = "a"),
@SpecAssertion(section = "7.2", id = "b") })
@@ -154,166 +127,6 @@
}
@Test(groups = { "events", "broken" })
- @SpecAssertion(section = "7.3", id = "b")
- public void testManagerAddObserver()
- {
- Observer<AnEventType> observer1 = new AnObserver();
-
- // First test with the Class<T> of the event type
- getCurrentManager().addObserver(observer1, AnEventType.class);
- Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
- assert resolvedObservers.size() == 1;
- assert resolvedObservers.iterator().next() == observer1;
-
- // Now test with the TypeLiteral<T> of the event type
- Observer<AnEventType> observer2 = new AnObserver();
- getCurrentManager().addObserver(observer2, new TypeLiteral<AnEventType>()
- {
- });
- resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
- assert resolvedObservers.size() == 2;
- boolean foundObserver = false;
- for (Observer<AnEventType> obs : resolvedObservers)
- {
- if (obs == observer2)
- {
- foundObserver = true;
- break;
- }
- }
- assert foundObserver;
-
- // Try adding an observer with some binding types
- Observer<AnEventType> observer3 = new AnObserver();
- Annotation[] bindingTypes = new Annotation[] { new RoleBinding("Admin"), new RoleBinding("Manager") };
- getCurrentManager().addObserver(observer3, AnEventType.class, bindingTypes);
- resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), bindingTypes);
- assert resolvedObservers.size() == 3;
- foundObserver = false;
- for (Observer<AnEventType> obs : resolvedObservers)
- {
- if (obs == observer3)
- {
- foundObserver = true;
- break;
- }
- }
- assert foundObserver;
- }
-
- @Test(groups = { "events", "broken" })
- @SpecAssertion(section = "7.3", id = "e")
- public void testManagerRemoveObserver()
- {
- Observer<AnEventType> observer = new AnObserver();
-
- // First test with the Class<T> of the event type
- getCurrentManager().addObserver(observer, AnEventType.class);
- getCurrentManager().removeObserver(observer, AnEventType.class);
- Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
- assert resolvedObservers.isEmpty();
-
- // Now test with the TypeLiteral<T> of the event type
- observer = new AnObserver();
- getCurrentManager().addObserver(observer, new TypeLiteral<AnEventType>()
- {
- });
- getCurrentManager().removeObserver(observer, new TypeLiteral<AnEventType>()
- {
- });
- resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
- assert resolvedObservers.isEmpty();
-
- // Also test with binding types
- Annotation[] bindings = new Annotation[] { new RoleBinding("Admin") };
- getCurrentManager().addObserver(observer, AnEventType.class, bindings);
- getCurrentManager().removeObserver(observer, AnEventType.class);
- resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), bindings);
- assert !resolvedObservers.isEmpty();
- getCurrentManager().removeObserver(observer, AnEventType.class, new RoleBinding("Admin"));
- resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), bindings);
- assert resolvedObservers.isEmpty();
- }
-
- @Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
- @SpecAssertion(section = "7.3", id = "g")
- public void testMultipleInstancesOfSameBindingTypeWhenAddingObserverFails()
- {
- Observer<AnEventType> observer = new AnObserver();
- getCurrentManager().addObserver(observer, AnEventType.class, new RoleBinding("Admin"), new TameAnnotationLiteral(), new TameAnnotationLiteral());
- }
-
- @Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
- @SpecAssertion(section = "7.3", id = "h")
- public void testNonBindingTypePassedToAddObserverFails()
- {
- Observer<AnEventType> observer = new AnObserver();
- getCurrentManager().addObserver(observer, AnEventType.class, new AnimalStereotypeAnnotationLiteral());
- }
-
- @Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
- @SpecAssertion(section = "7.3", id = "g")
- public void testMultipleInstancesOfSameBindingTypeWhenRemovingObserverFails()
- {
- Observer<AnEventType> observer = new AnObserver();
- getCurrentManager().addObserver(observer, AnEventType.class);
- getCurrentManager().removeObserver(observer, AnEventType.class, new RoleBinding("Admin"), new TameAnnotationLiteral(), new TameAnnotationLiteral());
- }
-
- @Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
- @SpecAssertion(section = "7.3", id = "h")
- public void testNonBindingTypePassedToRemoveObserverFails()
- {
- Observer<AnEventType> observer = new AnObserver();
- getCurrentManager().addObserver(observer, AnEventType.class);
- getCurrentManager().removeObserver(observer, AnEventType.class, new AnimalStereotypeAnnotationLiteral());
- }
-
- @Test(groups = { "events", "broken" })
- @SpecAssertions( { @SpecAssertion(section = "7.1", id = "e"), @SpecAssertion(section = "7.4", id = "b") })
- public void testConsumerNotifiedWhenEventTypeAndAllBindingsMatch()
- {
- AnObserver observer1 = new AnObserver();
- AnObserver observer2 = new AnObserver();
- getCurrentManager().addObserver(observer1, AnEventType.class);
- getCurrentManager().addObserver(observer2, AnEventType.class);
-
- // Fire an event that will be delivered to the two above observers
- AnEventType anEvent = new AnEventType();
- getCurrentManager().fireEvent(anEvent);
-
- assert observer1.wasNotified;
- assert observer2.wasNotified;
- }
-
- @Test(groups = { "events" })
- @SpecAssertion(section = "7.4", id = "c")
- public void testObserverThrowsExceptionAbortsNotifications()
- {
- AnObserverWithException observer = new AnObserverWithException();
- AnObserverWithException anotherObserver = new AnObserverWithException();
- getCurrentManager().addObserver(anotherObserver, AnEventType.class);
- getCurrentManager().addObserver(observer, AnEventType.class);
-
- // Fire an event that will be delivered to the two above observers
- AnEventType anEvent = new AnEventType();
- boolean fireFailed = false;
- try
- {
- getCurrentManager().fireEvent(anEvent);
- }
- catch (Exception e)
- {
- if (e.equals(observer.theException) || e.equals(anotherObserver.theException))
- fireFailed = true;
- }
- assert fireFailed;
- // Only one of the observers can be notified if processing
- // is aborted
- assert observer.wasNotified ^ anotherObserver.wasNotified;
- }
-
- @Test(groups = { "events", "broken" })
@SpecAssertion(section = "7.5", id = "e")
public void testMultipleObserverMethodsOK()
{
@@ -329,24 +142,20 @@
assert resolvedIntegerObservers.size() == 1;
}
- @Test(groups = { "events", "ejb", "broken" })
+ @Test(groups = { "events", "ejb" })
@SpecAssertion(section = "7.5", id = "d")
public void testObserverMethodOnEnterpriseBeanIsBusinessMethodOrStatic()
{
- Set<Observer<String>> observers = getCurrentManager().resolveObservers("An event");
+ Set<Observer<EJBEvent>> observers = getCurrentManager().resolveObservers(new EJBEvent());
assert observers.size() == 2;
}
- @Test(groups = { "events", "broken" })
+ @Test(groups = { "events" })
@SpecAssertion(section = "7.5.1", id = "b")
public void testObserverMethodWithoutBindingTypesObservesEventsWithoutBindingTypes()
{
- // This observer has no binding types specified
- Set<Bean<Object>> beans = getCurrentManager().resolveByType(Object.class);
- assert beans.size() >= 2;
-
// Resolve registered observers with an event containing no binding types
- Set<Observer<String>> resolvedObservers = getCurrentManager().resolveObservers("A new event");
+ Set<Observer<SimpleEventType>> resolvedObservers = getCurrentManager().resolveObservers(new SimpleEventType());
assert resolvedObservers.size() == 2;
}
@@ -396,12 +205,13 @@
assert beans != null;
}
+ //TODO This test was working well in January 2009 but no longer creates the observer
@Test(groups = { "events", "broken" })
@SpecAssertion(section = "7.5.5", id = "a")
public void testConditionalObserver() throws Exception
{
RecluseSpider.notified = false;
- getCurrentManager().fireEvent("New string event");
+ getCurrentManager().fireEvent(new ConditionalEvent());
// Should not be notified since bean is not instantiated yet
assert !RecluseSpider.notified;
@@ -415,7 +225,7 @@
RecluseSpider bean = getCurrentManager().getInstanceByType(RecluseSpider.class);
assert bean != null;
- getCurrentManager().fireEvent("Another event");
+ getCurrentManager().fireEvent(new ConditionalEvent());
assert RecluseSpider.notified;
}
@@ -471,7 +281,7 @@
assert false;
}
- @Test(groups = { "events", "broken" })
+ @Test(groups = { "events" })
@SpecAssertion(section = "7.5.8", id = "i")
public void testStaticObserverMethodInvoked()
{
@@ -777,85 +587,12 @@
eventObjectContainsWildcards(new ArrayList<String>());
}
- private void eventObjectContainsWildcards(ArrayList<? extends Object> eventToFire)
+ private void eventObjectContainsWildcards(ArrayList<?> eventToFire)
{
// TODO There does not seem to be a way to get wildcarded types passed
getCurrentManager().resolveObservers(eventToFire);
}
- @Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
- @SpecAssertion(section = "7.7", id = "d")
- public void testDuplicateBindingTypesWhenResolvingFails()
- {
- AnObserver observer = new AnObserver();
- getCurrentManager().addObserver(observer, AnEventType.class, new BindingTypeABinding());
- getCurrentManager().resolveObservers(new AnEventType(), new BindingTypeABinding(), new BindingTypeABinding());
- }
-
- @Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
- @SpecAssertion(section = "7.7", id = "e")
- public void testNonBindingTypeAnnotationWhenResolvingFails()
- {
- AnObserver observer = new AnObserver();
- getCurrentManager().addObserver(observer, new TypeLiteral<AnEventType>()
- {
- });
- Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), new AnimalStereotypeAnnotationLiteral());
- assert !resolvedObservers.isEmpty();
- }
-
- @Test(groups = { "events" })
- @SpecAssertion(section = "7.7", id = "f")
- public void testResolvingChecksEventType()
- {
- Observer<AnEventType> observer = new AnObserver();
- getCurrentManager().addObserver(observer, AnEventType.class);
- Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
- assert !resolvedObservers.isEmpty();
- Set<?> emptyObserverSet = getCurrentManager().resolveObservers(new UnusedEventType("name"));
- assert emptyObserverSet.size() == 1;
- }
-
- @Test(groups = { "broken", "events" })
- @SpecAssertion(section = "7.7", id = "f")
- public void testResolvingChecksTypeParameters()
- {
- AListObserver observer = new AListObserver();
- AnotherListObserver anotherObserver = new AnotherListObserver();
- getCurrentManager().addObserver(observer, new TypeLiteral<ArrayList<String>>()
- {
- });
- getCurrentManager().addObserver(anotherObserver, new TypeLiteral<ArrayList<Integer>>()
- {
- });
- Set<Observer<ArrayList<String>>> resolvedObservers = getCurrentManager().resolveObservers(new ArrayList<String>());
- assert resolvedObservers.size() == 1;
- }
-
- @Test(groups = { "events", "broken" })
- @SpecAssertion(section = "7.7", id = "g")
- public void testResolvingChecksBindingTypes()
- {
- AnObserver observer = new AnObserver();
- AnObserver anotherObserver = new AnObserver();
- getCurrentManager().addObserver(observer, AnEventType.class, new BindingTypeABinding());
- getCurrentManager().addObserver(anotherObserver, AnEventType.class, new BindingTypeBBinding());
- Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), new BindingTypeABinding());
- assert resolvedObservers.size() == 1;
- }
-
- @Test(groups = { "events", "broken" })
- @SpecAssertion(section = "7.7", id = "g")
- public void testResolvingChecksBindingTypeMembers()
- {
- AnObserver observer = new AnObserver();
- AnObserver anotherObserver = new AnObserver();
- getCurrentManager().addObserver(observer, AnEventType.class, new BindingTypeCBinding("first-observer"));
- getCurrentManager().addObserver(anotherObserver, AnEventType.class, new BindingTypeCBinding("second-observer"));
- Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), new BindingTypeCBinding("first-observer"));
- assert resolvedObservers.size() == 1;
- }
-
/**
* By default, Java implementation reuse is assumed. In this case, the
* producer, disposal and observer methods of the first bean are not
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/GeneralEvent.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/GeneralEvent.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/GeneralEvent.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,27 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jboss.jsr299.tck.unit.event;
-
-/**
- * Arbitrary interface to test firing events and observing all
- * event types.
- *
- * @author David Allen
- *
- */
-interface GeneralEvent {}
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Pomeranian.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Pomeranian.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Pomeranian.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -8,12 +8,12 @@
{
public static Thread notificationThread;
- public void observeSimpleEvent(@Observes String someEvent)
+ public void observeSimpleEvent(@Observes SimpleEventType someEvent)
{
notificationThread = Thread.currentThread();
}
- public static void staticallyObserveEvent(@Observes String someEvent)
+ public static void staticallyObserveEvent(@Observes SimpleEventType someEvent)
{
}
}
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/PomeranianInterface.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/PomeranianInterface.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/PomeranianInterface.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,6 +1,10 @@
package org.jboss.jsr299.tck.unit.event;
+import javax.ejb.Local;
+import javax.event.Observes;
+
+ at Local
public interface PomeranianInterface
{
-
+ public void observeSimpleEvent(@Observes EJBEvent someEvent);
}
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/RecluseSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/RecluseSpider.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/RecluseSpider.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,6 +1,5 @@
package org.jboss.jsr299.tck.unit.event;
-import javax.context.RequestScoped;
import javax.event.IfExists;
import javax.event.Observes;
@@ -8,12 +7,11 @@
* Simple web bean that conditionally listens to events.
*
*/
- at RequestScoped
class RecluseSpider
{
public static boolean notified = false;
- public void observe(@Observes @IfExists String someEvent)
+ public void observe(@Observes @IfExists ConditionalEvent someEvent)
{
notified = true;
}
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/SimpleEventType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/SimpleEventType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/SimpleEventType.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.event;
+
+class SimpleEventType
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/SimpleEventType.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Spitz.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Spitz.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Spitz.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -9,14 +9,11 @@
@Named("Teddy")
public class Spitz implements PomeranianInterface
{
- public static Thread notificationThread;
-
- public void observeSimpleEvent(@Observes String someEvent)
+ public void observeSimpleEvent(@Observes EJBEvent someEvent)
{
- notificationThread = Thread.currentThread();
}
- public static void staticallyObserveEvent(@Observes String someEvent)
+ public static void staticallyObserveEvent(@Observes EJBEvent someEvent)
{
}
}
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/UnusedEventType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/UnusedEventType.java 2009-02-25 11:16:30 UTC (rev 1701)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/UnusedEventType.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -1,9 +0,0 @@
-package org.jboss.jsr299.tck.unit.event;
-
-class UnusedEventType
-{
- public UnusedEventType(String name)
- {
-
- }
-}
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AbstractEvent.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AbstractEvent.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AbstractEvent.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AbstractEvent.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,29 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.jsr299.tck.unit.event.firesall;
+
+
+/**
+ * Abstract level of event hierarchy used to test firing
+ * a concrete type and observing each of the event types
+ * associated with that concrete type.
+ *
+ * @author David Allen
+ *
+ */
+abstract class AbstractEvent implements GeneralEvent {}
\ No newline at end of file
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AbstractEvent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesObserver.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AllEventTypesObserver.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesObserver.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesObserver.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.jsr299.tck.unit.event.firesall;
+
+import javax.event.Observes;
+
+
+/**
+ * This class declares observer methods for every superclass and interface
+ * contained in the hierarchy for the {@link ComplexEvent} event type.
+ *
+ * @author David Allen
+ *
+ */
+class AllEventTypesObserver
+{
+ private static int objectEventQuantity = 0;
+ private static int generalEventQuantity = 0;
+ private static int abstractEventQuantity = 0;
+ private static int complexEventQuantity = 0;
+
+ public void observeObject(@Observes Object event)
+ {
+ // Avoid counting implicit container events
+ if (event instanceof ComplexEvent)
+ objectEventQuantity++;
+ }
+
+ public void observeGeneralEvent(@Observes GeneralEvent event)
+ {
+ generalEventQuantity++;
+ }
+
+ public void observeAbstractEvent(@Observes AbstractEvent event)
+ {
+ abstractEventQuantity++;
+ }
+
+ public void observeComplexEvent(@Observes ComplexEvent event)
+ {
+ complexEventQuantity++;
+ }
+
+ public int getTotalEventsObserved()
+ {
+ return objectEventQuantity + generalEventQuantity + abstractEventQuantity + complexEventQuantity;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesObserver.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,35 @@
+package org.jboss.jsr299.tck.unit.event.firesall;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class AllEventTypesTest extends AbstractDeclarativeTest
+{
+ /**
+ * The event types of the event include all superclasses and interfaces of
+ * the class of the event object.
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "7.1", id = "b")
+ public void testEventTypeIncludesAllSuperclassesAndInterfacesOfEventObject() throws Exception
+ {
+ // Fire a single complex type of event with many observers
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ AllEventTypesObserver theObserver = getCurrentManager().getInstanceByType(AllEventTypesObserver.class);
+ getCurrentManager().fireEvent(new ComplexEvent());
+ assert theObserver.getTotalEventsObserved() == 4;
+ }
+
+ }.run();
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/AllEventTypesTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/ComplexEvent.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/ComplexEvent.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/ComplexEvent.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/ComplexEvent.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.jsr299.tck.unit.event.firesall;
+
+
+/**
+ * An event type with a class/interface hierarchy complex enough
+ * to test observing all event types.
+ *
+ * @author David Allen
+ *
+ */
+public class ComplexEvent extends AbstractEvent implements GeneralEvent
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/ComplexEvent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/GeneralEvent.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/GeneralEvent.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/GeneralEvent.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/GeneralEvent.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,27 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.jsr299.tck.unit.event.firesall;
+
+/**
+ * Arbitrary interface to test firing events and observing all
+ * event types.
+ *
+ * @author David Allen
+ *
+ */
+interface GeneralEvent {}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/firesall/GeneralEvent.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/AnimalStereotype.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AnimalStereotype.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/AnimalStereotype.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,21 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.annotation.Stereotype;
+import javax.context.RequestScoped;
+
+ at Stereotype()
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at interface AnimalStereotype
+{
+
+}
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/AnimalStereotypeAnnotationLiteral.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/AnimalStereotypeAnnotationLiteral.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/AnimalStereotypeAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/AnimalStereotypeAnnotationLiteral.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import javax.inject.AnnotationLiteral;
+
+class AnimalStereotypeAnnotationLiteral extends AnnotationLiteral<AnimalStereotype> implements AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ConsumerNotifiedForEventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ConsumerNotifiedForEventTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ConsumerNotifiedForEventTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,46 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import javax.event.Observer;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.hibernate.tck.annotations.SpecAssertions;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class ConsumerNotifiedForEventTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertions( { @SpecAssertion(section = "7.1", id = "e"), @SpecAssertion(section = "7.4", id = "b") })
+ public void testConsumerNotifiedWhenEventTypeAndAllBindingsMatch()
+ {
+ AnObserver observer1 = new AnObserver();
+ AnObserver observer2 = new AnObserver();
+ getCurrentManager().addObserver(observer1, AnEventType.class);
+ getCurrentManager().addObserver(observer2, AnEventType.class);
+
+ // Fire an event that will be delivered to the two above observers
+ AnEventType anEvent = new AnEventType();
+ getCurrentManager().fireEvent(anEvent);
+
+ assert observer1.wasNotified;
+ assert observer2.wasNotified;
+ }
+
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ConsumerNotifiedForEventTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/DuplicateBindingsToAddObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/DuplicateBindingsToAddObserverTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/DuplicateBindingsToAddObserverTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,35 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import javax.event.Observer;
+import javax.inject.DuplicateBindingTypeException;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class DuplicateBindingsToAddObserverTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
+ @SpecAssertion(section = "7.3", id = "g")
+ public void testMultipleInstancesOfSameBindingTypeWhenAddingObserverFails()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ getCurrentManager().addObserver(observer, AnEventType.class, new RoleBinding("Admin"), new TameAnnotationLiteral(), new TameAnnotationLiteral());
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/DuplicateBindingsToAddObserverTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ManagerAddObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ManagerAddObserverTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ManagerAddObserverTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+import javax.event.Observer;
+import javax.inject.TypeLiteral;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+/**
+ * Tests for the manager.addObserver() method.
+ *
+ * @author David Allen
+ *
+ */
+ at Artifact
+public class ManagerAddObserverTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "7.3", id = "b")
+ public void testManagerAddObserver()
+ {
+ Observer<AnEventType> observer1 = new AnObserver();
+
+ // First test with the Class<T> of the event type
+ getCurrentManager().addObserver(observer1, AnEventType.class);
+ Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
+ assert resolvedObservers.size() == 1;
+ assert resolvedObservers.iterator().next() == observer1;
+
+ // Now test with the TypeLiteral<T> of the event type
+ Observer<AnEventType> observer2 = new AnObserver();
+ getCurrentManager().addObserver(observer2, new TypeLiteral<AnEventType>()
+ {
+ });
+ resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
+ assert resolvedObservers.size() == 2;
+ boolean foundObserver = false;
+ for (Observer<AnEventType> obs : resolvedObservers)
+ {
+ if (obs == observer2)
+ {
+ foundObserver = true;
+ break;
+ }
+ }
+ assert foundObserver;
+
+ // Try adding an observer with some binding types
+ Observer<AnEventType> observer3 = new AnObserver();
+ Annotation[] bindingTypes = new Annotation[] { new RoleBinding("Admin"), new RoleBinding("Manager") };
+ getCurrentManager().addObserver(observer3, AnEventType.class, bindingTypes);
+ resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), bindingTypes);
+ assert resolvedObservers.size() == 3;
+ foundObserver = false;
+ for (Observer<AnEventType> obs : resolvedObservers)
+ {
+ if (obs == observer3)
+ {
+ foundObserver = true;
+ break;
+ }
+ }
+ assert foundObserver;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ManagerAddObserverTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/NonBindingTypesToAddObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/NonBindingTypesToAddObserverTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/NonBindingTypesToAddObserverTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,35 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import javax.event.Observer;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class NonBindingTypesToAddObserverTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = "7.3", id = "h")
+ public void testNonBindingTypePassedToAddObserverFails()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ getCurrentManager().addObserver(observer, AnEventType.class, new AnimalStereotypeAnnotationLiteral());
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/NonBindingTypesToAddObserverTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ObserverExceptionAbortsTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ObserverExceptionAbortsTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ObserverExceptionAbortsTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,65 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import javax.event.Observer;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class ObserverExceptionAbortsTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ public static class AnObserverWithException implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+ public RuntimeException theException = new RuntimeException("RE1");
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ throw theException;
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "7.4", id = "c")
+ public void testObserverThrowsExceptionAbortsNotifications()
+ {
+ AnObserverWithException observer = new AnObserverWithException();
+ AnObserverWithException anotherObserver = new AnObserverWithException();
+ getCurrentManager().addObserver(anotherObserver, AnEventType.class);
+ getCurrentManager().addObserver(observer, AnEventType.class);
+
+ // Fire an event that will be delivered to the two above observers
+ AnEventType anEvent = new AnEventType();
+ boolean fireFailed = false;
+ try
+ {
+ getCurrentManager().fireEvent(anEvent);
+ }
+ catch (Exception e)
+ {
+ if (e.equals(observer.theException) || e.equals(anotherObserver.theException))
+ fireFailed = true;
+ }
+ assert fireFailed;
+ // Only one of the observers can be notified if processing
+ // is aborted
+ assert observer.wasNotified ^ anotherObserver.wasNotified;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/ObserverExceptionAbortsTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/Role.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Role.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/Role.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/Role.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,14 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+
+import javax.inject.BindingType;
+
+ at BindingType
+ at Retention(RUNTIME)
+ at interface Role
+{
+ String value();
+}
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/RoleBinding.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/RoleBinding.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/RoleBinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/RoleBinding.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,20 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import javax.inject.AnnotationLiteral;
+
+
+class RoleBinding extends AnnotationLiteral<Role> implements Role
+{
+ private String value = null;
+
+ public RoleBinding(String value)
+ {
+ this.value = value;
+ }
+
+ public String value()
+ {
+ return value;
+ }
+
+}
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/Tame.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Tame.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/Tame.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface Tame
+{
+
+}
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/TameAnnotationLiteral.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/TameAnnotationLiteral.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/TameAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer1/TameAnnotationLiteral.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.event.register.observer1;
+
+import javax.inject.AnnotationLiteral;
+
+class TameAnnotationLiteral extends AnnotationLiteral<Tame> implements Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotype.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,21 @@
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.annotation.Stereotype;
+import javax.context.RequestScoped;
+
+ at Stereotype()
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at interface AnimalStereotype
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotype.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotypeAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotypeAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotypeAnnotationLiteral.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import javax.inject.AnnotationLiteral;
+
+class AnimalStereotypeAnnotationLiteral extends AnnotationLiteral<AnimalStereotype> implements AnimalStereotype
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/AnimalStereotypeAnnotationLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/DuplicateBindingsToRemoveObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/DuplicateBindingsToRemoveObserverTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/DuplicateBindingsToRemoveObserverTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,36 @@
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import javax.event.Observer;
+import javax.inject.DuplicateBindingTypeException;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class DuplicateBindingsToRemoveObserverTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
+ @SpecAssertion(section = "7.3", id = "g")
+ public void testMultipleInstancesOfSameBindingTypeWhenRemovingObserverFails()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ getCurrentManager().addObserver(observer, AnEventType.class);
+ getCurrentManager().removeObserver(observer, AnEventType.class, new RoleBinding("Admin"), new TameAnnotationLiteral(), new TameAnnotationLiteral());
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/DuplicateBindingsToRemoveObserverTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/ManagerRemoveObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/ManagerRemoveObserverTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/ManagerRemoveObserverTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,85 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+import javax.event.Observer;
+import javax.inject.TypeLiteral;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.testng.annotations.Test;
+
+/**
+ * Tests the manager.removeObserver() method.
+ *
+ * @author David Allen
+ *
+ */
+public class ManagerRemoveObserverTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "7.3", id = "e")
+ public void testManagerRemoveObserver()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+
+ // First test with the Class<T> of the event type
+ getCurrentManager().addObserver(observer, AnEventType.class);
+ getCurrentManager().removeObserver(observer, AnEventType.class);
+ Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
+ assert resolvedObservers.isEmpty();
+
+ // Now test with the TypeLiteral<T> of the event type
+ observer = new AnObserver();
+ getCurrentManager().addObserver(observer, new TypeLiteral<AnEventType>()
+ {
+ });
+ getCurrentManager().removeObserver(observer, new TypeLiteral<AnEventType>()
+ {
+ });
+ resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
+ assert resolvedObservers.isEmpty();
+
+ // Also test with binding types
+ Annotation[] bindings = new Annotation[] { new RoleBinding("Admin") };
+ getCurrentManager().addObserver(observer, AnEventType.class, bindings);
+ getCurrentManager().removeObserver(observer, AnEventType.class);
+ resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), bindings);
+ assert !resolvedObservers.isEmpty();
+ getCurrentManager().removeObserver(observer, AnEventType.class, new RoleBinding("Admin"));
+ resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), bindings);
+ assert resolvedObservers.isEmpty();
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/ManagerRemoveObserverTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/NonBindingTypesToRemoveObserverTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/NonBindingTypesToRemoveObserverTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/NonBindingTypesToRemoveObserverTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,35 @@
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import javax.event.Observer;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class NonBindingTypesToRemoveObserverTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = "7.3", id = "h")
+ public void testNonBindingTypePassedToRemoveObserverFails()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ getCurrentManager().addObserver(observer, AnEventType.class);
+ getCurrentManager().removeObserver(observer, AnEventType.class, new AnimalStereotypeAnnotationLiteral());
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/NonBindingTypesToRemoveObserverTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Role.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/Role.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Role.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Role.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,14 @@
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+
+import javax.inject.BindingType;
+
+ at BindingType
+ at Retention(RUNTIME)
+ at interface Role
+{
+ String value();
+}
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/RoleBinding.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/RoleBinding.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/RoleBinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/RoleBinding.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,20 @@
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import javax.inject.AnnotationLiteral;
+
+
+class RoleBinding extends AnnotationLiteral<Role> implements Role
+{
+ private String value = null;
+
+ public RoleBinding(String value)
+ {
+ this.value = value;
+ }
+
+ public String value()
+ {
+ return value;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Tame.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface Tame
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/Tame.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/TameAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/TameAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/TameAnnotationLiteral.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.event.register.observer2;
+
+import javax.inject.AnnotationLiteral;
+
+class TameAnnotationLiteral extends AnnotationLiteral<Tame> implements Tame
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/register/observer2/TameAnnotationLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeA.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeA.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeA.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeA.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface BindingTypeA
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeA.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeABinding.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeABinding.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeABinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeABinding.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import javax.inject.AnnotationLiteral;
+
+public class BindingTypeABinding extends AnnotationLiteral<BindingTypeA> implements BindingTypeA {}
\ No newline at end of file
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeABinding.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeB.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeB.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeB.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeB.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface BindingTypeB
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeB.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeBBinding.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeBBinding.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeBBinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeBBinding.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import javax.inject.AnnotationLiteral;
+
+public class BindingTypeBBinding extends AnnotationLiteral<BindingTypeB> implements BindingTypeB {}
\ No newline at end of file
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeBBinding.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeC.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeC.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeC.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeC.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface BindingTypeC
+{
+ public String value();
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeC.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeCBinding.java (from rev 1700, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/BindingTypeCBinding.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeCBinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeCBinding.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,19 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import javax.inject.AnnotationLiteral;
+
+public class BindingTypeCBinding extends AnnotationLiteral<BindingTypeC> implements BindingTypeC
+{
+
+ private String stringValue;
+
+ public BindingTypeCBinding(String value)
+ {
+ this.stringValue = value;
+ }
+
+ public String value()
+ {
+ return this.stringValue;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/BindingTypeCBinding.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,36 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import javax.event.Observer;
+import javax.inject.DuplicateBindingTypeException;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class DuplicateBindingTypesWhenResolvingTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
+ @SpecAssertion(section = "7.7", id = "d")
+ public void testDuplicateBindingTypesWhenResolvingFails()
+ {
+ AnObserver observer = new AnObserver();
+ getCurrentManager().addObserver(observer, AnEventType.class, new BindingTypeABinding());
+ getCurrentManager().resolveObservers(new AnEventType(), new BindingTypeABinding(), new BindingTypeABinding());
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/DuplicateBindingTypesWhenResolvingTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,40 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import java.util.Set;
+
+import javax.event.Observer;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class ResolvingChecksBindingTypeMembersTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "7.7", id = "g")
+ public void testResolvingChecksBindingTypeMembers()
+ {
+ AnObserver observer = new AnObserver();
+ AnObserver anotherObserver = new AnObserver();
+ getCurrentManager().addObserver(observer, AnEventType.class, new BindingTypeCBinding("first-observer"));
+ getCurrentManager().addObserver(anotherObserver, AnEventType.class, new BindingTypeCBinding("second-observer"));
+ Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), new BindingTypeCBinding("first-observer"));
+ assert resolvedObservers.size() == 1;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeMembersTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,42 @@
+package org.jboss.jsr299.tck.unit.event.resolve.binding;
+
+import java.util.Set;
+
+import javax.event.Observer;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class ResolvingChecksBindingTypeTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "7.7", id = "g")
+ public void testResolvingChecksBindingTypes()
+ {
+ AnObserver observer = new AnObserver();
+ AnObserver anotherObserver = new AnObserver();
+ getCurrentManager().addObserver(observer, AnEventType.class, new BindingTypeABinding());
+ getCurrentManager().addObserver(anotherObserver, AnEventType.class, new BindingTypeBBinding());
+ Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), new BindingTypeABinding());
+ assert resolvedObservers.size() == 1;
+ }
+
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/binding/ResolvingChecksBindingTypeTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotype.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,21 @@
+package org.jboss.jsr299.tck.unit.event.resolve.nonbinding;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.annotation.Stereotype;
+import javax.context.RequestScoped;
+
+ at Stereotype()
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at interface AnimalStereotype
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotype.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotypeAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotypeAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotypeAnnotationLiteral.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.event.resolve.nonbinding;
+
+import javax.inject.AnnotationLiteral;
+
+class AnimalStereotypeAnnotationLiteral extends AnnotationLiteral<AnimalStereotype> implements AnimalStereotype
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/AnimalStereotypeAnnotationLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,29 @@
+package org.jboss.jsr299.tck.unit.event.resolve.nonbinding;
+
+import java.util.Set;
+
+import javax.event.Observer;
+import javax.inject.TypeLiteral;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.jboss.jsr299.tck.unit.event.EventTest.AnEventType;
+import org.jboss.jsr299.tck.unit.event.EventTest.AnObserver;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class NonBindingTypesWhenResolvingTest extends AbstractDeclarativeTest
+{
+ @Test(groups = { "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = "7.7", id = "e")
+ public void testNonBindingTypeAnnotationWhenResolvingFails()
+ {
+ AnObserver observer = new AnObserver();
+ getCurrentManager().addObserver(observer, new TypeLiteral<AnEventType>()
+ {
+ });
+ Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType(), new AnimalStereotypeAnnotationLiteral());
+ assert !resolvedObservers.isEmpty();
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/nonbinding/NonBindingTypesWhenResolvingTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksEventTypeWhenResolvingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksEventTypeWhenResolvingTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksEventTypeWhenResolvingTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,40 @@
+package org.jboss.jsr299.tck.unit.event.resolve.type;
+
+import java.util.Set;
+
+import javax.event.Observer;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class ChecksEventTypeWhenResolvingTest extends AbstractDeclarativeTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class AnObserver implements Observer<AnEventType>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(AnEventType event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "7.7", id = "f")
+ public void testResolvingChecksEventType()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ getCurrentManager().addObserver(observer, AnEventType.class);
+ Set<Observer<AnEventType>> resolvedObservers = getCurrentManager().resolveObservers(new AnEventType());
+ assert !resolvedObservers.isEmpty();
+ Set<?> emptyObserverSet = getCurrentManager().resolveObservers(new UnusedEventType("name"));
+ assert emptyObserverSet.isEmpty();
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksEventTypeWhenResolvingTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksTypeParametersWhenResolvingTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksTypeParametersWhenResolvingTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksTypeParametersWhenResolvingTest.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,53 @@
+package org.jboss.jsr299.tck.unit.event.resolve.type;
+
+import java.util.ArrayList;
+import java.util.Set;
+
+import javax.event.Observer;
+import javax.inject.TypeLiteral;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.testng.annotations.Test;
+
+ at Artifact
+public class ChecksTypeParametersWhenResolvingTest extends AbstractDeclarativeTest
+{
+ public static class AListObserver implements Observer<ArrayList<String>>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(ArrayList<String> event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ public static class AnotherListObserver implements Observer<ArrayList<Integer>>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(ArrayList<Integer> event)
+ {
+ wasNotified = true;
+ }
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "7.7", id = "f")
+ public void testResolvingChecksTypeParameters()
+ {
+ AListObserver observer = new AListObserver();
+ AnotherListObserver anotherObserver = new AnotherListObserver();
+ getCurrentManager().addObserver(observer, new TypeLiteral<ArrayList<String>>()
+ {
+ });
+ getCurrentManager().addObserver(anotherObserver, new TypeLiteral<ArrayList<Integer>>()
+ {
+ });
+ Set<Observer<ArrayList<String>>> resolvedObservers = getCurrentManager().resolveObservers(new ArrayList<String>());
+ //TODO The RI is returning both of the observers above
+ assert resolvedObservers.size() == 1;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/ChecksTypeParametersWhenResolvingTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/UnusedEventType.java (from rev 1689, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/UnusedEventType.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/UnusedEventType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/UnusedEventType.java 2009-02-25 11:46:12 UTC (rev 1702)
@@ -0,0 +1,9 @@
+package org.jboss.jsr299.tck.unit.event.resolve.type;
+
+class UnusedEventType
+{
+ public UnusedEventType(String name)
+ {
+
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/event/resolve/type/UnusedEventType.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the weld-commits
mailing list