[webbeans-commits] Webbeans SVN: r999 - tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api and 2 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Thu Jan 15 19:28:17 EST 2009
Author: dallen6
Date: 2009-01-15 19:28:17 -0500 (Thu, 15 Jan 2009)
New Revision: 999
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotypeAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AuroraFinch.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AustralianTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BananaSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BirdCage.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlackRumpedWaxbill_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlueFacedParrotFinch.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BorderTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BostonTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Boxer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BullTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CairnsTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CommonWaxbill_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EuropeanGoldfinch.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventBusTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FinchKeeper.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FoxTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/GoldbreastWaxbill_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/JavaSparrow_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OrangeCheekedWaxbill.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OwlFinch_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Pomeranian.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/PomeranianInterface.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RecluseSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Role.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RoleBinding.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/StarFinch.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/SweeWaxbill_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TameAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TeaCupPomeranian.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Terrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TibetanTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/YorkshireTerrier.java
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/BeansImpl.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContextsImpl.java
tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Beans.java
tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Contexts.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java
Log:
Ported the event bus tests (Chapter 8) to the TCK. Tests still marked broken till TCK functionality is complete.
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/BeansImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/BeansImpl.java 2009-01-15 23:18:46 UTC (rev 998)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/BeansImpl.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -11,6 +11,14 @@
import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.tck.api.Beans;
+/**
+ * Implements the Beans SPI for the TCK specifically for the JBoss RI.
+ *
+ * @author Shane Bryzak
+ * @author Pete Muir
+ * @author David Allen
+ *
+ */
public class BeansImpl implements Beans
{
@@ -36,4 +44,27 @@
return EnterpriseBean.of(clazz, CurrentManager.rootManager());
}
+ public boolean isEnterpriseBean(Class<?> clazz)
+ {
+ return CurrentManager.rootManager().getEjbDescriptorCache().containsKey(clazz);
+ }
+
+ public boolean isEntityBean(Class<?> clazz)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean isStatefulBean(Class<?> clazz)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean isStatelessBean(Class<?> clazz)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContextsImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContextsImpl.java 2009-01-15 23:18:46 UTC (rev 998)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContextsImpl.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -1,6 +1,7 @@
package org.jboss.webbeans.test.tck;
import org.jboss.webbeans.context.AbstractContext;
+import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.context.RequestContext;
import org.jboss.webbeans.tck.api.Contexts;
@@ -21,6 +22,11 @@
{
context.setActive(false);
}
+
+ public AbstractContext getDependentContext()
+ {
+ return DependentContext.INSTANCE;
+ }
Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Beans.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Beans.java 2009-01-15 23:18:46 UTC (rev 998)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Beans.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -6,38 +6,36 @@
/**
* Provides Bean related operations.
- *
+ *
* @author Shane Bryzak
* @author Pete Muir
+ * @author David Allen
+ *
*/
public interface Beans
{
-
+
public static final String PROPERTY_NAME = Beans.class.getName();
-
+
/**
* Create a new simple bean from the given class
*
- * @param <T>
- * The type of the bean
- * @param clazz
- * the class to create the bean
+ * @param <T> The type of the bean
+ * @param clazz the class to create the bean
* @return the created bean
*/
public <T> Bean<T> createSimpleBean(Class<T> clazz);
-
+
/**
* Create a new enterprise bean from the given class. The given class should
- * represent an EJB declared using annotions of XML.
+ * represent an EJB declared using annotions or XML.
*
- * @param <T>
- * The type of the bean
- * @param clazz
- * the class to create the bean
+ * @param <T> The type of the bean
+ * @param clazz the class to create the bean
* @return the created bean
*/
public <T> Bean<T> createEnterpriseBean(Class<T> clazz);
-
+
/**
* Create a new producer method bean from the given method. The simple or
* enterprise bean on which the method is declared is provided.
@@ -46,15 +44,44 @@
* calling {@link #createSimpleBean(Class)} or
* {@link #createEnterpriseBean(Class)}.
*
- * @param <T>
- * the type of the bean
- * @param method
- * the producer method
- * @param declaringBean
- * the simple or enterprise bean which declares this producer
- * method
+ * @param <T> the type of the bean
+ * @param method the producer method
+ * @param declaringBean the simple or enterprise bean which declares this
+ * producer method
* @return the producer bean
*/
public <T> Bean<T> createProducerMethodBean(Method method, Bean<?> declaringBean);
-
+
+ /**
+ * Tests whether the given class is declaring an Enterprise Bean.
+ *
+ * @param clazz the type of bean being tested
+ *
+ * @return true only if class declares an Enterprise Bean
+ */
+ public boolean isEnterpriseBean(Class<?> clazz);
+
+ /**
+ * Tests whether the given class is declaring a stateful session bean.
+ *
+ * @param clazz the type being tested
+ * @return true only if class declares a stateful session bean
+ */
+ public boolean isStatefulBean(Class<?> clazz);
+
+ /**
+ * Tests whether the given class is declaring a stateless session bean.
+ *
+ * @param clazz the type being tested
+ * @return true only if class declares a stateless session bean
+ */
+ public boolean isStatelessBean(Class<?> clazz);
+
+ /**
+ * Tests whether the given class is declaring an entity bean.
+ *
+ * @param clazz the type being tested
+ * @return true only if class declares an entity bean
+ */
+ public boolean isEntityBean(Class<?> clazz);
}
Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Contexts.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Contexts.java 2009-01-15 23:18:46 UTC (rev 998)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Contexts.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -34,4 +34,11 @@
* @return The new request context
*/
T getRequestContext();
+
+ /**
+ * Returns the default dependent context
+ *
+ * @return the dependent context
+ */
+ T getDependentContext();
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java 2009-01-15 23:18:46 UTC (rev 998)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -19,6 +19,7 @@
import javax.webbeans.manager.Bean;
import javax.webbeans.manager.Manager;
+import org.jboss.webbeans.tck.impl.util.Reflections;
import org.testng.annotations.BeforeMethod;
@SuppressWarnings("unchecked")
@@ -50,32 +51,33 @@
return configuration().getBeans().createProducerMethodBean(method, producerBean);
}
- /*
- protected <T> AbstractClassBean<T> registerBean(Class<T> clazz)
+ protected void deployBeans(Class<?>... classes)
{
- AbstractClassBean<T> bean = null;
- if (CurrentManager.rootManager().getEjbDescriptorCache().containsKey(clazz))
+
+ }
+
+ protected <T> Bean<T> registerBean(Class<T> clazz)
+ {
+ Bean<T> bean = null;
+ if (configuration().getBeans().isEnterpriseBean(clazz))
{
- bean = EnterpriseBean.of(clazz, manager);
+ bean = configuration().getBeans().createEnterpriseBean(clazz);
}
else
{
- bean = SimpleBean.of(clazz, manager);
+ bean = getSimpleBean(clazz);
}
- CurrentManager.rootManager().addBean(bean);
+ manager.addBean(bean);
return bean;
}
- */
-/*
- protected void registerBeans(Class<?>[] classes)
+ protected void registerBeans(Class<?>... classes)
{
for (Class<?> clazz : classes)
{
registerBean(clazz);
}
}
- */
protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
@@ -104,14 +106,13 @@
return in.readObject();
}
-/* protected void activateDependentContext()
+ protected void activateDependentContext()
{
- DependentContext.INSTANCE.setActive(true);
+ configuration().getContexts().setActive(configuration().getContexts().getDependentContext());
}
protected void deactivateDependentContext()
{
- DependentContext.INSTANCE.setActive(false);
+ configuration().getContexts().setInactive(configuration().getContexts().getDependentContext());
}
- */
}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotype.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.tests.event;
+
+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.webbeans.RequestScoped;
+import javax.webbeans.Stereotype;
+
+ at Stereotype()
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+public @interface AnimalStereotype
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotype.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotypeAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotypeAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotypeAnnotationLiteral.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.AnnotationLiteral;
+
+public class AnimalStereotypeAnnotationLiteral extends AnnotationLiteral<AnimalStereotype> implements AnimalStereotype
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AnimalStereotypeAnnotationLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AuroraFinch.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AuroraFinch.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AuroraFinch.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,26 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Initializer;
+
+import org.jboss.webbeans.tck.tests.event.StarFinch.Mess;
+
+public class AuroraFinch
+{
+
+ private Mess someMess;
+
+ @Initializer
+ public AuroraFinch(@Fires Event<Mess> eventObject)
+ {
+ // Create a new mess and fire the event for it
+ someMess = new Mess();
+ eventObject.fire(someMess);
+ }
+
+ public Mess getSomeMess()
+ {
+ return someMess;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AuroraFinch.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AustralianTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AustralianTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AustralianTerrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Initializer;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+ at Stateless
+public class AustralianTerrier
+{
+ @Initializer
+ public void observeInitialized(@Observes @Initialized Manager manager)
+ {
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/AustralianTerrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BananaSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BananaSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BananaSpider.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import java.util.Set;
+
+import javax.webbeans.Observer;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Manager;
+
+/**
+ * Simple bean with observer method and another injectable parameter.
+ *
+ */
+public class BananaSpider
+{
+ public void observeStringEvent(@Observes String someEvent, Manager manager)
+ {
+ assert someEvent != null;
+ assert manager != null;
+ Set<Observer<String>> allStringObservers = manager.resolveObservers(someEvent);
+ assert allStringObservers != null;
+ assert allStringObservers.size() > 0;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BananaSpider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BirdCage.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BirdCage.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BirdCage.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Current;
+import javax.webbeans.Named;
+import javax.webbeans.RequestScoped;
+
+import org.jboss.webbeans.tck.tests.event.StarFinch.Mess;
+
+ at RequestScoped
+ at Named("BirdCage")
+public class BirdCage
+{
+ @Current
+ private Mess someMess;
+
+ public BirdCage()
+ {
+ }
+
+ public Mess getSomeMess()
+ {
+ return someMess;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BirdCage.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlackRumpedWaxbill_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlackRumpedWaxbill_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlackRumpedWaxbill_Broken.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+
+public class BlackRumpedWaxbill_Broken
+{
+ @SuppressWarnings("unchecked")
+ @Fires
+ private Event simpleEvent;
+
+ public void eliminateWarning()
+ {
+ assert simpleEvent != null;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlackRumpedWaxbill_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlueFacedParrotFinch.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlueFacedParrotFinch.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlueFacedParrotFinch.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,26 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Observer;
+
+public class BlueFacedParrotFinch
+{
+ @Fires
+ private Event<String> simpleEvent;
+
+ public void methodThatFiresEvent()
+ {
+ simpleEvent.fire("An event");
+ }
+
+ public void methodThatRegistersObserver()
+ {
+ simpleEvent.observe(new Observer<String>()
+ {
+ public void notify(String event)
+ {
+ }
+ });
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BlueFacedParrotFinch.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BorderTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BorderTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BorderTerrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+import javax.webbeans.Produces;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+ at Stateless
+public class BorderTerrier
+{
+ @Produces
+ public void observeInitialized(@Observes @Initialized Manager manager)
+ {
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BorderTerrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BostonTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BostonTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BostonTerrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import java.util.List;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+
+ at Stateless
+public class BostonTerrier
+{
+ public void observesBadEvent(@Observes List<String> someArray)
+ {
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BostonTerrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Boxer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Boxer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Boxer.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.ConversationScoped;
+
+ at Stateless
+ at ConversationScoped
+public class Boxer
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Boxer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BullTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BullTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BullTerrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+
+ at Stateless
+public class BullTerrier
+{
+ public void observesBadEvent(@Observes @Role("Admin") @Tame String someEvent)
+ {
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/BullTerrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CairnsTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CairnsTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CairnsTerrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Destructor;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+ at Stateless
+public class CairnsTerrier
+{
+ @Destructor
+ public void observeInitialized(@Observes @Initialized Manager manager)
+ {
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CairnsTerrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CommonWaxbill_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CommonWaxbill_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CommonWaxbill_Broken.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import java.util.ArrayList;
+
+import javax.webbeans.Fires;
+
+public class CommonWaxbill_Broken
+{
+ @Fires
+ private ArrayList<String> simpleEvent;
+
+ public void eliminateWarning()
+ {
+ assert simpleEvent != null;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/CommonWaxbill_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EuropeanGoldfinch.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EuropeanGoldfinch.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EuropeanGoldfinch.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,30 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.ConversationScoped;
+import javax.webbeans.Destructor;
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+
+import org.jboss.webbeans.tck.tests.event.StarFinch.Mess;
+
+ at ConversationScoped @Stateful
+public class EuropeanGoldfinch
+{
+ private Mess someMess;
+
+ public Mess getSomeMess()
+ {
+ return someMess;
+ }
+
+ @Destructor @Remove
+ public void remove(@Fires Event<Mess> eventObject)
+ {
+ // Create a new mess and fire the event for it
+ someMess = new Mess();
+ eventObject.fire(someMess);
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EuropeanGoldfinch.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventBusTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventBusTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventBusTest.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,931 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.DuplicateBindingTypeException;
+import javax.webbeans.Observer;
+import javax.webbeans.ObserverException;
+import javax.webbeans.TypeLiteral;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.tests.AbstractTest;
+import org.testng.annotations.Test;
+
+/**
+ * Event bus tests
+ *
+ * @author Nicklas Karlsson
+ * @author David Allen
+ *
+ */
+ at SpecVersion("20081206")
+public class EventBusTest extends AbstractTest
+{
+ public static class AnEventType
+ {
+ }
+
+ public static class ATemplatedEventType<T>
+ {
+ }
+
+ 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 = { "stub", "events" })
+ @SpecAssertion(section = "8.1")
+ public void testEventTypeIncludesAllSuperclassesAndInterfacesOfEventObject()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.2")
+ public void testManagerFireEvent()
+ {
+ // First a simple event with no bindings is fired
+ AnEventType anEvent = new AnEventType();
+ manager.fireEvent(anEvent);
+
+ // Next an event with some event bindings is fired
+ manager.fireEvent(anEvent, new RoleBinding("Admin"));
+ }
+
+ /**
+ * If the type of the event object passed to fireEvent() contains type
+ * variables or wildcards, an IllegalArgumentException is thrown
+ */
+ @Test(groups = { "broken", "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = { "8.1", "8.2" })
+ public void testManagerFireEventWithEventTypeParametersFails()
+ {
+ ATemplatedEventType<String> anEvent = new ATemplatedEventType<String>();
+ manager.fireEvent(anEvent);
+ }
+
+ /**
+ * If the type of the event object passed to fireEvent() contains type
+ * variables or wildcards, an IllegalArgumentException is thrown
+ */
+ @Test(groups = { "broken", "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = { "8.1", "8.2" })
+ public void testManagerFireEventWithEventTypeWildcardsFails()
+ {
+ // Although the above test is really the same as with a wildcard, we will
+ // test
+ // it anyhow since the specification calls it out separately.
+ ATemplatedEventType<?> anEventOnAnyType = new ATemplatedEventType<String>();
+ manager.fireEvent(anEventOnAnyType);
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = { "8.1", "8.2" })
+ public void testManagerFireEventWithNonBindingAnnotationsFails()
+ {
+ // The specs are not exactly clear on what is supposed to happen here,
+ // but borrowing from Section 8.3, we'll expect the same behavior here
+ // for a consistent API.
+ // TODO Verify that fireEvent should fail on non-binding annotations
+ AnEventType anEvent = new AnEventType();
+ manager.fireEvent(anEvent, new AnimalStereotypeAnnotationLiteral());
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.3")
+ public void testManagerAddObserver()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+
+ // First test with the Class<T> of the event type
+ manager.addObserver(observer, AnEventType.class);
+ Set<Observer<AnEventType>> resolvedObservers = manager.resolveObservers(new AnEventType());
+ assert !resolvedObservers.isEmpty();
+ assert resolvedObservers.size() == 1;
+ assert resolvedObservers.iterator().next() == observer;
+
+ // Now test with the TypeLiteral<T> of the event type
+ observer = new AnObserver();
+ manager.addObserver(observer, new TypeLiteral<AnEventType>()
+ {
+ });
+ resolvedObservers = manager.resolveObservers(new AnEventType());
+ assert !resolvedObservers.isEmpty();
+ assert resolvedObservers.size() == 2;
+ boolean foundObserver = false;
+ for (Observer<AnEventType> obs : resolvedObservers)
+ {
+ if (obs == observer)
+ {
+ foundObserver = true;
+ break;
+ }
+ }
+ assert foundObserver;
+
+ // Try adding an observer with some binding types
+ observer = new AnObserver();
+ Annotation[] bindingTypes = new Annotation[] { new RoleBinding("Admin"), new RoleBinding("Manager") };
+ manager.addObserver(observer, AnEventType.class, bindingTypes);
+ resolvedObservers = manager.resolveObservers(new AnEventType(), bindingTypes);
+ assert !resolvedObservers.isEmpty();
+ assert resolvedObservers.size() == 3;
+ foundObserver = false;
+ for (Observer<AnEventType> obs : resolvedObservers)
+ {
+ if (obs == observer)
+ {
+ foundObserver = true;
+ break;
+ }
+ }
+ assert foundObserver;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.3")
+ public void testManagerRemoveObserver()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+
+ // First test with the Class<T> of the event type
+ manager.addObserver(observer, AnEventType.class);
+ manager.removeObserver(observer, AnEventType.class);
+ Set<Observer<AnEventType>> resolvedObservers = manager.resolveObservers(new AnEventType());
+ assert resolvedObservers.isEmpty();
+
+ // Now test with the TypeLiteral<T> of the event type
+ observer = new AnObserver();
+ manager.addObserver(observer, new TypeLiteral<AnEventType>()
+ {
+ });
+ manager.removeObserver(observer, new TypeLiteral<AnEventType>()
+ {
+ });
+ resolvedObservers = manager.resolveObservers(new AnEventType());
+ assert resolvedObservers.isEmpty();
+
+ // Also test with binding types
+ Annotation[] bindings = new Annotation[] { new RoleBinding("Admin") };
+ manager.addObserver(observer, AnEventType.class, bindings);
+ manager.removeObserver(observer, AnEventType.class);
+ resolvedObservers = manager.resolveObservers(new AnEventType(), bindings);
+ assert !resolvedObservers.isEmpty();
+ manager.removeObserver(observer, AnEventType.class, new RoleBinding("Admin"));
+ resolvedObservers = manager.resolveObservers(new AnEventType(), bindings);
+ assert resolvedObservers.isEmpty();
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
+ @SpecAssertion(section = "8.3")
+ public void testMultipleInstancesOfSameBindingTypeWhenAddingObserverFails()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ manager.addObserver(observer, AnEventType.class, new RoleBinding("Admin"), new TameAnnotationLiteral(), new TameAnnotationLiteral());
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = "8.3")
+ public void testNonBindingTypePassedToAddObserverFails()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ manager.addObserver(observer, AnEventType.class, new AnimalStereotypeAnnotationLiteral());
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
+ @SpecAssertion(section = "8.3")
+ public void testMultipleInstancesOfSameBindingTypeWhenRemovingObserverFails()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ manager.addObserver(observer, AnEventType.class);
+ manager.removeObserver(observer, AnEventType.class, new RoleBinding("Admin"), new TameAnnotationLiteral(), new TameAnnotationLiteral());
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = "8.3")
+ public void testNonBindingTypePassedToRemoveObserverFails()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ manager.addObserver(observer, AnEventType.class);
+ manager.removeObserver(observer, AnEventType.class, new AnimalStereotypeAnnotationLiteral());
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = { "8.1", "8.4" })
+ public void testConsumerNotifiedWhenEventTypeAndAllBindingsMatch()
+ {
+ AnObserver observer1 = new AnObserver();
+ AnObserver observer2 = new AnObserver();
+ manager.addObserver(observer1, AnEventType.class);
+ manager.addObserver(observer2, AnEventType.class);
+
+ // Fire an event that will be delivered to the two above observers
+ AnEventType anEvent = new AnEventType();
+ manager.fireEvent(anEvent);
+
+ assert observer1.wasNotified;
+ assert observer2.wasNotified;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.4")
+ public void testObserverThrowsExceptionAbortsNotifications()
+ {
+ AnObserver observer = new AnObserver();
+ AnObserverWithException anotherObserver = new AnObserverWithException();
+ manager.addObserver(anotherObserver, AnEventType.class);
+ manager.addObserver(observer, AnEventType.class);
+
+ // Fire an event that will be delivered to the two above observers
+ AnEventType anEvent = new AnEventType();
+ boolean fireFailed = false;
+ try
+ {
+ manager.fireEvent(anEvent);
+ }
+ catch (Exception e)
+ {
+ if (anotherObserver.theException.equals(e))
+ fireFailed = true;
+ }
+ assert fireFailed;
+
+ assert anotherObserver.wasNotified;
+ // TODO This cannot properly test for event processing abort
+ // assert !observer.wasNotified;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.4")
+ public void testObserverCalledBeforeTransactionCompleteMaySetRollbackOnly()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.4")
+ public void testObserverManipulatingJTATransactionsDirectlyFails()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5")
+ public void testObserverMethodOnEnterpriseBeanIsBusinessMethodOrStatic()
+ {
+ deployBeans(Pomeranian.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans.size() == 2 + BUILT_IN_BEANS;
+ Set<Observer<String>> observers = manager.resolveObservers("An event");
+ assert observers.size() == 2;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5")
+ public void testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()
+ {
+ deployBeans(TibetanTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans.size() == 2 + BUILT_IN_BEANS;
+ Set<Observer<String>> observers = manager.resolveObservers("An event");
+ assert observers.size() == 1;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5")
+ public void testMultipleObserverMethodsOK()
+ {
+ // Somewhat of a cheat, but this other test already does have 2 observer
+ // methods
+ // for the same event type and event bindings.
+ testObserverMethodOnEnterpriseBeanIsBusinessMethodOrStatic();
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = { "8.5.1", "8.5.2" })
+ public void testObserverMethodMustHaveOnlyOneEventParameter()
+ {
+ deployBeans(YorkshireTerrier.class);
+
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans != null;
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.5.1")
+ public void testObserverMethodCannotObserveParameterizedEvents()
+ {
+ deployBeans(BostonTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans != null;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5.1")
+ public void testObserverMethodWithoutBindingTypesObservesEventsWithoutBindingTypes()
+ {
+ // This observer has no binding types specified
+ deployBeans(Pomeranian.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans.size() == 2 + BUILT_IN_BEANS;
+
+ // Resolve registered observers with an event containing no binding types
+ Set<Observer<String>> resolvedObservers = manager.resolveObservers("A new event");
+ assert !resolvedObservers.isEmpty();
+ assert resolvedObservers.size() == 2;
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.5.2")
+ public void testObserverMethodAnnotatedProducesFails()
+ {
+ deployBeans(BorderTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans != null;
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.5.2")
+ public void testObserverMethodAnnotatedInitializerFails()
+ {
+ deployBeans(AustralianTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans != null;
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.5.2")
+ public void testObserverMethodAnnotatedDestructorFails()
+ {
+ deployBeans(CairnsTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans != null;
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.5.2")
+ public void testObserverMethodWithDisposesParamFails()
+ {
+ deployBeans(FoxTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans != null;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5.2")
+ public void testObserverMethodMayHaveMultipleBindingTypes()
+ {
+ deployBeans(BullTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans != null;
+ // If we can resolve the observer with the two binding types,
+ // then it worked
+ Set<Observer<String>> resolvedObservers = manager.resolveObservers("An event object", new RoleBinding("Admin"), new TameAnnotationLiteral());
+ assert !resolvedObservers.isEmpty();
+ assert resolvedObservers.size() == 1;
+
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.5.3")
+ public void testXMLDefinedObserverMethodIgnoresBindingAnnotations()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.5.3")
+ public void testXMLDefinedObserverNotFindingImplementationMethodFails()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5.4")
+ public void testObserverMethodReceivesInjectionsOnNonObservesParameters()
+ {
+ deployBeans(BananaSpider.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans != null;
+ }
+
+ /**
+ * Tests that a conditional observer is not notified of events until after it
+ * is created by some other separate action.
+ */
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5.5")
+ public void testConditionalObserver()
+ {
+ deployBeans(RecluseSpider.class);
+
+ manager.fireEvent("New string event");
+ // Should not be notified since bean is not instantiated yet
+ assert !RecluseSpider.notified;
+
+ // Now instantiate the bean and fire another event
+ try
+ {
+ activateDependentContext();
+ RecluseSpider bean = manager.getInstanceByType(RecluseSpider.class);
+ assert bean != null;
+
+ manager.fireEvent("Another event");
+ assert RecluseSpider.notified;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.1")
+ public void testTransactionalObserverCanOnlyObserveSinglePhase()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.5.6")
+ public void testTransactionalObserverNotifiedImmediatelyWhenNoTransactionInProgress()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.5.6")
+ public void testAfterTransactionCompletionObserver()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.5.6")
+ public void testAfterTransactionSuccessObserver()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.5.6")
+ public void testAfterTransactionFailureObserver()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.5.6")
+ public void testBeforeTransactionCompletionObserver()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5.7")
+ public void testObserverMethodRegistration()
+ {
+ // For now, this test is checking the registration of methods
+ testObserverMethodOnEnterpriseBeanIsBusinessMethodOrStatic();
+ }
+
+ /**
+ *
+ */
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.5.7")
+ public void testEnterpriseBeanObserverMethodCalledWithCallerContext()
+ {
+ deployBeans(Pomeranian.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans.size() == 1;
+ String event = "A new event";
+ Set<Observer<String>> observers = manager.resolveObservers(event);
+ assert observers.size() == 1;
+
+ manager.fireEvent(event);
+ assert Thread.currentThread().equals(Pomeranian.notificationThread);
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.5.7")
+ public void testTransactionalObserverThrownExceptionIsCaughtAndLogged()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions={ TeaCupPomeranian.OversizedException.class })
+ @SpecAssertion(section = "8.5.7")
+ public void testNonTransactionalObserverThrownNonCheckedExceptionIsRethrown()
+ {
+ deployBeans(TeaCupPomeranian.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert !beans.isEmpty();
+ manager.fireEvent("Another event");
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions={ ObserverException.class })
+ @SpecAssertion(section = "8.5.7")
+ public void testNonTransactionalObserverThrownCheckedExceptionIsWrappedAndRethrown()
+ {
+ deployBeans(TeaCupPomeranian.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert !beans.isEmpty();
+ manager.fireEvent(new Integer(1));
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DuplicateBindingTypeException.class })
+ @SpecAssertion(section = "8.6")
+ public void testDuplicateBindingsToFireFails()
+ {
+ deployBeans(SweeWaxbill_Broken.class);
+ try
+ {
+ activateDependentContext();
+ SweeWaxbill_Broken bean = manager.getInstanceByType(SweeWaxbill_Broken.class);
+ bean.methodThatFiresEvent();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions={ DuplicateBindingTypeException.class })
+ @SpecAssertion(section = "8.6")
+ public void testDuplicateBindingsToObservesFails()
+ {
+ deployBeans(SweeWaxbill_Broken.class);
+ try
+ {
+ activateDependentContext();
+ SweeWaxbill_Broken bean = manager.getInstanceByType(SweeWaxbill_Broken.class);
+ bean.methodThatRegistersObserver();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = "8.6")
+ public void testNonBindingTypePassedToFireFails()
+ {
+ deployBeans(OwlFinch_Broken.class);
+ try
+ {
+ activateDependentContext();
+ OwlFinch_Broken bean = manager.getInstanceByType(OwlFinch_Broken.class);
+ bean.methodThatFiresEvent();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = "8.6")
+ public void testNonBindingTypePassedToObservesFails()
+ {
+ deployBeans(OwlFinch_Broken.class);
+ try
+ {
+ activateDependentContext();
+ OwlFinch_Broken bean = manager.getInstanceByType(OwlFinch_Broken.class);
+ bean.methodThatRegistersObserver();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnField()
+ {
+ deployBeans(BlueFacedParrotFinch.class);
+ try
+ {
+ activateDependentContext();
+ BlueFacedParrotFinch bean = manager.getInstanceByType(BlueFacedParrotFinch.class);
+ bean.methodThatRegistersObserver();
+
+ Set<Observer<String>> observers = manager.resolveObservers("String type event");
+ assert observers.size() == 1;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnParameterOfProducerMethod()
+ {
+ deployBeans(StarFinch.class, FinchKeeper.class, BirdCage.class);
+ try
+ {
+ activateDependentContext();
+ StarFinch starFinch = manager.getInstanceByType(StarFinch.class);
+ FinchKeeper birdKeeper = manager.getInstanceByType(FinchKeeper.class);
+ BirdCage birdCage = manager.getInstanceByType(BirdCage.class);
+ assert starFinch != null;
+ assert birdCage != null;
+ assert birdCage.getSomeMess() != null;
+ assert birdKeeper.isNewMessDetected();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnParameterOfInitializerMethod()
+ {
+ deployBeans(OrangeCheekedWaxbill.class, FinchKeeper.class);
+ try
+ {
+ activateDependentContext();
+ OrangeCheekedWaxbill bird = manager.getInstanceByType(OrangeCheekedWaxbill.class);
+ FinchKeeper birdKeeper = manager.getInstanceByType(FinchKeeper.class);
+ assert bird != null;
+ assert bird.getSomeMess() != null;
+ assert birdKeeper.isNewMessDetected();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ //TODO Implement once disposal methods are included
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnParameterOfDisposalMethod()
+ {
+ assert false;
+ }
+
+ //TODO Make sure this test works once EJBs are fully supported
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnParameterOfRemoveMethod()
+ {
+ deployBeans(EuropeanGoldfinch.class, FinchKeeper.class);
+ try
+ {
+ activateDependentContext();
+ EuropeanGoldfinch bird = manager.getInstanceByType(EuropeanGoldfinch.class);
+ FinchKeeper birdKeeper = manager.getInstanceByType(FinchKeeper.class);
+ assert bird != null;
+
+ assert birdKeeper.isNewMessDetected();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnParameterOfConstructor()
+ {
+ deployBeans(AuroraFinch.class, FinchKeeper.class);
+ try
+ {
+ activateDependentContext();
+ AuroraFinch bird = manager.getInstanceByType(AuroraFinch.class);
+ FinchKeeper birdKeeper = manager.getInstanceByType(FinchKeeper.class);
+ assert bird != null;
+ assert birdKeeper.isNewMessDetected();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnNonEventTypeInjectionPointFails()
+ {
+ deployBeans(CommonWaxbill_Broken.class);
+ try
+ {
+ activateDependentContext();
+ CommonWaxbill_Broken bean = manager.getInstanceByType(CommonWaxbill_Broken.class);
+ assert bean != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnInjectionPointWithoutTypeParameterFails()
+ {
+ deployBeans(BlackRumpedWaxbill_Broken.class);
+ try
+ {
+ activateDependentContext();
+ BlackRumpedWaxbill_Broken bean = manager.getInstanceByType(BlackRumpedWaxbill_Broken.class);
+ assert bean != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnInjectionPointWithWildcardedTypeParameterFails()
+ {
+ deployBeans(GoldbreastWaxbill_Broken.class);
+ try
+ {
+ activateDependentContext();
+ GoldbreastWaxbill_Broken bean = manager.getInstanceByType(GoldbreastWaxbill_Broken.class);
+ assert bean != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "broken", "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.6")
+ public void testObservableAnnotationOnInjectionPointWithTypeVariabledTypeParameterFails()
+ {
+ deployBeans(JavaSparrow_Broken.class);
+ try
+ {
+ activateDependentContext();
+ JavaSparrow_Broken bean = manager.getInstanceByType(JavaSparrow_Broken.class);
+ assert bean != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testImplicitObserverBeanMatchesAPITypeOfInectionPoint()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testImplicitObserverBeanMatchesBindingAnnotationsOfInjectionPoint()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testImplicitObserverBeanHasStandardDeploymentType()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testImplicitObserverBeanHasDependentScope()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testFireMethodCallsManagerFireWithEventObject()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testFireMethodCallsManagerFireWithBindingAnnotationsExceptObservable()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testFireMethodCallsManagerFireWithAllBindingAnnotationInstances()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObserveMethodCallsManagerAddObserverWithObserverObject()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObserveMethodCallsManagerAddObserverWithAllBindingAnnotationsExceptObservable()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.6")
+ public void testObserveMethodCallsManagerAddObserverWithAllBindingAnnotationInstance()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testEventObjectContainsTypeVariablesWhenResolvingFails()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testEventObjectContainsWildcardsWhenResolvingFails()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testDuplicateBindingTypesWhenResolvingFails()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testNonBindingTypeAnnotationWhenResolvingFails()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testResolvingChecksEventType()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testResolvingChecksTypeParameters()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testResolvingChecksBindingTypes()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testResolvingChecksBindingTypeMembers()
+ {
+ assert false;
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventBusTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FinchKeeper.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FinchKeeper.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FinchKeeper.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Named;
+import javax.webbeans.Observes;
+import javax.webbeans.RequestScoped;
+
+import org.jboss.webbeans.tck.tests.event.StarFinch.Mess;
+
+ at RequestScoped
+ at Named("FinchKeeper")
+public class FinchKeeper
+{
+ public FinchKeeper()
+ {
+ }
+
+ private boolean newMessDetected = false;
+
+ public void observesMesses(@Observes Mess aNewMess)
+ {
+ newMessDetected = true;
+ }
+
+ public boolean isNewMessDetected()
+ {
+ return newMessDetected;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FinchKeeper.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FoxTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FoxTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FoxTerrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Disposes;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+ at Stateless
+public class FoxTerrier
+{
+ public void observeInitialized(@Observes @Initialized Manager manager, @Disposes String badParam)
+ {
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/FoxTerrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/GoldbreastWaxbill_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/GoldbreastWaxbill_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/GoldbreastWaxbill_Broken.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+
+public class GoldbreastWaxbill_Broken
+{
+ @Fires
+ private Event<?> simpleEvent;
+
+ public void eliminateWarning()
+ {
+ assert simpleEvent != null;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/GoldbreastWaxbill_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/JavaSparrow_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/JavaSparrow_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/JavaSparrow_Broken.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import java.util.ArrayList;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+
+public class JavaSparrow_Broken
+{
+ @Fires
+ private Event<ArrayList<String>> simpleEvent;
+
+ public void eliminateWarning()
+ {
+ assert simpleEvent != null;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/JavaSparrow_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OrangeCheekedWaxbill.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OrangeCheekedWaxbill.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OrangeCheekedWaxbill.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,30 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Initializer;
+
+import org.jboss.webbeans.tck.tests.event.StarFinch.Mess;
+
+public class OrangeCheekedWaxbill
+{
+
+ private Mess someMess;
+
+ public OrangeCheekedWaxbill()
+ {
+ }
+
+ @Initializer
+ public void theInitializerMethod(@Fires Event<Mess> eventObject)
+ {
+ // Create a new mess and fire the event for it
+ someMess = new Mess();
+ eventObject.fire(someMess);
+ }
+
+ public Mess getSomeMess()
+ {
+ return someMess;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OrangeCheekedWaxbill.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OwlFinch_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OwlFinch_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OwlFinch_Broken.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,27 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Observer;
+
+
+public class OwlFinch_Broken
+{
+ @Fires
+ private Event<String> simpleEvent;
+
+ public void methodThatFiresEvent()
+ {
+ simpleEvent.fire("An event", new AnimalStereotypeAnnotationLiteral());
+ }
+
+ public void methodThatRegistersObserver()
+ {
+ simpleEvent.observe(new Observer<String>()
+ {
+ public void notify(String event)
+ {
+ }
+ }, new AnimalStereotypeAnnotationLiteral());
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/OwlFinch_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Pomeranian.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Pomeranian.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Pomeranian.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Named;
+import javax.webbeans.Observes;
+
+ at Stateful
+ at Tame
+ at Named("Teddy")
+public class Pomeranian implements PomeranianInterface
+{
+ public static Thread notificationThread;
+
+ public void observeSimpleEvent(@Observes String someEvent)
+ {
+ notificationThread = Thread.currentThread();
+ }
+
+ public static void staticallyObserveEvent(@Observes String someEvent)
+ {
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Pomeranian.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/PomeranianInterface.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/PomeranianInterface.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/PomeranianInterface.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.event;
+
+public interface PomeranianInterface
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/PomeranianInterface.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RecluseSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RecluseSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RecluseSpider.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.IfExists;
+import javax.webbeans.Observes;
+import javax.webbeans.RequestScoped;
+
+/**
+ * Simple web bean that conditionally listens to events.
+ *
+ */
+ at RequestScoped
+public class RecluseSpider
+{
+ public static boolean notified = false;
+
+ public void observe(@Observes @IfExists String someEvent)
+ {
+ notified = true;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RecluseSpider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Role.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Role.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Role.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+
+import javax.webbeans.BindingType;
+
+ at BindingType
+ at Retention(RUNTIME)
+public @interface Role
+{
+ String value();
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Role.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RoleBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RoleBinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RoleBinding.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.AnnotationLiteral;
+
+
+public class RoleBinding extends AnnotationLiteral<Role> implements Role
+{
+ private String value = null;
+
+ public RoleBinding(String value)
+ {
+ this.value = value;
+ }
+
+ public String value()
+ {
+ return value;
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/RoleBinding.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/StarFinch.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/StarFinch.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/StarFinch.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+ at RequestScoped
+ at Named("StarFinch")
+public class StarFinch
+{
+ public static class Mess
+ {
+ }
+
+ public StarFinch()
+ {
+ }
+
+ @Produces
+ public Mess producerOfMesses(@Fires Event<Mess> messEvent)
+ {
+ Mess newMess = new Mess();
+ messEvent.fire(newMess);
+ return newMess;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/StarFinch.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/SweeWaxbill_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/SweeWaxbill_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/SweeWaxbill_Broken.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Observer;
+
+
+public class SweeWaxbill_Broken
+{
+ @Fires @Role("Admin")
+ private Event<String> simpleEvent;
+
+ public void methodThatFiresEvent()
+ {
+ simpleEvent.fire("An event", new RoleBinding("Admin"));
+ }
+
+ public void methodThatRegistersObserver()
+ {
+ simpleEvent.observe(new Observer<String>()
+ {
+
+ public void notify(String event)
+ {
+ }
+ }, new RoleBinding("Admin"));
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/SweeWaxbill_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Tame.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.tests.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.webbeans.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+public @interface Tame
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Tame.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TameAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TameAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TameAnnotationLiteral.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.AnnotationLiteral;
+
+public class TameAnnotationLiteral extends AnnotationLiteral<Tame> implements Tame
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TameAnnotationLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TeaCupPomeranian.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TeaCupPomeranian.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TeaCupPomeranian.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,30 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.webbeans.Named;
+import javax.webbeans.Observes;
+
+ at Tame
+ at Named("Teddy")
+public class TeaCupPomeranian
+{
+ public static class OversizedException extends RuntimeException
+ {
+ private static final long serialVersionUID = 1L;
+
+ }
+
+ public static class TooSmallException extends Exception
+ {
+ private static final long serialVersionUID = 1L;
+ }
+
+ public void observeSimpleEvent(@Observes String someEvent)
+ {
+ throw new OversizedException();
+ }
+
+ public void observeAnotherSimpleEvent(@Observes Integer someEvent) throws TooSmallException
+ {
+ throw new TooSmallException();
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TeaCupPomeranian.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Terrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Terrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Terrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Local;
+
+ at Local
+public interface Terrier
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Terrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TibetanTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TibetanTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TibetanTerrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+
+ at Stateless
+public class TibetanTerrier implements Terrier
+{
+ public void observeInitialized(@Observes String someEvent)
+ {
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/TibetanTerrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/YorkshireTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/YorkshireTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/YorkshireTerrier.java 2009-01-16 00:28:17 UTC (rev 999)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.tests.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+ at Stateless
+public class YorkshireTerrier
+{
+ public void observeInitialized(@Observes @Initialized Manager manager, @Observes Boxer anotherDog)
+ {
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/YorkshireTerrier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the weld-commits
mailing list