[webbeans-commits] Webbeans SVN: r1111 - in tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer: field and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-01-20 01:43:18 -0500 (Tue, 20 Jan 2009)
New Revision: 1111
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Chicken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DaddyLongLegs.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DefangedTarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Egg.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaver.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/InfertileChicken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/LadybirdSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldLifecycleTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Tarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/WolfSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/BeanWithStaticProducerMethod.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/BlackWidow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Chicken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DaddyLongLegs.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DefangedTarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DisposalMethodDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Egg.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/FunnelWeaver.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/InfertileChicken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/LadybirdSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/ProducerMethodDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/ProducerMethodLifecycleTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/SpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/SpiderProducer_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Tarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/WolfSpider.java
Log:
refactored
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Animal.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/AnimalStereotype.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+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;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@interface AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/AnotherDeploymentType.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidow.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+class BlackWidow extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Chicken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Chicken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Chicken.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Produces;
+
+class Chicken
+{
+
+ @Produces
+ private Egg egg = new Egg();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DaddyLongLegs.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DaddyLongLegs.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DaddyLongLegs.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+class DaddyLongLegs extends Spider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DeadlyAnimal.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+interface DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DeadlySpider.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DefangedTarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DefangedTarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/DefangedTarantula.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,5 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+class DefangedTarantula extends Tarantula
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Egg.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Egg.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Egg.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+class Egg
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaver.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaver.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaver.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+class FunnelWeaver<T>
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/InfertileChicken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/InfertileChicken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/InfertileChicken.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+class InfertileChicken extends Chicken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/LadybirdSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/LadybirdSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/LadybirdSpider.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.ApplicationScoped;
+
+@ApplicationScoped
+class LadybirdSpider extends Spider
+{
+
+ public void spinWeb()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,39 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+
+@AnotherDeploymentType
+class OtherSpiderProducer
+{
+
+ private static Spider[] ALL_SPIDERS = { new Tarantula(), new LadybirdSpider(), new DaddyLongLegs() };
+
+ @Produces @Tame public Tarantula produceTameTarantula = new DefangedTarantula();
+
+ @Produces public Tarantula produceTarantula = new Tarantula();
+
+ @Produces @Named("blackWidow") public BlackWidow produceBlackWidow = new BlackWidow();
+
+ @Produces @Named @RequestScoped public DaddyLongLegs produceDaddyLongLegs = new DaddyLongLegs();
+
+ @Produces @Named @Production public LadybirdSpider getLadybirdSpider = new LadybirdSpider();
+
+ @Produces @AnimalStereotype public WolfSpider produceWolfSpider = new WolfSpider();
+
+ @Produces public Animal makeASpider = new WolfSpider();
+
+ @Produces public int getWolfSpiderSize = 4;
+
+ @Produces public Spider[] getSpiders = ALL_SPIDERS;
+
+ @Produces public FunnelWeaver<?> getAnotherFunnelWeaver = new FunnelWeaver<Object>();
+
+ @Produces public FunnelWeaver<Spider> getFunnelWeaverSpider = new FunnelWeaver<Spider>();
+
+ @Produces public Spider getNullSpider = null;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer_Broken.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,34 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Destructor;
+import javax.webbeans.Disposes;
+import javax.webbeans.Observes;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@Production
+class OtherSpiderProducer_Broken
+{
+
+ @Produces
+ public String observe(@Observes String foo)
+ {
+ return "foo";
+ }
+
+ @Produces
+ public String dispose(@Disposes String foo)
+ {
+ return "foo";
+ }
+
+ @Produces @Destructor
+ public String destroy()
+ {
+ return "foo";
+ }
+
+ @Produces @RequestScoped public Spider getRequestScopedSpider = null;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,279 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import java.lang.reflect.Field;
+
+import javax.webbeans.Current;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ProducerFieldDefinitionTest extends AbstractTest
+{
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="2.5.3")
+ public void testProducerFieldInheritsDeploymentTypeOfDeclaringWebBean() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceTameTarantula");
+ Bean<Tarantula> tarantulaModel = createProducerFieldBean(field, bean);
+ tarantulaModel.getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ /*@Test(groups="producerField", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
+ public void testStaticField() throws Exception
+ {
+ SimpleBean<BeanWithStaticProducerField> bean = createSimpleBean(BeanWithStaticProducerField.class);
+ manager.addBean(bean);
+ Field field = BeanWithStaticProducerField.class.getField("getString");
+ createProducerFieldBean(String.class, field, bean);
+ }*/
+
+ @Test(groups={"stub", "producerField", "enterpriseBeans", "stub"}, expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
+ public void testProducerFieldIsNotBusinessField() throws Exception
+ {
+ assert false;
+ }
+
+ @Test(groups="producerField") @SpecAssertion(section="3.5")
+ public void testParameterizedReturnType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getFunnelWeaverSpider");
+ createProducerFieldBean(field, bean);
+ }
+
+ @Test(groups="producerField", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
+ public void testParameterizedReturnTypeWithWildcard() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getAnotherFunnelWeaver");
+ createProducerFieldBean(field, bean);
+ }
+
+ @Test(groups={"stub", "producerField", "deployment"}) @SpecAssertion(section="3.5")
+ public void testBeanDeclaresMultipleProducerFields()
+ {
+ assert false;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section={"3.5", "2.3.1"})
+ public void testDefaultBindingType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceTarantula");
+ Bean<Tarantula> tarantulaModel = createProducerFieldBean(field, bean);
+ assert tarantulaModel.getBindings().size() == 1;
+ assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Current.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+ public void testApiTypeForClassReturn() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceTarantula");
+ Bean<Tarantula> tarantulaModel = createProducerFieldBean(field, bean);
+ assert tarantulaModel.getTypes().size() == 6;
+ assert tarantulaModel.getTypes().contains(Tarantula.class);
+ assert tarantulaModel.getTypes().contains(DeadlySpider.class);
+ assert tarantulaModel.getTypes().contains(Spider.class);
+ assert tarantulaModel.getTypes().contains(Animal.class);
+ assert tarantulaModel.getTypes().contains(DeadlyAnimal.class);
+ assert tarantulaModel.getTypes().contains(Object.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+ public void testApiTypeForInterfaceReturn() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("makeASpider");
+ Bean<Animal> animalModel = createProducerFieldBean(field, bean);
+ assert animalModel.getTypes().size() == 2;
+ assert animalModel.getTypes().contains(Animal.class);
+ assert animalModel.getTypes().contains(Object.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+ public void testApiTypeForPrimitiveReturn() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getWolfSpiderSize");
+ Bean<Integer> intModel = createProducerFieldBean(field, bean);
+ assert intModel.getTypes().size() == 2;
+ assert intModel.getTypes().contains(int.class);
+ assert intModel.getTypes().contains(Object.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section={"3.5.1", "2.2"})
+ public void testApiTypeForArrayTypeReturn() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getSpiders");
+ Bean<Spider[]> spidersModel = createProducerFieldBean(field, bean);
+ assert spidersModel.getTypes().size() == 2;
+ assert spidersModel.getTypes().contains(Spider[].class);
+ assert spidersModel.getTypes().contains(Object.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testBindingType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceTameTarantula");
+ Bean<Tarantula> tarantulaModel = createProducerFieldBean(field, bean);
+ assert tarantulaModel.getBindings().size() == 1;
+ assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Tame.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testScopeType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceDaddyLongLegs");
+ Bean<DaddyLongLegs> daddyLongLegsModel = createProducerFieldBean(field, bean);
+ assert daddyLongLegsModel.getScopeType().equals(RequestScoped.class);
+
+ // TODO Inherit scope from returned web bean?
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testDeploymentType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getLadybirdSpider");
+ Bean<LadybirdSpider> ladybirdSpiderModel = createProducerFieldBean(field, bean);
+ assert ladybirdSpiderModel.getDeploymentType().equals(Production.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testNamedField() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceBlackWidow");
+ Bean<BlackWidow> blackWidowSpiderModel = createProducerFieldBean(field, bean);
+ assert blackWidowSpiderModel.getName().equals("blackWidow");
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testDefaultNamedField() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceDaddyLongLegs");
+ Bean<DaddyLongLegs> daddyLongLegsSpiderModel = createProducerFieldBean(field, bean);
+ assert daddyLongLegsSpiderModel.getName().equals("produceDaddyLongLegs");
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldNonStatic()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldFieldDeclaredOnWebBeanImplementationClass()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldDefaultBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldDoesNotResolveToProducerField()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldDeclaredOnEnabledBean()
+ {
+ // TODO Placeholder
+ // TODO Move this
+
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testBeanCanDeclareMultipleDisposalFields()
+ {
+ // TODO move this
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testProducerFieldHasNoMoreThanOneDisposalField()
+ {
+ // TODO move this
+ // TODO Placeholder
+ assert false;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section={"2.7.2", "3.5.2", "2.2"})
+ public void testStereotype() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceWolfSpider");
+ Bean<WolfSpider> wolfSpiderModel = createProducerFieldBean(field, bean);
+
+
+ // TODO reimplement stereotype tests
+ //assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().size() == 1;
+ //assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().contains(Animal.class);
+
+ assert wolfSpiderModel.getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test @SpecAssertion(section="4.2")
+ public void testNonStaticProducerFieldNotInherited()
+ {
+ deployBeans(InfertileChicken.class);
+ assert manager.resolveByType(Egg.class).size() == 0;
+ }
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldLifecycleTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldLifecycleTest.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,58 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import java.lang.reflect.Field;
+
+import javax.webbeans.IllegalProductException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ProducerFieldLifecycleTest extends AbstractTest
+{
+
+ @SuppressWarnings("unchecked")
+ @Test(groups={"producerField", "broken"}) @SpecAssertion(section="5.6")
+ public void testProducerFieldBeanCreate() throws Exception
+ {
+ Bean<OtherSpiderProducer> spiderProducer = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Field method = OtherSpiderProducer.class.getField("produceTarantula");
+ Bean<Tarantula> tarantulaBean = createProducerFieldBean(method, spiderProducer);
+ Tarantula tarantula = tarantulaBean.create();
+ assert tarantula != null;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.3")
+ public void testSpecializedBeanAlwaysUsed()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Test(groups={"producerField", "broken"}) @SpecAssertion(section={"3.5", "5.6", "8.3"})
+ public void testProducerFieldReturnsNullIsDependent() throws Exception
+ {
+ Bean<OtherSpiderProducer> spiderProducer = createSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Field method = OtherSpiderProducer.class.getField("getNullSpider");
+ Bean<Spider> spiderBean = createProducerFieldBean(method, spiderProducer);
+ Spider spider = spiderBean.create();
+ assert spider == null;
+ }
+
+ @Test(groups="producerField", expectedExceptions=IllegalProductException.class) @SpecAssertion(section={"3.5", "5.6"})
+ public void testProducerFieldReturnsNullIsNotDependent() throws Exception
+ {
+ Bean<OtherSpiderProducer_Broken> spiderProducer = createSimpleBean(OtherSpiderProducer_Broken.class);
+ manager.addBean(spiderProducer);
+ Field method = OtherSpiderProducer_Broken.class.getField("getRequestScopedSpider");
+ createProducerFieldBean(method, spiderProducer).create();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Spider.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+class Spider implements Animal
+{
+
+ public final void layEggs()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Tame.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Tarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Tarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Tarantula.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+class Tarantula extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/WolfSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/WolfSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/WolfSpider.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+class WolfSpider implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Animal.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/AnimalStereotype.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+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;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@interface AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/AnotherDeploymentType.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/BeanWithStaticProducerMethod.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/BeanWithStaticProducerMethod.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/BeanWithStaticProducerMethod.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+
+@Production
+class BeanWithStaticProducerMethod
+{
+
+ @Produces public static String getString()
+ {
+ return "Pete";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/BlackWidow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/BlackWidow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/BlackWidow.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+class BlackWidow extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Chicken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Chicken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Chicken.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+import javax.webbeans.Produces;
+
+class Chicken
+{
+
+ @Produces
+ public Egg produceEgg()
+ {
+ return new Egg();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DaddyLongLegs.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DaddyLongLegs.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DaddyLongLegs.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+class DaddyLongLegs extends Spider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DeadlyAnimal.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+interface DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DeadlySpider.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DefangedTarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DefangedTarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DefangedTarantula.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+class DefangedTarantula extends Tarantula
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DisposalMethodDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DisposalMethodDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/DisposalMethodDefinitionTest.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class DisposalMethodDefinitionTest
+{
+
+ @Test(groups="stub") @SpecAssertion(section="4.2")
+ public void testNonStaticDisposalMethodNotInherited()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Egg.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Egg.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Egg.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+class Egg
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/FunnelWeaver.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/FunnelWeaver.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/FunnelWeaver.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+class FunnelWeaver<T>
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/InfertileChicken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/InfertileChicken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/InfertileChicken.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+class InfertileChicken extends Chicken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/LadybirdSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/LadybirdSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/LadybirdSpider.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+import javax.webbeans.ApplicationScoped;
+
+@ApplicationScoped
+class LadybirdSpider extends Spider
+{
+
+ public void spinWeb()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/ProducerMethodDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/ProducerMethodDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/ProducerMethodDefinitionTest.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,303 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+import java.lang.reflect.Method;
+
+import javax.webbeans.Current;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ProducerMethodDefinitionTest extends AbstractTest
+{
+
+ @Test(groups="producerMethod") @SpecAssertion(section="2.5.3")
+ public void testProducerMethodInheritsDeploymentTypeOfDeclaringWebBean() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceTameTarantula");
+ Bean<Tarantula> tarantulaModel = createProducerMethodBean(method, bean);
+ tarantulaModel.getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4")
+ public void testStaticMethod() throws Exception
+ {
+ Bean<BeanWithStaticProducerMethod> bean = createSimpleBean(BeanWithStaticProducerMethod.class);
+ manager.addBean(bean);
+ Method method = BeanWithStaticProducerMethod.class.getMethod("getString");
+ createProducerMethodBean(method, bean);
+ }
+
+ @Test(groups={"stub", "producerMethod", "enterpriseBeans", "stub"}, expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
+ public void testProducerMethodIsNotBusinessMethod() throws Exception
+ {
+ assert false;
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4")
+ public void testParameterizedReturnType() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("getFunnelWeaverSpider");
+ createProducerMethodBean(method, bean);
+ }
+
+ @Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
+ public void testParameterizedReturnTypeWithWildcard() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("getAnotherFunnelWeaver");
+ createProducerMethodBean(method, bean);
+ }
+
+ @Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
+ public void testParameterizedReturnTypeWithTypeParameter() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("getFunnelWeaver");
+ createProducerMethodBean(method, bean);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section={"3.4", "2.3.1"})
+ public void testDefaultBindingType() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceTarantula");
+ Bean<Tarantula> tarantulaModel = createProducerMethodBean(method, bean);
+ assert tarantulaModel.getBindings().size() == 1;
+ assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Current.class);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
+ public void testApiTypeForClassReturn() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceTarantula");
+ Bean<Tarantula> tarantulaModel = createProducerMethodBean(method, bean);
+ assert tarantulaModel.getTypes().size() == 6;
+ assert tarantulaModel.getTypes().contains(Tarantula.class);
+ assert tarantulaModel.getTypes().contains(DeadlySpider.class);
+ assert tarantulaModel.getTypes().contains(Spider.class);
+ assert tarantulaModel.getTypes().contains(Animal.class);
+ assert tarantulaModel.getTypes().contains(DeadlyAnimal.class);
+ assert tarantulaModel.getTypes().contains(Object.class);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
+ public void testApiTypeForInterfaceReturn() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("makeASpider");
+ Bean<Animal> animalModel = createProducerMethodBean(method, bean);
+ assert animalModel.getTypes().size() == 2;
+ assert animalModel.getTypes().contains(Animal.class);
+ assert animalModel.getTypes().contains(Object.class);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
+ public void testApiTypeForPrimitiveReturn() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("getWolfSpiderSize");
+ Bean<Integer> intModel = createProducerMethodBean(method, bean);
+ assert intModel.getTypes().size() == 2;
+ assert intModel.getTypes().contains(int.class);
+ assert intModel.getTypes().contains(Object.class);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section={"3.4.1", "2.2"})
+ public void testApiTypeForArrayTypeReturn() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("getSpiders");
+ Bean<Spider[]> spidersModel = createProducerMethodBean(method, bean);
+ assert spidersModel.getTypes().size() == 2;
+ assert spidersModel.getTypes().contains(Spider[].class);
+ assert spidersModel.getTypes().contains(Object.class);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
+ public void testBindingType() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceTameTarantula");
+ Bean<Tarantula> tarantulaModel = createProducerMethodBean(method, bean);
+ assert tarantulaModel.getBindings().size() == 1;
+ assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Tame.class);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
+ public void testScopeType() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceDaddyLongLegs");
+ Bean<DaddyLongLegs> daddyLongLegsModel = createProducerMethodBean(method, bean);
+ assert daddyLongLegsModel.getScopeType().equals(RequestScoped.class);
+
+ // TODO Inherit scope from returned web bean?
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
+ public void testDeploymentType() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("getLadybirdSpider");
+ Bean<LadybirdSpider> ladybirdSpiderModel = createProducerMethodBean(method, bean);
+ assert ladybirdSpiderModel.getDeploymentType().equals(Production.class);
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
+ public void testNamedMethod() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceBlackWidow");
+ Bean<BlackWidow> blackWidowSpiderModel = createProducerMethodBean(method, bean);
+ assert blackWidowSpiderModel.getName().equals("blackWidow");
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
+ public void testDefaultNamedMethod() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceDaddyLongLegs");
+ Bean<DaddyLongLegs> daddyLongLegsSpiderModel = createProducerMethodBean(method, bean);
+ assert daddyLongLegsSpiderModel.getName().equals("produceDaddyLongLegs");
+ }
+
+ @Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
+ public void testProducerMethodAnnotatedDestructor() throws Exception
+ {
+ Bean<SpiderProducer_Broken> bean = createSimpleBean(SpiderProducer_Broken.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer_Broken.class.getMethod("destroy");
+ createProducerMethodBean(method, bean);
+ }
+
+ @Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
+ public void testProducerMethodWithParameterAnnotatedDisposes() throws Exception
+ {
+ Bean<SpiderProducer_Broken> bean = createSimpleBean(SpiderProducer_Broken.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer_Broken.class.getMethod("dispose", String.class);
+ createProducerMethodBean(method, bean);
+ }
+
+ @Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
+ public void testProducerMethodWithParameterAnnotatedObserves() throws Exception
+ {
+ Bean<SpiderProducer_Broken> bean = createSimpleBean(SpiderProducer_Broken.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer_Broken.class.getMethod("observe", String.class);
+ createProducerMethodBean(method, bean);
+ }
+
+ @Test(groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.3.4")
+ public void testDisposalMethodNonStatic()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.3.4")
+ public void testDisposalMethodMethodDeclaredOnWebBeanImplementationClass()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.3.4")
+ public void testDisposalMethodBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.3.4")
+ public void testDisposalMethodDefaultBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.3.4")
+ public void testDisposalMethodDoesNotResolveToProducerMethod()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalMethodDeclaredOnEnabledBean()
+ {
+ // TODO Placeholder
+ // TODO Move this
+
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.3.5")
+ public void testBeanCanDeclareMultipleDisposalMethods()
+ {
+ // TODO move this
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.3.5")
+ public void testProducerMethodHasNoMoreThanOneDisposalMethod()
+ {
+ // TODO move this
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups="producerMethod") @SpecAssertion(section={"2.7.2", "3.4.2", "2.2"})
+ public void testStereotypeSpecifiesScope() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceWolfSpider");
+ Bean<WolfSpider> wolfSpider = createProducerMethodBean(method, bean);
+ //assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().size() == 1;
+ //assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().contains(Animal.class);
+ assert wolfSpider.getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section={"2.7.2", "3.4.2", "2.2"})
+ public void testStereotypeEnforcesTypes() throws Exception
+ {
+ Bean<SpiderProducer_Broken> bean = createSimpleBean(SpiderProducer_Broken.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer_Broken.class.getMethod("produceInteger");
+ createProducerMethodBean(method, bean);
+ }
+
+ @Test @SpecAssertion(section="4.2")
+ public void testNonStaticProducerMethodNotInherited()
+ {
+ deployBeans(InfertileChicken.class);
+ assert manager.resolveByType(Egg.class).size() == 0;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/ProducerMethodLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/ProducerMethodLifecycleTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/ProducerMethodLifecycleTest.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,70 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+import java.lang.reflect.Method;
+
+import javax.webbeans.IllegalProductException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ProducerMethodLifecycleTest extends AbstractTest
+{
+
+ @Test(groups={"producerMethod", "broken"}) @SpecAssertion(section="5.6")
+ public void testProducerMethodBeanCreate() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer.class.getMethod("produceTarantula");
+ Bean<Tarantula> tarantulaBean = createProducerMethodBean(method, spiderProducer);
+ Tarantula tarantula = tarantulaBean.create();
+ assert tarantula != null;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.3")
+ public void testSpecializedBeanAlwaysUsed()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod", "beanLifecycle"}) @SpecAssertion(section="3.3.4")
+ public void testDisposalMethodCalled()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod", "beanLifecycle"}) @SpecAssertion(section="3.3.4")
+ public void testDisposalMethodHasParametersInjected()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+
+ @Test(groups={"producerMethod", "broken"}) @SpecAssertion(section={"3.4", "5.6", "8.3"})
+ public void testProducerMethodReturnsNullIsDependent() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer.class.getMethod("getNullSpider");
+ Bean<Spider> spiderBean = createProducerMethodBean(method, spiderProducer);
+ Spider spider = spiderBean.create();
+ assert spider == null;
+ }
+
+ @Test(groups="producerMethod", expectedExceptions=IllegalProductException.class) @SpecAssertion(section={"3.4", "5.6"})
+ public void testProducerMethodReturnsNullIsNotDependent() throws Exception
+ {
+ Bean<SpiderProducer_Broken> spiderProducer = createSimpleBean(SpiderProducer_Broken.class);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer_Broken.class.getMethod("getRequestScopedSpider");
+ createProducerMethodBean(method, spiderProducer).create();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Spider.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+
+class Spider implements Animal
+{
+
+ public final void layEggs()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/SpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/SpiderProducer.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,79 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+class SpiderProducer
+{
+
+ private static Spider[] ALL_SPIDERS = { new Tarantula(), new LadybirdSpider(), new DaddyLongLegs() };
+
+ @Produces @Tame public Tarantula produceTameTarantula()
+ {
+ return new DefangedTarantula();
+ }
+
+ @Produces public Tarantula produceTarantula()
+ {
+ return new Tarantula();
+ }
+
+ @Produces public Spider getNullSpider()
+ {
+ return null;
+ }
+
+ @Produces public FunnelWeaver<Spider> getFunnelWeaverSpider()
+ {
+ return new FunnelWeaver<Spider>();
+ }
+
+ @Produces public FunnelWeaver<?> getAnotherFunnelWeaver()
+ {
+ return new FunnelWeaver<Object>();
+ }
+
+ @Produces public <T> FunnelWeaver<T> getFunnelWeaver()
+ {
+ return new FunnelWeaver<T>();
+ }
+
+ @Produces public Animal makeASpider()
+ {
+ return new WolfSpider();
+ }
+
+ @Produces public int getWolfSpiderSize()
+ {
+ return 4;
+ }
+
+ @Produces public Spider[] getSpiders()
+ {
+ return ALL_SPIDERS;
+ }
+
+ @Produces @Named @RequestScoped public DaddyLongLegs produceDaddyLongLegs()
+ {
+ return new DaddyLongLegs();
+ }
+
+ @Produces @Named @Production public LadybirdSpider getLadybirdSpider()
+ {
+ return new LadybirdSpider();
+ }
+
+ @Produces @Named("blackWidow") public BlackWidow produceBlackWidow()
+ {
+ return new BlackWidow();
+ }
+
+ @Produces @AnimalStereotype public WolfSpider produceWolfSpider()
+ {
+ return new WolfSpider();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/SpiderProducer_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/SpiderProducer_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/SpiderProducer_Broken.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,42 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+import javax.webbeans.Destructor;
+import javax.webbeans.Disposes;
+import javax.webbeans.Observes;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@Production
+class SpiderProducer_Broken
+{
+
+ @Produces @RequestScoped public Spider getRequestScopedSpider()
+ {
+ return null;
+ }
+
+ @Produces @Destructor
+ public String destroy()
+ {
+ return "foo";
+ }
+
+ @Produces
+ public String dispose(@Disposes String foo)
+ {
+ return "foo";
+ }
+
+ @Produces
+ public String observe(@Observes String foo)
+ {
+ return "foo";
+ }
+
+ @Produces @AnimalStereotype public Integer produceInteger()
+ {
+ return 1;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Tame.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Tarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Tarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/Tarantula.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+class Tarantula extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/WolfSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/WolfSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/method/WolfSpider.java 2009-01-20 06:43:18 UTC (rev 1111)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.method;
+
+class WolfSpider implements Animal
+{
+
+}
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1110 - in tck/trunk/impl/src/main: java/org/jboss/webbeans/tck/tests and 37 other directories.
by webbeans-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-01-20 01:39:37 -0500 (Tue, 20 Jan 2009)
New Revision: 1110
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/ContextManagementTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/ContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/NormalContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/application/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/application/ApplicationContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/conversation/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/conversation/ConversationContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Fox.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/FoxRun.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Tarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/City.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityBinding.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityInterface.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer2.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer3.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Espoo_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Forssa_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Hamina_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Helsinki.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Hyvinkaa.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Jamsa_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Joensuu.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Jyvaskyla.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kaarina_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kotka_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kuopio_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Loviisa_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Maarianhamina_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Mikkeli_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Nokia_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Peraseinajoki.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Pietarsaari_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Porvoo_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Raisio_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Salo_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Turku.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Uusikaupunki_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Vaasa.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Vantaa_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Violation.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Violation2.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/request/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/request/RequestContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/session/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/session/SessionContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DependentFinalTuna.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/FishStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/RedSnapper.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/SpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/WolfSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Barn.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BindingDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BorderCollie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Cat.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Chunky.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ClippedBorderCollie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Cod.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DefangedTarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Hairy.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Horse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/LongHairedDog.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Order.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ScottishFish.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ShetlandPony.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Species.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/SpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Synchronous.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tuna.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Whitefish.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BlackWidow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BorderCollie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DefaultDeploymentTypeTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeploymentTypeDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Dog.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/FishStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Gazelle_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/GoldenLabrador.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/GoldenRetriever.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/HornedAnimalDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/HornedMammalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Horse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/InheritedDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Labrador.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/MammalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/NotInheritedDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/RedSnapper.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Reindeer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Retriever.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Rhinoceros.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/ShetlandPony.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/SpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/FishStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Haddock.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/MammalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Minnow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Moose.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/NameDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/RedSnapper.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/RiverFishStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/SeaBass.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnotherScope.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnotherScopeType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/BeanWithTooManyScopeTypes.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/BorderCollie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Dog.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/FishStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/GoldenLabrador.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/GoldenRetriever.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Grayling.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Horse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Labrador.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Minnow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Mullet.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/NotInheritedScope.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Order.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Pollock.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/RedSnapper.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Retriever.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/RiverFishStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Scallop_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/ScopeDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/SeaBass.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/ShetlandPony.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnotherStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Antelope_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/ApplicationScopedHornedMammalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Asynchronous.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/BorderCollie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Bovine.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Carp_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Chair_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Elk_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/FallowDeer_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Gazelle_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Goat_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Goldfish.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HighlandCow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HornedAnimalDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HornedMammalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Horse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/LongHairedDog.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Mammal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Moose.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Reindeer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/RequestScopedAnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/RoeDeer_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/ShetlandPony.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Springbok.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithBindingTypes_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithNonEmptyNamed_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithTooManyDeploymentTypes_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithTooManyScopeTypes_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/ApiTypeDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/Haddock.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AnimalStereotypeAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AuroraFinch.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AustralianTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BananaSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BirdCage.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BlackRumpedWaxbill_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BlueFacedParrotFinch.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BorderTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BostonTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Boxer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BullTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/CairnsTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/CommonWaxbill_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Egg.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Farmer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FinchKeeper.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FiresBinding.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FoxTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/GoldbreastWaxbill_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/JavaSparrow_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/LazyFarmer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/OrangeCheekedWaxbill.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/OwlFinch_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Pomeranian.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/PomeranianInterface.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/RecluseSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Role.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/RoleBinding.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/StarFinch.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/SweeWaxbill_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TameAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TeaCupPomeranian.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Terrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TibetanTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/YorkshireTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/ResourceInjectionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/decorator/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/decorator/DecoratorDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/deployment/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/deployment/BeanDeploymentTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedConstructorParameter.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedField.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedInitializerParameter.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedProducerParameter.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Armant_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Beagle_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Boxer_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Bullmastiff_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Dachshund_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanDeclarationTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanLifecycleTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanRemoveMethodTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanSpecializationTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Giraffe.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GoldenRetriever.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GoodDoggie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GreatDane.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GreaterDane.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Greyhound_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Hound.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/HoundOfBaskerville.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Husky_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/IrishTerrier_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/JackRussellTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Koirus.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Labrador.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Laika.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Leopard.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/LocalGoodDoggie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewAndOtherBindingType_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pekingese_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pitbull.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pug_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pumi_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Rottweiler.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/RussellTerrier.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Saluki.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Spitz.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Toller.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/WelshCorgie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/WrappedEnterpriseBean.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Capercaillie.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Chicken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/ChickenHutch.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/DangerCall.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Dottrel.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Fox.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Grouse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/InitializerMethodTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Pheasant.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Shrike.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/interceptor/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/interceptor/InterceptorDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/jms/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/jms/JmsDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedConstructorParameter.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedField.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedInitializerParameter.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedProducerParameter.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/BookOrderProcessor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/CdOrderProcessor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Cow_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Donkey.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Duck.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/EntityBean.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Farm.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FarmOffice.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FishPond.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FishStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Goldfish.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Goose_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/HeavyDuty.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Leopard_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockEnterpriseBean.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockFilter.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockHttpSessionListener.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServlet.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServletContextListener.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServletRequestListener.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockUIComponent.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Modern.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Motorized.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewAndOtherBindingType_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NovelOrderProcessor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Order.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/OrderProcessor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/OuterBean_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/ParameterizedBean_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Plough.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/RedSnapper.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/RequestScopedAnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Sheep.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SimpleBeanDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SimpleBeanLifecycleTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Synchronous.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SynchronousAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tiger.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tractor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tuna.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/TunaFarm.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Turkey.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/WrappedSimpleBean.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractCow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractFarmHouse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractHorse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractKennel.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractStable.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Cow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Cuddly.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Dog.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Dung.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/FarmAnimalDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/FarmHouse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Horse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/LabradorKennel.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/RealizationTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Smelly.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Stable.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/TameCow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/TameHorse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/Farmer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/OrganicFarmer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/SpecializationTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Chunky.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Cod.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Haddock.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/InstantiationByNameTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Plaice.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ResolutionByNameTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Salmon.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ScottishFish.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/SeaBass.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Sole.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Tuna.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Whitefish.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/ClientProxyTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/FinalTuna_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/Fox.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/Tuna.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/TunedTuna.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/BeanWithFinalBoundField_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/BeanWithStaticBoundField_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/DeluxeHenHouse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FarmHouseProducer_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FarmHouse_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/Fox.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FoxRun.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/HenHouse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/InjectionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/SpiderNest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/SpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/Tuna.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/TunaFarm.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/AnimalStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/AnimalStereotypeAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/BeanWithInjectionPointMetadata.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/ConstructorInjectionPointBean.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/FieldInjectionPointBean.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/InjectionPointTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/FishFarmOffice.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/ManagerTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnimalFarmer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnotherDeploymentTypeLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingAnnotationMember_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingArrayTypeMember_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Chunky.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ChunkyLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Cod.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DaddyLongLegs.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Expensive.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ExpensiveLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Farmer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/FinalTuna_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Haddock.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Halibut.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/InstantiationByTypeTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/LadybirdSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ParameterizedBean_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Plaice.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ResolutionByTypeTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/RoundWhitefish.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Salmon.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ScottishFish.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ScottishFishFarmer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/SeaBass.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Sole.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/SpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Tarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Tuna.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Whitefish.java
Removed:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/definition/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/lookup/
Modified:
tck/trunk/impl/src/main/resources/tck-unit-tests.xml
Log:
refactored
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,139 @@
+package org.jboss.webbeans.tck;
+
+import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import javax.webbeans.Production;
+import javax.webbeans.Standard;
+import javax.webbeans.manager.Bean;
+import javax.webbeans.manager.Manager;
+
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+
+@SuppressWarnings("unchecked")
+public class AbstractTest
+{
+
+ protected abstract static class RunInDependentContext
+ {
+
+ protected void setup()
+ {
+ AbstractTest.activateDependentContext();
+ }
+
+ protected void cleanup()
+ {
+ AbstractTest.deactivateDependentContext();
+ }
+
+ public final void run() throws Exception
+ {
+ try
+ {
+ setup();
+ execute();
+ }
+ finally
+ {
+ cleanup();
+ }
+ }
+
+ protected abstract void execute() throws Exception;
+
+ }
+
+ private static final List<Class<? extends Annotation>> STANDARD_DEPLOYMENT_TYPES = Collections.unmodifiableList(Arrays.asList(Standard.class, Production.class));
+
+ protected static final int BUILT_IN_BEANS = 3;
+
+ protected Manager manager;
+
+ public static boolean visited = false;
+
+ @BeforeMethod
+ public final void before()
+ {
+ manager = configuration().getManagers().createManager();
+ configuration().getManagers().setEnabledDeploymentTypes(getEnabledDeploymentTypes());
+ }
+
+ @AfterMethod
+ public void after()
+ {
+ manager = null;
+ }
+
+ public <T> Bean<T> createSimpleBean(Class<T> beanClass)
+ {
+ return configuration().getBeans().createSimpleBean(beanClass);
+ }
+
+ public <T> Bean<T> createEnterpriseBean(Class<T> beanClass)
+ {
+ return configuration().getBeans().createEnterpriseBean(beanClass);
+ }
+
+ public <T> Bean<T> createProducerMethodBean(Method method, Bean<?> producerBean)
+ {
+ return configuration().getBeans().createProducerMethodBean(method, producerBean);
+ }
+
+ public <T> Bean<T> createProducerFieldBean(Field field, Bean<?> producerBean)
+ {
+ return configuration().getBeans().createProducerFieldBean(field, producerBean);
+ }
+
+ protected void deployBeans(Class<?>... classes)
+ {
+ manager = configuration().getContainers().deploy(classes);
+ }
+
+ protected List<Class<? extends Annotation>> getStandardDeploymentTypes()
+ {
+ return new ArrayList<Class<? extends Annotation>>(STANDARD_DEPLOYMENT_TYPES);
+ }
+
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ return getStandardDeploymentTypes();
+ }
+
+ protected byte[] serialize(Object instance) throws IOException
+ {
+ ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+ ObjectOutputStream out = new ObjectOutputStream(bytes);
+ out.writeObject(instance);
+ return bytes.toByteArray();
+ }
+
+ protected Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException
+ {
+ ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes));
+ return in.readObject();
+ }
+
+ protected static void activateDependentContext()
+ {
+ configuration().getContexts().setActive(configuration().getContexts().getDependentContext());
+ }
+
+ protected static void deactivateDependentContext()
+ {
+ configuration().getContexts().setInactive(configuration().getContexts().getDependentContext());
+ }
+}
\ No newline at end of file
Deleted: 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-20 06:00:29 UTC (rev 1109)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -1,139 +0,0 @@
-package org.jboss.webbeans.tck.tests;
-
-import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import javax.webbeans.Production;
-import javax.webbeans.Standard;
-import javax.webbeans.manager.Bean;
-import javax.webbeans.manager.Manager;
-
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-
-@SuppressWarnings("unchecked")
-public class AbstractTest
-{
-
- protected abstract static class RunInDependentContext
- {
-
- protected void setup()
- {
- AbstractTest.activateDependentContext();
- }
-
- protected void cleanup()
- {
- AbstractTest.deactivateDependentContext();
- }
-
- public final void run() throws Exception
- {
- try
- {
- setup();
- execute();
- }
- finally
- {
- cleanup();
- }
- }
-
- protected abstract void execute() throws Exception;
-
- }
-
- private static final List<Class<? extends Annotation>> STANDARD_DEPLOYMENT_TYPES = Collections.unmodifiableList(Arrays.asList(Standard.class, Production.class));
-
- protected static final int BUILT_IN_BEANS = 3;
-
- protected Manager manager;
-
- public static boolean visited = false;
-
- @BeforeMethod
- public final void before()
- {
- manager = configuration().getManagers().createManager();
- configuration().getManagers().setEnabledDeploymentTypes(getEnabledDeploymentTypes());
- }
-
- @AfterMethod
- public void after()
- {
- manager = null;
- }
-
- public <T> Bean<T> createSimpleBean(Class<T> beanClass)
- {
- return configuration().getBeans().createSimpleBean(beanClass);
- }
-
- public <T> Bean<T> createEnterpriseBean(Class<T> beanClass)
- {
- return configuration().getBeans().createEnterpriseBean(beanClass);
- }
-
- public <T> Bean<T> createProducerMethodBean(Method method, Bean<?> producerBean)
- {
- return configuration().getBeans().createProducerMethodBean(method, producerBean);
- }
-
- public <T> Bean<T> createProducerFieldBean(Field field, Bean<?> producerBean)
- {
- return configuration().getBeans().createProducerFieldBean(field, producerBean);
- }
-
- protected void deployBeans(Class<?>... classes)
- {
- manager = configuration().getContainers().deploy(classes);
- }
-
- protected List<Class<? extends Annotation>> getStandardDeploymentTypes()
- {
- return new ArrayList<Class<? extends Annotation>>(STANDARD_DEPLOYMENT_TYPES);
- }
-
- protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
- {
- return getStandardDeploymentTypes();
- }
-
- protected byte[] serialize(Object instance) throws IOException
- {
- ByteArrayOutputStream bytes = new ByteArrayOutputStream();
- ObjectOutputStream out = new ObjectOutputStream(bytes);
- out.writeObject(instance);
- return bytes.toByteArray();
- }
-
- protected Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException
- {
- ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes));
- return in.readObject();
- }
-
- protected static void activateDependentContext()
- {
- configuration().getContexts().setActive(configuration().getContexts().getDependentContext());
- }
-
- protected static void deactivateDependentContext()
- {
- configuration().getContexts().setInactive(configuration().getContexts().getDependentContext());
- }
-}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/ContextManagementTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/ContextManagementTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/ContextManagementTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,75 @@
+package org.jboss.webbeans.tck.unit.context;
+
+import javax.webbeans.ContextNotActiveException;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author Nicklas Karlsson
+ *
+ */
+@SpecVersion("20081206")
+public class ContextManagementTest extends AbstractTest
+{
+ /**
+ * For each of the built-in normal scopes, contexts propagate across any Java
+ * method call, including invocation of EJB local business methods.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6")
+ public void testBuiltInNormalScopedContextsPropagateAcrossAnyJavaMethodCall()
+ {
+ assert false;
+ }
+
+ /**
+ * The built-in contexts do not propagate across remote method invocations or
+ * to asynchronous processes such as JMS message listeners or EJB timer
+ * service timeouts
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6")
+ public void testBuiltInNormalScopedContextsDoNotPropagateAcrossRemoteMethodInvocations()
+ {
+ assert false;
+ }
+
+ /**
+ * The built-in contexts do not propagate across remote method invocations or
+ * to asynchronous processes such as JMS message listeners or EJB timer
+ * service timeouts
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6")
+ public void testBuiltInNormalScopedContextsDoNotPropagateAcrossAsynchronousMethodInvocations()
+ {
+ assert false;
+ }
+
+ /**
+ * If no active context object exists for the given scope type, getContext()
+ * must throw a ContextNotActiveException.
+ */
+ @Test(groups = { "stub", "contexts" }, expectedExceptions = ContextNotActiveException.class)
+ @SpecAssertion(section = "9.7")
+ public void testGettingContextNotActiveFails()
+ {
+ assert false;
+ }
+
+ /**
+ * If more than one active context object exists for the given scope type,
+ * getContext() must throw an IllegalStateException.
+ */
+ @Test(groups = { "stub", "contexts" }, expectedExceptions = ContextNotActiveException.class)
+ @SpecAssertion(section = "9.7")
+ public void testGettingContextWithTooManyActiveFails()
+ {
+ assert false;
+ }
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/ContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/ContextTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/ContextTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,74 @@
+package org.jboss.webbeans.tck.unit.context;
+
+import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
+
+import java.lang.annotation.Annotation;
+
+import javax.webbeans.ContextNotActiveException;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.manager.Context;
+import javax.webbeans.manager.Contextual;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class ContextTest extends AbstractTest
+{
+
+ private @interface Dummy
+ {
+
+ }
+
+ private static class DummyContext implements Context
+ {
+
+ public <T> T get(Contextual<T> bean, boolean create)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class<? extends Annotation> getScopeType()
+ {
+ return Dummy.class;
+ }
+
+ public boolean isActive()
+ {
+ return true;
+ }
+
+ }
+
+ @Test(expectedExceptions={ContextNotActiveException.class}, groups={"manager"}) @SpecAssertion(section="8.6")
+ public void testGetContextWithNoActiveContextsFails()
+ {
+ configuration().getContexts().setInactive(configuration().getContexts().getRequestContext());
+ manager.getContext(RequestScoped.class);
+ }
+
+ @Test(expectedExceptions={IllegalArgumentException.class}, groups={"manager"}) @SpecAssertion(section="8.6")
+ public void testGetContextWithTooManyActiveContextsFails()
+ {
+ Context firstContext = new DummyContext() {};
+ Context secondContext = new DummyContext() {};
+ manager.addContext(firstContext);
+ manager.addContext(secondContext);
+ manager.getContext(Dummy.class);
+ }
+
+ @Test(expectedExceptions={ContextNotActiveException.class}, groups={"stub", "manager"}) @SpecAssertion(section="8.6")
+ public void testGetContextWithNoRegisteredContextsFails()
+ {
+ manager.getContext(RequestScoped.class);
+ assert false;
+ }
+
+ @Test(groups={"manager"}) @SpecAssertion(section="8.6")
+ public void testGetContextReturnsActiveContext()
+ {
+ manager.getContext(RequestScoped.class);
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/NormalContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/NormalContextTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/NormalContextTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,202 @@
+package org.jboss.webbeans.tck.unit.context;
+
+import java.lang.annotation.Annotation;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+import javax.webbeans.ScopeType;
+import javax.webbeans.manager.Context;
+import javax.webbeans.manager.Contextual;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author Nicklas Karlsson
+ * @author Pete Muir
+ *
+ * This class tests a basic context against section 8 of the
+ * specification
+ *
+ */
+@SpecVersion("20081206")
+public class NormalContextTest extends AbstractTest
+{
+
+ @ScopeType
+ @Retention(RetentionPolicy.RUNTIME)
+ private @interface Dummy {}
+
+ private static class DummyContext implements Context
+ {
+
+ public <T> T get(Contextual<T> bean, boolean create)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Class<? extends Annotation> getScopeType()
+ {
+ return Dummy.class;
+ }
+
+ public boolean isActive()
+ {
+ return true;
+ }
+
+ }
+
+ Context context;
+
+ @BeforeMethod
+ public void initContext()
+ {
+ context = new DummyContext();
+ }
+
+ /**
+ * return an existing instance of the given contextual type, or
+ */
+ @Test(groups = { "contexts", "stub" })
+ @SpecAssertion(section = "9.2")
+ public void testGetReturnsExistingInstace()
+ {
+ assert false;
+ }
+
+ /**
+ * if the value of the create parameter is false, return a null value, or
+ */
+ @Test(groups = { "contexts", "stub" })
+ @SpecAssertion(section = "9.2")
+ public void testGetWithCreateFalseReturnsNull()
+ {
+ assert false;
+ }
+
+ /**
+ * if the value of the create parameter is true, create a new instance of the
+ * given contextual type by calling Bean.create() and return the new
+ * instance.
+ */
+ @Test(groups = { "contexts", "stub" })
+ @SpecAssertion(section = "9.2")
+ public void testGetWithCreateTrueReturnsNewInstance()
+ {
+ assert false;
+ }
+
+ /**
+ * The get() method may not return a null value unless the create parameter
+ * is false or Contextual.create() returns a null value
+ */
+ @Test(groups = { "contexts", "stub" })
+ @SpecAssertion(section = "9.2")
+ public void testGetMayNotReturnNullUnlessCreateIsFalseOrContextualCreateReturnsNull()
+ {
+ assert false;
+ }
+
+ /**
+ * The get() method may not create a new instance of the given contextual
+ * type unless the create parameter is true
+ */
+ @Test(groups = { "contexts", "stub" })
+ @SpecAssertion(section = "9.2")
+ public void testGetMayNotCreateNewInstanceUnlessCreateIsTrue()
+ {
+ assert false;
+ }
+
+ /**
+ * The Context implementation is responsible for destroying any contextual
+ * instance it creates by passing the instance to the destroy() method of the
+ * Contextual object representing the contextual type.
+ */
+ public void testContextDestroysBeansWhenDestroyed()
+ {
+ assert false;
+ }
+
+ /**
+ * A destroyed instance must not subsequently be returned by the get()
+ * method.
+ */
+ @Test(groups = { "contexts", "stub" })
+ @SpecAssertion(section = "9.2")
+ public void testDestroyedInstanceMustNotBeReturnedByGet()
+ {
+ assert false;
+ }
+
+ /**
+ * When a scope is inactive, any invocation of the get() from the current
+ * thread upon the Context object for that scope results in a
+ * ContextNotActiveException.
+ */
+ @Test(groups = { "contexts", "stub" })
+ @SpecAssertion(section = "9.2")
+ public void testInvokingGetOnInactiveContextFails()
+ {
+ assert false;
+ }
+
+ /**
+ * There may be no more than one mapped instance per contextual type per
+ * thread
+ */
+ @Test(groups = { "contexts", "stub" })
+ @SpecAssertion(section = "9.3")
+ public void testOnlyMappedInstancePerContextualTypePerThread()
+ {
+ assert false;
+ }
+
+ /*
+ * @Test(groups = "contexts")
+ *
+ * @SpecAssertion(section = "9.3") public void
+ * testGetWithCreateFalseReturnsNull() { Bean<Tuna> tunaBean =
+ * BeanFactory.createSimpleBean(Tuna.class, manager); assert
+ * context.get(tunaBean, false) == null; }
+ *
+ * @Test(groups = "contexts")
+ *
+ * @SpecAssertion(section = "8.1") public void
+ * testGetWithCreateTrueReturnsBean() { Bean<Tuna> tunaBean =
+ * BeanFactory.createSimpleBean(Tuna.class, manager); assert
+ * context.get(tunaBean, true) != null; }
+ *
+ * @Test(groups = "contexts", expectedExceptions =
+ * ContextNotActiveException.class)
+ *
+ * @SpecAssertion(section = "8.1") public void
+ * testInactiveContextThrowsContextNotActiveException() { ((AbstractContext)
+ * context).setActive(false); context.get(null, false); assert true; }
+ *
+ * @Test(groups = "contexts")
+ *
+ * @SpecAssertion(section = "8.1") public void
+ * testReturnsCorrectExistingBean() { Bean<Tuna> tunaBean =
+ * BeanFactory.createSimpleBean(Tuna.class, manager); Tuna firstTuna =
+ * context.get(tunaBean, true); Tuna secondTuna = context.get(tunaBean,
+ * false); assert firstTuna == secondTuna; }
+ *
+ * @Test(groups = { "contexts", "producerMethod" })
+ *
+ * @SpecAssertion(section = "8.1") public void
+ * testProducerMethodReturningNullOK() throws SecurityException,
+ * NoSuchMethodException { SimpleBean<SpiderProducer> producer =
+ * createSimpleBean(SpiderProducer.class, manager);
+ * manager.addBean(producer); Method nullProducer =
+ * SpiderProducer.class.getMethod("produceShelob");
+ * ProducerMethodBean<Tarantula> shelobBean =
+ * createProducerMethodBean(Tarantula.class, nullProducer, producer,
+ * manager); assert shelobBean.create() == null; }
+ */
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/application/ApplicationContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/application/ApplicationContextTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/application/ApplicationContextTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,92 @@
+package org.jboss.webbeans.tck.unit.context.application;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ApplicationContextTest extends AbstractTest
+{
+
+ /**
+ * The application scope is active during the service() method of any servlet
+ * in the web application.
+ */
+ @Test(groups = { "stub", "contexts", "servlet" })
+ @SpecAssertion(section = "9.6.3")
+ public void testApplicationScopeActiveDuringServiceMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * The application scope is active during any Java EE web service invocation.
+ */
+ @Test(groups = { "stub", "contexts", "webservice" })
+ @SpecAssertion(section = "9.6.3")
+ public void testApplicationScopeActiveDuringWebSericeInvocation()
+ {
+ assert false;
+ }
+
+ /**
+ * The application scope is also active during any remote method invocation
+ * of any EJB bean, during any call to an EJB timeout method and during
+ * message delivery to any EJB message driven bean.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.3")
+ public void testApplicationScopeActiveDuringRemoteMethodInvocationOfEjb()
+ {
+ assert false;
+ }
+
+ /**
+ * The application scope is also active during any remote method invocation
+ * of any EJB bean, during any call to an EJB timeout method and during
+ * message delivery to any EJB message driven bean.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.3")
+ public void testApplicationScopeActiveDuringCallToEjbTimeoutMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * The application scope is also active during any remote method invocation
+ * of any EJB bean, during any call to an EJB timeout method and during
+ * message delivery to any EJB message driven bean.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.3")
+ public void testApplicationScopeActiveDuringEjbMessageDelivery()
+ {
+ assert false;
+ }
+
+ /**
+ * The application context is shared between all servlet requests, web
+ * service invocations, EJB remote method invocations, EJB timeouts and
+ * message deliveries to message driven beans that execute within the same
+ * application
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.3")
+ public void testApplicationContextSharedBetweenInvokationsInApplication()
+ {
+ assert false;
+ }
+
+ /**
+ * The application context is destroyed when the application is undeployed.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.3")
+ public void testApplicationScopeDestroyedWhenApplicationIsUndeployed()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/conversation/ConversationContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/conversation/ConversationContextTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/conversation/ConversationContextTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,231 @@
+package org.jboss.webbeans.tck.unit.context.conversation;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author Nicklas Karlsson
+ *
+ */
+@SpecVersion("20081206")
+public class ConversationContextTest extends AbstractTest
+{
+ /**
+ * For a JSF faces request, the context is active from the beginning of the
+ * apply request values phase, until the response is complete.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testContextActiveFromBeginningOfApplyRequestValuesPhasetoResponseCompleteForJsfRequest()
+ {
+ assert false;
+ }
+
+ /**
+ * For a JSF non-faces request, the context is active during the render
+ * response phase
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testContextActiveDuringRenderResponsePhaseForNonFacesJsfRequest()
+ {
+ assert false;
+ }
+
+ /**
+ * Any JSF request has exactly one associated conversation
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testJsfRequestHasExactlyOneAssociatedConversation()
+ {
+ assert false;
+ }
+
+ /**
+ * The conversation associated with a JSF request is determined at the end of
+ * the restore view phase and does not change during the request
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testAssociatedConversationOfJsfRequestIsDeterminedAtEndOfRestoreViewPhase()
+ {
+ assert false;
+ }
+
+ /**
+ * The conversation associated with a JSF request is determined at the end of
+ * the restore view phase and does not change during the request
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testAssociatedConversationOfJsfRequestDoesNotChangeDuringRequest()
+ {
+ assert false;
+ }
+
+ /**
+ * By default, a conversation is transient
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testDefaultConversationIsTransient()
+ {
+ assert false;
+ }
+
+ /**
+ * All long-running conversations have a string-valued unique identifier
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testConversationsHaveUniqueStringIdentifiers()
+ {
+ assert false;
+ }
+
+ /**
+ * If the conversation associated with the current JSF request is in the
+ * transient state at the end of a JSF request, it is destroyed, and the
+ * conversation context is also destroyed.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testTransientConversationIsDestroyedAtEndOfJsfRequest()
+ {
+ assert false;
+ }
+
+ /**
+ * If the conversation associated with the current JSF request is in the
+ * transient state at the end of a JSF request, it is destroyed, and the
+ * conversation context is also destroyed.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testTransientConversationContextIsDestroyedAtEndOfJsfRequest()
+ {
+ assert false;
+ }
+
+ /**
+ * If the conversation associated with the current JSF request is in the
+ * long-running state at the end of a JSF request, it is not destroyed
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testLongRunningConversationNotDestroyedAtEndOfJsfRequest()
+ {
+ assert false;
+ }
+
+ /**
+ * The long-running conversation context associated with a request that
+ * renders a JSF view is automatically propagated to any faces request (JSF
+ * form submission) that originates from that rendered page.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testLongRunningConversationOfJsfRenderingRequestIsPropagatedToRequestFromRenderedPage()
+ {
+ assert false;
+ }
+
+ /**
+ * The long-running conversation context associated with a request that
+ * results in a JSF redirect (via a navigation rule) is automatically
+ * propagated to the resulting non-faces request, and to any other subsequent
+ * request to the same URL. This is accomplished via use of a GET request
+ * parameter named cid containing the unique identifier of the conversation.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testLongRunningConversationOfJsfRedirectIsPropagatedToNonFacesRequest()
+ {
+ assert false;
+ }
+
+ /**
+ * The long-running conversation associated with a request may be propagated
+ * to any non-faces request via use of a GET request parameter named cid
+ * containing the unique identifier of the conversation. In this case, the
+ * application must manage this request parameter
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testLongRunningConversationManuallyPropagatedToNonFacesRequest()
+ {
+ assert false;
+ }
+
+ /**
+ * When no conversation is propagated to a JSF request, the request is
+ * associated with a new transient conversation.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testNewTransientRequestIsCreatedWhenNoConversationIsPropagated()
+ {
+ assert false;
+ }
+
+ /**
+ * All long-running conversations are scoped to a particular HTTP servlet
+ * session and may not cross session boundaries
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testLongRunningConversationsMayNotCrossHttpSessions()
+ {
+ assert false;
+ }
+
+ /**
+ * When the HTTP servlet session is invalidated, all long-running
+ * conversation contexts created during the current session are destroyed
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testAllLongRunningConversationContextsOfInvalidatedHttpSessionAreDestroyed()
+ {
+ assert false;
+ }
+
+ /**
+ * The Web Bean manager is permitted to arbitrarily destroy any long-running
+ * conversation that is associated with no current JSF request, in order to
+ * conserve resources
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testManagerCanDestroyOrphanedLongRunningConversations()
+ {
+ assert false;
+ }
+
+ /**
+ * If the propagated conversation cannot be restored, the request is
+ * associated with a new transient conversation
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testNewTransientConversationIsCreatedWhenConversationCannotBeRestored()
+ {
+ assert false;
+ }
+
+ /**
+ * The Web Bean manager ensures that a long-running conversation may be
+ * associated with at most one request at a time, by blocking or rejecting
+ * concurrent requests.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.4")
+ public void testConcurrentRequestsToLongRunningConversationsAreHandled()
+ {
+ assert false;
+ }
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DeadlyAnimal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+interface DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DeadlySpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,601 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+import java.lang.reflect.Method;
+import java.util.Set;
+
+import javax.webbeans.ContextNotActiveException;
+import javax.webbeans.Dependent;
+import javax.webbeans.manager.Bean;
+import javax.webbeans.manager.Context;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class DependentContextTest extends AbstractTest
+{
+
+ /**
+ * No injected instance of the Web Bean is ever shared between multiple
+ * injection points.
+ */
+ @Test(groups = { "contexts", "injection" })
+ @SpecAssertion(section = "9.4")
+ public void testInstanceNotSharedBetweenInjectionPoints()
+ {
+ deployBeans(Fox.class, FoxRun.class);
+ Set<Bean<Fox>> foxBeans = manager.resolveByType(Fox.class);
+ assert foxBeans.size() == 1;
+ Bean<Fox> foxBean = foxBeans.iterator().next();
+ Set<Bean<FoxRun>> foxRunBeans = manager.resolveByType(FoxRun.class);
+ assert foxRunBeans.size() == 1;
+ Bean<FoxRun> foxRunBean = foxRunBeans.iterator().next();
+ manager.addBean(foxBean);
+ FoxRun foxRun = foxRunBean.create();
+ assert !foxRun.fox.equals(foxRun.anotherFox);
+ }
+
+ /**
+ * Any instance of the Web Bean that is used to evaluate a Unified EL
+ * expression exists to service that evaluation only.
+ */
+ @Test(groups = { "stub", "contexts", "el" })
+ @SpecAssertion(section = "9.4")
+ public void testInstanceUsedForElEvalutionNotShared()
+ {
+ assert false;
+ }
+
+ /**
+ * Any instance of the Web Bean that receives a producer method, producer
+ * field, disposal method or observer method invocation exists to service
+ * that invocation only
+ */
+ @Test(groups = { "contexts", "producerMethod" })
+ @SpecAssertion(section = "9.4")
+ public void testInstanceUsedForProducerMethodNotShared() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer.class.getMethod("produceTarantula");
+ Bean<Tarantula> tarantulaBean = createProducerMethodBean(method, spiderProducer);
+ Tarantula tarantula = tarantulaBean.create();
+ Tarantula tarantula2 = tarantulaBean.create();
+ assert tarantula != null;
+ assert tarantula2 != null;
+ assert tarantula != tarantula2;
+ }
+
+ /**
+ * Any instance of the Web Bean that receives a producer method, producer
+ * field, disposal method or observer method invocation exists to service
+ * that invocation only
+ */
+ @Test(groups = { "contexts", "producerMethod", "stub" })
+ @SpecAssertion(section = "9.4")
+ public void testInstanceUsedForProducerFieldNotShared() throws Exception
+ {
+ assert false;
+ }
+
+ /**
+ * Any instance of the Web Bean that receives a producer method, producer
+ * field, disposal method or observer method invocation exists to service
+ * that invocation only
+ */
+ @Test(groups = { "stub", "contexts", "disposalMethod" })
+ @SpecAssertion(section = "9.4")
+ public void testInstanceUsedForDisposalMethodNotShared()
+ {
+ assert false;
+ }
+
+ /**
+ * Any instance of the Web Bean that receives a producer method, producer
+ * field, disposal method or observer method invocation exists to service
+ * that invocation only
+ */
+ @Test(groups = { "stub", "contexts", "observerMethod" })
+ @SpecAssertion(section = "9.4")
+ public void testInstanceUsedForObserverMethodNotShared()
+ {
+ assert false;
+ }
+
+ /**
+ * Every invocation of the get() operation of the Context object for the @Dependent
+ * scope with the value true for the create parameter returns a new instance
+ * of the given Web Bean
+ */
+ @Test(groups = "contexts")
+ @SpecAssertion(section = "9.4")
+ public void testContextGetWithCreateTrueReturnsNewInstance() throws Exception
+ {
+ deployBeans(Fox.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ Set<Bean<Fox>> foxBeans = manager.resolveByType(Fox.class);
+ assert foxBeans.size() == 1;
+ Bean<Fox> foxBean = foxBeans.iterator().next();
+ Context context = manager.getContext(Dependent.class);
+ assert context.get(foxBean, true) != null;
+ assert context.get(foxBean, true) instanceof Fox;
+ }
+
+ }.run();
+
+ }
+
+ /**
+ * Every invocation of the get() operation of the Context object for the @Dependent
+ * scope with the value false for the create parameter returns a null value
+ */
+ @Test(groups = "contexts")
+ @SpecAssertion(section = "9.4")
+ public void testContextGetWithCreateFalseReturnsNull() throws Exception
+ {
+ deployBeans(Fox.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ Set<Bean<Fox>> foxBeans = manager.resolveByType(Fox.class);
+ assert foxBeans.size() == 1;
+ Bean<Fox> foxBean = foxBeans.iterator().next();
+ Context context = manager.getContext(Dependent.class);
+ assert context.get(foxBean, false) == null;
+ }
+
+ }.run();
+
+
+ }
+
+ /**
+ * The @Dependent scope is inactive except:
+ */
+ @Test(groups = {"contexts"}, expectedExceptions = ContextNotActiveException.class)
+ @SpecAssertion(section = "9.4")
+ public void testContextIsInactive()
+ {
+ manager.getContext(Dependent.class).isActive();
+ }
+
+ /**
+ * when an instance of a Web Bean with scope @Dependent is created by the Web
+ * Bean manager to receive a producer method, producer field, disposal method
+ * or observer method invocation, or
+ */
+ @Test(groups = { "stub", "contexts", "producerMethod" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveWhenInvokingProducerMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * when an instance of a Web Bean with scope @Dependent is created by the Web
+ * Bean manager to receive a producer method, producer field, disposal method
+ * or observer method invocation, or
+ */
+ @Test(groups = { "stub", "contexts", "producerField" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveWhenInvokingProducerField()
+ {
+ assert false;
+ }
+
+ /**
+ * when an instance of a Web Bean with scope @Dependent is created by the Web
+ * Bean manager to receive a producer method, producer field, disposal method
+ * or observer method invocation, or
+ */
+ @Test(groups = { "stub", "contexts", "disposalMethod" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveWhenInvokingDisposalMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * when an instance of a Web Bean with scope @Dependent is created by the Web
+ * Bean manager to receive a producer method, producer field, disposal method
+ * or observer method invocation, or
+ */
+ @Test(groups = { "stub", "contexts", "observerMethod" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveWhenInvokingObserverMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * while a Unified EL expression is evaluated, or
+ */
+ @Test(groups = { "stub", "contexts", "el" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveWhenEvaluatingElExpression()
+ {
+ assert false;
+ }
+
+ /**
+ * when the Web Bean manager is creating or destroying a Web Bean instance or
+ * injecting its dependencies, or
+ */
+ @Test(groups = { "contexts", "beanLifecycle" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveDuringBeanCreation()
+ {
+ // Slightly roundabout, but I can't see a better way to test atm
+ Bean<FoxRun> foxRunBean = createSimpleBean(FoxRun.class);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class);
+ manager.addBean(foxBean);
+ FoxRun foxRun = foxRunBean.create();
+ assert foxRun.fox != null;
+ }
+
+ /**
+ * when the Web Bean manager is creating or destroying a Web Bean instance or
+ * injecting its dependencies, or
+ */
+ @Test(groups = { "stub", "contexts", "beanDestruction" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveDuringBeanDestruction()
+ {
+ assert false;
+ }
+
+ /**
+ * when the Web Bean manager is creating or destroying a Web Bean instance or
+ * injecting its dependencies, or
+ */
+ @Test(groups = { "contexts", "injection" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveDuringInjection()
+ {
+ Bean<FoxRun> foxRunBean = createSimpleBean(FoxRun.class);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class);
+ manager.addBean(foxBean);
+ FoxRun foxRun = foxRunBean.create();
+ assert foxRun.fox != null;
+ }
+
+ /**
+ * when the Web Bean manager is injecting dependencies of an EJB bean or
+ * Servlet or when an EJB bean @PostConstruct or @PreDestroy callback is
+ * invoked by the EJB container
+ */
+ @Test(groups = { "contexts", "injection", "stub", "ejb3" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveDuringEJBDependencyInjection()
+ {
+ assert false;
+ }
+
+ /**
+ * when the Web Bean manager is injecting dependencies of an EJB bean or
+ * Servlet or when an EJB bean @PostConstruct or @PreDestroy callback is
+ * invoked by the EJB container
+ */
+ @Test(groups = { "contexts", "injection", "stub", "servlet" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveDuringServletDependencyInjection()
+ {
+ assert false;
+ }
+
+ /**
+ * when the Web Bean manager is injecting dependencies of an EJB bean or
+ * Servlet or when an EJB bean @PostConstruct or @PreDestroy callback is
+ * invoked by the EJB container
+ */
+ @Test(groups = { "contexts", "postconstruct", "stub", "ejb3" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveDuringEJBPostConstruct()
+ {
+ assert false;
+ }
+
+ /**
+ * when the Web Bean manager is injecting dependencies of an EJB bean or
+ * Servlet or when an EJB bean @PostConstruct or @PreDestroy callback is
+ * invoked by the EJB container
+ */
+ @Test(groups = { "contexts", "predestroy", "stub", "ejb3" })
+ @SpecAssertion(section = "9.4")
+ public void testContextIsActiveDuringEJBPreDestroy()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "constructor" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromConstructor()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "removeMethod" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromRemoveMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "initalizerMethod" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromInitializerMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "producerMethod" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromProducerMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "disposalMethod" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromDisposalMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "preDestroy" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromPreDestroy()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "postConstruct" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromPostConstruct()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "interceptor" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromInterceptorOfActiveMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * A Web Bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from the Web Bean constructor, from the
+ * Web Bean remove method, from initializer methods, from producer methods,
+ * from disposal methods, from @PostConstruct and @PreDestroy callbacks and
+ * from Web Beans interceptors or decorators for any of these methods
+ */
+ @Test(groups = { "stub", "contexts", "decorator" })
+ @SpecAssertion(section = "9.4.1")
+ public void testWebBeanMayCreateInstanceFromDecoratorOfActiveMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * An EJB bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from initializer methods, from @PostConstruct
+ * and @PreDestroy callbacks and from Web Beans interceptors for these
+ * methods.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3", "initializerMethod" })
+ @SpecAssertion(section = "9.4.1")
+ public void testEjbBeanMayCreateInstanceFromInitializer()
+ {
+ assert false;
+ }
+
+ /**
+ * An EJB bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from initializer methods, from @PostConstruct
+ * and @PreDestroy callbacks and from Web Beans interceptors for these
+ * methods.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3", "postConstruct" })
+ @SpecAssertion(section = "9.4.1")
+ public void testEjbBeanMayCreateInstanceFromPostConstruct()
+ {
+ assert false;
+ }
+
+ /**
+ * An EJB bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from initializer methods, from @PostConstruct
+ * and @PreDestroy callbacks and from Web Beans interceptors for these
+ * methods.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3", "preDestroy" })
+ @SpecAssertion(section = "9.4.1")
+ public void testEjbBeanMayCreateInstanceFromPreDestroy()
+ {
+ assert false;
+ }
+
+ /**
+ * An EJB bean may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from initializer methods, from @PostConstruct
+ * and @PreDestroy callbacks and from Web Beans interceptors for these
+ * methods.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3", "interceptor" })
+ @SpecAssertion(section = "9.4.1")
+ public void testEjbBeanMayCreateInstanceFromInterceptorOfActiveMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * A Servlet may create an instance of a Web Bean with scope type @Dependent
+ * by calling Manager.getInstance() from initializer methods
+ */
+ @Test(groups = { "stub", "contexts", "servlet", "initializerMethod" })
+ @SpecAssertion(section = "9.4.1")
+ public void testServletBeanMayCreateInstanceFromInitializer()
+ {
+ assert false;
+ }
+
+ /**
+ * destroy all dependent objects of a Web Bean instance when the instance is
+ * destroyed,
+ */
+ @Test(groups = { "stub", "contexts", "beanDestruction" })
+ @SpecAssertion(section = "9.4.2")
+ public void testDestroyingParentDestroysDependents()
+ {
+ assert false;
+ }
+
+ /**
+ * destroy all dependent objects of an EJB bean or Servlet when the EJB bean
+ * or Servlet is destroyed,
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.4.2")
+ public void testDestroyingEjbDestroysDependents()
+ {
+ assert false;
+ }
+
+ /**
+ * destroy all dependent objects of an EJB bean or Servlet when the EJB bean
+ * or Servlet is destroyed,
+ */
+ @Test(groups = { "stub", "contexts", "servlet" })
+ @SpecAssertion(section = "9.4.2")
+ public void testDestroyingServletDestroysDependents()
+ {
+ assert false;
+ }
+
+ /**
+ * destroy all @Dependent scoped contextual instances created during an EL
+ * expression evaluation when the evaluation completes, and
+ */
+ @Test(groups = { "stub", "contexts", "el" })
+ @SpecAssertion(section = "9.4.2")
+ public void testDependentsDestroyedWhenElEvaluationCompletes()
+ {
+ assert false;
+ }
+
+ /**
+ * destroy any @Dependent scoped contextual instance created to receive a
+ * producer method, producer field, disposal method or observer method
+ * invocation when the invocation completes
+ */
+ @Test(groups = { "stub", "contexts", "producerMethod" })
+ @SpecAssertion(section = "9.4.2")
+ public void testDependentsDestroyedWhenProducerMethodCompletes()
+ {
+ assert false;
+ }
+
+ /**
+ * destroy any @Dependent scoped contextual instance created to receive a
+ * producer method, producer field, disposal method or observer method
+ * invocation when the invocation completes
+ */
+ @Test(groups = { "stub", "contexts", "producerField" })
+ @SpecAssertion(section = "9.4.2")
+ public void testDependentsDestroyedWhenProducerFieldCompletes()
+ {
+ assert false;
+ }
+
+ /**
+ * destroy any @Dependent scoped contextual instance created to receive a
+ * producer method, producer field, disposal method or observer method
+ * invocation when the invocation completes
+ */
+ @Test(groups = { "stub", "contexts", "disposalMethod" })
+ @SpecAssertion(section = "9.4.2")
+ public void testDependentsDestroyedWhenDisposalMethodCompletes()
+ {
+ assert false;
+ }
+
+ /**
+ * destroy any @Dependent scoped contextual instance created to receive a
+ * producer method, producer field, disposal method or observer method
+ * invocation when the invocation completes
+ */
+ @Test(groups = { "stub", "contexts", "observerMethod" })
+ @SpecAssertion(section = "9.4")
+ public void testDependentsDestroyedWhenObserverMethodEvaluationCompletes()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Fox.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Fox.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Fox.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+import javax.webbeans.Dependent;
+
+@Dependent
+class Fox
+{
+
+ public String getName()
+ {
+ return "gavin";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/FoxRun.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/FoxRun.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/FoxRun.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+import javax.webbeans.Current;
+
+class FoxRun
+{
+
+ @Current
+ public Fox fox;
+
+ @Current
+ public Fox anotherFox;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Spider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+
+
+class Spider implements Animal
+{
+
+ public final void layEggs()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SpiderProducer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+import javax.webbeans.Produces;
+
+
+@AnotherDeploymentType
+class SpiderProducer
+{
+
+ @Produces public Tarantula produceTarantula()
+ {
+ return new Tarantula();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Tarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Tarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/Tarantula.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+
+class Tarantula extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/City.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/City.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/City.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+class City
+{
+ public void ping() {
+
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityBinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityBinding.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+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.Dependent;
+import javax.webbeans.InterceptorBindingType;
+
+@InterceptorBindingType
+@Dependent
+@Target({TYPE, METHOD})
+@Retention(RUNTIME)
+@interface CityBinding
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityInterface.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityInterface.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityInterface.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+interface CityInterface
+{
+ public void foo();
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.webbeans.Dependent;
+import javax.webbeans.Produces;
+
+class CityProducer
+{
+ @Produces @Dependent public Violation reference = new Violation();
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer2.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer2.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer2.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.webbeans.Dependent;
+import javax.webbeans.Produces;
+
+class CityProducer2
+{
+ @Produces
+ @Dependent
+ public Violation create()
+ {
+ return new Violation();
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer3.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer3.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/CityProducer3.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.webbeans.Current;
+import javax.webbeans.Dependent;
+import javax.webbeans.Produces;
+
+
+class CityProducer3
+{
+ @Produces
+ @Dependent
+ public Violation create(@Current Violation reference)
+ {
+ return new Violation();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Espoo_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Espoo_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Espoo_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@Stateful
+@SessionScoped
+class Espoo_Broken
+{
+ @Current
+ Violation reference;
+
+ @Remove
+ public void bye() {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Forssa_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Forssa_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Forssa_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.Initializer;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Forssa_Broken implements Serializable
+{
+ public Forssa_Broken() {
+ }
+
+ @Initializer
+ public Forssa_Broken(@Current Violation reference) {
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Hamina_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Hamina_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Hamina_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Hamina_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Helsinki.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Helsinki.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Helsinki.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Dependent;
+
+@Dependent
+@Stateful
+class Helsinki
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Hyvinkaa.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Hyvinkaa.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Hyvinkaa.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@SuppressWarnings("serial")
+@SessionScoped
+class Hyvinkaa implements Serializable
+{
+ @SuppressWarnings("unused")
+ @Current
+ private transient Violation reference;
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Jamsa_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Jamsa_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Jamsa_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.Produces;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Jamsa_Broken extends City implements Serializable
+{
+ public Jamsa_Broken()
+ {
+ }
+
+ @Produces
+ @SessionScoped
+ public Violation create(@Current Violation violation)
+ {
+ return violation;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Joensuu.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Joensuu.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Joensuu.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@SuppressWarnings("serial")
+@SessionScoped
+class Joensuu implements Serializable
+{
+ @SuppressWarnings("unused")
+ @Current
+ private transient Violation reference;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Jyvaskyla.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Jyvaskyla.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Jyvaskyla.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.SessionScoped;
+
+@SuppressWarnings("serial")
+@SessionScoped
+class Jyvaskyla implements Serializable
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kaarina_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kaarina_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kaarina_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.SessionScoped;
+
+@Stateful
+@SessionScoped
+class Kaarina_Broken
+{
+ @CityBinding
+ public void foo()
+ {
+ }
+
+ @Remove
+ public void bye()
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kotka_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kotka_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kotka_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Kotka_Broken implements Serializable
+{
+ @CityBinding
+ public void foo() {
+
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kuopio_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kuopio_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kuopio_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.Initializer;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Kuopio_Broken extends City implements Serializable
+{
+ public Kuopio_Broken() {
+
+ }
+
+ @Initializer
+ public void init(@Current Violation reference) {
+
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Loviisa_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Loviisa_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Loviisa_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.Initializer;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Loviisa_Broken extends City implements Serializable
+{
+ public Loviisa_Broken() {
+ }
+
+ @Initializer
+ public Loviisa_Broken(@Current Violation reference) {
+
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Maarianhamina_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Maarianhamina_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Maarianhamina_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@Stateful
+@SessionScoped
+class Maarianhamina_Broken
+{
+ @Current
+ private Violation reference;
+
+ @Remove
+ public void bye() {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Mikkeli_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Mikkeli_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Mikkeli_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.Initializer;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Mikkeli_Broken extends City implements Serializable
+{
+ public Mikkeli_Broken()
+ {
+ }
+
+ @Initializer
+ public Mikkeli_Broken(@Current Violation reference)
+ {
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Nokia_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Nokia_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Nokia_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Nokia_Broken extends City implements Serializable
+{
+ @Current
+ private Violation reference;
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,479 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.IOException;
+import java.util.Set;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.IllegalProductException;
+import javax.webbeans.UnserializableDependencyException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * @author Nicklas Karlsson
+ *
+ */
+@SpecVersion("20081206")
+public class PassivatingContextTest extends AbstractTest
+{
+
+ /**
+ * EJB local objects are serializable. Therefore, an enterprise Web Bean may
+ * declare any passivating scope.
+ */
+ @Test(groups = { "contexts", "passivation", "enterpriseBean", "integration" })
+ @SpecAssertion(section = "9.5")
+ public void testEJBWebBeanCanDeclarePassivatingScope()
+ {
+ deployBeans(Turku.class);
+ }
+
+ /**
+ * Simple Web Beans are not required to be serializable. If a simple Web Bean
+ * declares a passivating scope, and the implementation class is not
+ * serializable, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "9.5")
+ public void testSimpleWebBeanWithNonSerializableImplementationClassFails()
+ {
+ deployBeans(Hamina_Broken.class);
+ }
+
+ /**
+ * Simple Web Beans are not required to be serializable. If a simple Web Bean
+ * declares a passivating scope, and the implementation class is not
+ * serializable, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time.
+ */
+ @Test(groups = {"contexts", "passivation" })
+ @SpecAssertion(section = "9.5")
+ public void testSimpleWebBeanWithSerializableImplementationClassOK()
+ {
+ createSimpleBean(Jyvaskyla.class);
+ }
+
+ /**
+ * the Web Bean declares a passivating scope type, and context passivation
+ * occurs, or
+ *
+ * @throws IOException
+ * @throws ClassNotFoundException
+ */
+ @Test(groups = { "contexts", "passivation" , "stub" })
+ @SpecAssertion(section = "9.5")
+ public void testSimpleWebBeanDeclaringPassivatingScopeIsSerializedWhenContextIsPassivated() throws IOException, ClassNotFoundException
+ {
+ assert false;
+ }
+
+ @SuppressWarnings("unchecked")
+ private <T> boolean testSerialize(Bean<T> bean) throws IOException, ClassNotFoundException
+ {
+ manager.addBean(bean);
+ T instance = manager.getInstance(bean);
+ byte[] data = serialize(instance);
+ T resurrected = (T) deserialize(data);
+ return resurrected.toString().equals(instance.toString());
+ }
+
+ /**
+ * the Web Bean is an EJB stateful session bean, and it is passivated by the
+ * EJB container.
+ *
+ * @throws ClassNotFoundException
+ * @throws IOException
+ */
+ // TODO requires an EJB instance
+ @Test(groups = { "contexts", "passivation", "broken", "stub" })
+ @SpecAssertion(section = "9.5")
+ public void testStatefulEJBIsSerializedWhenPassivatedByEJBContainer() throws IOException, ClassNotFoundException
+ {
+ assert false;
+ }
+
+ /**
+ * On the other hand, dependent objects (including interceptors and
+ * decorators with scope @Dependent) of a stateful session bean or of a Web
+ * Bean with a passivating scope must be serialized and deserialized along
+ * with their owner
+ */
+ @Test(groups = { "stub", "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentInterceptorsOfStatefulEnterpriseBeanMustBeSerializable()
+ {
+ deployBeans(Kaarina_Broken.class);
+ }
+
+ /**
+ * On the other hand, dependent objects (including interceptors and
+ * decorators with scope @Dependent) of a stateful session bean or of a Web
+ * Bean with a passivating scope must be serialized and deserialized along
+ * with their owner
+ */
+ @Test(groups = { "stub", "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentDecoratorsOfStatefulEnterpriseBeanMustBeSerializable()
+ {
+ deployBeans(Porvoo_Broken.class);
+ }
+
+ /**
+ * On the other hand, dependent objects (including interceptors and
+ * decorators with scope @Dependent) of a stateful session bean or of a Web
+ * Bean with a passivating scope must be serialized and deserialized along
+ * with their owner
+ */
+ @Test(groups = { "stub", "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentInterceptorsOfWebBeanWithPassivatingScopeMustBeSerializable()
+ {
+ deployBeans(Kotka_Broken.class);
+ }
+
+ /**
+ * On the other hand, dependent objects (including interceptors and
+ * decorators with scope @Dependent) of a stateful session bean or of a Web
+ * Bean with a passivating scope must be serialized and deserialized along
+ * with their owner
+ */
+ @Test(groups = { "stub", "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentDecoratorsOfWebBeansWithPassivatingScopeMustBeSerializable()
+ {
+ deployBeans(Raisio_Broken.class);
+ }
+
+ /**
+ * EJB local objects are serializable. Therefore, any reference to an
+ * enterprise Web Bean of scope @Dependent is serializable.
+ *
+ * @throws ClassNotFoundException
+ * @throws IOException
+ */
+ @Test(groups = { "contexts", "passivation" })
+ @SpecAssertion(section = "9.5")
+ public void testDependentEJBsAreSerializable() throws IOException, ClassNotFoundException
+ {
+ deployBeans(Vaasa.class, Helsinki.class);
+ Set<Bean<Vaasa>> vaasaBeans = manager.resolveByType(Vaasa.class);
+ assert vaasaBeans.size() == 1;
+ assert testSerialize(vaasaBeans.iterator().next());
+ }
+
+ /**
+ * If a simple Web Bean of scope @Dependent and a non-serializable
+ * implementation class is injected into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * UnserializableDependencyException must be thrown by the Web Bean manager
+ * at initialization time.
+ */
+ @Test(groups = { "stub", "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoStatefulSessionBeanFails()
+ {
+ deployBeans(Violation.class, Espoo_Broken.class);
+ manager.getInstanceByType(Espoo_Broken.class);
+ }
+
+ /**
+ * If a simple Web Bean of scope @Dependent and a non-serializable
+ * implementation class is injected into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * UnserializableDependencyException must be thrown by the Web Bean manager
+ * at initialization time.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(Vantaa_Broken.class, Violation.class);
+ }
+
+ /**
+ * If a simple Web Bean of scope @Dependent and a non-serializable
+ * implementation class is injected into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * UnserializableDependencyException must be thrown by the Web Bean manager
+ * at initialization time.
+ */
+ @Test(groups = { "contexts", "passivation" })
+ @SpecAssertion(section = "9.5")
+ public void testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoTransientFieldOK()
+ {
+ createSimpleBean(Joensuu.class);
+ }
+
+ /**
+ * If a simple Web Bean of scope @Dependent and a non-serializable
+ * implementation class is injected into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * UnserializableDependencyException must be thrown by the Web Bean manager
+ * at initialization time.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(Loviisa_Broken.class, Violation.class);
+ }
+
+ /**
+ * If a simple Web Bean of scope @Dependent and a non-serializable
+ * implementation class is injected into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * UnserializableDependencyException must be thrown by the Web Bean manager
+ * at initialization time.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(Forssa_Broken.class, Violation.class);
+ }
+
+ /**
+ * If a simple Web Bean of scope @Dependent and a non-serializable
+ * implementation class is injected into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * UnserializableDependencyException must be thrown by the Web Bean manager
+ * at initialization time.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = UnserializableDependencyException.class)
+ @SpecAssertion(section = "9.5")
+ public void testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoProducerMethodParameterWithPassivatingScopeFails()
+ {
+ deployBeans(Peraseinajoki.class, Violation.class, Violation2.class);
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ *
+ * @throws NoSuchMethodException
+ * @throws SecurityException
+ */
+ @Test(groups = { "contexts", "passivation", "integration", "broken" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBeanFails() throws SecurityException, NoSuchMethodException
+ {
+ deployBeans(CityProducer2.class, Maarianhamina_Broken.class);
+ manager.getInstanceByType(Maarianhamina_Broken.class);
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(CityProducer2.class, Nokia_Broken.class);
+ manager.getInstanceByType(Nokia_Broken.class).ping();
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation" })
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoTransientFieldOfWebBeanWithPassivatingScopeOK()
+ {
+ createSimpleBean(CityProducer2.class);
+ createSimpleBean(Hyvinkaa.class);
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(CityProducer2.class, Loviisa_Broken.class);
+ manager.getInstanceByType(Loviisa_Broken.class).ping();
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(CityProducer2.class, Kuopio_Broken.class);
+ manager.getInstanceByType(Kuopio_Broken.class).ping();
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation" , "broken"}, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoProducerMethodParameterWithPassivatingScopeFails()
+ {
+ // TODO Not quite sure what this test is doing
+ //deployBeans(CityProducer3.class, Jamsa_Broken.class);
+ //manager.getInstanceByType(Jamsa_Broken.class).ping();
+ assert false;
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ *
+ */
+ @Test(groups = { "contexts", "passivation", "stub"}, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBeanFails() throws Exception
+ {
+ // TODO This doesn't test injction in a SFSB, but into a Enterprise bean
+ //deployBeans(CityProducer.class, Pietarsaari_Broken.class);
+ //manager.getInstanceByType(Pietarsaari_Broken.class);
+ assert false;
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(CityProducer.class, Uusikaupunki_Broken.class);
+ manager.getInstanceByType(Uusikaupunki_Broken.class).ping();
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation"})
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoTransientFieldOfWebBeanWithPassivatingScopeOK()
+ {
+ deployBeans(CityProducer.class, Salo_Broken.class);
+ manager.getInstanceByType(Salo_Broken.class).ping();
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoConstructorParameterOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(CityProducer.class, Loviisa_Broken.class);
+ manager.getInstanceByType(Loviisa_Broken.class).ping();
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoInitializerParameterOfWebBeanWithPassivatingScopeFails()
+ {
+ deployBeans(CityProducer.class, Mikkeli_Broken.class);
+ manager.getInstanceByType(Mikkeli_Broken.class).ping();
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ */
+ @Test(groups = { "contexts", "passivation", "broken" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "9.5")
+ public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoProducerMethodParameterWithPassivatingScopeFails()
+ {
+ // TODO Not quite sure what this test is doing
+ deployBeans(CityProducer.class, Jamsa_Broken.class);
+ manager.getInstanceByType(Jamsa_Broken.class).ping();
+ assert false;
+ }
+
+ /**
+ * The Web Bean manager must guarantee that JMS endpoint proxy objects are
+ * serializable.
+ */
+ @Test(groups = { "stub", "contexts", "passivation", "jms" })
+ @SpecAssertion(section = "9.5")
+ public void testJMSEndpointProxyIsSerializable()
+ {
+ assert false;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Peraseinajoki.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Peraseinajoki.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Peraseinajoki.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.webbeans.Current;
+import javax.webbeans.Produces;
+import javax.webbeans.SessionScoped;
+
+class Peraseinajoki extends City
+{
+
+ @Produces @SessionScoped
+ public Violation2 create(@Current Violation reference)
+ {
+ return new Violation2();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Pietarsaari_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Pietarsaari_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Pietarsaari_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@Stateful
+@SessionScoped
+class Pietarsaari_Broken extends City implements Serializable
+{
+ @Current
+ private Violation reference;
+
+ @Remove
+ public void bye() {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Porvoo_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Porvoo_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Porvoo_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.SessionScoped;
+
+@Stateful
+@SessionScoped
+class Porvoo_Broken implements CityInterface
+{
+ public void foo()
+ {
+ }
+
+ @Remove
+ public void bye()
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Raisio_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Raisio_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Raisio_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Raisio_Broken implements CityInterface, Serializable
+{
+ public void foo()
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Salo_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Salo_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Salo_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Salo_Broken extends City implements Serializable
+{
+ @Current
+ private transient Violation reference;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Turku.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Turku.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Turku.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.SessionScoped;
+
+@Stateful
+@SessionScoped
+class Turku
+{
+ @Remove
+ public void bye() {
+
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Uusikaupunki_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Uusikaupunki_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Uusikaupunki_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Uusikaupunki_Broken extends City implements Serializable
+{
+ @Current
+ private Violation reference;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Vaasa.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Vaasa.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Vaasa.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@SuppressWarnings("serial")
+@SessionScoped
+class Vaasa implements Serializable
+{
+ @SuppressWarnings("unused")
+ @Current private Helsinki ejb;
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Vantaa_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Vantaa_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Vantaa_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+class Vantaa_Broken implements Serializable
+{
+ @Current
+ private Violation reference;
+
+ public Violation getReference()
+ {
+ return reference;
+ }
+
+ public void setReference(Violation reference)
+ {
+ this.reference = reference;
+ }
+
+ public String test() {
+ return reference.toString();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Violation.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Violation.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Violation.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.webbeans.Dependent;
+
+@Dependent
+class Violation
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Violation2.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Violation2.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Violation2.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import javax.webbeans.Dependent;
+
+@Dependent
+class Violation2
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/request/RequestContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/request/RequestContextTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/request/RequestContextTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,124 @@
+package org.jboss.webbeans.tck.unit.context.request;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class RequestContextTest extends AbstractTest
+{
+
+ /**
+ * The request scope is active during the service() method of any Servlet in
+ * the web application.
+ */
+ @Test(groups = { "stub", "contexts", "servlet" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeActiveDuringServiceMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * The request context is destroyed at the end of the servlet request, after
+ * the Servlet service() method returns.
+ */
+ @Test(groups = { "stub", "contexts", "servlet" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeIsDestroyedAfterServiceMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * The request scope is active during any Java EE web service invocation.
+ */
+ @Test(groups = { "stub", "contexts", "webservice" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeActiveDuringWebSericeInvocation()
+ {
+ assert false;
+ }
+
+ /**
+ * The request context is destroyed after the web service invocation
+ * completes
+ */
+ @Test(groups = { "stub", "contexts", "webservice" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeIsDestroyedAfterWebServiceInvocation()
+ {
+ assert false;
+ }
+
+ /**
+ * The request scope is active during any remote method invocation of any EJB
+ * bean, during any call to an EJB timeout method and during message delivery
+ * to any EJB message driven bean.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeActiveDuringRemoteMethodInvocationOfEjb()
+ {
+ assert false;
+ }
+
+ /**
+ * The request scope is active during any remote method invocation of any EJB
+ * bean, during any call to an EJB timeout method and during message delivery
+ * to any EJB message driven bean.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeActiveDuringCallToEjbTimeoutMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * The request scope is active during any remote method invocation of any EJB
+ * bean, during any call to an EJB timeout method and during message delivery
+ * to any EJB message driven bean.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeActiveDuringEjbMessageDelivery()
+ {
+ assert false;
+ }
+
+ /**
+ * The request context is destroyed after the remote method invocation,
+ * timeout or message delivery completes.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeDestroyedAfterRemoteMethodInvocationOfEjb()
+ {
+ assert false;
+ }
+
+ /**
+ * The request context is destroyed after the remote method invocation,
+ * timeout or message delivery completes.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeDestroyedAfterCallToEjbTimeoutMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * The request context is destroyed after the remote method invocation,
+ * timeout or message delivery completes.
+ */
+ @Test(groups = { "stub", "contexts", "ejb3" })
+ @SpecAssertion(section = "9.6.1")
+ public void testRequestScopeDestroyedAfterEjbMessageDelivery()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/session/SessionContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/session/SessionContextTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/session/SessionContextTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,45 @@
+package org.jboss.webbeans.tck.unit.context.session;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("2001206")
+public class SessionContextTest extends AbstractTest
+{
+
+ /**
+ * The session scope is active during the service() method of any servlet in
+ * the web application
+ */
+ @Test(groups = { "stub", "contexts", "servlet" })
+ @SpecAssertion(section = "9.6.2")
+ public void testSessionScopeActiveDuringServiceMethod()
+ {
+ assert false;
+ }
+
+ /**
+ * The session context is shared between all servlet requests that occur in
+ * the same HTTP servlet session
+ */
+ @Test(groups = { "stub", "contexts", "servlet" })
+ @SpecAssertion(section = "9.6.2")
+ public void testSessionContextSharedBetweenServletRequestsInSameHttpSession()
+ {
+ assert false;
+ }
+
+ /**
+ * The session context is destroyed when the HTTPSession is invalidated or
+ * times out.
+ */
+ @Test(groups = { "stub", "contexts" })
+ @SpecAssertion(section = "9.6.2")
+ public void testSessionContextDestroyedWhenHttpSessionInvalidatedOrTimesOut()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/AnimalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+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;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@interface AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,95 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+import java.lang.reflect.Method;
+
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ * This test class should be used for common assertions about Web Beans
+ *
+ * @author Pete Muir
+ *
+ */
+@SpecVersion("20081206")
+public class BeanDefinitionTest extends AbstractTest
+{
+
+ // TODO This should actually somehow test the reverse - that the container
+ // throws a definition exception if any of these occur
+
+ @Test
+ @SpecAssertion(section = "2")
+ public void testApiTypesNonEmpty()
+ {
+ Bean<?> model = createSimpleBean(RedSnapper.class);
+ assert model.getTypes().size() > 0;
+ }
+
+ @Test
+ @SpecAssertion(section = "2")
+ public void testBindingTypesNonEmpty()
+ {
+ Bean<?> model = createSimpleBean(RedSnapper.class);
+ assert model.getBindings().size() > 0;
+ }
+
+ @Test
+ @SpecAssertion(section = "2")
+ public void testHasScopeType()
+ {
+ Bean<?> model = createSimpleBean(RedSnapper.class);
+ assert model.getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test
+ @SpecAssertion(section = "2")
+ public void testHasDeploymentType()
+ {
+ Bean<?> model = createSimpleBean(RedSnapper.class);
+ assert model.getDeploymentType().equals(Production.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups = "producerMethod")
+ @SpecAssertion(section = "5.2")
+ public void testIsNullable() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducerBean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(spiderProducerBean);
+ Method method = SpiderProducer.class.getMethod("getWolfSpiderSize");
+ Bean<Integer> bean = createProducerMethodBean(method, spiderProducerBean);
+ assert !bean.isNullable();
+ method = SpiderProducer.class.getMethod("makeASpider");
+ Bean<Spider> spiderBean = createProducerMethodBean(method, spiderProducerBean);
+ assert spiderBean.isNullable();
+ }
+
+ @Test
+ @SpecAssertion(section = { "3.2.2", "2.2" })
+ public void testApiTypes()
+ {
+ Bean<Tarantula> bean = createSimpleBean(Tarantula.class);
+ assert bean.getTypes().size() == 6;
+ assert bean.getTypes().contains(Tarantula.class);
+ assert bean.getTypes().contains(Spider.class);
+ assert bean.getTypes().contains(Animal.class);
+ assert bean.getTypes().contains(Object.class);
+ assert bean.getTypes().contains(DeadlySpider.class);
+ assert bean.getTypes().contains(DeadlyAnimal.class);
+ }
+
+ @Test
+ @SpecAssertion(section = "2.2")
+ public void testFinalApiType()
+ {
+ createSimpleBean(DependentFinalTuna.class);
+ }
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DeadlyAnimal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+interface DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DeadlySpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DependentFinalTuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DependentFinalTuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/DependentFinalTuna.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+@AnotherDeploymentType
+final class DependentFinalTuna
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/FishStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/FishStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/FishStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+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.ApplicationScoped;
+import javax.webbeans.Named;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@ApplicationScoped
+@Named
+@interface FishStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/RedSnapper.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/RedSnapper.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/RedSnapper.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+import javax.webbeans.RequestScoped;
+
+@FishStereotype
+@RequestScoped
+class RedSnapper implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Spider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+
+class Spider implements Animal
+{
+
+ public final void layEggs()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/SpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/SpiderProducer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+import javax.webbeans.Produces;
+
+@AnotherDeploymentType
+class SpiderProducer
+{
+
+ @Produces @AnimalStereotype public WolfSpider produceWolfSpider()
+ {
+ return new WolfSpider();
+ }
+
+ @Produces public Animal makeASpider()
+ {
+ return new WolfSpider();
+ }
+
+ @Produces public int getWolfSpiderSize()
+ {
+ return 4;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tarantula.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+class Tarantula extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/WolfSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/WolfSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/WolfSpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+class WolfSpider implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Barn.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Barn.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Barn.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+
+class Barn
+{
+ @Tame
+ public Tarantula petSpider;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BindingDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BindingDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BindingDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,198 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Set;
+
+import javax.webbeans.Current;
+import javax.webbeans.Production;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.impl.literals.CurrentBinding;
+import org.jboss.webbeans.tck.impl.util.Reflections;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class BindingDefinitionTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test @SpecAssertion(section={"2.3.3", "2.3.1"})
+ public void testDefaultBindingDeclaredInJava()
+ {
+ Bean<Order> order = createSimpleBean(Order.class);
+ assert order.getBindings().size() == 1;
+ order.getBindings().iterator().next().annotationType().equals(Production.class);
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.3.2")
+ public void testBindingHasCorrectTarget()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.3.2")
+ public void testBindingHasCorrectRetention()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.3.2")
+ public void testBindingDeclaresBindingAnnotation()
+ {
+ assert false;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test @SpecAssertion(section="2.3.3")
+ public void testBindingsDeclaredInJava()
+ {
+ Bean<Cat> cat = createSimpleBean(Cat.class);
+ assert cat.getBindings().size() == 1;
+ assert Reflections.annotationSetMatches(cat.getBindings(), Synchronous.class);
+ }
+
+ @Test @SpecAssertion(section="2.3.3")
+ public void testMultipleBindings()
+ {
+ Bean<?> model = createSimpleBean(Cod.class);
+ assert model.getBindings().size() == 2;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.3.4")
+ public void testBindingsDeclaredInXml()
+ {
+ //Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //annotations.put(Asynchronous.class, new AsynchronousAnnotationLiteral());
+ //AnnotatedClass annotatedItem = new SimpleAnnotatedClass(Antelope.class, annotations);
+
+ //SimpleBean<Antelope> antelope = createSimpleBean(Antelope.class, annotatedItem, manager);
+ // assert Reflections.annotationSetMatches(antelope.getBindingTypes(), Asynchronous.class);
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.3.4")
+ public void testXmlBindingOverridesAndIgnoresJava()
+ {
+ //Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //annotations.put(Asynchronous.class, new AsynchronousAnnotationLiteral());
+ //AnnotatedClass<Cat> annotatedItem = new SimpleAnnotatedClass<Cat>(Cat.class, annotations);
+
+ //SimpleBean<Cat> cat = createSimpleBean(Cat.class, annotatedItem, manager);
+ //assert cat.getBindingTypes().size() == 1;
+ //assert cat.getBindingTypes().contains(new AnnotationLiteral<Asynchronous>() {});
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.3.4")
+ public void testNoBindingsDeclaredInXml()
+ {
+ //Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //AnnotatedClass<Cat> annotatedItem = new SimpleAnnotatedClass<Cat>(Cat.class, annotations);
+
+ //SimpleBean<Cat> cat = createSimpleBean(Cat.class, annotatedItem, manager);
+ //assert cat.getBindingTypes().size() == 1;
+ //assert cat.getBindingTypes().contains(new AnnotationLiteral<Synchronous>() {});
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section={"2.3.4", "2.3.1"})
+ public void testDefaultBindingDeclaredInXml()
+ {
+ Bean<?> model = createSimpleBean(Tuna.class);
+ assert model.getBindings().size() == 1;
+ assert model.getBindings().contains(new CurrentBinding());
+ assert false;
+ }
+
+ @Test(groups={"injection", "producerMethod"}) @SpecAssertion(section="2.3.5")
+ public void testFieldInjectedFromProducerMethod() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer.class.getMethod("produceTameTarantula");
+ manager.addBean(createProducerMethodBean(method, spiderProducer));
+ Barn barn = createSimpleBean(Barn.class).create();
+ assert barn.petSpider != null;
+ assert barn.petSpider instanceof DefangedTarantula;
+ }
+
+ @Test(groups={"stub", "injection", "webbeansxml"}) @SpecAssertion(section="2.3.5")
+ public void testFieldWithBindingInXml()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "injection", "webbeansxml"}) @SpecAssertion(section="2.3.5")
+ public void testFieldWithBindingInXmlIgnoresAnnotations()
+ {
+ assert false;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups={"injection", "producerMethod"})
+ public void testMethodWithBindingAnnotationsOnParametersAreInjected() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Method method = SpiderProducer.class.getMethod("produceTameTarantula");
+ manager.addBean(createProducerMethodBean(method, spiderProducer));
+ method = SpiderProducer.class.getMethod("produceSpiderFromInjection", Tarantula.class);
+ Bean<Spider> spiderBean = createProducerMethodBean(method, spiderProducer);
+ Spider spider = spiderBean.create();
+ assert spider != null;
+ assert spider instanceof DefangedTarantula;
+ }
+
+ @Test(groups={"stub", "injection", "webbeansxml"}) @SpecAssertion(section="2.3.6")
+ public void testMethodWithBindingAnnotationsOnParametersDeclaredInXml()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "injection", "webbeansxml"}) @SpecAssertion(section="2.3.6")
+ public void testMethodWithBindingAnnotationsOnParametersDeclaredInXmlIgnoresAnnotations()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testBindingDeclaredInheritedIsInherited() throws Exception
+ {
+ Set<? extends Annotation> bindings = createSimpleBean(BorderCollie.class).getBindings();
+ assert bindings.size() == 1;
+ assert bindings.iterator().next().annotationType().equals(Hairy.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testBindingNotDeclaredInheritedIsNotInherited()
+ {
+ Set<? extends Annotation> bindings = createSimpleBean(ShetlandPony.class).getBindings();
+ assert bindings.size() == 1;
+ assert bindings.iterator().next().annotationType().equals(Current.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testBindingDeclaredInheritedIsBlockedByIntermediateClass()
+ {
+ Set<? extends Annotation> bindings = createSimpleBean(ClippedBorderCollie.class).getBindings();
+ assert bindings.size() == 1;
+ Annotation binding = bindings.iterator().next();
+ assert binding.annotationType().equals(Hairy.class);
+ Hairy hairy = (Hairy) binding;
+ assert hairy.clipped();
+ }
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BorderCollie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BorderCollie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BorderCollie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+class BorderCollie extends LongHairedDog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Cat.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Cat.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Cat.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+import javax.webbeans.Production;
+
+
+@Production
+@Synchronous
+class Cat
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Chunky.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Chunky.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Chunky.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.definition.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.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Chunky
+{
+
+ boolean realChunky();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ClippedBorderCollie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ClippedBorderCollie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ClippedBorderCollie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+@Hairy(clipped=true)
+class ClippedBorderCollie extends BorderCollie
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Cod.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Cod.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Cod.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Whitefish
+@Chunky(realChunky=true)
+@Named("whitefish")
+class Cod implements ScottishFish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DeadlyAnimal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+interface DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DeadlySpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DefangedTarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DefangedTarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/DefangedTarantula.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+class DefangedTarantula extends Tarantula
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Hairy.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Hairy.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Hairy.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,26 @@
+package org.jboss.webbeans.tck.unit.definition.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.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@Inherited
+@interface Hairy
+{
+
+ public boolean clipped();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Horse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Horse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Horse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+@Species
+class Horse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/LongHairedDog.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/LongHairedDog.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/LongHairedDog.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+@Hairy(clipped=false)
+class LongHairedDog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Order.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Order.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Order.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+import javax.webbeans.Production;
+
+@Production
+class Order
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ScottishFish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ScottishFish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ScottishFish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+
+interface ScottishFish extends Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ShetlandPony.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ShetlandPony.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ShetlandPony.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+class ShetlandPony extends Horse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Species.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Species.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Species.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.definition.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.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Species
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Spider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+
+class Spider implements Animal
+{
+
+ public final void layEggs()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/SpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/SpiderProducer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+import javax.webbeans.Produces;
+
+
+
+@AnotherDeploymentType
+class SpiderProducer
+{
+
+ @Produces @Tame public Tarantula produceTameTarantula()
+ {
+ return new DefangedTarantula();
+ }
+
+ @Produces public Spider produceSpiderFromInjection(@Tame Tarantula tarantula)
+ {
+ return tarantula;
+ }
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Synchronous.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Synchronous.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Synchronous.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Synchronous
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tame.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.definition.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.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tarantula.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+class Tarantula extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Tuna.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.definition.binding;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+class Tuna
+{
+
+ public String getName()
+ {
+ return "Ophir";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Whitefish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Whitefish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/Whitefish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.definition.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.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Whitefish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+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.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@Inherited
+@interface AnotherDeploymentType
+{
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+import javax.webbeans.Production;
+
+@Production
+@AnotherDeploymentType
+class BeanWithTooManyDeploymentTypes_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BlackWidow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BlackWidow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BlackWidow.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+class BlackWidow extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BorderCollie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BorderCollie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BorderCollie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+class BorderCollie extends Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeadlyAnimal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+interface DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeadlySpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DefaultDeploymentTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DefaultDeploymentTypeTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DefaultDeploymentTypeTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
+
+import javax.webbeans.Production;
+import javax.webbeans.Standard;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+
+public class DefaultDeploymentTypeTest extends AbstractTest
+{
+
+ @Test @SpecAssertion(section={"2.5.6", "2.5.7"})
+ public void testDefaultEnabledDeploymentTypes()
+ {
+ assert configuration().getManagers().getEnabledDeploymentTypes().size() == 2;
+ assert configuration().getManagers().getEnabledDeploymentTypes().get(0).equals(Standard.class);
+ assert configuration().getManagers().getEnabledDeploymentTypes().get(1).equals(Production.class);
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeploymentTypeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeploymentTypeDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeploymentTypeDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,187 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.DeploymentException;
+import javax.webbeans.Production;
+import javax.webbeans.Standard;
+import javax.webbeans.UnsatisfiedDependencyException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class DeploymentTypeDefinitionTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ deploymentTypes.add(HornedAnimalDeploymentType.class);
+ deploymentTypes.add(NotInheritedDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.5.1")
+ public void testNonBuiltInComponentUsesStandard()
+ {
+ createSimpleBean(Gazelle_Broken.class);
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.5.2")
+ public void testDeploymentTypeHasCorrectTarget()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.5.2")
+ public void testDeploymentTypeHasCorrectRetention()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.5.2")
+ public void testDeploymentTypeDeclaresScopeTypeAnnotation()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.5.3")
+ public void testTooManyDeploymentTypes()
+ {
+ createSimpleBean(BeanWithTooManyDeploymentTypes_Broken.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test @SpecAssertion(section="2.5.3")
+ public void testDeploymentTypeInhertitedFromDeclaringBean() throws Exception
+ {
+ Bean<SpiderProducer> bean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(bean);
+ Method method = SpiderProducer.class.getMethod("produceBlackWidow");
+ Bean<BlackWidow> blackWidowSpiderModel = createProducerMethodBean(method, bean);
+ assert blackWidowSpiderModel.getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.5.4")
+ public void testXmlDeploymentTypeOverridesJava()
+ {
+ //Map<Class<? extends Annotation>, Annotation> xmlDefinedDeploymentTypeAnnotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //xmlDefinedDeploymentTypeAnnotations.put(AnotherDeploymentType.class, new AnotherDeploymentTypeAnnotationLiteral());
+ //AnnotatedClass<BeanWithTooManyDeploymentTypes> xmlDefinedDeploymentTypeAnnotatedItem = new SimpleAnnotatedClass<BeanWithTooManyDeploymentTypes>(BeanWithTooManyDeploymentTypes.class, xmlDefinedDeploymentTypeAnnotations);
+
+ //SimpleBean<BeanWithTooManyDeploymentTypes> model = createSimpleBean(BeanWithTooManyDeploymentTypes.class, xmlDefinedDeploymentTypeAnnotatedItem, manager);
+ //assert model.getDeploymentType().equals(AnotherDeploymentType.class);
+ assert false;
+ }
+
+
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.5.4")
+ public void testXmlRespectsJavaDeploymentType()
+ {
+ //AnnotatedClass<Tuna> annotatedItem = new SimpleAnnotatedClass<Tuna>(Tuna.class, new HashMap<Class<? extends Annotation>, Annotation>());
+ //SimpleBean<Tuna> tuna = createSimpleBean(Tuna.class, annotatedItem, manager);
+ //assert tuna.getDeploymentType().equals(AnotherDeploymentType.class);
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.5.5")
+ public void testXmlDefaultDeploymentType()
+ {
+ //AnnotatedClass<Antelope> antelopeAnnotatedItem = new SimpleAnnotatedClass<Antelope>(Antelope.class, new HashMap<Class<? extends Annotation>, Annotation>());
+ //SimpleBean<Antelope> antelope = createSimpleBean(Antelope.class, antelopeAnnotatedItem, manager);
+ // assert antelope.getDeploymentType().equals(Production.class);
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="2.5.5")
+ public void testHighestPrecedenceDeploymentTypeFromStereotype()
+ {
+ Bean<?> bean = createSimpleBean(Rhinoceros.class);
+ assert bean.getDeploymentType().equals(HornedAnimalDeploymentType.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="beanLifecycle", expectedExceptions=UnsatisfiedDependencyException.class) @SpecAssertion(section="2.5.6")
+ public void testBeanWithDisabledDeploymentTypeNotInstantiated()
+ {
+ configuration().getManagers().setEnabledDeploymentTypes(
+ Arrays.asList(Standard.class, AnotherDeploymentType.class,
+ HornedAnimalDeploymentType.class));
+
+ Bean<RedSnapper> bean = createSimpleBean(RedSnapper.class);
+ manager.addBean(bean);
+ manager.getInstanceByType(RedSnapper.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test @SpecAssertion(section={"2.5.6", "2.5.7"})
+ public void testCustomDeploymentTypes()
+ {
+ configuration().getManagers().setEnabledDeploymentTypes(
+ Arrays.asList(Standard.class, AnotherDeploymentType.class,
+ HornedAnimalDeploymentType.class));
+ assert configuration().getManagers().getEnabledDeploymentTypes().size() == 3;
+ assert configuration().getManagers().getEnabledDeploymentTypes().get(0).equals(Standard.class);
+ assert configuration().getManagers().getEnabledDeploymentTypes().get(1).equals(AnotherDeploymentType.class);
+ assert configuration().getManagers().getEnabledDeploymentTypes().get(2).equals(HornedAnimalDeploymentType.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(expectedExceptions=DeploymentException.class) @SpecAssertion(section="2.5.6")
+ public void testStandardMustBeDeclared()
+ {
+ configuration().getManagers().setEnabledDeploymentTypes(
+ Arrays.asList(AnotherDeploymentType.class, HornedAnimalDeploymentType.class));
+ }
+
+ @Test(groups={"stub", "webbeansxml"}, expectedExceptions=DeploymentException.class) @SpecAssertion(section="2.5.6")
+ public void testMultipleDeployElementsCannotBeDefined()
+ {
+
+ }
+
+ @Test @SpecAssertion(section={"2.5.5", "2.7.2", "4.1"})
+ public void testWebBeanDeploymentTypeOverridesStereotype()
+ {
+ Bean<Reindeer> bean = createSimpleBean(Reindeer.class);
+ assert bean.getDeploymentType().equals(Production.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testDeploymentTypeDeclaredInheritedIsInherited() throws Exception
+ {
+ assert createSimpleBean(BorderCollie.class).getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testDeploymentTypeNotDeclaredInheritedIsNotInherited()
+ {
+ assert createSimpleBean(ShetlandPony.class).getDeploymentType().equals(Production.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testDeploymentTypeDeclaredInheritedIsBlockedByIntermediateDeploymentTypeNotMarkedInherited()
+ {
+ assert createSimpleBean(GoldenRetriever.class).getDeploymentType().equals(Production.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testDeploymentTypeDeclaredInheritedIsBlockedByIntermediateDeploymentTypeMarkedInherited()
+ {
+ assert createSimpleBean(GoldenLabrador.class).getDeploymentType().equals(InheritedDeploymentType.class);
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Dog.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Dog.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Dog.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+
+@AnotherDeploymentType
+class Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/FishStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/FishStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/FishStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+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.ApplicationScoped;
+import javax.webbeans.Named;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@ApplicationScoped
+@Named
+@interface FishStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Gazelle_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Gazelle_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Gazelle_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+import javax.webbeans.Standard;
+
+@Standard
+class Gazelle_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/GoldenLabrador.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/GoldenLabrador.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/GoldenLabrador.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+class GoldenLabrador extends Labrador
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/GoldenRetriever.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/GoldenRetriever.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/GoldenRetriever.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+class GoldenRetriever extends Retriever
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/HornedAnimalDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/HornedAnimalDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/HornedAnimalDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface HornedAnimalDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/HornedMammalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/HornedMammalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/HornedMammalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+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.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@HornedAnimalDeploymentType
+@interface HornedMammalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Horse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Horse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Horse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+
+@NotInheritedDeploymentType
+class Horse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/InheritedDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/InheritedDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/InheritedDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+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.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@Inherited
+@interface InheritedDeploymentType
+{
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Labrador.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Labrador.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Labrador.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+
+@InheritedDeploymentType
+class Labrador extends Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/MammalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/MammalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/MammalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+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.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@AnotherDeploymentType
+@interface MammalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/NotInheritedDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/NotInheritedDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/NotInheritedDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface NotInheritedDeploymentType
+{
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/RedSnapper.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/RedSnapper.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/RedSnapper.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+import javax.webbeans.RequestScoped;
+
+@FishStereotype
+@RequestScoped
+class RedSnapper implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Reindeer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Reindeer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Reindeer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+import javax.webbeans.Production;
+
+@HornedMammalStereotype
+@Production
+class Reindeer implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Retriever.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Retriever.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Retriever.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+@NotInheritedDeploymentType
+class Retriever extends Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Rhinoceros.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Rhinoceros.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Rhinoceros.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+@HornedMammalStereotype
+@MammalStereotype
+class Rhinoceros implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/ShetlandPony.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/ShetlandPony.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/ShetlandPony.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+class ShetlandPony extends Horse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/Spider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+
+class Spider implements Animal
+{
+
+ public final void layEggs()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/SpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/SpiderProducer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.definition.deployment;
+
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+
+@AnotherDeploymentType
+class SpiderProducer
+{
+
+ @Produces @Named("blackWidow") public BlackWidow produceBlackWidow()
+ {
+ return new BlackWidow();
+ }
+
+
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/FishStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/FishStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/FishStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+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.ApplicationScoped;
+import javax.webbeans.Named;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@ApplicationScoped
+@Named
+@interface FishStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Haddock.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Haddock.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Haddock.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Named
+class Haddock implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/MammalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/MammalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/MammalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+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.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@AnotherDeploymentType
+@interface MammalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Minnow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Minnow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Minnow.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+import javax.webbeans.RequestScoped;
+
+@RiverFishStereotype
+@RequestScoped
+class Minnow implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Moose.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Moose.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/Moose.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+import javax.webbeans.Named;
+
+@MammalStereotype
+@Named("aMoose")
+class Moose implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/NameDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/NameDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/NameDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,144 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class NameDefinitionTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test(groups="stub", expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.6")
+ public void testInvalidElIdentifierUsedAsWebBeanName()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="2.6.1")
+ public void testNonDefaultNamed()
+ {
+ Bean<Moose> moose = createSimpleBean(Moose.class);
+ assert moose.getName().equals("aMoose");
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.6.2")
+ public void testNonDefaultXmlNamed()
+ {
+ /*Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ annotations.put(Named.class, new NamedAnnotationLiteral(){
+
+ public String value()
+ {
+ return "aTrout";
+ }
+
+ });
+ AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);*/
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
+
+ //assert trout.getName().equals("aTrout");
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.6.2")
+ public void testXmlNamedOverridesJavaNamed()
+ {
+ /*Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ annotations.put(Named.class, new NamedAnnotationLiteral(){
+
+ public String value()
+ {
+ return "aTrout";
+ }
+
+ });
+ AnnotatedClass<Cod> annotatedItem = new SimpleAnnotatedClass<Cod>(Cod.class, annotations);*/
+ //SimpleBean<Cod> cod = createSimpleBean(Cod.class, annotatedItem, manager);
+
+ //assert cod.getName().equals("aTrout");
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section={"2.6.2", "2.6.3"})
+ public void testJavaNamedUsedWhenNoXmlSpecified()
+ {
+ //Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //AnnotatedClass<Cod> annotatedItem = new SimpleAnnotatedClass<Cod>(Cod.class, annotations);
+ //SimpleBean<Cod> cod = createSimpleBean(Cod.class, annotatedItem, manager);
+
+ //assert cod.getName().equals("whitefish");
+ assert false;
+ }
+
+ @Test @SpecAssertion(section={"2.6.3", "3.2.7"})
+ public void testDefaultNamed()
+ {
+ Bean<Haddock> haddock = createSimpleBean(Haddock.class);
+ assert haddock.getName() != null;
+ assert haddock.getName().equals("haddock");
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.6.3")
+ public void testDefaultXmlNamed()
+ {
+ /*Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ annotations.put(Named.class, new NamedAnnotationLiteral() {
+
+ public String value()
+ {
+ return "";
+ }
+
+ });
+ AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);*/
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
+
+ //assert trout.getName() != null;
+ //assert trout.getName().equals("seaBass");
+ assert false;
+ }
+
+ @Test @SpecAssertion(section={"2.6.3", "2.7"})
+ public void testSterotypeDefaultsName()
+ {
+ Bean<RedSnapper> model = createSimpleBean(RedSnapper.class);
+ assert model.getName().equals("redSnapper");
+ }
+
+ @Test @SpecAssertion(section="2.6.4")
+ public void testNotNamedInJava()
+ {
+ Bean<SeaBass> model = createSimpleBean(SeaBass.class);
+ assert model.getName() == null;
+ }
+
+ @Test @SpecAssertion(section="2.6.4")
+ public void testNotNamedInXml()
+ {
+ Bean<SeaBass> model = createSimpleBean(SeaBass.class);
+ assert model.getName() == null;
+ }
+
+ @Test @SpecAssertion(section="2.6.4")
+ public void testNotNamedInStereotype()
+ {
+ Bean<Minnow> model = createSimpleBean(Minnow.class);
+ assert model.getName() == null;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/RedSnapper.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/RedSnapper.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/RedSnapper.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+import javax.webbeans.RequestScoped;
+
+@FishStereotype
+@RequestScoped
+class RedSnapper implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/RiverFishStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/RiverFishStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/RiverFishStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+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.ApplicationScoped;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@ApplicationScoped
+@interface RiverFishStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/SeaBass.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/SeaBass.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/name/SeaBass.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.definition.name;
+
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@Production
+@RequestScoped
+class SeaBass implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnimalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+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;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@interface AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnotherScope.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnotherScope.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnotherScope.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.ScopeType;
+
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+@ScopeType
+@interface AnotherScope
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnotherScopeType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnotherScopeType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/AnotherScopeType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.ScopeType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@ScopeType
+@interface AnotherScopeType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/BeanWithTooManyScopeTypes.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/BeanWithTooManyScopeTypes.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/BeanWithTooManyScopeTypes.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.ConversationScoped;
+import javax.webbeans.RequestScoped;
+
+@RequestScoped
+@ConversationScoped
+class BeanWithTooManyScopeTypes
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/BorderCollie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/BorderCollie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/BorderCollie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+class BorderCollie extends Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Dog.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Dog.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Dog.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.RequestScoped;
+
+@RequestScoped
+class Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/FishStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/FishStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/FishStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+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.ApplicationScoped;
+import javax.webbeans.Named;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@ApplicationScoped
+@Named
+@interface FishStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/GoldenLabrador.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/GoldenLabrador.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/GoldenLabrador.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+class GoldenLabrador extends Labrador
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/GoldenRetriever.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/GoldenRetriever.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/GoldenRetriever.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+class GoldenRetriever extends Retriever
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Grayling.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Grayling.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Grayling.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+@RiverFishStereotype
+@FishStereotype
+class Grayling implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Horse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Horse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Horse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+
+@AnotherScope
+class Horse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Labrador.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Labrador.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Labrador.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+
+@NotInheritedScope
+class Labrador extends Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Minnow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Minnow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Minnow.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.RequestScoped;
+
+@RiverFishStereotype
+@RequestScoped
+class Minnow implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Mullet.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Mullet.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Mullet.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+@AnotherScopeType
+class Mullet
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/NotInheritedScope.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/NotInheritedScope.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/NotInheritedScope.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.ScopeType;
+
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+@ScopeType
+@interface NotInheritedScope
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Order.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Order.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Order.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.Production;
+
+@Production
+class Order
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Pollock.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Pollock.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Pollock.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.Dependent;
+
+@AnimalStereotype
+@FishStereotype
+@Dependent
+class Pollock implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/RedSnapper.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/RedSnapper.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/RedSnapper.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.RequestScoped;
+
+@FishStereotype
+@RequestScoped
+class RedSnapper implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Retriever.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Retriever.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Retriever.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.ApplicationScoped;
+
+@ApplicationScoped
+class Retriever extends Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/RiverFishStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/RiverFishStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/RiverFishStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+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.ApplicationScoped;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@ApplicationScoped
+@interface RiverFishStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Scallop_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Scallop_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/Scallop_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+@AnimalStereotype
+@FishStereotype
+class Scallop_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/ScopeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/ScopeDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/ScopeDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,165 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.ApplicationScoped;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ScopeDefinitionTest extends AbstractTest
+{
+
+ @Test @SpecAssertion(section="2.4")
+ public void testScopeTypesAreExtensible()
+ {
+ Bean<Mullet> mullet = createSimpleBean(Mullet.class);
+ assert mullet.getScopeType().equals(AnotherScopeType.class);
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.4.2")
+ public void testScopeTypeHasCorrectTarget()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.4.2")
+ public void testScopeTypeHasCorrectRetention()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "annotationDefinition"}) @SpecAssertion(section="2.4.2")
+ public void testScopeTypeDeclaresScopeTypeAnnotation()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="2.4.3")
+ public void testScopeDeclaredInJava()
+ {
+ Bean<SeaBass> trout = createSimpleBean(SeaBass.class);
+ assert trout.getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.4.3")
+ public void testTooManyScopesSpecifiedInJava()
+ {
+ createSimpleBean(BeanWithTooManyScopeTypes.class);
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "webbeansxml"})
+ public void testTooManyScopesSpecifiedInXml()
+ {
+ //Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //annotations.put(RequestScoped.class, new RequestScopedAnnotationLiteral());
+ //annotations.put(ConversationScoped.class, new ConversationScopedAnnotationLiteral());
+ //AnnotatedClass<Antelope> antelopeAnnotatedItem = new SimpleAnnotatedClass<Antelope>(Antelope.class, annotations);
+ //createSimpleBean(null, antelopeAnnotatedItem, manager);
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.4.4")
+ public void testScopeDeclaredInXml()
+ {
+ //Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //annotations.put(RequestScoped.class, new RequestScopedAnnotationLiteral());
+ //AnnotatedClass<Order> annotatedItem = new SimpleAnnotatedClass<Order>(Order.class, annotations);
+
+ //SimpleBean<Order> order = createSimpleBean(Order.class, annotatedItem, manager);
+ //assert order.getScopeType().equals(RequestScoped.class);
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.4.4")
+ public void testScopeMissingInXml()
+ {
+ //Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
+
+ //SimpleBean<SeaBass> trout =createSimpleBean(SeaBass.class, annotatedItem, manager);
+ //assert trout.getScopeType().equals(RequestScoped.class);
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="2.4.4")
+ public void testScopeDeclaredInXmlOverridesJava()
+ {
+ //Map<Class<? extends Annotation>, Annotation> annotations = new HashMap<Class<? extends Annotation>, Annotation>();
+ //annotations.put(ConversationScoped.class, new ConversationScopedAnnotationLiteral());
+ //AnnotatedClass<SeaBass> annotatedItem = new SimpleAnnotatedClass<SeaBass>(SeaBass.class, annotations);
+ //SimpleBean<SeaBass> trout = createSimpleBean(SeaBass.class, annotatedItem, manager);
+ //assert trout.getScopeType().equals(ConversationScoped.class);
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="2.4.5")
+ public void testDefaultScope()
+ {
+ Bean<Order> order = createSimpleBean(Order.class);
+ assert order.getScopeType().equals(Dependent.class);
+ }
+
+ @Test @SpecAssertion(section={"2.4.5", "2.7.2"})
+ public void testScopeSpecifiedAndStereotyped()
+ {
+ Bean<Minnow> minnow = createSimpleBean(Minnow.class);
+ assert minnow.getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="2.4.5")
+ public void testMutipleIncompatibleScopeStereotypes()
+ {
+ createSimpleBean(Scallop_Broken.class);
+ }
+
+ @Test @SpecAssertion(section="2.4.5")
+ public void testMutipleIncompatibleScopeStereotypesWithScopeSpecified()
+ {
+ Bean<Pollock> pollock = createSimpleBean(Pollock.class);
+ assert pollock.getScopeType().equals(Dependent.class);
+ }
+
+ @Test @SpecAssertion(section="2.4.5")
+ public void testMutipleCompatibleScopeStereotypes()
+ {
+ Bean<Grayling> grayling = createSimpleBean(Grayling.class);
+ assert grayling.getScopeType().equals(ApplicationScoped.class);
+ }
+
+ @Test @SpecAssertion(section={"2.7.2", "4.1"})
+ public void testWebBeanScopeTypeOverridesStereotype()
+ {
+ Bean<RedSnapper> bean = createSimpleBean(RedSnapper.class);
+ assert bean.getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testScopeTypeDeclaredInheritedIsInherited() throws Exception
+ {
+ assert createSimpleBean(BorderCollie.class).getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testScopeTypeNotDeclaredInheritedIsNotInherited()
+ {
+ assert createSimpleBean(ShetlandPony.class).getScopeType().equals(Dependent.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testScopeTypeDeclaredInheritedIsBlockedByIntermediateScopeTypeMarkedInherited()
+ {
+ assert createSimpleBean(GoldenRetriever.class).getScopeType().equals(ApplicationScoped.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testScopeTypeDeclaredInheritedIsBlockedByIntermediateScopeTypeNotMarkedInherited()
+ {
+ assert createSimpleBean(GoldenLabrador.class).getScopeType().equals(Dependent.class);
+ }
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/SeaBass.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/SeaBass.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/SeaBass.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@Production
+@RequestScoped
+class SeaBass implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/ShetlandPony.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/ShetlandPony.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/scope/ShetlandPony.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.scope;
+
+class ShetlandPony extends Horse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnimalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.RequestScoped;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@Inherited
+@interface AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnotherStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnotherStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/AnotherStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Stereotype;
+
+@Stereotype
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@AnotherDeploymentType
+@interface AnotherStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Antelope_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Antelope_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Antelope_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@HornedMammalStereotype
+@Bovine
+class Antelope_Broken implements Mammal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/ApplicationScopedHornedMammalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/ApplicationScopedHornedMammalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/ApplicationScopedHornedMammalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.ApplicationScoped;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(supportedScopes=ApplicationScoped.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@HornedAnimalDeploymentType
+@interface ApplicationScopedHornedMammalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Asynchronous.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Asynchronous.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Asynchronous.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Asynchronous
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/BorderCollie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/BorderCollie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/BorderCollie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+class BorderCollie extends LongHairedDog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Bovine.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Bovine.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Bovine.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Stereotype;
+
+(a)Stereotype(requiredTypes=Mammal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@interface Bovine
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Carp_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Carp_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Carp_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@RequestScopedAnimalStereotype
+class Carp_Broken implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Chair_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Chair_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Chair_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@AnimalStereotype
+class Chair_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Elk_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Elk_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Elk_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@StereotypeWithTooManyScopeTypes_Broken
+class Elk_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/FallowDeer_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/FallowDeer_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/FallowDeer_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@StereotypeWithNonEmptyNamed_Broken
+class FallowDeer_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Gazelle_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Gazelle_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Gazelle_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@StereotypeWithTooManyDeploymentTypes_Broken
+class Gazelle_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Goat_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Goat_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Goat_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@HornedMammalStereotype
+@AnotherStereotype
+class Goat_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Goldfish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Goldfish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Goldfish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@RequestScopedAnimalStereotype
+@RequestScoped
+@Production
+class Goldfish implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HighlandCow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HighlandCow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HighlandCow.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+import javax.webbeans.RequestScoped;
+
+@HornedMammalStereotype
+@RequestScopedAnimalStereotype
+@RequestScoped
+@Tame
+class HighlandCow implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HornedAnimalDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HornedAnimalDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HornedAnimalDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface HornedAnimalDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HornedMammalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HornedMammalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/HornedMammalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@HornedAnimalDeploymentType
+@interface HornedMammalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Horse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Horse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Horse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@AnotherStereotype
+class Horse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/LongHairedDog.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/LongHairedDog.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/LongHairedDog.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@AnimalStereotype
+class LongHairedDog implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Mammal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Mammal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Mammal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+interface Mammal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Moose.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Moose.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Moose.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@AnimalStereotype
+class Moose implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Reindeer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Reindeer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Reindeer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@HornedMammalStereotype
+class Reindeer implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/RequestScopedAnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/RequestScopedAnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/RequestScopedAnimalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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;
+
+(a)Stereotype(requiredTypes=Animal.class, supportedScopes=RequestScoped.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@interface RequestScopedAnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/RoeDeer_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/RoeDeer_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/RoeDeer_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+@StereotypeWithBindingTypes_Broken
+class RoeDeer_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/ShetlandPony.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/ShetlandPony.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/ShetlandPony.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+class ShetlandPony extends Horse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Springbok.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Springbok.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Springbok.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+import javax.webbeans.ApplicationScoped;
+
+@ApplicationScopedHornedMammalStereotype
+@RequestScopedAnimalStereotype
+@ApplicationScoped
+class Springbok implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,237 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import javax.webbeans.ApplicationScoped;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class StereotypeDefinitionTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ deploymentTypes.add(HornedAnimalDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test(groups = { "stub", "annotationDefinition" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "2.7.1")
+ public void testHasCorrectTarget()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "annotationDefinition" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "2.7.1")
+ public void testHasCorrectRetention()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "annotationDefinition" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "2.7.1")
+ public void testHasStereotypeAnnotation()
+ {
+ assert false;
+ }
+
+ @Test
+ @SpecAssertion(section = "2.7.1.1")
+ public void testStereotypeWithScopeType()
+ {
+ Bean<Moose> moose = createSimpleBean(Moose.class);
+ assert moose.getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test
+ @SpecAssertion(section = "2.7.1.1")
+ public void testStereotypeWithoutScopeType()
+ {
+ Bean<Reindeer> reindeer = createSimpleBean(Reindeer.class);
+ assert reindeer.getScopeType().equals(Dependent.class);
+ }
+
+ @Test(groups = "stub")
+ @SpecAssertion(section = "2.7.1.2")
+ public void testStereotypeWithoutInterceptors()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "interceptors" })
+ @SpecAssertion(section = "2.7.1.2")
+ public void testStereotypeWithInterceptors()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "2.7.1.1")
+ public void testStereotypeWithTooManyScopeTypes()
+ {
+ deployBeans(Elk_Broken.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "2.7.1.1")
+ public void testStereotypeWithTooManyDeploymentTypes()
+ {
+ deployBeans(Gazelle_Broken.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "2.7.1.3")
+ public void testStereotypeWithNonEmptyNamed()
+ {
+ deployBeans(FallowDeer_Broken.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "2.7.1")
+ public void testStereotypeWithBindingTypes()
+ {
+ deployBeans(RoeDeer_Broken.class);
+ }
+
+ @Test
+ @SpecAssertion(section = { "2.7.2", "2.7.4" })
+ public void testMultipleStereotypes()
+ {
+ Bean<HighlandCow> highlandCow = createSimpleBean(HighlandCow.class);
+ assert highlandCow.getName() == null;
+ assert highlandCow.getBindings().iterator().next().annotationType().equals(Tame.class);
+ assert highlandCow.getScopeType().equals(RequestScoped.class);
+ assert highlandCow.getDeploymentType().equals(HornedAnimalDeploymentType.class);
+ }
+
+ @Test
+ @SpecAssertion(section = { "2.7.2", "2.7.4" })
+ public void testMultipleStereotypesMergesScopes()
+ {
+ Bean<Springbok> springbok = createSimpleBean(Springbok.class);
+ assert springbok.getScopeType().equals(ApplicationScoped.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = { "2.7.2", "2.7.4" })
+ public void testMultipleStereotypesMergesRequiredTypes()
+ {
+ deployBeans(Antelope_Broken.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = { "2.7.2", "2.7.4" })
+ public void testMultipleStereotypesWithMultipleDeploymentTypes()
+ {
+ deployBeans(Goat_Broken.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class, groups = "stub")
+ @SpecAssertion(section = { "2.7.2", "2.7.4" })
+ public void testMultipleStereotypesWithMultipleScopeTypes()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "webbeansxml" })
+ @SpecAssertion(section = "2.7.3")
+ public void testStereotypeDeclaredInXmlIgnoresJavaStereotypes()
+ {
+ // Map<Class<? extends Annotation>, Annotation> cooXmlAnnotations = new
+ // HashMap<Class<? extends Annotation>, Annotation>();
+ // cooXmlAnnotations.put(HornedMammalStereotype.class, new
+ // HornedMamalStereotypeAnnotationLiteral());
+ // AnnotatedClass<HighlandCow> cooXmlAnnotatedItem = new
+ // SimpleAnnotatedClass<HighlandCow>(HighlandCow.class,
+ // cooXmlAnnotations);
+
+ /*
+ * SimpleBean<HighlandCow> coo = createSimpleBean(HighlandCow.class,
+ * cooXmlAnnotatedItem); assert
+ * coo.getDeploymentType().equals(HornedAnimalDeploymentType.class);
+ * assert coo.getScopeType().equals(RequestScoped.class); assert
+ * coo.getMergedStereotypes().getRequiredTypes().size() == 1; assert
+ * coo.getMergedStereotypes().getRequiredTypes().contains(Animal.class);
+ * assert coo.getMergedStereotypes().getSupportedScopes().size() == 0;
+ */
+ assert false;
+ }
+
+ @Test(groups = { "stub", "webbeansxml" })
+ @SpecAssertion(section = "2.7.3")
+ public void testStereotypeDeclaredInXmlIgnoresJavaBindingTypes()
+ {
+ // Map<Class<? extends Annotation>, Annotation> cooXmlAnnotations = new
+ // HashMap<Class<? extends Annotation>, Annotation>();
+ // cooXmlAnnotations.put(HornedMammalStereotype.class, new
+ // HornedMamalStereotypeAnnotationLiteral());
+ // cooXmlAnnotations.put(Synchronous.class, new
+ // SynchronousAnnotationLiteral());
+ // AnnotatedClass<HighlandCow> cooXmlAnnotatedItem = new
+ // SimpleAnnotatedClass<HighlandCow>(HighlandCow.class,
+ // cooXmlAnnotations);
+
+ /*
+ * SimpleBean<HighlandCow> coo = createSimpleBean(HighlandCow.class,
+ * cooXmlAnnotatedItem); assert coo.getBindingTypes().size() == 1; assert
+ * coo.getBindingTypes().contains(new SynchronousAnnotationLiteral());
+ */
+ assert false;
+
+ }
+
+ @Test
+ @SpecAssertion(section = { "2.7.1.4", "2.7.4" })
+ public void testRequiredTypeIsImplemented()
+ {
+ assert createSimpleBean(HighlandCow.class).getTypes().contains(Animal.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = { "2.7.1.4", "2.7.4" })
+ public void testRequiredTypeIsNotImplemented()
+ {
+ deployBeans(Chair_Broken.class);
+ }
+
+ @Test
+ @SpecAssertion(section = { "2.7.1.4", "2.7.4" })
+ public void testScopeIsSupported()
+ {
+ assert createSimpleBean(Goldfish.class).getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = { "2.7.1.4", "2.7.4" })
+ public void testScopeIsNotSupported()
+ {
+ createSimpleBean(Carp_Broken.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testStereotypeDeclaredInheritedIsInherited() throws Exception
+ {
+ assert createSimpleBean(BorderCollie.class).getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test @SpecAssertion(section="4.1")
+ public void testStereotypeNotDeclaredInheritedIsNotInherited()
+ {
+ assert createSimpleBean(ShetlandPony.class).getDeploymentType().equals(Production.class);
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithBindingTypes_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithBindingTypes_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithBindingTypes_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Stereotype;
+
+@Stereotype
+@Target( { TYPE })
+@Retention(RUNTIME)
+@Asynchronous
+@interface StereotypeWithBindingTypes_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithNonEmptyNamed_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithNonEmptyNamed_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithNonEmptyNamed_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Named;
+import javax.webbeans.Stereotype;
+
+@Stereotype
+@Target( { TYPE })
+@Retention(RUNTIME)
+@Named("foo")
+@interface StereotypeWithNonEmptyNamed_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithTooManyDeploymentTypes_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithTooManyDeploymentTypes_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithTooManyDeploymentTypes_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.Production;
+import javax.webbeans.Stereotype;
+
+@Stereotype
+@Target( { TYPE })
+@Retention(RUNTIME)
+@Production
+@AnotherDeploymentType
+@interface StereotypeWithTooManyDeploymentTypes_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithTooManyScopeTypes_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithTooManyScopeTypes_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/StereotypeWithTooManyScopeTypes_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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.ApplicationScoped;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.Stereotype;
+
+@Stereotype
+@Target( { TYPE })
+@Retention(RUNTIME)
+@ApplicationScoped
+@RequestScoped
+@interface StereotypeWithTooManyScopeTypes_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/stereotype/Tame.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.definition.stereotype;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.definition.type;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/ApiTypeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/ApiTypeDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/ApiTypeDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.definition.type;
+
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class ApiTypeDefinitionTest extends AbstractTest
+{
+
+ @Test @SpecAssertion(section="2.6.3")
+ public void testDefaultNamed()
+ {
+ Bean<Haddock> haddock = createSimpleBean(Haddock.class);
+ assert haddock.getName() != null;
+ assert haddock.getName().equals("haddock");
+ }
+
+}
+
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/Haddock.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/Haddock.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/type/Haddock.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.definition.type;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Named
+class Haddock implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AnimalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.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;
+
+@Stereotype()
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@interface AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AnimalStereotypeAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AnimalStereotypeAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AnimalStereotypeAnnotationLiteral.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.AnnotationLiteral;
+
+class AnimalStereotypeAnnotationLiteral extends AnnotationLiteral<AnimalStereotype> implements AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AuroraFinch.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AuroraFinch.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AuroraFinch.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,26 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Initializer;
+
+import org.jboss.webbeans.tck.unit.event.StarFinch.Mess;
+
+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;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AustralianTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AustralianTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/AustralianTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Initializer;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+@Stateless
+class AustralianTerrier
+{
+ @Initializer
+ public void observeInitialized(@Observes @Initialized Manager manager)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BananaSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BananaSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BananaSpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import java.util.Set;
+
+import javax.webbeans.Current;
+import javax.webbeans.Observer;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Manager;
+
+/**
+ * Simple bean with observer method and another injectable parameter.
+ *
+ */
+class BananaSpider
+{
+ public void observeStringEvent(@Observes String someEvent, @Current Manager manager)
+ {
+ assert someEvent != null;
+ assert manager != null;
+ Set<Observer<String>> allStringObservers = manager.resolveObservers(someEvent);
+ assert allStringObservers != null;
+ assert allStringObservers.size() > 0;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BirdCage.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BirdCage.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BirdCage.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Current;
+import javax.webbeans.Named;
+import javax.webbeans.RequestScoped;
+
+import org.jboss.webbeans.tck.unit.event.StarFinch.Mess;
+
+@RequestScoped
+@Named("BirdCage")
+class BirdCage
+{
+ @Current
+ private Mess someMess;
+
+ public BirdCage()
+ {
+ }
+
+ public Mess getSomeMess()
+ {
+ return someMess;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BlackRumpedWaxbill_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BlackRumpedWaxbill_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BlackRumpedWaxbill_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+
+class BlackRumpedWaxbill_Broken
+{
+ @SuppressWarnings("unchecked")
+ @Fires
+ private Event simpleEvent;
+
+ public void eliminateWarning()
+ {
+ assert simpleEvent != null;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BlueFacedParrotFinch.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BlueFacedParrotFinch.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BlueFacedParrotFinch.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,31 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Observer;
+
+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)
+ {
+ }
+ });
+ }
+
+ public Event<String> getSimpleEvent()
+ {
+ return simpleEvent;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BorderTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BorderTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BorderTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+import javax.webbeans.Produces;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+@Stateless
+class BorderTerrier
+{
+ @Produces
+ public void observeInitialized(@Observes @Initialized Manager manager)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BostonTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BostonTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BostonTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import java.util.List;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+
+@Stateless
+class BostonTerrier
+{
+ public void observesBadEvent(@Observes List<String> someArray)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Boxer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Boxer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Boxer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.ConversationScoped;
+
+@Stateless
+@ConversationScoped
+class Boxer
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BullTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BullTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/BullTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+
+@Stateless
+class BullTerrier
+{
+ public void observesBadEvent(@Observes @Role("Admin") @Tame String someEvent)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/CairnsTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/CairnsTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/CairnsTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Destructor;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+@Stateless
+class CairnsTerrier
+{
+ @Destructor
+ public void observeInitialized(@Observes @Initialized Manager manager)
+ {
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/CommonWaxbill_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/CommonWaxbill_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/CommonWaxbill_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import java.util.ArrayList;
+
+import javax.webbeans.Fires;
+
+class CommonWaxbill_Broken
+{
+ @Fires
+ private ArrayList<String> simpleEvent;
+
+ public void eliminateWarning()
+ {
+ assert simpleEvent != null;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Egg.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Egg.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Egg.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.event;
+
+class Egg
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/EventTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,980 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Set;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
+import javax.webbeans.DuplicateBindingTypeException;
+import javax.webbeans.Event;
+import javax.webbeans.Observer;
+import javax.webbeans.ObserverException;
+import javax.webbeans.Standard;
+import javax.webbeans.TypeLiteral;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ * Event bus tests
+ *
+ * @author Nicklas Karlsson
+ * @author David Allen
+ *
+ */
+@SpecVersion("20081206")
+public class EventTest 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 AListObserver implements Observer<ArrayList<String>>
+ {
+ public boolean wasNotified = false;
+
+ public void notify(ArrayList<String> 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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "events" })
+ @SpecAssertion(section = "8.5")
+ public void testObserverMethodOnEnterpriseBeanIsBusinessMethodOrStatic()
+ {
+ deployBeans(Pomeranian.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans.size() >= 2;
+ Set<Observer<String>> observers = manager.resolveObservers("An event");
+ assert observers.size() == 2;
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "8.5")
+ public void testObserverMethodOnEnterpriseBeanNotBusinessMethodOrStaticFails()
+ {
+ deployBeans(TibetanTerrier.class);
+ Set<Bean<Object>> beans = manager.resolveByType(Object.class);
+ assert beans.size() >= 2;
+ Set<Observer<String>> observers = manager.resolveObservers("An event");
+ assert observers.size() == 1;
+ }
+
+ @Test(groups = { "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 = { "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 = { "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 = { "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;
+
+ // 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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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.isNotified();
+
+ // 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.isNotified();
+ }
+ 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 = { "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() == 2;
+
+ 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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "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 = { "events" })
+ @SpecAssertion(section = "8.6")
+ public void testFiresAnnotationOnEventTypes()
+ {
+ 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();
+ }
+ 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();
+ }
+ 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();
+ }
+ 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 = { "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.6")
+ public void testFiresAnnotationOnNonEventTypeInjectionPointFails()
+ {
+ deployBeans(CommonWaxbill_Broken.class);
+ try
+ {
+ activateDependentContext();
+ CommonWaxbill_Broken bean = manager.getInstanceByType(CommonWaxbill_Broken.class);
+ assert bean != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.6")
+ public void testFiresAnnotationOnInjectionPointWithoutTypeParameterFails()
+ {
+ deployBeans(BlackRumpedWaxbill_Broken.class);
+ try
+ {
+ activateDependentContext();
+ BlackRumpedWaxbill_Broken bean = manager.getInstanceByType(BlackRumpedWaxbill_Broken.class);
+ assert bean != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.6")
+ public void testFiresAnnotationOnInjectionPointWithWildcardedTypeParameterFails()
+ {
+ deployBeans(GoldbreastWaxbill_Broken.class);
+ try
+ {
+ activateDependentContext();
+ GoldbreastWaxbill_Broken bean = manager.getInstanceByType(GoldbreastWaxbill_Broken.class);
+ assert bean != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "events" }, expectedExceptions = { DefinitionException.class })
+ @SpecAssertion(section = "8.6")
+ public void testFiresAnnotationOnInjectionPointWithTypeVariabledTypeParameterFails()
+ {
+ deployBeans(JavaSparrow_Broken.class);
+ try
+ {
+ activateDependentContext();
+ JavaSparrow_Broken bean = manager.getInstanceByType(JavaSparrow_Broken.class);
+ assert bean != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "8.6")
+ public void testImplicitEventBeanMatchesAPITypeOfInectionPoint()
+ {
+ deployBeans(BlueFacedParrotFinch.class);
+ try
+ {
+ activateDependentContext();
+ BlueFacedParrotFinch bean = manager.getInstanceByType(BlueFacedParrotFinch.class);
+ assert bean != null;
+ // Retrieve the implicit event bean from the manager only by its API
+ // type
+ Set<?> eventBeans = manager.resolveByType(Event.class, new FiresBinding());
+ assert !eventBeans.isEmpty();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "8.6")
+ public void testImplicitEventBeanMatchesBindingAnnotationsOfInjectionPoint()
+ {
+ deployBeans(OrangeCheekedWaxbill.class);
+ try
+ {
+ activateDependentContext();
+ OrangeCheekedWaxbill bean = manager.getInstanceByType(OrangeCheekedWaxbill.class);
+ assert bean != null;
+ // Retrieve the implicit event bean from the manager by its binding
+ // types
+ Set<?> eventBeans = manager.resolveByType(Event.class, new FiresBinding(), new TameAnnotationLiteral());
+ assert !eventBeans.isEmpty();
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "8.6")
+ public void testImplicitEventBeanHasStandardDeploymentType()
+ {
+ deployBeans(BlueFacedParrotFinch.class);
+ try
+ {
+ activateDependentContext();
+ BlueFacedParrotFinch bean = manager.getInstanceByType(BlueFacedParrotFinch.class);
+ assert bean != null;
+ // Retrieve the implicit event bean from the manager only by its API
+ // type
+ Set<?> eventBeans = manager.resolveByType(Event.class, new FiresBinding());
+ assert eventBeans.size() == 1;
+ Bean<?> eventBean = (Bean<?>) eventBeans.iterator().next();
+ assert eventBean.getDeploymentType().equals(Standard.class);
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "8.6")
+ public void testImplicitEventBeanHasDependentScope()
+ {
+ deployBeans(BlueFacedParrotFinch.class);
+ try
+ {
+ activateDependentContext();
+ BlueFacedParrotFinch bean = manager.getInstanceByType(BlueFacedParrotFinch.class);
+ assert bean != null;
+ // Retrieve the implicit event bean from the manager only by its API
+ // type
+ Set<?> eventBeans = manager.resolveByType(Event.class, new FiresBinding());
+ assert eventBeans.size() == 1;
+ Bean<?> eventBean = (Bean<?>) eventBeans.iterator().next();
+ assert eventBean.getScopeType().equals(Dependent.class);
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @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 = { "events" }, expectedExceptions = { IllegalArgumentException.class })
+ @SpecAssertion(section = "8.7")
+ public void testNonBindingTypeAnnotationWhenResolvingFails()
+ {
+ AnObserver observer = new AnObserver();
+ manager.addObserver(observer, new TypeLiteral<AnEventType>()
+ {
+ });
+ Set<Observer<AnEventType>> resolvedObservers = manager.resolveObservers(new AnEventType(), new AnimalStereotypeAnnotationLiteral());
+ assert !resolvedObservers.isEmpty();
+ }
+
+ @Test(groups = { "events" })
+ @SpecAssertion(section = "8.7")
+ public void testResolvingChecksEventType()
+ {
+ Observer<AnEventType> observer = new AnObserver();
+ manager.addObserver(observer, AnEventType.class);
+ Set<Observer<AnEventType>> resolvedObservers = manager.resolveObservers(new AnEventType());
+ assert !resolvedObservers.isEmpty();
+ Set<?> emptyObserverSet = manager.resolveObservers("A string event");
+ assert emptyObserverSet.isEmpty();
+ }
+
+ @Test(groups = { "stub", "events" })
+ @SpecAssertion(section = "8.7")
+ public void testResolvingChecksTypeParameters()
+ {
+ AListObserver observer = new AListObserver();
+ manager.addObserver(observer, new TypeLiteral<ArrayList<String>>()
+ {
+ });
+ Set<Observer<ArrayList<String>>> resolvedObservers = manager.resolveObservers(new ArrayList<String>(), new AnimalStereotypeAnnotationLiteral());
+ assert !resolvedObservers.isEmpty();
+ }
+
+ @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;
+ }
+
+ @Test @SpecAssertion(section="4.2")
+ public void testNonStaticProducerMethodNotInherited()
+ {
+ deployBeans(LazyFarmer.class);
+ assert manager.resolveObservers(new Egg()).isEmpty();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Farmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Farmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Farmer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Observes;
+
+class Farmer
+{
+
+ public void observeEggLaying(@Observes Egg egg)
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FinchKeeper.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FinchKeeper.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FinchKeeper.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Named;
+import javax.webbeans.Observes;
+import javax.webbeans.RequestScoped;
+
+import org.jboss.webbeans.tck.unit.event.StarFinch.Mess;
+
+@RequestScoped
+@Named("FinchKeeper")
+class FinchKeeper
+{
+ public FinchKeeper()
+ {
+ }
+
+ private boolean newMessDetected = false;
+
+ public void observesMesses(@Observes Mess aNewMess)
+ {
+ newMessDetected = true;
+ }
+
+ public boolean isNewMessDetected()
+ {
+ return newMessDetected;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FiresBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FiresBinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FiresBinding.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.Fires;
+
+public class FiresBinding extends AnnotationLiteral<Fires> implements Fires
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FoxTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FoxTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/FoxTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Disposes;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+@Stateless
+class FoxTerrier
+{
+ public void observeInitialized(@Observes @Initialized Manager manager, @Disposes String badParam)
+ {
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/GoldbreastWaxbill_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/GoldbreastWaxbill_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/GoldbreastWaxbill_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+
+class GoldbreastWaxbill_Broken
+{
+ @Fires
+ private Event<?> simpleEvent;
+
+ public void eliminateWarning()
+ {
+ assert simpleEvent != null;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/JavaSparrow_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/JavaSparrow_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/JavaSparrow_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import java.util.ArrayList;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+
+class JavaSparrow_Broken
+{
+ @Fires
+ private Event<ArrayList<String>> simpleEvent;
+
+ public void eliminateWarning()
+ {
+ assert simpleEvent != null;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/LazyFarmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/LazyFarmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/LazyFarmer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.event;
+
+public class LazyFarmer extends Farmer
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/OrangeCheekedWaxbill.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/OrangeCheekedWaxbill.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/OrangeCheekedWaxbill.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,36 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Initializer;
+
+import org.jboss.webbeans.tck.unit.event.StarFinch.Mess;
+
+class OrangeCheekedWaxbill
+{
+
+ private Mess someMess;
+ private Event<Mess> injectedEvent;
+
+ public OrangeCheekedWaxbill()
+ {
+ }
+
+ @Initializer
+ public void theInitializerMethod(@Fires @Tame Event<Mess> eventObject)
+ {
+ // Create a new mess and fire the event for it
+ someMess = new Mess();
+ eventObject.fire(someMess);
+ }
+
+ public Event<Mess> getInjectedEvent()
+ {
+ return injectedEvent;
+ }
+
+ public Mess getSomeMess()
+ {
+ return someMess;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/OwlFinch_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/OwlFinch_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/OwlFinch_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,27 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Observer;
+
+
+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());
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Pomeranian.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Pomeranian.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Pomeranian.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Named;
+import javax.webbeans.Observes;
+
+@Stateful
+@Tame
+@Named("Teddy")
+class Pomeranian implements PomeranianInterface
+{
+ public static Thread notificationThread;
+
+ public void observeSimpleEvent(@Observes String someEvent)
+ {
+ notificationThread = Thread.currentThread();
+ }
+
+ public static void staticallyObserveEvent(@Observes String someEvent)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/PomeranianInterface.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/PomeranianInterface.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/PomeranianInterface.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.event;
+
+public interface PomeranianInterface
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/RecluseSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/RecluseSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/RecluseSpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,25 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.IfExists;
+import javax.webbeans.Observes;
+import javax.webbeans.RequestScoped;
+
+/**
+ * Simple web bean that conditionally listens to events.
+ *
+ */
+@RequestScoped
+class RecluseSpider
+{
+ private static boolean notified = false;
+
+ public void observe(@Observes @IfExists String someEvent)
+ {
+ notified = true;
+ }
+
+ public static boolean isNotified()
+ {
+ return notified;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Role.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Role.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Role.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+
+import javax.webbeans.BindingType;
+
+@BindingType
+@Retention(RUNTIME)
+@interface Role
+{
+ String value();
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/RoleBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/RoleBinding.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/RoleBinding.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.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/webbeans/tck/unit/event/StarFinch.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/StarFinch.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/StarFinch.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+@RequestScoped
+@Named("StarFinch")
+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;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/SweeWaxbill_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/SweeWaxbill_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/SweeWaxbill_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Event;
+import javax.webbeans.Fires;
+import javax.webbeans.Observer;
+
+
+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"));
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Tame.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.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.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TameAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TameAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TameAnnotationLiteral.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.AnnotationLiteral;
+
+class TameAnnotationLiteral extends AnnotationLiteral<Tame> implements Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TeaCupPomeranian.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TeaCupPomeranian.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TeaCupPomeranian.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,30 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.webbeans.Named;
+import javax.webbeans.Observes;
+
+@Tame
+@Named("Teddy")
+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();
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Terrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Terrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/Terrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Local;
+
+@Local
+public interface Terrier
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TibetanTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TibetanTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TibetanTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+
+@Stateless
+class TibetanTerrier implements Terrier
+{
+ public void observeInitialized(@Observes String someEvent)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/YorkshireTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/YorkshireTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/YorkshireTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.event;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Observes;
+import javax.webbeans.manager.Initialized;
+import javax.webbeans.manager.Manager;
+
+@Stateless
+class YorkshireTerrier
+{
+ public void observeInitialized(@Observes @Initialized Manager manager, @Observes Boxer anotherDog)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/ResourceInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/ResourceInjectionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/commonAnnotations/ResourceInjectionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.unit.implementation.commonAnnotations;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class ResourceInjectionTest extends AbstractTest
+{
+
+ @Test(groups="stub") @SpecAssertion(section="3.10")
+ public void testInjectionOfPersistenceContext()
+ {
+ assert false;
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="3.10")
+ public void testInjectionOfResource()
+ {
+ assert false;
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="3.10")
+ public void testInjectionOfEJB()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/decorator/DecoratorDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/decorator/DecoratorDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/decorator/DecoratorDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.decorator;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class DecoratorDefinitionTest
+{
+
+ @Test(groups="stub") @SpecAssertion(section="4.2")
+ public void testDecoratorBindingInherited()
+ {
+ assert false;
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.2")
+ public void testDecoratorBindingBlockedByIntermediateClass()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/deployment/BeanDeploymentTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/deployment/BeanDeploymentTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/deployment/BeanDeploymentTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,108 @@
+package org.jboss.webbeans.tck.unit.implementation.deployment;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081222")
+public class BeanDeploymentTest
+{
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.2.6")
+ public void testOnlySpecializedSimpleBeanDeployed()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.2.6")
+ public void testSpecializedSimpleBeanExtends()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.2.6")
+ public void testSpecializedSimpleBeanHasSameBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.2.6")
+ public void testSpecializedSimpleBeanHasSameName()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.6")
+ public void testOnlySpecializedEnterpriseBeanDeployed()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.6")
+ public void testSpecializedEnterpriseBeanExtends()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.6")
+ public void testSpecializedEnterpriseBeanHasSameBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.6")
+ public void testSpecializedEnterpriseBeanHasSameName()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.6")
+ public void testSpecializedEnterpriseBeanAllLocalInterfaces()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.6")
+ public void testSpecializedEnterpriseBeanSupportsBeanClassLocalView()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.3")
+ public void testOnlySpecializedProducerMethodBeanDeployed()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.3")
+ public void testSpecializedProducerMethodBeanDirectlyOverrides()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.3")
+ public void testSpecializedProducerMethodBeanHasSameBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.3")
+ public void testSpecializedProducerMethodBeanHasSameName()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedConstructorParameter.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedConstructorParameter.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedConstructorParameter.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.New;
+
+
+class AnnotatedConstructorParameter
+{
+ @Initializer
+ public AnnotatedConstructorParameter(@New WrappedEnterpriseBean reference)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedField.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedField.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedField.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.New;
+
+
+class AnnotatedField
+{
+ @New
+ WrappedEnterpriseBean reference;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedInitializerParameter.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedInitializerParameter.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedInitializerParameter.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.New;
+
+
+class AnnotatedInitializerParameter
+{
+ @Initializer
+ public void init(@New WrappedEnterpriseBean reference)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedProducerParameter.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedProducerParameter.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/AnnotatedProducerParameter.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.New;
+import javax.webbeans.Produces;
+
+
+class AnnotatedProducerParameter
+{
+ @Produces
+ Object produce(@New WrappedEnterpriseBean reference)
+ {
+ return new Object();
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Armant_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Armant_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Armant_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateless;
+import javax.webbeans.Destructor;
+
+@Stateless
+class Armant_Broken
+{
+ @Destructor @Remove
+ public void bye() {
+
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Beagle_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Beagle_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Beagle_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateless;
+import javax.webbeans.RequestScoped;
+
+@Stateless
+@RequestScoped
+class Beagle_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Boxer_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Boxer_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Boxer_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateless;
+import javax.webbeans.ConversationScoped;
+
+@Stateless
+@ConversationScoped
+class Boxer_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Bullmastiff_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Bullmastiff_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Bullmastiff_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateless;
+import javax.webbeans.SessionScoped;
+
+@Stateless
+@SessionScoped
+class Bullmastiff_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Dachshund_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Dachshund_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Dachshund_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateless;
+import javax.webbeans.ApplicationScoped;
+
+@Stateless
+@ApplicationScoped
+class Dachshund_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanDeclarationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanDeclarationTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanDeclarationTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,363 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.DeploymentException;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ * Sections
+ *
+ * 3.3. Enterprise Web Beans
+ * 3.3.1. Which EJBs are enterprise Web Beans?
+ * 3.3.2. API types of an enterprise Web Bean
+ * 3.3.3. Declaring an enterprise Web Bean using annotations
+ * 3.3.4. Declaring an enterprise Web Bean using XML
+ *
+ * @author Nicklas Karlsson
+ */
+@SpecVersion("20081206")
+public class EnterpriseBeanDeclarationTest extends AbstractTest
+{
+
+ /**
+ * An EJB stateless session bean must belong to the @Dependent pseudo-scope.
+ * If an enterprise Web Bean specifies an illegal scope, a
+ * DefinitionException is thrown by the Web Bean manager at initialization
+ * time
+ */
+ @Test(groups = { "enterpriseBeans" })
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithDependentScopeOK()
+ {
+ deployBeans(Giraffe.class);
+ }
+
+ /**
+ * An EJB stateless session bean must belong to the @Dependent pseudo-scope.
+ * If an enterprise Web Bean specifies an illegal scope, a
+ * DefinitionException is thrown by the Web Bean manager at initialization
+ * time
+ */
+ @Test(groups = { "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithRequestScopeFails()
+ {
+ deployBeans(Beagle_Broken.class);
+ }
+
+ /**
+ * An EJB stateless session bean must belong to the @Dependent pseudo-scope.
+ * If an enterprise Web Bean specifies an illegal scope, a
+ * DefinitionException is thrown by the Web Bean manager at initialization
+ * time
+ */
+
+ @Test(groups = { "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithConversationScopeFails()
+ {
+ deployBeans(Boxer_Broken.class);
+ }
+
+ /**
+ * An EJB stateless session bean must belong to the @Dependent pseudo-scope.
+ * If an enterprise Web Bean specifies an illegal scope, a
+ * DefinitionException is thrown by the Web Bean manager at initialization
+ * time
+ */
+ @Test(groups = { "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithSessionScopeFails()
+ {
+ deployBeans(Bullmastiff_Broken.class);
+ }
+
+ /**
+ * An EJB stateless session bean must belong to the @Dependent pseudo-scope.
+ * If an enterprise Web Bean specifies an illegal scope, a
+ * DefinitionException is thrown by the Web Bean manager at initialization
+ * time
+ */
+ @Test(groups = { "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testStatelessWithApplicationScopeFails()
+ {
+ deployBeans(Dachshund_Broken.class);
+ }
+
+ /**
+ * An EJB singleton bean must belong to either the @ApplicationScoped scope
+ * or to the @Dependent pseudo-scope. If an enterprise Web Bean specifies an
+ * illegal scope, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time
+ */
+ @Test(groups = { "enterpriseBeans" ,"broken"})
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithDependentScopeOK()
+ {
+ deployBeans(Labrador.class);
+ assert false;
+ }
+
+ /**
+ * An EJB singleton bean must belong to either the @ApplicationScoped scope
+ * or to the @Dependent pseudo-scope. If an enterprise Web Bean specifies an
+ * illegal scope, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time
+ */
+ @Test(groups = { "enterpriseBeans" , "broken"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithRequestScopeFails()
+ {
+ deployBeans(Greyhound_Broken.class);
+ assert false;
+ }
+
+ /**
+ * An EJB singleton bean must belong to either the @ApplicationScoped scope
+ * or to the @Dependent pseudo-scope. If an enterprise Web Bean specifies an
+ * illegal scope, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time
+ */
+ @Test(groups = { "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithConversationScopeFails()
+ {
+ deployBeans(Husky_Broken.class);
+ assert false;
+ }
+
+ /**
+ * An EJB singleton bean must belong to either the @ApplicationScoped scope
+ * or to the @Dependent pseudo-scope. If an enterprise Web Bean specifies an
+ * illegal scope, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time
+ */
+ @Test(groups = { "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithSessionScopeFails()
+ {
+ deployBeans(IrishTerrier_Broken.class);
+ }
+
+ /**
+ * An EJB singleton bean must belong to either the @ApplicationScoped scope
+ * or to the @Dependent pseudo-scope. If an enterprise Web Bean specifies an
+ * illegal scope, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time
+ */
+ @Test(groups = { "enterpriseBeans" })
+ @SpecAssertion(section = "3.3")
+ public void testSingletonWithApplicationScopeOK()
+ {
+ deployBeans(Laika.class);
+ }
+
+ /**
+ * However, in any deployment, there may be at most one most specialized
+ * enabled enterprise Web Bean for any particular EJB enterprise bean.
+ * Therefore, for each distinct EJB name in a module, there is at most one
+ * Web Bean that may be called at runtime. If there is more than one most
+ * specialized enabled enterprise Web Bean for a particular EJB enterprise
+ * bean, a DeploymentException is thrown by the Web Bean manager at
+ * initialization time.
+ */
+ @Test(groups = { "enterpriseBeans", "stub" }, expectedExceptions = DeploymentException.class)
+ @SpecAssertion(section = "3.3")
+ public void testOnlyOneEnabledSpecializedEnterpriseBeanForImplmentation()
+ {
+ assert false;
+ }
+
+ /**
+ * If the implementation class of an enterprise Web Bean is annotated @Interceptor
+ * or @Decorator, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time.
+ */
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testEnterpriseBeanInterceptorFails()
+ {
+ deployBeans(Pug_Broken.class);
+ }
+
+ /**
+ * If the implementation class of an enterprise Web Bean is annotated @Interceptor
+ * or @Decorator, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time.
+ */
+ @Test(expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.3")
+ public void testEnterpriseBeanDecoratorFails()
+ {
+ deployBeans(Pekingese_Broken.class);
+ }
+
+ /**
+ * Only one Web Bean per implementation class may be defined using
+ * annotations.
+ */
+ @Test(expectedExceptions = DefinitionException.class, groups = { "enterpriseBeans", "stub" })
+ @SpecAssertion(section = "3.3")
+ public void testMultipleAnnotationDefinedEnterpriseBeansWithSameImplementationClassFails()
+ {
+ // TODO: testable?
+ assert false;
+ }
+
+ /**
+ * Note that multiple enterprise Web Beans may share the same implementation
+ * class. This occurs when Web Beans are defined using XML
+ */
+ @Test(groups = { "webbeansxml", "enterpriseBeans", "stub" })
+ @SpecAssertion(section = "3.3")
+ public void testMultipleXMLDefinedEnterpriseBeansWithSameImplementationClassOK()
+ {
+ assert false;
+ }
+
+ /**
+ * All session beans exposing an EJB 3.x client view and declared via an EJB
+ * component defining annotation on the EJB bean class are Web Beans, and
+ * thus no special declaration is required.
+ */
+ @Test(groups = { "enterpriseBeans", "stub" })
+ @SpecAssertion(section = "3.3.1")
+ public void testAnnotatedEnterpriseBean()
+ {
+ // TODO: dupe?
+ assert false;
+ }
+
+ /**
+ * Additional enterprise Web Beans for these EJBs may be defined using XML,
+ * by specifying the bean class in web-beans.xml.
+ */
+ @Test(groups = { "enterpriseBeans", "webbeansxml", "stub" })
+ @SpecAssertion(section = "3.3.1")
+ public void testAnnotatedEnterpriseBeanComplementedWithXML()
+ {
+ // TODO dupe?
+ assert false;
+ }
+
+ /**
+ * All session beans exposing an EJB 3.x client view and declared in
+ * ejb-jar.xml are also Web Beans.
+ */
+ @Test(groups = { "enterpriseBeans", "ejbjarxml", "stub" })
+ @SpecAssertion(section = "3.3.1")
+ public void testEJBJARDefinedEnterpriseBean()
+ {
+ // TODO dupe?
+ assert false;
+ }
+
+ /**
+ * Additional enterprise Web Beans for these EJBs may be defined using XML,
+ * by specifying the bean class and EJB name in web-beans.xml
+ */
+ @Test(groups = { "enterpriseBeans", "ejbjarxml", "webbeansxml", "stub" })
+ @SpecAssertion(section = "3.3.1")
+ public void testEJBJARDefinedEnterpriseBeanComplementedWithXML()
+ {
+ // TODO dupe?
+ assert false;
+ }
+
+ /**
+ * The set of API types for an enterprise Web Bean contains all local
+ * interfaces of the bean that do not have wildcard type parameters or type
+ * variables and their superinterfaces
+ */
+ @Test(groups = { "enterpriseBeans", "stub" })
+ @SpecAssertion(section = "3.3.2")
+ public void testAPITypesAreLocalInterfacesWithoutWildcardTypesOrTypeVariablesWithSuperInterfaces()
+ {
+ assert false;
+ }
+
+ /**
+ * If the EJB bean has a bean class local view and the bean class is not a
+ * parameterized type, the set of API types contains the bean class and all
+ * superclasses
+ */
+ @Test(groups = { "enterpriseBeans", "stub" })
+ @SpecAssertion(section = "3.3.2")
+ public void testEnterpriseBeanWithLocalViewAndParameterizedTypeIncludesBeanClassAndSuperclassesInAPITypes()
+ {
+ assert false;
+ }
+
+ /**
+ * In addition, java.lang.Object is an API type of every enterprise Web Bean.
+ */
+ @Test(groups = "enterpriseBeans")
+ @SpecAssertion(section = "3.3.2")
+ public void testObjectIsInAPITypes()
+ {
+ assert createEnterpriseBean(Laika.class).getTypes().contains(Object.class);
+ }
+
+ /**
+ * Remote interfaces are not included in the set of API types.
+ */
+ @Test(groups = { "enterpriseBeans", "stub" })
+ @SpecAssertion(section = "3.3.2")
+ public void testRemoteInterfacesAreNotInAPITypes()
+ {
+ assert false;
+ }
+
+ /**
+ * Enterprise Web Beans may be declared in web-beans.xml using the bean class
+ * name (for EJBs defined using a component- defining annotation) or bean
+ * class and EJB name (for EJBs defined in ejb-jar.xml). The ejbName
+ * attribute declares the EJB name of an EJB defined in ejb-jar.xml
+ */
+ @Test(groups = { "enterpriseBeans", "webbeansxml", "ejbjarxml", "stub" })
+ @SpecAssertion(section = "3.3")
+ public void testXMLFilesEJBNameUsage()
+ {
+ assert false;
+ }
+
+ /**
+ * Enterprise Web Beans may not be message-driven beans. If an enterprise Web
+ * Bean declared in XML is a message-driven bean, a DefinitionException is
+ * thrown by the Web Bean manager at initialization time.
+ */
+ @Test(expectedExceptions = DefinitionException.class, groups = {"enterpriseBeans", "broken"})
+ @SpecAssertion(section = "3.3")
+ public void testMessageDrivenBeansNotOK()
+ {
+ deployBeans(Leopard.class);
+ }
+
+ /**
+ * The default name for an enterprise Web Bean is the unqualified class name
+ * of the Web Bean implementation class, after converting the first character
+ * to lower case.
+ */
+ @Test(groups = "enterpriseBeans")
+ @SpecAssertion(section = "3.3.7")
+ public void testDefaultName()
+ {
+ assert createEnterpriseBean(Pitbull.class).getName().equals("pitbull");
+ }
+
+ /**
+ * An enterprise bean proxy implements all local interfaces of the EJB.
+ */
+ @Test(groups = { "specialization", "enterpriseBeans", "clientProxy", "stub" })
+ @SpecAssertion(section = "3.3.8")
+ public void testEnterpriseBeanProxyImplementsAllLocalInterfaces()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanLifecycleTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanLifecycleTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,181 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import java.util.Set;
+
+import javax.webbeans.UnremovedException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ * Sections
+ *
+ * 6.4. Lifecycle of stateful session enterprise Web beans
+ * 6.5. Lifecycle of stateless session and singleton enterprise Web Beans
+ * 6.9. Lifecycle of EJB beans
+ *
+ * Mostly overlapping with other tests...
+ *
+ * @author Nicklas Karlsson
+ */
+
+@SpecVersion("20081206")
+public class EnterpriseBeanLifecycleTest extends AbstractTest
+{
+
+ /**
+ * When the create() method is called, the Web Bean manager creates and
+ * returns an enterprise bean proxy
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "stub" })
+ @SpecAssertion(section = "6.4")
+ public void testProxyCreated()
+ {
+ assert false;
+ }
+
+ /**
+ * When the destroy() method is called, the Web Bean manager calls the Web
+ * Bean remove method upon the proxy
+ */
+ @Test(groups = { "enterpriseBeans", "clientProxy", "lifecycle", "stub"})
+ @SpecAssertion(section = "6.4")
+ public void testRemoveMethodCalled() throws Exception
+ {
+ GoodDoggie.destructorCalled = false;
+ deployBeans(GoodDoggie.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ Set<Bean<LocalGoodDoggie>> goodDoggieBeans = manager.resolveByType(LocalGoodDoggie.class);
+ assert goodDoggieBeans.size() == 1;
+ Bean<LocalGoodDoggie> bean = goodDoggieBeans.iterator().next();
+ LocalGoodDoggie doggie = manager.getInstance(bean);
+ bean.destroy(doggie);
+ }
+
+ }.run();
+ }
+
+ /**
+ * For each remove method parameter, the Web Bean manager passes the object
+ * returned by Manager.getInstanceByType()
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "removeMethod", "stub" })
+ @SpecAssertion(section = "6.4")
+ public void testFieldInjections()
+ {
+ assert false;
+ }
+
+ /**
+ * If the enterprise Web Bean has no Web Bean remove method, the Web Bean
+ * manager throws an UnremovedException.
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "removeMethod", "stub" }, expectedExceptions = UnremovedException.class)
+ @SpecAssertion(section = "6.4")
+ public void testNoRemoveMethodFails()
+ {
+ assert false;
+ }
+
+ /**
+ * If the underlying EJB was already destroyed by direct invocation of a
+ * remove method by the application, the Web Bean manager ignores the
+ * instance, and is not required to call any remove method
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "removeMethod", "stub" })
+ @SpecAssertion(section = "6.4")
+ public void testNoRemoveMethodsCalledIfEnterpriseBeanAlreadyRemoved()
+ {
+ assert false;
+ }
+
+ /**
+ * When the destroy() method is called, the Web Bean manager simply discards
+ * the proxy and all EJB local object references.
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "removeMethod", "stub" })
+ @SpecAssertion(section = "6.5")
+ public void testProxyAndLocalObjectReferencesDiscardedForStatelessEnterpriseBeans()
+ {
+ assert false;
+ }
+
+ /**
+ * The Web Bean manager initializes the values of all injected fields. For
+ * each injected field, the Web Bean manager sets the value to the object
+ * returned by Manager.getInstanceByType().
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "stub" })
+ @SpecAssertion(section = "6.9")
+ public void testFieldInjectionsOnRemoveMethods()
+ {
+ assert false;
+ }
+
+ /**
+ * Next, if the EJB bean instance is an instance of a Web Bean, the Web Bean
+ * manager initializes the values of any fields with initial values specified
+ * in XML,
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "stub" })
+ @SpecAssertion(section = "6.9")
+ public void testInitXMLDefinedValuesOnWebWeanEnterpriseBeans()
+ {
+ assert false;
+ }
+
+ /**
+ * Next, the Web Bean manager calls all initializer methods. For each
+ * initializer method parameter, the Web Bean manager passes the object
+ * returned by Manager.getInstanceByType().
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "stub" })
+ @SpecAssertion(section = "6.9")
+ public void testInitializerMethodsCalledWithCurrentParameterValues()
+ {
+ assert false;
+ }
+
+ /**
+ * Finally, the Web Bean manager builds the interceptor and decorator stacks
+ * for the instance
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "interceptors", "stub" })
+ @SpecAssertion(section = "6.9")
+ public void testInterceptorStackIsBuilt()
+ {
+ assert false;
+ }
+
+ /**
+ * Finally, the Web Bean manager builds the interceptor and decorator stacks
+ * for the instance
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "decorators", "stub" })
+ @SpecAssertion(section = "6.9")
+ public void testDecoratorStackIsBuilt()
+ {
+ assert false;
+ }
+
+ /**
+ * When the EJB container destroys an instance of an EJB bean, the Web Bean
+ * manager intercepts the @PreDestroy callback and destroys all dependent
+ * objects, after the callback returns from the bean instance
+ */
+ @Test(groups = { "enterpriseBeans", "lifecycle", "stub" })
+ @SpecAssertion(section = "6.9")
+ public void testDependentObjectsDestroyed()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanRemoveMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanRemoveMethodTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanRemoveMethodTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,58 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ * Sections
+ *
+ * 3.3.5. Web Bean remove methods 3.3.5.1. Declaring a Web Bean remove method
+ * using annotations. 3.3.5.2. Declaring a Web Bean remove method using XML
+ * 3.3.5.3. Remove method parameters
+ *
+ * @author Nicklas Karlsson
+ */
+@SpecVersion("20090116")
+public class EnterpriseBeanRemoveMethodTest extends AbstractTest
+{
+
+ /**
+ * If the scope is @Dependent, the application may call any EJB remove method
+ * of an instance of the enterprise Web Bean, but then no parameters will be
+ * passed to the method by the Web Bean manager
+ */
+ @Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" })
+ @SpecAssertion(section = "3.3.1")
+ public void applicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButNoParametersArePassed()
+ {
+ assert false;
+ }
+
+ /**
+ * If the application directly calls an EJB remove method of an instance of
+ * an enterprise Web Bean that is a stateful session bean and declares any
+ * scope other than @Dependent, an UnsupportedOperationException is thrown.
+ */
+ @Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" }, expectedExceptions = UnsupportedOperationException.class)
+ @SpecAssertion(section = "3.3.1")
+ public void applicationCannotCallRemoveMethodOnNonDependentScopedSessionEnterpriseBean()
+ {
+ assert false;
+ }
+
+ /**
+ * If the application directly calls an EJB remove method of an instance of
+ * an enterprise Web Bean that is a stateful session bean and has scope
+ * @Dependent, the Web Bean manager ignores the instance when instead of
+ * destroying it
+ */
+ @Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" })
+ @SpecAssertion(section = "3.3.1")
+ public void applicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButInstanceIsNotDestroyed()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanSpecializationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanSpecializationTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/EnterpriseBeanSpecializationTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,144 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.DeploymentException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+/**
+ * Sections
+ *
+ * 3.3.6. Specializing an enterprise Web Bean
+ *
+ * @author Nicklas Karlsson
+ */
+@SpecVersion("20081206")
+public class EnterpriseBeanSpecializationTest extends AbstractTest
+{
+
+ /**
+ * If an implementation class of an enterprise Web Bean X defined using
+ * annotations is annotated @Specializes, then the implementation class of X
+ * must directly extend the implementation class of another enterprise Web
+ * Bean Y defined using annotations. If the implementation class of X does
+ * not directly extend the implementation class of another enterprise Web
+ * Bean, a DefinitionException is thrown by the Web Bean manager at
+ * initialization time
+ */
+ @Test(groups = { "specialization", "enterpriseBeans", "stub" })
+ @SpecAssertion(section = "3.3.6")
+ public void testAnnotationDefinedSpecializingEnterpriseBeanMustDirectlyExtendAnotherAnnotationDefinedEnterpriseBean()
+ {
+ assert false;
+ }
+
+ /**
+ * X inherits all binding types of Y
+ */
+ @Test(groups = { "specialization", "enterpriseBeans" })
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingBeanInheritsBindingTypes()
+ {
+ Bean<Hound> hound = createEnterpriseBean(Hound.class);
+ Bean<HoundOfBaskerville> houndOfBaskerville = createEnterpriseBean(HoundOfBaskerville.class);
+ assert compareBindingTypesOK(hound, houndOfBaskerville);
+ }
+
+ private boolean compareBindingTypesOK(Bean<Hound> hound, Bean<HoundOfBaskerville> houndOfBaskerville)
+ {
+ if (hound.getBindings().size() != houndOfBaskerville.getBindings().size())
+ {
+ return false;
+ }
+ if (!hound.getBindings().containsAll(houndOfBaskerville.getBindings()))
+ {
+ return false;
+ }
+ if (!houndOfBaskerville.getBindings().containsAll(hound.getBindings()))
+ {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * if Y has a name, X has the same name as Y.
+ */
+ @Test(groups = { "specialization", "enterpriseBeans" })
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingBeanInheritsNameIfAny()
+ {
+ // Create the specialized class
+ createEnterpriseBean(Hound.class);
+ Bean<HoundOfBaskerville> houndOfBaskerville = createEnterpriseBean(HoundOfBaskerville.class);
+ assert houndOfBaskerville.getName().equals("Pongo");
+ }
+
+ /**
+ * X must support all local interfaces supported by Y. Otherwise, a
+ * DefinitionException is thrown by the Web Bean manager at initialization
+ * time.
+ */
+ @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "specialization", "enterpriseBeans" })
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingNotSupportingLocalInterfacesOfSpecializedFails()
+ {
+ assert false;
+ }
+
+ /**
+ * if Y supports a bean-class local view, X must also support a bean-class
+ * local view. Otherwise, a DefinitionException is thrown by the Web Bean
+ * manager at initialization time.
+ */
+ @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "specialization", "enterpriseBeans" })
+ @SpecAssertion(section = "3.3.6")
+ public void testSpecializingNotSupportingLocalViewOfSpecializedFails()
+ {
+ assert false;
+ }
+
+ /**
+ * We say that X directly specializes Y, and we can be certain that Y will
+ * never be instantiated or called by the Web Bean manager if X is enabled.
+ */
+ @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "specialization", "enterpriseBeans" })
+ @SpecAssertion(section = "3.3.6")
+ public void testEnabledSpecializationOverridesSpecialized()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "specialization", "enterpriseBeans" })
+ @SpecAssertion(section = "3.3.6")
+ public void testXMLDefinedSpecializationOnAnnotationDefinedBean()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DeploymentException.class, groups = { "stub", "enterpriseBeans", "specialization" })
+ @SpecAssertion(section = "3.3")
+ public void testMultipleEnabledSpecializedEnterpriseBeanFails()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions = DefinitionException.class, groups = { "specialization", "enterpriseBeans" })
+ @SpecAssertion(section = "3.3.6")
+ public void testAnnotationDefinedSpecializingEnterpriseBeanNotDirectlyExtendingAnnotationDefinedEnterpriseBeanFails()
+ {
+ createEnterpriseBean(GreaterDane.class);
+ }
+
+ @Test(expectedExceptions = DefinitionException.class, groups = { "stub", "specialization", "enterpriseBeans" })
+ @SpecAssertion(section = "3.3.6")
+ public void testXMLDefinedSpecializingEnterpriseBeanNotImplementingAnnotationDefinedEnterpriseBeanFails()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Giraffe.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Giraffe.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Giraffe.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateless;
+
+@Stateless
+class Giraffe
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GoldenRetriever.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GoldenRetriever.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GoldenRetriever.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Destructor;
+import javax.webbeans.Disposes;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+class GoldenRetriever
+{
+ @Remove @Destructor
+ public void bye(@Disposes Object something) {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GoodDoggie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GoodDoggie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GoodDoggie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Destructor;
+
+@Stateful
+class GoodDoggie implements LocalGoodDoggie
+{
+
+ public static boolean destructorCalled = false;
+
+ @Destructor @Remove
+ public void bye() {
+ destructorCalled = true;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GreatDane.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GreatDane.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GreatDane.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+
+class GreatDane
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GreaterDane.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GreaterDane.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/GreaterDane.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Specializes;
+
+@Specializes
+@Stateless
+class GreaterDane extends GreatDane
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Greyhound_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Greyhound_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Greyhound_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.RequestScoped;
+
+//@Singleton
+@RequestScoped
+class Greyhound_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Hound.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Hound.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Hound.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Named;
+
+@Stateful
+@Tame
+@Named("Pongo")
+class Hound
+{
+ @Remove
+ public void bye() {
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/HoundOfBaskerville.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/HoundOfBaskerville.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/HoundOfBaskerville.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Specializes;
+
+@Specializes
+@Stateful
+class HoundOfBaskerville extends Hound
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Husky_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Husky_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Husky_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.ConversationScoped;
+
+
+//@Singleton
+@ConversationScoped
+class Husky_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/IrishTerrier_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/IrishTerrier_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/IrishTerrier_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.SessionScoped;
+
+//@Singleton
+@SessionScoped
+class IrishTerrier_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/JackRussellTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/JackRussellTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/JackRussellTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Destructor;
+import javax.webbeans.Observes;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+class JackRussellTerrier
+{
+ @Remove @Destructor
+ public void bye(@Observes Object something) {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Koirus.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Koirus.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Koirus.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Dependent;
+
+@Stateful
+@Dependent
+class Koirus
+{
+
+ public static boolean removeCalled = false;
+
+ @Remove
+ public void bye(Object param)
+ {
+ removeCalled = true;
+ }
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Labrador.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Labrador.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Labrador.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.Dependent;
+
+//@Singleton
+@Dependent
+class Labrador
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Laika.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Laika.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Laika.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.webbeans.ApplicationScoped;
+
+//@Singleton
+@ApplicationScoped
+class Laika
+{
+
+ @Remove
+ public void remove()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Leopard.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Leopard.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Leopard.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.Production;
+
+@Production
+//@MessageDriven
+class Leopard /*implements javax.jms.MessageListener*/
+{
+
+ public void onMessage(/*Message message*/)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/LocalGoodDoggie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/LocalGoodDoggie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/LocalGoodDoggie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Local;
+import javax.ejb.Remove;
+
+@Local
+public interface LocalGoodDoggie
+{
+ @Remove
+ public void bye();
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewAndOtherBindingType_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewAndOtherBindingType_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewAndOtherBindingType_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.webbeans.Current;
+import javax.webbeans.New;
+
+class NewAndOtherBindingType_Broken
+{
+ public @New @Current WrappedEnterpriseBean violation;
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,371 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
+import javax.webbeans.Standard;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.impl.literals.NewBinding;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081222")
+public class NewEnterpriseBeanTest extends AbstractTest
+{
+ private Bean<WrappedEnterpriseBean> newEnterpriseBean;
+
+ @BeforeMethod
+ public void initNewBean() {
+ deployBeans(WrappedEnterpriseBean.class);
+ Set<Bean<WrappedEnterpriseBean>> beans = manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding());
+ assert beans.size() == 1;
+ newEnterpriseBean = beans.iterator().next();
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanIsDependentScoped()
+ {
+ assert Dependent.class.equals(newEnterpriseBean.getScopeType());
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanIsOfStandardDeploymentType()
+ {
+ assert Standard.class.equals(newEnterpriseBean.getDeploymentType());
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanIsHasOnlyNewBinding()
+ {
+ assert newEnterpriseBean.getBindings().size() == 1;
+ assert newEnterpriseBean.getBindings().iterator().next().annotationType().equals(new NewBinding().annotationType());
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoWebBeanName()
+ {
+ assert newEnterpriseBean.getName() == null;
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "stub", "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoStereotypes()
+ {
+ assert false;
+ }
+
+ /**
+ * If the parameter type satisfies the definition of a simple Web Bean
+ * implementation class, Section 3.2.1, �Which Java classes are simple Web
+ * Beans?�, then the Web Bean is a simple Web Bean. If the parameter type
+ * satisfies the definition of an enterprise Web Bean implementation class,
+ * Section 3.3.2, �Which EJBs are enterprise Web Beans?�, then the Web Bean
+ * is an enterprise Web Bean.
+ */
+ @Test(groups = { "new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanIsEnterpriseWebBeanIfParameterTypeIsEnterpriseWebBean()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasSameInitializerMethodsAsWrappedBean()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasSameInjectedFieldsAsWrappedBean()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = {"new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoObservers()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoProducerFields()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoProducerMethods()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoDisposalMethods()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "stub", "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasSameInterceptorMethodsAsWrappedBean()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoDecorators()
+ {
+ Annotation[] bindingTypes = newEnterpriseBean.getBindings().toArray(new Annotation[0]);
+ assert manager.resolveDecorators(newEnterpriseBean.getTypes(), bindingTypes).isEmpty();
+ }
+
+ /**
+ * The @New annotation or <New> element may be applied to any field of a Web
+ * Bean implementation class or to any parameter of a producer method,
+ * initializer method, disposal method or Web Bean constructor where the type
+ * of the field or parameter is a concrete Java type which satisfies the
+ * requirements of a simple Web Bean implementation class or enterprise Web
+ * Bean implementation class.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationMayBeAppliedToField()
+ {
+ deployBeans(AnnotatedField.class, WrappedEnterpriseBean.class);
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
+ }
+
+ /**
+ * The @New annotation or <New> element may be applied to any field of a Web
+ * Bean implementation class or to any parameter of a producer method,
+ * initializer method, disposal method or Web Bean constructor where the type
+ * of the field or parameter is a concrete Java type which satisfies the
+ * requirements of a simple Web Bean implementation class or enterprise Web
+ * Bean implementation class.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationMayBeAppliedToProducerMethodParameter()
+ {
+ deployBeans(AnnotatedProducerParameter.class, WrappedEnterpriseBean.class);
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
+ }
+
+ /**
+ * The @New annotation or <New> element may be applied to any field of a Web
+ * Bean implementation class or to any parameter of a producer method,
+ * initializer method, disposal method or Web Bean constructor where the type
+ * of the field or parameter is a concrete Java type which satisfies the
+ * requirements of a simple Web Bean implementation class or enterprise Web
+ * Bean implementation class.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationMayBeAppliedToInitializerMethodParameter()
+ {
+ deployBeans(AnnotatedInitializerParameter.class, WrappedEnterpriseBean.class);
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
+ }
+
+ /**
+ * The @New annotation or <New> element may be applied to any field of a Web
+ * Bean implementation class or to any parameter of a producer method,
+ * initializer method, disposal method or Web Bean constructor where the type
+ * of the field or parameter is a concrete Java type which satisfies the
+ * requirements of a simple Web Bean implementation class or enterprise Web
+ * Bean implementation class.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationMayBeAppliedToConstructorMethodParameter()
+ {
+ deployBeans(AnnotatedConstructorParameter.class, WrappedEnterpriseBean.class);
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
+ }
+
+ /**
+ * If the @New binding type appears in conjunction with some other binding
+ * type, or is specified for a field or parameter of a type which does not
+ * satisfy the definition of a simple Web Bean implementation class or
+ * enterprise Web Bean implementation class, a DefinitionException is thrown
+ * by the container at deployment time.
+ */
+ @Test(groups = { "new" , "broken"}, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationCannotAppearInConjunctionWithOtherBindingType()
+ {
+ deployBeans(NewAndOtherBindingType_Broken.class);
+ }
+
+ /**
+ * If the @New binding type appears in conjunction with some other binding
+ * type, or is specified for a field or parameter of a type which does not
+ * satisfy the definition of a simple Web Bean implementation class or
+ * enterprise Web Bean implementation class, a DefinitionException is thrown
+ * by the container at deployment time.
+ */
+ @Test(groups = { "stub", "new" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationCannotBeAppliedToNonWebBeanImplementationClass()
+ {
+ assert false;
+ }
+
+ /**
+ * No Web Bean defined using annotations or XML may explicitly declare @New
+ * as a binding type
+ */
+ @Test(groups = { "stub", "new" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationCannotBeExplicitlyDeclared()
+ {
+ assert false;
+ }
+
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pekingese_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pekingese_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pekingese_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Decorator;
+
+@Stateless
+@Decorator
+class Pekingese_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pitbull.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pitbull.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pitbull.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.ApplicationScoped;
+import javax.webbeans.Destructor;
+import javax.webbeans.Named;
+
+@Stateful
+@ApplicationScoped
+@Named
+class Pitbull
+{
+
+ public static boolean destructorCalled = false;
+
+ @Remove @Destructor
+ public void bye()
+ {
+ destructorCalled = true;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pug_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pug_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pug_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Interceptor;
+
+@Stateless
+@Interceptor
+class Pug_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pumi_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pumi_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Pumi_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateful;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+class Pumi_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Rottweiler.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Rottweiler.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Rottweiler.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Destructor;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+class Rottweiler
+{
+ @Destructor
+ public void bye() {
+
+ }
+
+ @Destructor
+ public void bye2() {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/RussellTerrier.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/RussellTerrier.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/RussellTerrier.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Destructor;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+class RussellTerrier
+{
+ @Destructor
+ public void bye() {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Saluki.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Saluki.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Saluki.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Initializer;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+class Saluki
+{
+ @Remove @Initializer
+ public void bye() {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Spitz.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Spitz.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Spitz.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+class Spitz
+{
+ @Remove @Produces
+ public void bye() {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Tame.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Toller.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Toller.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Toller.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.RequestScoped;
+
+@Stateful
+@RequestScoped
+class Toller
+{
+
+ public static boolean removeCalled = false;
+
+ @Remove
+ public void bye()
+ {
+ removeCalled = true;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/WelshCorgie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/WelshCorgie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/WelshCorgie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Dependent;
+
+@Stateful
+@Dependent
+class WelshCorgie
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/WrappedEnterpriseBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/WrappedEnterpriseBean.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/WrappedEnterpriseBean.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.Named;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+@Stateful
+@Named("John")
+class WrappedEnterpriseBean
+{
+ @Remove
+ public void bye() {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Capercaillie.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Capercaillie.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Capercaillie.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Disposes;
+import javax.webbeans.Initializer;
+
+class Capercaillie
+{
+
+ @Initializer
+ public void setName(String name, @Disposes ChickenHutch chickenHutch)
+ {
+ // No-op
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Chicken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Chicken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Chicken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Production;
+
+@Production
+class Chicken
+{
+
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/ChickenHutch.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/ChickenHutch.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/ChickenHutch.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Initializer;
+
+class ChickenHutch
+{
+
+ public Fox fox;
+ public Chicken chicken;
+
+ @Initializer
+ public void setFox(Fox fox)
+ {
+ this.fox = fox;
+ }
+
+ @Initializer
+ public void setChicken(Chicken chicken)
+ {
+ this.chicken = chicken;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/DangerCall.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/DangerCall.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/DangerCall.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Production;
+
+@Production
+class DangerCall
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Dottrel.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Dottrel.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Dottrel.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Initializer;
+
+class Dottrel
+{
+
+ @Initializer
+ public static void setName(String name)
+ {
+ // No-op
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Fox.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Fox.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Fox.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Dependent;
+
+@Dependent
+class Fox
+{
+
+ public String getName()
+ {
+ return "gavin";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Grouse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Grouse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Grouse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.Observes;
+
+class Grouse
+{
+
+ @Initializer
+ public void setName(String name, @Observes DangerCall dangerCall)
+ {
+ // No-op
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/InitializerMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/InitializerMethodTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/InitializerMethodTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,128 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.NonexistentMethodException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class InitializerMethodTest extends AbstractTest
+{
+
+ @Test(expectedExceptions=DefinitionException.class, groups="initializerMethod") @SpecAssertion(section="3.8")
+ public void testStaticInitializerMethodNotAllowed()
+ {
+ createSimpleBean(Dottrel.class);
+ }
+
+ @Test(groups={"stub", "initializerMethod", "servlet"}) @SpecAssertion(section="3.8")
+ public void testInitializerMethodCalledOnServlet()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "initializerMethod", "ejb3"}) @SpecAssertion(section="3.8")
+ public void testInitializerMethodCalledOnEJBSessionBean()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "initializerMethod", "ejb3"}) @SpecAssertion(section="3.8")
+ public void testInitializerMethodCalledOnEJBMDB()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "initializerMethod", "ejb3", "singletons"}) @SpecAssertion(section="3.8")
+ public void testInitializerMethodCalledOnEJBSingleton()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "initializerMethod", "ejb3"}) @SpecAssertion(section="3.8")
+ public void testInitializerMethodNotABusinessMethod()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "initializerMethod", "interceptors"}) @SpecAssertion(section="3.8")
+ public void testMethodInterceptorNotCalledOnInitializerMethod()
+ {
+ assert false;
+ }
+
+ @Test(groups={"initializerMethod"}) @SpecAssertion(section={"3.8", "5.3", "3.8.2", "3.8.3"})
+ public void testMultipleInitializerMethodsAreCalled()
+ {
+ manager.addBean(createSimpleBean(Fox.class));
+ manager.addBean(createSimpleBean(Chicken.class));
+
+ Bean<ChickenHutch> chickenHutchBean = createSimpleBean(ChickenHutch.class);
+ ChickenHutch chickenHutch = chickenHutchBean.create();
+ assert chickenHutch.fox != null;
+ assert chickenHutch.chicken != null;
+ }
+
+ @Test(groups="initializerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section={"3.8.1", "3.4.2"})
+ public void testInitializerMethodAnnotatedProduces()
+ {
+ createSimpleBean(Pheasant.class);
+ }
+
+ @Test(groups="initializerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.8.1")
+ public void testInitializerMethodAnnotatedDestructor()
+ {
+ createSimpleBean(Shrike.class);
+ }
+
+ @Test(groups="initializerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.8.1")
+ public void testInitializerMethodHasParameterAnnotatedDisposes()
+ {
+ createSimpleBean(Capercaillie.class);
+ }
+
+ @Test(groups="initializerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.8.1")
+ public void testInitializerMethodHasParameterAnnotatedObserves()
+ {
+ createSimpleBean(Grouse.class);
+ }
+
+ @Test(groups={"stub", "initializerMethod", "webbeansxml"}) @SpecAssertion(section="3.8.2")
+ public void testInitializerMethodDeclaredInXml()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "initializerMethod", "webbeansxml"}) @SpecAssertion(section="3.8.2")
+ public void testInitializerMethodDeclaredInXmlIgnoresBindingAnnotationsInJava()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "initializerMethod", "webbeansxml"}, expectedExceptions=NonexistentMethodException.class) @SpecAssertion(section="3.8.2")
+ public void testInitializerMethodDeclaredInXmlDoesNotExist()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "initializerMethod", "webbeansxml"}) @SpecAssertion(section="3.8.2")
+ public void testBeanHasAllInitializerMethodsDeclaredInJavaAndXml()
+ {
+ assert false;
+ }
+
+ /*
+
+ @Test(groups="initializerMethod") @SpecAssertion(section="3.8")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Pheasant.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Pheasant.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Pheasant.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.Produces;
+
+class Pheasant
+{
+
+ @Initializer
+ @Produces
+ public void setName(String name)
+ {
+ // No-op
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Shrike.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Shrike.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/initializer/Shrike.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.implementation.initializer;
+
+import javax.webbeans.Destructor;
+import javax.webbeans.Initializer;
+
+class Shrike
+{
+
+
+ @Initializer
+ @Destructor
+ public void setName(String name)
+ {
+ // No-op
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/interceptor/InterceptorDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/interceptor/InterceptorDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/interceptor/InterceptorDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.interceptor;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class InterceptorDefinitionTest
+{
+
+ @Test(groups="stub") @SpecAssertion(section="4.2")
+ public void testNonStaticWithInterceptorBindingInherited()
+ {
+ assert false;
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.2")
+ public void testNonStaticWithInterceptorBindingBlockedByIntermediateClass()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/jms/JmsDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/jms/JmsDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/jms/JmsDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.implementation.jms;
+
+import javax.webbeans.DefinitionException;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class JmsDefinitionTest extends AbstractTest
+{
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "jms"}) @SpecAssertion(section="2.6")
+ public void testJmsEndpointHasName()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedConstructorParameter.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedConstructorParameter.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedConstructorParameter.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.New;
+
+
+class AnnotatedConstructorParameter
+{
+ @Initializer
+ public AnnotatedConstructorParameter(@New WrappedSimpleBean reference)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedField.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedField.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedField.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.New;
+
+
+class AnnotatedField
+{
+ @New
+ WrappedSimpleBean reference;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedInitializerParameter.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedInitializerParameter.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedInitializerParameter.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.New;
+
+
+class AnnotatedInitializerParameter
+{
+ @Initializer
+ public void init(@New WrappedSimpleBean reference)
+ {
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedProducerParameter.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedProducerParameter.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnnotatedProducerParameter.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.New;
+import javax.webbeans.Produces;
+
+
+class AnnotatedProducerParameter
+{
+ @Produces
+ Object produce(@New WrappedSimpleBean reference)
+ {
+ return new Object();
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/BookOrderProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/BookOrderProcessor.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/BookOrderProcessor.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+class BookOrderProcessor extends OrderProcessor
+{
+
+ @Override
+ public void postConstruct() {}
+
+ @Override
+ public void preDestroy() {}
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/CdOrderProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/CdOrderProcessor.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/CdOrderProcessor.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+class CdOrderProcessor extends OrderProcessor
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Cow_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Cow_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Cow_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Production;
+
+@Production
+abstract class Cow_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Donkey.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Donkey.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Donkey.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Production;
+
+@Production
+class Donkey
+{
+
+ public static boolean constructedCorrectly = false;
+
+ public Donkey()
+ {
+ constructedCorrectly = true;
+ }
+
+ public Donkey(String foo)
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Duck.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Duck.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Duck.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,29 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+
+
+@Production
+class Duck
+{
+
+ @Produces public static String foo = "foo";
+
+ @Produces public static Integer bar = 1;
+
+ @Produces @Synchronous public static Integer synchronousBar = 2;
+
+ public static boolean constructedCorrectly = false;
+
+ @Initializer
+ public Duck(String foo, @Synchronous Integer bar)
+ {
+ if (foo.equals(Duck.foo) && bar.equals(Duck.synchronousBar))
+ {
+ constructedCorrectly = true;
+ }
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/EntityBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/EntityBean.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/EntityBean.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+class EntityBean
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Farm.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Farm.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Farm.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,32 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import java.util.Date;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.webbeans.Current;
+
+class Farm
+{
+
+ public Date founded;
+ public Date closed;
+ public int initialStaff;
+
+ @Current
+ FarmOffice farmOffice;
+
+ @PostConstruct
+ private void postConstruct()
+ {
+ founded = new Date();
+ initialStaff = farmOffice.noOfStaff;
+ }
+
+ @PreDestroy
+ private void preDestroy()
+ {
+ closed = new Date();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FarmOffice.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FarmOffice.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FarmOffice.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+
+class FarmOffice
+{
+
+ public int noOfStaff = 20;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FishPond.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FishPond.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FishPond.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Initializer;
+
+class FishPond
+{
+
+ public Animal goldfish;
+
+ @Initializer
+ public FishPond(Goldfish goldfish)
+ {
+ this.goldfish = goldfish;
+ }
+
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FishStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FishStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/FishStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+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.ApplicationScoped;
+import javax.webbeans.Named;
+import javax.webbeans.Stereotype;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@ApplicationScoped
+@Named
+@interface FishStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Goldfish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Goldfish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Goldfish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@RequestScopedAnimalStereotype
+@RequestScoped
+@Production
+class Goldfish implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Goose_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Goose_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Goose_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.Production;
+
+@Production
+class Goose_Broken
+{
+
+ @Initializer
+ public Goose_Broken(String foo)
+ {
+ }
+
+ @Initializer
+ public Goose_Broken(String foo, Double bar)
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/HeavyDuty.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/HeavyDuty.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/HeavyDuty.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface HeavyDuty
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Leopard_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Leopard_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Leopard_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.RequestScoped;
+
+@RequestScoped
+class Leopard_Broken
+{
+
+ public String name = "pete";
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockEnterpriseBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockEnterpriseBean.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockEnterpriseBean.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.ejb.EnterpriseBean;
+
+class MockEnterpriseBean implements EnterpriseBean
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockFilter.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockFilter.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockFilter.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,30 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+class MockFilter implements Filter
+{
+
+ public void destroy()
+ {
+
+ }
+
+ public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException
+ {
+
+ }
+
+ public void init(FilterConfig arg0) throws ServletException
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockHttpSessionListener.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockHttpSessionListener.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockHttpSessionListener.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.servlet.http.HttpSessionEvent;
+
+class MockHttpSessionListener implements javax.servlet.http.HttpSessionListener
+{
+
+ public void sessionCreated(HttpSessionEvent arg0)
+ {
+
+ }
+
+ public void sessionDestroyed(HttpSessionEvent arg0)
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServlet.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServlet.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServlet.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,39 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import java.io.IOException;
+
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+class MockServlet implements Servlet
+{
+
+ public void destroy()
+ {
+
+ }
+
+ public ServletConfig getServletConfig()
+ {
+ return null;
+ }
+
+ public String getServletInfo()
+ {
+ return null;
+ }
+
+ public void init(ServletConfig arg0) throws ServletException
+ {
+
+ }
+
+ public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServletContextListener.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServletContextListener.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServletContextListener.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+class MockServletContextListener implements ServletContextListener
+{
+
+ public void contextDestroyed(ServletContextEvent arg0)
+ {
+
+ }
+
+ public void contextInitialized(ServletContextEvent arg0)
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServletRequestListener.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServletRequestListener.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockServletRequestListener.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.servlet.ServletRequestEvent;
+import javax.servlet.ServletRequestListener;
+
+class MockServletRequestListener implements ServletRequestListener
+{
+
+ public void requestDestroyed(ServletRequestEvent arg0)
+ {
+
+ }
+
+ public void requestInitialized(ServletRequestEvent arg0)
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockUIComponent.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockUIComponent.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/MockUIComponent.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,255 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.FacesListener;
+import javax.faces.render.Renderer;
+
+class MockUIComponent extends UIComponent
+{
+
+ @Override
+ protected void addFacesListener(FacesListener arg0)
+ {
+
+ }
+
+ @Override
+ public void broadcast(FacesEvent arg0) throws AbortProcessingException
+ {
+
+ }
+
+ @Override
+ public void decode(FacesContext arg0)
+ {
+
+ }
+
+ @Override
+ public void encodeBegin(FacesContext arg0) throws IOException
+ {
+
+ }
+
+ @Override
+ public void encodeChildren(FacesContext arg0) throws IOException
+ {
+
+ }
+
+ @Override
+ public void encodeEnd(FacesContext arg0) throws IOException
+ {
+
+ }
+
+ @Override
+ public UIComponent findComponent(String arg0)
+ {
+ return null;
+ }
+
+ @Override
+ public Map<String, Object> getAttributes()
+ {
+ return null;
+ }
+
+ @Override
+ public int getChildCount()
+ {
+ return 0;
+ }
+
+ @Override
+ public List<UIComponent> getChildren()
+ {
+ return null;
+ }
+
+ @Override
+ public String getClientId(FacesContext arg0)
+ {
+ return null;
+ }
+
+ @Override
+ protected FacesContext getFacesContext()
+ {
+ return null;
+ }
+
+ @Override
+ protected FacesListener[] getFacesListeners(Class arg0)
+ {
+ return null;
+ }
+
+ @Override
+ public UIComponent getFacet(String arg0)
+ {
+ return null;
+ }
+
+ @Override
+ public Map<String, UIComponent> getFacets()
+ {
+ return null;
+ }
+
+ @Override
+ public Iterator<UIComponent> getFacetsAndChildren()
+ {
+ return null;
+ }
+
+ @Override
+ public String getFamily()
+ {
+ return null;
+ }
+
+ @Override
+ public String getId()
+ {
+ return null;
+ }
+
+ @Override
+ public UIComponent getParent()
+ {
+ return null;
+ }
+
+ @Override
+ protected Renderer getRenderer(FacesContext arg0)
+ {
+ return null;
+ }
+
+ @Override
+ public String getRendererType()
+ {
+ return null;
+ }
+
+ @Override
+ public boolean getRendersChildren()
+ {
+ return false;
+ }
+
+ @Override
+ public ValueBinding getValueBinding(String arg0)
+ {
+ return null;
+ }
+
+ @Override
+ public boolean isRendered()
+ {
+ return false;
+ }
+
+ @Override
+ public void processDecodes(FacesContext arg0)
+ {
+
+ }
+
+ @Override
+ public void processRestoreState(FacesContext arg0, Object arg1)
+ {
+
+ }
+
+ @Override
+ public Object processSaveState(FacesContext arg0)
+ {
+ return null;
+ }
+
+ @Override
+ public void processUpdates(FacesContext arg0)
+ {
+
+ }
+
+ @Override
+ public void processValidators(FacesContext arg0)
+ {
+
+ }
+
+ @Override
+ public void queueEvent(FacesEvent arg0)
+ {
+
+ }
+
+ @Override
+ protected void removeFacesListener(FacesListener arg0)
+ {
+
+ }
+
+ @Override
+ public void setId(String arg0)
+ {
+
+ }
+
+ @Override
+ public void setParent(UIComponent arg0)
+ {
+
+ }
+
+ @Override
+ public void setRendered(boolean arg0)
+ {
+
+ }
+
+ @Override
+ public void setRendererType(String arg0)
+ {
+
+ }
+
+ @Override
+ public void setValueBinding(String arg0, ValueBinding arg1)
+ {
+
+ }
+
+ public boolean isTransient()
+ {
+ return false;
+ }
+
+ public void restoreState(FacesContext arg0, Object arg1)
+ {
+
+ }
+
+ public Object saveState(FacesContext arg0)
+ {
+ return null;
+ }
+
+ public void setTransient(boolean arg0)
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Modern.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Modern.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Modern.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface Modern
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Motorized.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Motorized.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Motorized.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Motorized
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewAndOtherBindingType_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewAndOtherBindingType_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewAndOtherBindingType_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Current;
+import javax.webbeans.New;
+
+class NewAndOtherBindingType_Broken
+{
+ public @New @Current WrappedSimpleBean violation;
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,324 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
+import javax.webbeans.Standard;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.impl.literals.NewBinding;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081222")
+public class NewSimpleBeanTest extends AbstractTest
+{
+
+ private Bean<WrappedSimpleBean> newSimpleBean;
+
+ @BeforeMethod
+ public void initNewBean()
+ {
+ deployBeans(WrappedSimpleBean.class);
+ Set<Bean<WrappedSimpleBean>> beans = manager.resolveByType(WrappedSimpleBean.class, new NewBinding());
+ assert beans.size() == 1;
+ newSimpleBean = beans.iterator().next();
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanIsDependentScoped()
+ {
+ assert Dependent.class.equals(newSimpleBean.getScopeType());
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanIsOfStandardDeploymentType()
+ {
+ assert Standard.class.equals(newSimpleBean.getDeploymentType());
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanIsHasOnlyNewBinding()
+ {
+ assert newSimpleBean.getBindings().size() == 1;
+ assert newSimpleBean.getBindings().iterator().next().annotationType().equals(new NewBinding().annotationType());
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoWebBeanName()
+ {
+ assert newSimpleBean.getName() == null;
+ }
+
+ /**
+ * When the built-in binding type @New is applied to an injection point, a
+ * Web Bean is implicitly defined with: � scope @Dependent, � deployment type
+ *
+ * @Standard, � @New as the only binding annotation, � no Web Bean name, � no
+ * stereotypes, and such that � the implementation class is the
+ * declared type of the injection point.
+ */
+ @Test(groups = { "stub", "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoStereotypes()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = {"new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoObservers()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoProducerFields()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new", "stub" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoProducerMethods()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new" , "stub"})
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoDisposalMethods()
+ {
+ //Class<?> type = TypeInfo.ofTypes(newSimpleBean.getTypes()).getSuperClass();
+ //assert manager.resolveDisposalMethods(type, newSimpleBean.getBindings().toArray(new Annotation[0])).isEmpty();
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "stub", "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasSameInterceptorMethodsAsWrappedBean()
+ {
+ assert false;
+ }
+
+ /**
+ * Furthermore, this Web Bean: � has the same Web Bean constructor,
+ * initializer methods and injected fields as a Web Bean defined using
+ * annotations� that is, it has any Web Bean constructor, initializer method
+ * or injected field declared by annotations that appear on the
+ * implementation class, � has no observer methods, producer methods or
+ * fields or disposal methods, � has the same interceptors as a Web Bean
+ * defined using annotations�that is, it has all the interceptor binding
+ * types declared by annotations that appear on the implementation class, and
+ * � has no decorators.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewBeanHasNoDecorators()
+ {
+ Annotation[] bindingTypes = newSimpleBean.getBindings().toArray(new Annotation[0]);
+ assert manager.resolveDecorators(newSimpleBean.getTypes(), bindingTypes).isEmpty();
+ }
+
+ /**
+ * The @New annotation or <New> element may be applied to any field of a Web
+ * Bean implementation class or to any parameter of a producer method,
+ * initializer method, disposal method or Web Bean constructor where the type
+ * of the field or parameter is a concrete Java type which satisfies the
+ * requirements of a simple Web Bean implementation class or enterprise Web
+ * Bean implementation class.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationMayBeAppliedToField()
+ {
+ deployBeans(AnnotatedField.class, WrappedSimpleBean.class);
+ assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ }
+
+ /**
+ * The @New annotation or <New> element may be applied to any field of a Web
+ * Bean implementation class or to any parameter of a producer method,
+ * initializer method, disposal method or Web Bean constructor where the type
+ * of the field or parameter is a concrete Java type which satisfies the
+ * requirements of a simple Web Bean implementation class or enterprise Web
+ * Bean implementation class.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationMayBeAppliedToProducerMethodParameter()
+ {
+ deployBeans(AnnotatedProducerParameter.class, WrappedSimpleBean.class);
+ assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ }
+
+ /**
+ * The @New annotation or <New> element may be applied to any field of a Web
+ * Bean implementation class or to any parameter of a producer method,
+ * initializer method, disposal method or Web Bean constructor where the type
+ * of the field or parameter is a concrete Java type which satisfies the
+ * requirements of a simple Web Bean implementation class or enterprise Web
+ * Bean implementation class.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationMayBeAppliedToInitializerMethodParameter()
+ {
+ deployBeans(AnnotatedInitializerParameter.class, WrappedSimpleBean.class);
+ assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ }
+
+ /**
+ * The @New annotation or <New> element may be applied to any field of a Web
+ * Bean implementation class or to any parameter of a producer method,
+ * initializer method, disposal method or Web Bean constructor where the type
+ * of the field or parameter is a concrete Java type which satisfies the
+ * requirements of a simple Web Bean implementation class or enterprise Web
+ * Bean implementation class.
+ */
+ @Test(groups = { "new" })
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationMayBeAppliedToConstructorMethodParameter()
+ {
+ deployBeans(AnnotatedConstructorParameter.class, WrappedSimpleBean.class);
+ assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ }
+
+ /**
+ * If the @New binding type appears in conjunction with some other binding
+ * type, or is specified for a field or parameter of a type which does not
+ * satisfy the definition of a simple Web Bean implementation class or
+ * enterprise Web Bean implementation class, a DefinitionException is thrown
+ * by the container at deployment time.
+ */
+ @Test(groups = { "new", "broken" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationCannotAppearInConjunctionWithOtherBindingType()
+ {
+ deployBeans(NewAndOtherBindingType_Broken.class);
+ }
+
+ /**
+ * If the @New binding type appears in conjunction with some other binding
+ * type, or is specified for a field or parameter of a type which does not
+ * satisfy the definition of a simple Web Bean implementation class or
+ * enterprise Web Bean implementation class, a DefinitionException is thrown
+ * by the container at deployment time.
+ */
+ @Test(groups = { "stub", "new" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationCannotBeAppliedToNonWebBeanImplementationClass()
+ {
+ assert false;
+ }
+
+ /**
+ * No Web Bean defined using annotations or XML may explicitly declare @New
+ * as a binding type
+ */
+ @Test(groups = { "stub", "new" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.9")
+ public void testNewAnnotationCannotBeExplicitlyDeclared()
+ {
+ assert false;
+ }
+
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NovelOrderProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NovelOrderProcessor.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NovelOrderProcessor.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+class NovelOrderProcessor extends BookOrderProcessor
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Order.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Order.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Order.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Production;
+
+@Production
+class Order
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/OrderProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/OrderProcessor.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/OrderProcessor.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,25 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+class OrderProcessor
+{
+
+ public static boolean postConstructCalled = false;
+
+ public static boolean preDestroyCalled = true;
+
+ @PostConstruct
+ public void postConstruct()
+ {
+ postConstructCalled = true;
+ }
+
+ @PreDestroy
+ public void preDestroy()
+ {
+ preDestroyCalled = true;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/OuterBean_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/OuterBean_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/OuterBean_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Production;
+
+class OuterBean_Broken
+{
+
+ @Production
+ class InnerBean_Broken
+ {
+
+ public InnerBean_Broken()
+ {
+
+ }
+
+ }
+
+ static class StaticInnerBean_Broken
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/ParameterizedBean_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/ParameterizedBean_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/ParameterizedBean_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+class ParameterizedBean_Broken<T>
+{
+
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Plough.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Plough.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Plough.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Named;
+
+
+@HeavyDuty
+@Named("plough")
+class Plough
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/RedSnapper.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/RedSnapper.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/RedSnapper.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.RequestScoped;
+
+@FishStereotype
+@RequestScoped
+class RedSnapper implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/RequestScopedAnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/RequestScopedAnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/RequestScopedAnimalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+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;
+
+(a)Stereotype(requiredTypes=Animal.class, supportedScopes=RequestScoped.class)
+@Target( { TYPE })
+@Retention(RUNTIME)
+@interface RequestScopedAnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Sheep.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Sheep.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Sheep.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,27 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+
+@Production
+class Sheep
+{
+
+ public static boolean constructedCorrectly = false;
+
+ @Produces
+ public static String foo = "foo";
+
+ @Produces public static Double bar = 5.5;
+
+ @Initializer
+ public Sheep(String foo, Double bar)
+ {
+ if (foo.equals(Sheep.foo) && bar.equals(Sheep.bar))
+ {
+ constructedCorrectly = true;
+ }
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SimpleBeanDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SimpleBeanDefinitionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SimpleBeanDefinitionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,327 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.NonexistentConstructorException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.unit.implementation.simple.OuterBean_Broken.InnerBean_Broken;
+import org.jboss.webbeans.tck.unit.implementation.simple.OuterBean_Broken.StaticInnerBean_Broken;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class SimpleBeanDefinitionTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ //*** BEAN CLASS CHECKS ****//
+
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2")
+ public void testAbstractClassDeclaredInJavaIsNotAllowed()
+ {
+ createSimpleBean(Cow_Broken.class);
+ }
+
+ @Test(groups="innerClass") @SpecAssertion(section="3.2")
+ public void testStaticInnerClassDeclaredInJavaAllowed()
+ {
+ createSimpleBean(StaticInnerBean_Broken.class);
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups="innerClass") @SpecAssertion(section="3.2")
+ public void testNonStaticInnerClassDeclaredInJavaNotAllowed()
+ {
+ createSimpleBean(InnerBean_Broken.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2")
+ public void testParameterizedClassDeclaredInJavaIsNotAllowed()
+ {
+ createSimpleBean(ParameterizedBean_Broken.class);
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "interceptors", "decorators"}) @SpecAssertion(section="3.2")
+ public void testClassCannotBeInterceptorAndDecorator()
+ {
+
+ }
+
+ @Test(groups="stub")
+ public void testEntitiesNotDiscoveredAsSimpleBeans()
+ {
+ assert false;
+ }
+
+ @Test
+ public void testClassesImplementingServletInterfacesNotDiscoveredAsSimpleBeans()
+ {
+ deployBeans(MockFilter.class, MockHttpSessionListener.class, MockServlet.class, MockServletContextListener.class, MockServletRequestListener.class);
+ assert manager.resolveByType(MockFilter.class).size() == 0;
+ assert manager.resolveByType(MockHttpSessionListener.class).size() == 0;
+ assert manager.resolveByType(MockServlet.class).size() == 0;
+ assert manager.resolveByType(MockServletContextListener.class).size() == 0;
+ assert manager.resolveByType(MockServletRequestListener.class).size() == 0;
+ }
+
+ @Test
+ public void testClassesImplementingEnterpriseBeanInterfaceNotDiscoveredAsSimpleBean()
+ {
+ deployBeans(MockEnterpriseBean.class);
+ assert manager.resolveByType(MockEnterpriseBean.class).size() == 0;
+ }
+
+ @Test
+ public void testClassExtendingUiComponentNotDiscoveredAsSimpleBean()
+ {
+ deployBeans(MockUIComponent.class);
+ assert manager.resolveByType(MockUIComponent.class).size() == 0;
+ }
+
+ @Test(groups="stub")
+ public void testEjbsNotDiscoveredAsSimpleBean()
+ {
+
+ }
+
+ @Test(groups={"stub", "producerMethod", "webbeansxml"}) @SpecAssertion(section="3.2.4")
+ public void testBeanDeclaredInXmlIgnoresProducerMethodDeclaredInJava()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalMethod", "webbeansxml"}) @SpecAssertion(section="3.2.4")
+ public void testBeanDeclaredInXmlIgnoresDisposalMethodDeclaredInJava()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "observerMethod", "webbeansxml"}) @SpecAssertion(section="3.2.4")
+ public void testBeanDeclaredInXmlIgnoresObserverMethodDeclaredInJava()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "webbeansxml"}) @SpecAssertion(section="3.2.4")
+ public void testAbstractClassDeclaredInXmlIsNotAllowed()
+ {
+
+ }
+
+ @Test(groups={"stub", "innerClass", "webbeansxml"}) @SpecAssertion(section="3.2.4")
+ public void testStaticInnerClassDeclaredInXmlAllowed()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "innerClass", "webbeansxml"}) @SpecAssertion(section="3.2.4")
+ public void testNonStaticInnerClassDeclaredInXmlNotAllowed()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "webbeansxml"}) @SpecAssertion(section="3.2.4")
+ public void testParameterizedClassDeclaredInXmlIsNotAllowed()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "interceptors"}) @SpecAssertion(section="3.2.4")
+ public void testClassHasInterceptorInJavaMustHaveInterceptorInXml()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "interceptors"}) @SpecAssertion(section="3.2.4")
+ public void testClassHasDecoratorInJavaMustHaveDecoratorInXml()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="3.2.5.1")
+ public void testInitializerAnnotatedConstructor() throws Exception
+ {
+ deployBeans(Sheep.class);
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ manager.getInstanceByType(Sheep.class);
+ assert Sheep.constructedCorrectly;
+
+ }
+ }.run();
+
+ }
+
+ @Test @SpecAssertion(section="3.2.5.1")
+ public void testImplicitConstructorUsed()
+ {
+ Bean<Order> order = createSimpleBean(Order.class);
+ // TODO Test this properly!
+ }
+
+ @Test @SpecAssertion(section="3.2.5.1")
+ public void testEmptyConstructorUsed()
+ {
+ createSimpleBean(Donkey.class).create();
+ assert Donkey.constructedCorrectly;
+ }
+
+ @Test @SpecAssertion(section="3.2.5.1")
+ public void testInitializerAnnotatedConstructorUsedOverEmptyConstuctor() throws Exception
+ {
+ deployBeans(Turkey.class);
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ manager.getInstanceByType(Turkey.class);
+ assert Turkey.constructedCorrectly;
+ }
+ }.run();
+ }
+
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2.5.1")
+ public void testTooManyInitializerAnnotatedConstructor()
+ {
+ createSimpleBean(Goose_Broken.class);
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "disposalMethod"}) @SpecAssertion(section="3.2.5.1")
+ public void testConstructorHasDisposesParameter()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=DefinitionException.class, groups={"stub", "observerMethod"}) @SpecAssertion(section="3.2.5.1")
+ public void testConstructorHasObservesParameter()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="3.2.5.2")
+ public void testImplicitConstructorDeclaredInXmlUsed()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="3.2.5.2")
+ public void testEmptyConstructorDeclaredInXmlUsed()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=NonexistentConstructorException.class, groups={"stub", "webbeansxml"}) @SpecAssertion(section="3.2.5.2")
+ public void testConstructorDeclaredInXmlDoesNotExist()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "webbeansxml"}) @SpecAssertion(section="3.2.5.2")
+ public void testConstructorDeclaredInXmlIgnoresBindingTypesDeclaredInJava()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="3.2.5.3")
+ public void testBindingTypeAnnotatedConstructor() throws Exception
+ {
+ deployBeans(Duck.class);
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ manager.getInstanceByType(Duck.class);
+ assert Duck.constructedCorrectly;
+ }
+ }.run();
+ }
+
+ @Test(groups="specializationInherit") @SpecAssertion(section="3.2.6")
+ public void testSpecializedClassInheritsBindingTypes()
+ {
+ Bean<Tractor> bean = createSimpleBean(Tractor.class);
+ assert bean.getBindings().size()==2;
+ assert bean.getBindings().contains( new AnnotationLiteral<Motorized>() {} );
+ assert bean.getBindings().contains( new AnnotationLiteral<HeavyDuty>() {} );
+ }
+
+ @Test(groups="specializationInherit") @SpecAssertion(section="3.2.6")
+ public void testSpecializedClassInheritsName()
+ {
+ Bean<Tractor> bean = createSimpleBean(Tractor.class);
+ assert bean.getName()!=null;
+ assert bean.getName().equals("plough");
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.2.6")
+ public void testLessSpecializedClassNotInstantiated()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"},expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2.6")
+ public void testSpecializedClassMustExtendAnotherWebBean()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.2.6")
+ public void testSpecializedClassDeclaredInXmlInheritsBindingTypes()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.2.6")
+ public void testSpecializedClassDeclaredInXmlInheritsName()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.2.6")
+ public void testLessSpecializedClassDeclaredInXmlNotInstantiated()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="3.2")
+ public void testDependentScopedBeanCanHavePublicField() throws Exception
+ {
+ deployBeans(Tiger.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ assert manager.getInstanceByType(Tiger.class).name.equals("pete");
+ }
+
+ }.run();
+
+ }
+
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2")
+ public void testNonDependentScopedBeanCanNotHavePublicField()
+ {
+ deployBeans(Leopard_Broken.class);
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SimpleBeanLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SimpleBeanLifecycleTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SimpleBeanLifecycleTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,183 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class SimpleBeanLifecycleTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test(groups="beanConstruction") @SpecAssertion(section="3.1.3")
+ public void testInjectionOfParametersIntoBeanConstructor()
+ {
+ Bean<FishPond> goldfishPondBean = createSimpleBean(FishPond.class);
+ Bean<Goldfish> goldfishBean = createSimpleBean(Goldfish.class);
+ manager.addBean(goldfishBean);
+ manager.addBean(goldfishPondBean);
+ FishPond fishPond = goldfishPondBean.create();
+ assert fishPond.goldfish != null;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.1.4")
+ public void testSpecializedBeanAlwaysUsed()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups="beanLifecycle") @SpecAssertion(section="5.3")
+ public void testCreateReturnsInstanceOfBean()
+ {
+ Bean<RedSnapper> bean = createSimpleBean(RedSnapper.class);
+ assert bean.create() instanceof RedSnapper;
+ }
+
+ @Test(groups={"stub", "beanLifecycle", "interceptors"}) @SpecAssertion(section="5.3")
+ public void testCreateBindsInterceptorStack()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "beanLifecycle", "decorators"}) @SpecAssertion(section="5.3")
+ public void testCreateBindsDecoratorStack()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "beanLifecycle", "commonAnnotations"}) @SpecAssertion(section="5.3")
+ public void testCreateInjectsEjb()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "beanLifecycle", "commonAnnotations"}) @SpecAssertion(section="5.3")
+ public void testCreateInjectsPersistenceContext()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "beanLifecycle", "commonAnnotations"}) @SpecAssertion(section="5.3")
+ public void testCreateInjectsResource()
+ {
+ assert false;
+ }
+
+ @Test(groups={"beanLifecycle", "lifecycleCallbacks"}) @SpecAssertion(section="5.3")
+ public void testPostConstructPreDestroy() throws Exception
+ {
+ Bean<FarmOffice> farmOfficeBean = createSimpleBean(FarmOffice.class);
+ Bean<Farm> farmBean = createSimpleBean(Farm.class);
+ manager.addBean(farmOfficeBean);
+ manager.addBean(farmBean);
+ Farm farm = farmBean.create();
+ assert farm.founded!=null;
+ assert farm.initialStaff==20;
+ assert farm.closed==null;
+ farmBean.destroy(farm);
+ assert farm.closed!=null;
+ }
+
+ @Test @SpecAssertion(section="4.2")
+ public void testSubClassInheritsPostConstructOnSuperclass() throws Exception
+ {
+ OrderProcessor.postConstructCalled = false;
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ Bean<CdOrderProcessor> bean = createSimpleBean(CdOrderProcessor.class);
+ bean.create();
+ }
+ }.run();
+ assert OrderProcessor.postConstructCalled;
+ }
+
+ @Test @SpecAssertion(section="4.2")
+ public void testSubClassInheritsPreDestroyOnSuperclass() throws Exception
+ {
+ OrderProcessor.preDestroyCalled = false;
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ Bean<CdOrderProcessor> bean = createSimpleBean(CdOrderProcessor.class);
+ CdOrderProcessor instance = bean.create();
+ bean.destroy(instance);
+ }
+ }.run();
+ assert OrderProcessor.preDestroyCalled;
+ }
+
+ @Test @SpecAssertion(section="4.2")
+ public void testSubClassDoesNotInheritPostConstructOnSuperclassBlockedByIntermediateClass() throws Exception
+ {
+
+ OrderProcessor.postConstructCalled = false;
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ Bean<NovelOrderProcessor> bean = createSimpleBean(NovelOrderProcessor.class);
+ bean.create();
+ }
+ }.run();
+ assert !OrderProcessor.postConstructCalled;
+ }
+
+ @Test @SpecAssertion(section="4.2")
+ public void testSubClassDoesNotInheritPreDestroyConstructOnSuperclassBlockedByIntermediateClass() throws Exception
+ {
+ OrderProcessor.preDestroyCalled = false;
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ Bean<NovelOrderProcessor> bean = createSimpleBean(NovelOrderProcessor.class);
+ NovelOrderProcessor instance = bean.create();
+ bean.destroy(instance);
+ }
+ }.run();
+ assert !OrderProcessor.preDestroyCalled;
+
+ }
+
+ @Test(groups="injection") @SpecAssertion(section="5.3")
+ public void testCreateInjectsFieldsDeclaredInJava()
+ {
+ Bean<TunaFarm> tunaFarmBean = createSimpleBean(TunaFarm.class);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ manager.addBean(tunaBean);
+ TunaFarm tunaFarm = tunaFarmBean.create();
+ assert tunaFarm.tuna != null;
+ }
+
+ @Test(groups="injection")
+ public void testFieldMissingBindingAnnotationsAreNotInjected()
+ {
+ Bean<TunaFarm> tunaFarmBean = createSimpleBean(TunaFarm.class);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ manager.addBean(tunaBean);
+ TunaFarm tunaFarm = tunaFarmBean.create();
+ assert tunaFarm.notInjectedTuna != manager.getInstance(tunaBean);
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Synchronous.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Synchronous.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Synchronous.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Synchronous
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SynchronousAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SynchronousAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/SynchronousAnnotationLiteral.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.AnnotationLiteral;
+
+class SynchronousAnnotationLiteral extends AnnotationLiteral<Synchronous> implements Synchronous
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tiger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tiger.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tiger.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Dependent;
+
+@Dependent
+class Tiger
+{
+
+ public String name = "pete";
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tractor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tractor.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tractor.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Specializes;
+
+@Modern @Motorized @Specializes
+class Tractor extends Plough
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tuna.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+class Tuna
+{
+
+ public String getName()
+ {
+ return "Ophir";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/TunaFarm.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/TunaFarm.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/TunaFarm.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Current;
+import javax.webbeans.Production;
+
+@Production
+class TunaFarm
+{
+
+ @SuppressWarnings("unused")
+ @Current
+ public Tuna tuna;
+
+ public Tuna notInjectedTuna = new Tuna();
+
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Turkey.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Turkey.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Turkey.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,31 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import javax.webbeans.Initializer;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+
+@Production
+class Turkey
+{
+
+ @Produces public static String foo = "foo";
+
+ @Produces static Integer bar = 1;
+
+ public static boolean constructedCorrectly = false;
+
+ public Turkey()
+ {
+
+ }
+
+ @Initializer
+ public Turkey(String foo, Integer bar)
+ {
+ if (foo.equals(Turkey.foo) && bar.equals(Turkey.bar))
+ {
+ constructedCorrectly = true;
+ }
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/WrappedSimpleBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/WrappedSimpleBean.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/WrappedSimpleBean.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+import java.io.Serializable;
+
+import javax.webbeans.Named;
+import javax.webbeans.SessionScoped;
+
+@SessionScoped
+@Named("Fred")
+class WrappedSimpleBean implements Serializable
+{
+ public WrappedSimpleBean() {
+
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractCow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractCow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractCow.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+abstract class AbstractCow
+{
+
+ @Produces @RequestScoped @Smelly @FarmAnimalDeploymentType Dung getDung()
+ {
+ return new Dung();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractFarmHouse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractFarmHouse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractFarmHouse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Observes;
+
+abstract class AbstractFarmHouse
+{
+
+ public void observeTameCows(@Observes @Tame Cow cow)
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractHorse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractHorse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractHorse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+abstract class AbstractHorse
+{
+
+ @Produces @Smelly @RequestScoped @FarmAnimalDeploymentType private Dung dung = new Dung();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractKennel.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractKennel.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractKennel.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Produces;
+
+class AbstractKennel
+{
+
+ @Produces @Cuddly public Dog get()
+ {
+ return new Dog() {};
+ }
+
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractStable.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractStable.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AbstractStable.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+abstract class AbstractStable
+{
+
+ private @Produces @Cuddly Horse horse = new Horse();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Cow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Cow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Cow.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Realizes;
+
+@Realizes @AnotherDeploymentType
+class Cow extends AbstractCow
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Cuddly.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Cuddly.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Cuddly.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+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;
+
+@Stereotype
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@interface Cuddly
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Dog.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Dog.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Dog.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+interface Dog
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Dung.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Dung.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Dung.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+class Dung
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/FarmAnimalDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/FarmAnimalDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/FarmAnimalDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface FarmAnimalDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/FarmHouse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/FarmHouse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/FarmHouse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+class FarmHouse extends AbstractFarmHouse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Horse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Horse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Horse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+@AnotherDeploymentType
+class Horse extends AbstractHorse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/LabradorKennel.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/LabradorKennel.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/LabradorKennel.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Realizes;
+
+@Realizes
+class LabradorKennel extends AbstractKennel
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/RealizationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/RealizationTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/RealizationTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,130 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import static org.jboss.webbeans.tck.impl.util.Reflections.annotationSetMatches;
+
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.RequestScoped;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class RealizationTest extends AbstractTest
+{
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasSameScope()
+ {
+ deployBeans(Cow.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasScopeOfRealizingClass()
+ {
+ deployBeans(Cow.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasSameBindings()
+ {
+ deployBeans(Cow.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().iterator().next().annotationType().equals(Smelly.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasBindingsOfMethodAndRealizingType()
+ {
+ deployBeans(TameCow.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().size() == 2;
+ assert annotationSetMatches(manager.resolveByType(Dung.class).iterator().next().getBindings(), Smelly.class, Tame.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasSameStereotypes()
+ {
+ deployBeans(LabradorKennel.class);
+ assert manager.resolveByType(Dog.class).size() == 1;
+ assert manager.resolveByType(Dog.class).iterator().next().getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasSameInterceptorBindings()
+ {
+ assert false;
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasSameScope()
+ {
+ deployBeans(Horse.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasScopeOfRealizingClass()
+ {
+ deployBeans(Horse.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasSameBindings()
+ {
+ deployBeans(Horse.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().iterator().next().annotationType().equals(Smelly.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasBindingsOfMethodAndRealizingType()
+ {
+ deployBeans(TameHorse.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().size() == 2;
+ assert annotationSetMatches(manager.resolveByType(Dung.class).iterator().next().getBindings(), Smelly.class, Tame.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasSameStereotypes()
+ {
+ deployBeans(Stable.class);
+ assert manager.resolveByType(Horse.class).size() == 1;
+ assert manager.resolveByType(Horse.class).iterator().next().getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasSameInterceptorBindings()
+ {
+ assert false;
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.1")
+ public void testDisposalMethodInherited()
+ {
+ assert false;
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.1")
+ public void testRealizedDisposalMethodHasBindingsOfMethodAndRealizingType()
+ {
+ assert false;
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testObserverMethodInheritedAndHasSameBindings()
+ {
+ deployBeans(FarmHouse.class);
+ assert manager.resolveObservers(new Cow(), new AnnotationLiteral<Tame>(){}).size() == 1;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Smelly.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Smelly.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Smelly.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Smelly
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Stable.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Stable.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Stable.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+public class Stable
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/Tame.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/TameCow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/TameCow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/TameCow.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Realizes;
+
+@Realizes @Tame
+class TameCow extends Cow
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/TameHorse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/TameHorse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/realization/TameHorse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.inheritance.realization;
+
+import javax.webbeans.Realizes;
+
+@Realizes @Tame
+class TameHorse extends AbstractHorse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/Farmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/Farmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/Farmer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.inheritance.specialization;
+
+public class Farmer
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/OrganicFarmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/OrganicFarmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/OrganicFarmer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.inheritance.specialization;
+
+import javax.webbeans.Specializes;
+
+@Specializes
+public class OrganicFarmer extends Farmer
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/SpecializationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/SpecializationTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/inheritance/specialization/SpecializationTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.tck.unit.inheritance.specialization;
+
+import javax.webbeans.InconsistentSpecializationException;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class SpecializationTest
+{
+
+ @Test(expectedExceptions=InconsistentSpecializationException.class, groups={"stub", "specialization"})
+ public void testInconsistentSpecialization()
+ {
+
+ }
+
+ @Test @SpecAssertion(section="4.3")
+ public void testSpecializedBeanDirectlyExtendsLowerPriorityBean()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Chunky.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Chunky.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Chunky.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Chunky
+{
+
+ boolean realChunky();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Cod.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Cod.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Cod.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Whitefish
+@Chunky(realChunky=true)
+@Named("whitefish")
+class Cod implements ScottishFish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Haddock.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Haddock.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Haddock.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Named
+class Haddock implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/InstantiationByNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/InstantiationByNameTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/InstantiationByNameTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,85 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import javax.webbeans.AmbiguousDependencyException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class InstantiationByNameTest extends AbstractTest
+{
+
+ @Test(groups="resolution") @SpecAssertion(section="4.10")
+ public void testNoWebBeansFound() throws Exception
+ {
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+
+ assert manager.getInstanceByName("foo") == null;
+ }
+
+ @Test(expectedExceptions=AmbiguousDependencyException.class) @SpecAssertion(section="4.10.1")
+ public void testAmbiguousDependencies() throws Exception
+ {
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+
+ manager.getInstanceByName("whitefish");
+ }
+
+ @Test(groups={"resolution", "beanLifecycle"}) @SpecAssertion(section="4.10.1")
+ public void testGetInstanceByName()
+ {
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ Bean<SeaBass> seaBassBean = createSimpleBean(SeaBass.class);
+ Bean<Haddock> haddockBean = createSimpleBean(Haddock.class);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class);
+
+ manager.addBean(tunaBean);
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+ manager.addBean(haddockBean);
+ manager.addBean(seaBassBean);
+ manager.addBean(plaiceBean);
+
+ try
+ {
+ activateDependentContext();
+ assert manager.getInstanceByName("salmon") instanceof Salmon;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups={"stub", "resolution", "el"}) @SpecAssertion(section="4.10")
+ public void testGetInstanceByNameCalledOncePerDistinctNameInElExpression()
+ {
+ assert false;
+ }
+
+ /*
+
+ @Test(groups="el") @SpecAssertion(section="4.10")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Plaice.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Plaice.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Plaice.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import javax.webbeans.Named;
+
+@AnotherDeploymentType
+@Whitefish
+@Named("whitefish")
+final class Plaice implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ResolutionByNameTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ResolutionByNameTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ResolutionByNameTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,168 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import javax.webbeans.AmbiguousDependencyException;
+import javax.webbeans.UnsatisfiedDependencyException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ResolutionByNameTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ /**
+ * The getInstanceByName() method must:
+ *
+ * � Identify the Web Bean by calling Manager.resolveByName(), passing the name.
+ * � If resolveByName() returned an empty set, return a null value.
+ * � Otherwise, if exactly one Web Bean was returned, obtain an instance of the
+ * Web Bean by calling Manager.getInstance(), passing the Bean instance representing
+ * the Web Bean
+ */
+ @Test(groups={"stub", "el"}) @SpecAssertion(section="5.11")
+ public void testELResolver()
+ {
+ assert manager.getInstanceByName("nonexistant") == null;
+
+ try
+ {
+ activateDependentContext();
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ manager.addBean(salmonBean);
+ assert manager.getInstanceByName("salmon") instanceof Salmon;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ /**
+ * � Otherwise, if resolveByName() returned more than one Web Bean, throw an
+ * AmbiguousDependencyException.
+ */
+ @Test(expectedExceptions=AmbiguousDependencyException.class) @SpecAssertion(section="5.11")
+ public void testDuplicateNamedBeans()
+ {
+ try
+ {
+ activateDependentContext();
+
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ manager.addBean(codBean);
+ manager.addBean(soleBean);
+
+ assert manager.resolveByName("whitefish").size() == 2;
+ manager.getInstanceByName("whitefish");
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups={"stub", "el"}) @SpecAssertion(section="5.11.2")
+ public void testELResolverRegisteredWithJsf()
+ {
+ assert false;
+ }
+
+ @Test(groups={"stub", "el"}) @SpecAssertion(section="5.11.2")
+ public void testELResolverRegisteredWithServlet()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="5.11.1")
+ public void testNamedBasedResolution()
+ {
+
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ Bean<SeaBass> seaBassBean = createSimpleBean(SeaBass.class);
+ Bean<Haddock> haddockBean = createSimpleBean(Haddock.class);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class);
+
+ manager.addBean(tunaBean);
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+ manager.addBean(haddockBean);
+ manager.addBean(seaBassBean);
+
+ assert manager.resolveByName("salmon").size() == 1;
+ assert manager.resolveByName("salmon").contains(salmonBean);
+
+ assert manager.resolveByName("whitefish").size() == 2;
+ assert manager.resolveByName("whitefish").contains(codBean);
+ assert manager.resolveByName("whitefish").contains(soleBean);
+
+ manager.addBean(plaiceBean);
+
+ assert manager.resolveByName("whitefish").size() == 1;
+ assert manager.resolveByName("whitefish").contains(plaiceBean);
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="5.11.1")
+ public void testNoWebBeansFound() throws Exception
+ {
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+
+ assert manager.resolveByName("foo").size() == 0;
+ }
+
+ /**
+ * The following algorithm must be used by the Web Bean manager when resolving a Web Bean by name:
+ *
+ * � The Web Bean manager identifies the set of matching enabled Web Beans which have the given name.
+ * � Next, the Web Bean manager examines the deployment types of the matching Web Beans, as defined
+ * in Section 2.5.7, �Deployment type precedence�, and returns the set of Web Beans with the
+ * highest precedence deployment type that occurs in the set. If there are no matching Web Beans,
+ * an empty set is returned.
+ */
+ @Test(groups="stub") @SpecAssertion(section="5.11.1")
+ public void testOnlyHighestPrecedenceResolved()
+ {
+ // Both Cod and Plaice are named "whitefish" - Plaice has the highest deployment type (AnotherDeploymentType)
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class);
+ manager.addBean(codBean);
+ manager.addBean(plaiceBean);
+
+ assert manager.resolveByName("whitefish").size() == 1;
+ assert !manager.resolveByName("whitefish").contains(codBean);
+ assert manager.resolveByName("whitefish").contains(plaiceBean);
+ }
+
+ /*
+
+ @Test(groups="el") @SpecAssertion(section="5.11")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Salmon.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Salmon.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Salmon.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Named
+class Salmon implements ScottishFish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ScottishFish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ScottishFish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/ScottishFish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+
+interface ScottishFish extends Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/SeaBass.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/SeaBass.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/SeaBass.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@Production
+@RequestScoped
+class SeaBass implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Sole.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Sole.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Sole.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Whitefish
+@Named("whitefish")
+class Sole implements ScottishFish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Tuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Tuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Tuna.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+class Tuna
+{
+
+ public String getName()
+ {
+ return "Ophir";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Whitefish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Whitefish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/byname/Whitefish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.lookup.byname;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Whitefish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.lookup.clientProxy;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/ClientProxyTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/ClientProxyTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/ClientProxyTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,101 @@
+package org.jboss.webbeans.tck.unit.lookup.clientProxy;
+
+import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
+
+import java.io.IOException;
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import javax.webbeans.DefinitionException;
+import javax.webbeans.UnproxyableDependencyException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ClientProxyTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test(groups = "configuration().getBeans()")
+ @SpecAssertion(section = { "5.4" })
+ public void testClientProxyUsedForNormalScope()
+ {
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ manager.addBean(tunaBean);
+ Tuna tuna = manager.getInstance(tunaBean);
+ assert configuration().getBeans().isProxy(tuna);
+ }
+
+ @Test(groups = "configuration().getBeans()")
+ @SpecAssertion(section = { "5.4" })
+ public void testClientProxyNotUsedForPseudoScope()
+ {
+ Bean<Fox> foxBean = createSimpleBean(Fox.class);
+ try
+ {
+ activateDependentContext();
+ Fox fox = manager.getInstance(foxBean);
+ assert !configuration().getBeans().isProxy(fox);
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = "configuration().getBeans()")
+ @SpecAssertion(section = "5.4")
+ public void testSimpleWebBeanClientProxyIsSerializable() throws IOException, ClassNotFoundException
+ {
+ Bean<TunedTuna> tunaBean = createSimpleBean(TunedTuna.class);
+ manager.addBean(tunaBean);
+ TunedTuna tuna = manager.getInstance(tunaBean);
+ assert configuration().getBeans().isProxy(tuna);
+ byte[] bytes = serialize(tuna);
+ tuna = (TunedTuna) deserialize(bytes);
+ assert configuration().getBeans().isProxy(tuna);
+ assert tuna.getState().equals("tuned");
+ }
+
+ @Test(groups = "configuration().getBeans()", expectedExceptions = UnproxyableDependencyException.class)
+ @SpecAssertion(section = "5.4.1")
+ public void testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedWebBean()
+ {
+ Bean<FinalTuna_Broken> tunaBean = createSimpleBean(FinalTuna_Broken.class);
+ manager.addBean(tunaBean);
+ @SuppressWarnings("unused")
+ FinalTuna_Broken tuna = manager.getInstanceByType(FinalTuna_Broken.class);
+ assert false;
+ }
+
+ @Test(groups = "configuration().getBeans()")
+ @SpecAssertion(section = "5.4.2")
+ public void testClientProxyInvocation()
+ {
+ Bean<TunedTuna> tunaBean = createSimpleBean(TunedTuna.class);
+ manager.addBean(tunaBean);
+ TunedTuna tuna = manager.getInstance(tunaBean);
+ assert configuration().getBeans().isProxy(tuna);
+ assert tuna.getState().equals("tuned");
+ }
+
+ @Test(groups = "configuration().getBeans()", expectedExceptions=DefinitionException.class)
+ public void testGettingUnknownBeanFails() {
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ @SuppressWarnings("unused")
+ Tuna tuna = manager.getInstance(tunaBean);
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/FinalTuna_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/FinalTuna_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/FinalTuna_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.lookup.clientProxy;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+final class FinalTuna_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/Fox.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/Fox.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/Fox.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.lookup.clientProxy;
+
+import javax.webbeans.Dependent;
+
+@Dependent
+class Fox
+{
+
+ public String getName()
+ {
+ return "gavin";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/Tuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/Tuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/Tuna.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.lookup.clientProxy;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+class Tuna
+{
+
+ public String getName()
+ {
+ return "Ophir";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/TunedTuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/TunedTuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/clientProxy/TunedTuna.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.lookup.clientProxy;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+class TunedTuna
+{
+ public String getState()
+ {
+ return "tuned";
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/BeanWithFinalBoundField_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/BeanWithFinalBoundField_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/BeanWithFinalBoundField_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Current;
+
+class BeanWithFinalBoundField_Broken
+{
+
+ @Current
+ public final Tuna tuna = null;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/BeanWithStaticBoundField_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/BeanWithStaticBoundField_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/BeanWithStaticBoundField_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Current;
+
+class BeanWithStaticBoundField_Broken
+{
+
+ @Current
+ public static Tuna tuna;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/DeluxeHenHouse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/DeluxeHenHouse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/DeluxeHenHouse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+
+public class DeluxeHenHouse extends HenHouse
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FarmHouseProducer_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FarmHouseProducer_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FarmHouseProducer_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Produces;
+
+class FarmHouseProducer_Broken
+{
+
+ @Produces public Integer getNumberOfBedrooms()
+ {
+ return null;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FarmHouse_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FarmHouse_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FarmHouse_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Current;
+
+class FarmHouse_Broken
+{
+
+ @Current
+ public int noOfBedrooms;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/Fox.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/Fox.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/Fox.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Dependent;
+
+@Dependent
+class Fox
+{
+
+ public String getName()
+ {
+ return "gavin";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FoxRun.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FoxRun.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/FoxRun.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Current;
+
+class FoxRun
+{
+
+ @Current
+ public Fox fox;
+
+ @Current
+ public Fox anotherFox;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/HenHouse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/HenHouse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/HenHouse.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Current;
+
+public class HenHouse
+{
+
+ @Current
+ public Fox fox;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/InjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/InjectionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/InjectionTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,153 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import javax.webbeans.ContextNotActiveException;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.NonexistentFieldException;
+import javax.webbeans.NullableDependencyException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class InjectionTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test(groups = { "injection", "producerMethod" })
+ @SpecAssertion(section = "5.2")
+ public void testInjectionPerformsBoxingIfNecessary() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducer = createSimpleBean(SpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Bean<SpiderNest> spiderNestBean = createSimpleBean(SpiderNest.class);
+ manager.addBean(createProducerMethodBean(SpiderProducer.class.getMethod("getWolfSpiderSize"), spiderProducer));
+ SpiderNest spiderNest = spiderNestBean.create();
+ assert spiderNest.numberOfSpiders != null;
+ assert spiderNest.numberOfSpiders.equals(4);
+ }
+
+ @Test(groups = { "injection", "producerMethod" }, expectedExceptions = NullableDependencyException.class)
+ @SpecAssertion(section = "5.2")
+ public void testPrimitiveInjectionPointResolvesToNullableWebBean() throws Exception
+ {
+ deployBeans(FarmHouseProducer_Broken.class, FarmHouse_Broken.class);
+ }
+
+ @Test(groups = { "injection", "clientProxy" }, expectedExceptions = ContextNotActiveException.class)
+ @SpecAssertion(section = "5.3")
+ public void testInvokeNormalInjectedWebBeanWhenContextNotActive()
+ {
+ Bean<TunaFarm> tunaFarmBean = createSimpleBean(TunaFarm.class);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ manager.addBean(tunaBean);
+ TunaFarm tunaFarm = tunaFarmBean.create();
+ assert tunaFarm.tuna != null;
+ configuration().getContexts().setInactive(configuration().getContexts().getRequestContext());
+ tunaFarm.tuna.getName();
+ }
+
+ @Test(groups = "injection")
+ @SpecAssertion(section = "5.3")
+ public void testInvokeDependentScopeWhenContextNotActive()
+ {
+ Bean<FoxRun> foxRunBean = createSimpleBean(FoxRun.class);
+ Bean<Fox> foxBean = createSimpleBean(Fox.class);
+ manager.addBean(foxBean);
+ FoxRun foxRun = foxRunBean.create();
+ assert foxRun.fox.getName().equals("gavin");
+ }
+
+ @Test(groups = "injection", expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.7")
+ public void testInjectingStaticField()
+ {
+ Bean<BeanWithStaticBoundField_Broken> bean = createSimpleBean(BeanWithStaticBoundField_Broken.class);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ manager.addBean(tunaBean);
+ bean.create();
+ }
+
+ @Test(groups = "injection", expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.7")
+ public void testInjectingFinalField()
+ {
+ Bean<BeanWithFinalBoundField_Broken> bean = createSimpleBean(BeanWithFinalBoundField_Broken.class);
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ manager.addBean(tunaBean);
+ bean.create();
+ }
+
+ @Test @SpecAssertion(section="4.2")
+ public void testFieldDeclaredInSuperclassInjected() throws Exception
+ {
+ deployBeans(Fox.class, DeluxeHenHouse.class, HenHouse.class);
+
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ DeluxeHenHouse henHouse = manager.getInstanceByType(DeluxeHenHouse.class);
+ assert henHouse.fox != null;
+ assert henHouse.fox.getName().equals("gavin");
+ }
+ }.run();
+ }
+
+ @Test(groups = { "stub", "injection", "webbeansxml" })
+ @SpecAssertion(section = "3.7.2")
+ public void testInjectFieldsDeclaredInXml()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "injection", "webbeansxml" })
+ @SpecAssertion(section = "3.7.2")
+ public void testInjectedFieldDeclaredInXmlIgnoresJavaAnnotations()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "injection", "webbeansxml" })
+ @SpecAssertion(section = "3.7.2")
+ public void testInjectedFieldDeclaredInXmlAssumesCurrent()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "injection", "webbeansxml" }, expectedExceptions = NonexistentFieldException.class)
+ @SpecAssertion(section = "3.7.2")
+ public void testNonexistentFieldDefinedInXml()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "stub", "injection", "webbeansxml" })
+ @SpecAssertion(section = "3.7.2")
+ public void testInjectFieldsDeclaredInXmlAndJava()
+ {
+ assert false;
+ }
+
+ /*
+ *
+ * @Test(groups="injection") @SpecAssertion(section="4.2") public void test {
+ * assert false; }
+ */
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/SpiderNest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/SpiderNest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/SpiderNest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Initializer;
+
+class SpiderNest
+{
+
+ public Integer numberOfSpiders;
+
+ @Initializer
+ public SpiderNest(Integer numberOfSpiders)
+ {
+ this.numberOfSpiders = numberOfSpiders;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/SpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/SpiderProducer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Produces;
+
+@AnotherDeploymentType
+class SpiderProducer
+{
+
+ @Produces public int getWolfSpiderSize()
+ {
+ return 4;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/Tuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/Tuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/Tuna.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+class Tuna
+{
+
+ public String getName()
+ {
+ return "Ophir";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/TunaFarm.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/TunaFarm.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injection/TunaFarm.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.unit.lookup.injection;
+
+import javax.webbeans.Current;
+import javax.webbeans.Production;
+
+@Production
+class TunaFarm
+{
+
+ @SuppressWarnings("unused")
+ @Current
+ public Tuna tuna;
+
+ public Tuna notInjectedTuna = new Tuna();
+
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.injectionpoint;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/AnimalStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/AnimalStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/AnimalStereotype.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.lookup.injectionpoint;
+
+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;
+
+(a)Stereotype(requiredTypes=Animal.class)
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@interface AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/AnimalStereotypeAnnotationLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/AnimalStereotypeAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/AnimalStereotypeAnnotationLiteral.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.lookup.injectionpoint;
+
+import javax.webbeans.AnnotationLiteral;
+
+class AnimalStereotypeAnnotationLiteral extends AnnotationLiteral<AnimalStereotype> implements AnimalStereotype
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/BeanWithInjectionPointMetadata.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/BeanWithInjectionPointMetadata.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/BeanWithInjectionPointMetadata.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,37 @@
+/*
+ * 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.webbeans.tck.unit.lookup.injectionpoint;
+
+import javax.webbeans.Current;
+import javax.webbeans.InjectionPoint;
+
+/**
+ * Test bean with injection point on the constructor of the bean
+ *
+ * @author David Allen
+ *
+ */
+class BeanWithInjectionPointMetadata
+{
+ @Current
+ private InjectionPoint injectedMetadata;
+
+ public InjectionPoint getInjectedMetadata()
+ {
+ return injectedMetadata;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/ConstructorInjectionPointBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/ConstructorInjectionPointBean.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/ConstructorInjectionPointBean.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,42 @@
+/*
+ * 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.webbeans.tck.unit.lookup.injectionpoint;
+
+import javax.webbeans.Current;
+import javax.webbeans.Initializer;
+
+/**
+ * Test bean to inject a bean using injection point metadata into a constructor
+ *
+ * @author David Allen
+ *
+ */
+class ConstructorInjectionPointBean
+{
+ private BeanWithInjectionPointMetadata injectedBean;
+
+ @Initializer
+ public ConstructorInjectionPointBean(@Current BeanWithInjectionPointMetadata injectedBean)
+ {
+ this.injectedBean = injectedBean;
+ }
+
+ public BeanWithInjectionPointMetadata getInjectedBean()
+ {
+ return injectedBean;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/FieldInjectionPointBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/FieldInjectionPointBean.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/FieldInjectionPointBean.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,40 @@
+/*
+ * 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.webbeans.tck.unit.lookup.injectionpoint;
+
+import javax.webbeans.Current;
+import javax.webbeans.RequestScoped;
+
+/**
+ * Test bean to inject another bean which uses injection point metadata in a
+ * field
+ *
+ * @author David Allen
+ *
+ */
+@RequestScoped
+class FieldInjectionPointBean
+{
+ @Current @AnimalStereotype
+ private BeanWithInjectionPointMetadata injectedBean;
+
+ public BeanWithInjectionPointMetadata getInjectedBean()
+ {
+ return injectedBean;
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/InjectionPointTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/InjectionPointTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/injectionpoint/InjectionPointTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,298 @@
+/*
+ * 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.webbeans.tck.unit.lookup.injectionpoint;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.webbeans.Current;
+import javax.webbeans.Dependent;
+import javax.webbeans.InjectionPoint;
+import javax.webbeans.Standard;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.impl.literals.CurrentBinding;
+import org.testng.annotations.Test;
+
+/**
+ * Injection point metadata tests
+ *
+ * @author David Allen
+ *
+ */
+@SpecVersion("20081222")
+public class InjectionPointTest extends AbstractTest
+{
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testGetBean()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+
+ Set<Bean<FieldInjectionPointBean>> resolvedBeans = manager.resolveByType(FieldInjectionPointBean.class);
+ assert resolvedBeans.size() == 1;
+ assert beanWithInjectionPoint.getInjectedMetadata().getBean().equals(resolvedBeans.iterator().next());
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testGetType()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ assert beanWithInjectionPoint.getInjectedMetadata().getType().equals(BeanWithInjectionPointMetadata.class);
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testGetBindingTypes()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ Set<Annotation> bindingTypes = beanWithInjectionPoint.getInjectedMetadata().getBindings();
+ assert bindingTypes.size() == 1;
+ assert Current.class.isAssignableFrom(bindingTypes.iterator().next().annotationType());
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testGetMemberField()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ assert Field.class.isAssignableFrom(beanWithInjectionPoint.getInjectedMetadata().getMember().getClass());
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "stub", "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testGetMemberMethod()
+ {
+ assert false;
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testGetMemberConstructor()
+ {
+ deployBeans(ConstructorInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ ConstructorInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(ConstructorInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ assert Constructor.class.isAssignableFrom(beanWithInjectionPoint.getInjectedMetadata().getMember().getClass());
+
+ // Since the type and bindings must correspond to the parameter, check
+ // them
+ assert beanWithInjectionPoint.getInjectedMetadata().getType().equals(BeanWithInjectionPointMetadata.class);
+ assert beanWithInjectionPoint.getInjectedMetadata().getBindings().contains(new CurrentBinding());
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testGetAnnotation()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ assert beanWithInjectionPoint.getInjectedMetadata().getAnnotation(AnimalStereotype.class) != null;
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testGetAnnotations()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ Set<Annotation> annotations = new HashSet<Annotation>(Arrays.asList(beanWithInjectionPoint.getInjectedMetadata().getAnnotations()));
+ assert annotations.size() > 0;
+ assert annotations.contains(new CurrentBinding());
+ assert annotations.contains(new AnimalStereotypeAnnotationLiteral());
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testStandardDeployment()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ assert beanWithInjectionPoint.getInjectedMetadata().getClass().isAnnotationPresent(Standard.class);
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testDependentScope()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ assert beanWithInjectionPoint.getInjectedMetadata().getClass().isAnnotationPresent(Dependent.class);
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testApiTypeInjectionPoint()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ assert InjectionPoint.class.isAssignableFrom(beanWithInjectionPoint.getInjectedMetadata().getClass());
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+
+ @Test(groups = { "injectionPoint" })
+ @SpecAssertion(section = "5.11")
+ public void testCurrentBinding()
+ {
+ deployBeans(FieldInjectionPointBean.class, BeanWithInjectionPointMetadata.class);
+
+ // Get an instance of the bean which has another bean injected into it
+ try
+ {
+ activateDependentContext();
+ FieldInjectionPointBean beanWithInjectedBean = manager.getInstanceByType(FieldInjectionPointBean.class, new CurrentBinding());
+ BeanWithInjectionPointMetadata beanWithInjectionPoint = beanWithInjectedBean.getInjectedBean();
+ assert beanWithInjectionPoint.getInjectedMetadata() != null;
+ assert beanWithInjectionPoint.getInjectedMetadata().getBindings().contains(new CurrentBinding());
+ }
+ finally
+ {
+ deactivateDependentContext();
+ }
+ }
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/FishFarmOffice.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/FishFarmOffice.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/FishFarmOffice.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.manager;
+
+import javax.webbeans.Current;
+import javax.webbeans.manager.Manager;
+
+class FishFarmOffice
+{
+
+ @Current public Manager manager;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/ManagerTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/ManagerTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/manager/ManagerTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.lookup.manager;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.testng.annotations.Test;
+
+public class ManagerTest extends AbstractTest
+{
+
+ @Test(groups={"manager", "injection", "deployment"}) @SpecAssertion(section="5.8")
+ public void testInjectingManager()
+ {
+ FishFarmOffice fishFarmOffice = createSimpleBean(FishFarmOffice.class).create();
+ assert fishFarmOffice.manager != null;
+ }
+
+
+ @Test(groups={"stub", "manager", "ejb3"}) @SpecAssertion(section="5.8")
+ public void testManagerLookupInJndi()
+ {
+ assert false;
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Animal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnimalFarmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnimalFarmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnimalFarmer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+class AnimalFarmer extends Farmer<Animal>
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnotherDeploymentType.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+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.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnotherDeploymentTypeLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnotherDeploymentTypeLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/AnotherDeploymentTypeLiteral.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.AnnotationLiteral;
+
+class AnotherDeploymentTypeLiteral extends AnnotationLiteral<AnotherDeploymentType> implements AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.AnnotationLiteral;
+
+abstract class BindingTypeWithBindingAnnotationMemberLiteral_Broken extends AnnotationLiteral<BindingTypeWithBindingAnnotationMember_Broken> implements BindingTypeWithBindingAnnotationMember_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingAnnotationMember_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingAnnotationMember_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingAnnotationMember_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface BindingTypeWithBindingAnnotationMember_Broken
+{
+
+ Expensive expensive();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.AnnotationLiteral;
+
+abstract class BindingTypeWithBindingArrayTypeMemberLiteral_Broken extends AnnotationLiteral<BindingTypeWithBindingArrayTypeMember_Broken> implements BindingTypeWithBindingArrayTypeMember_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingArrayTypeMember_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingArrayTypeMember_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/BindingTypeWithBindingArrayTypeMember_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface BindingTypeWithBindingArrayTypeMember_Broken
+{
+
+ boolean[] bool();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Chunky.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Chunky.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Chunky.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Chunky
+{
+
+ boolean realChunky();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ChunkyLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ChunkyLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ChunkyLiteral.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.AnnotationLiteral;
+
+abstract class ChunkyLiteral extends AnnotationLiteral<Chunky> implements Chunky
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Cod.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Cod.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Cod.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Whitefish
+@Chunky(realChunky=true)
+@Named("whitefish")
+class Cod implements ScottishFish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DaddyLongLegs.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DaddyLongLegs.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DaddyLongLegs.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+class DaddyLongLegs extends Spider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DeadlyAnimal.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+interface DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/DeadlySpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Expensive.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Expensive.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Expensive.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,28 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+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;
+import javax.webbeans.NonBinding;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Expensive
+{
+
+ boolean veryExpensive();
+
+ @NonBinding
+ int cost();
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ExpensiveLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ExpensiveLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ExpensiveLiteral.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.AnnotationLiteral;
+
+abstract class ExpensiveLiteral extends AnnotationLiteral<Expensive> implements Expensive
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Farmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Farmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Farmer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Production;
+
+@Production
+class Farmer<T>
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/FinalTuna_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/FinalTuna_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/FinalTuna_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+final class FinalTuna_Broken
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Haddock.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Haddock.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Haddock.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Named
+class Haddock implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Halibut.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Halibut.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Halibut.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+
+@Expensive(cost=50, veryExpensive=true)
+@Whitefish
+class Halibut implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/InstantiationByTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/InstantiationByTypeTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/InstantiationByTypeTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,106 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+
+import javax.webbeans.AmbiguousDependencyException;
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.DuplicateBindingTypeException;
+import javax.webbeans.TypeLiteral;
+import javax.webbeans.UnproxyableDependencyException;
+import javax.webbeans.UnsatisfiedDependencyException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.impl.literals.CurrentBinding;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class InstantiationByTypeTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test(groups={"resolution", "beanLifecycle"}) @SpecAssertion(section="5.9")
+ public void testCurrentBindingTypeAssumed()
+ {
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ manager.addBean(tunaBean);
+ assert manager.getInstanceByType(Tuna.class) != null;
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class) @SpecAssertion(section="5.9")
+ public void testParameterizedTypeWithWildcardParameter()
+ {
+ manager.getInstanceByType(new TypeLiteral<ParameterizedBean_Broken<?>>(){});
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class) @SpecAssertion(section="5.9")
+ public <T> void testParameterizedTypeWithTypeParameter()
+ {
+ manager.getInstanceByType(new TypeLiteral<ParameterizedBean_Broken<T>>(){});
+ }
+
+
+ @Test(groups="resolution", expectedExceptions=DuplicateBindingTypeException.class) @SpecAssertion(section="5.9")
+ public void testDuplicateBindingTypesUsed()
+ {
+ manager.getInstanceByType(Tuna.class, new CurrentBinding(), new CurrentBinding());
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class) @SpecAssertion(section="5.9")
+ public void testNonBindingTypeUsed()
+ {
+ manager.getInstanceByType(Tuna.class, new AnotherDeploymentTypeLiteral());
+ }
+
+ @Test(expectedExceptions=AmbiguousDependencyException.class) @SpecAssertion(section="5.9")
+ public void testAmbiguousDependencies() throws Exception
+ {
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+ manager.getInstanceByType(ScottishFish.class, new AnnotationLiteral<Whitefish>(){});
+ }
+
+ @Test(expectedExceptions=UnsatisfiedDependencyException.class) @SpecAssertion(section="5.9")
+ public void testUnsatisfiedDependencies() throws Exception
+ {
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+ manager.getInstanceByType(Tuna.class, new CurrentBinding());
+ }
+
+ @Test(expectedExceptions=UnproxyableDependencyException.class) @SpecAssertion(section="5.9")
+ public void testUnproxyableDependencies() throws Exception
+ {
+ deployBeans(FinalTuna_Broken.class);
+ manager.getInstanceByType(FinalTuna_Broken.class, new AnnotationLiteral<Whitefish>(){});
+ }
+
+ /*
+
+ @Test(groups="resolution") @SpecAssertion(section="5.9")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/LadybirdSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/LadybirdSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/LadybirdSpider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.ApplicationScoped;
+
+@ApplicationScoped
+class LadybirdSpider extends Spider
+{
+
+ public void spinWeb()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ParameterizedBean_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ParameterizedBean_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ParameterizedBean_Broken.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+class ParameterizedBean_Broken<T>
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Plaice.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Plaice.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Plaice.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Named;
+
+@AnotherDeploymentType
+@Whitefish
+@Named("whitefish")
+final class Plaice implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ResolutionByTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ResolutionByTypeTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ResolutionByTypeTest.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,250 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.Set;
+
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.DuplicateBindingTypeException;
+import javax.webbeans.TypeLiteral;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.impl.literals.CurrentBinding;
+import org.testng.annotations.Test;
+
+@SpecVersion("20081206")
+public class ResolutionByTypeTest extends AbstractTest
+{
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="5.9.2")
+ public void testDefaultBindingTypeAssumed() throws Exception
+ {
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ manager.addBean(tunaBean);
+ Set<Bean<Tuna>> possibleTargets = manager.resolveByType(Tuna.class);
+ assert possibleTargets.size() == 1;
+ assert possibleTargets.contains(tunaBean);
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class) @SpecAssertion(section="5.9")
+ public void testParameterizedTypeWithWildcardParameter()
+ {
+ manager.resolveByType(new TypeLiteral<ParameterizedBean_Broken<?>>(){});
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class) @SpecAssertion(section="5.9")
+ public <T> void testParameterizedTypeWithTypeParameter()
+ {
+ manager.resolveByType(new TypeLiteral<ParameterizedBean_Broken<T>>(){});
+ }
+
+ @Test(groups="resolution", expectedExceptions=DuplicateBindingTypeException.class) @SpecAssertion(section="5.9.2")
+ public void testDuplicateBindingTypesUsed()
+ {
+ manager.resolveByType(Tuna.class, new CurrentBinding(), new CurrentBinding());
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class) @SpecAssertion(section="5.9.2")
+ public void testNonBindingTypeUsed()
+ {
+ manager.resolveByType(Tuna.class, new AnotherDeploymentTypeLiteral());
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section={"5.9.2"})
+ public void testResolveByType() throws Exception
+ {
+ Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ Bean<SeaBass> seaBassBean = createSimpleBean(SeaBass.class);
+ Bean<Haddock> haddockBean = createSimpleBean(Haddock.class);
+
+ manager.addBean(tunaBean);
+ manager.addBean(salmonBean);
+ manager.addBean(haddockBean);
+ manager.addBean(seaBassBean);
+
+ assert manager.resolveByType(Tuna.class, new CurrentBinding()).size() == 1;
+ assert manager.resolveByType(Tuna.class, new CurrentBinding()).contains(tunaBean);
+
+ assert manager.resolveByType(Tuna.class).size() == 1;
+ assert manager.resolveByType(Tuna.class).contains(tunaBean);
+
+ assert manager.resolveByType(Animal.class, new CurrentBinding()).size() == 3;
+ assert manager.resolveByType(Animal.class, new CurrentBinding()).contains(salmonBean);
+ assert manager.resolveByType(Animal.class, new CurrentBinding()).contains(seaBassBean);
+ assert manager.resolveByType(Animal.class, new CurrentBinding()).contains(haddockBean);
+ }
+
+ @Test(groups="injection") @SpecAssertion(section={"2.3.5","5.9.2.2"})
+ public void testAllBindingTypesSpecifiedForResolutionMustAppearOnWebBean()
+ {
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+
+ assert manager.resolveByType(Animal.class, new ChunkyLiteral() {
+
+ public boolean realChunky()
+ {
+ return true;
+ }
+
+ }, new AnnotationLiteral<Whitefish>() {}).size() == 1;
+ assert manager.resolveByType(Animal.class, new ChunkyLiteral() {
+
+ public boolean realChunky()
+ {
+ return true;
+ }
+
+ }, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
+
+ assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).size() == 2;
+ assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
+ assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(soleBean);
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="5.9.2")
+ public void testResolveByTypeWithTypeParameter() throws Exception
+ {
+ Bean<ScottishFishFarmer> scottishFishFarmerBean = createSimpleBean(ScottishFishFarmer.class);
+ Bean<AnimalFarmer> farmerBean = createSimpleBean(AnimalFarmer.class);
+
+ manager.addBean(scottishFishFarmerBean);
+ manager.addBean(farmerBean);
+
+ assert manager.resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).size() == 1;
+ assert manager.resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).contains(scottishFishFarmerBean);
+ }
+
+ @Test(groups={"resolution", "producerMethod"}) @SpecAssertion(section="5.9.2")
+ public void testResolveByTypeWithArray() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducerBean = createSimpleBean(SpiderProducer.class);
+ manager.addBean(spiderProducerBean);
+ Method method = SpiderProducer.class.getMethod("getSpiders");
+ Bean<Spider[]> spidersModel = createProducerMethodBean(method, spiderProducerBean);
+ manager.addBean(spidersModel);
+ method = SpiderProducer.class.getMethod("getStrings");
+ Bean<String[]> stringModel = createProducerMethodBean(method, spiderProducerBean);
+ manager.addBean(stringModel);
+
+ assert manager.resolveByType(Spider[].class).size() == 1;
+ }
+
+ @Test @SpecAssertion(section="5.9.2")
+ public void testOnlyHighestEnabledPrecedenceWebBeansResolved() throws Exception
+ {
+ Bean<Cod> codBean = createSimpleBean(Cod.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class);
+
+
+ manager.addBean(plaiceBean);
+ manager.addBean(codBean);
+ manager.addBean(soleBean);
+
+ assert manager.resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).size() == 1;
+ assert manager.resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).contains(plaiceBean);
+
+ }
+
+
+ @Test(groups="resolution") @SpecAssertion(section="5.9.2")
+ public void testNoWebBeansFound() throws Exception
+ {
+ Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class);
+ manager.addBean(plaiceBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+
+ assert manager.resolveByType(Tuna.class, new CurrentBinding()).size() == 0;
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="5.9.2.1")
+ public void testResolveByTypeWithNonBindingMembers() throws Exception
+ {
+ Bean<Halibut> halibutBean = createSimpleBean(Halibut.class);
+ Bean<RoundWhitefish> roundWhiteFishBean = createSimpleBean(RoundWhitefish.class);
+ Bean<Sole> soleBean = createSimpleBean(Sole.class);
+ manager.addBean(halibutBean);
+ manager.addBean(roundWhiteFishBean);
+ manager.addBean(soleBean);
+
+ Set<Bean<Animal>> beans = manager.resolveByType(Animal.class, new ExpensiveLiteral()
+ {
+
+ public int cost()
+ {
+ return 60;
+ }
+
+ public boolean veryExpensive()
+ {
+ return true;
+ }
+
+ }, new AnnotationLiteral<Whitefish>() {});
+ assert beans.size() == 2;
+ assert beans.contains(halibutBean);
+ assert beans.contains(roundWhiteFishBean);
+ }
+
+ @Test(groups="resolution", expectedExceptions=DefinitionException.class) @SpecAssertion(section="5.9.2.1")
+ public void testArrayValuedAnnotationMemberWithoutNonBinding()
+ {
+ manager.resolveByType(Animal.class, new BindingTypeWithBindingArrayTypeMemberLiteral_Broken() {
+
+ public boolean[] bool()
+ {
+ return new boolean[0];
+ }
+
+ });
+ }
+
+ @Test(groups="resolution", expectedExceptions=DefinitionException.class) @SpecAssertion(section="5.9.2.1")
+ public void testAnnotationValuedAnnotationMemberWithoutNonBinding()
+ {
+ manager.resolveByType(Animal.class, new BindingTypeWithBindingAnnotationMemberLiteral_Broken()
+ {
+
+ public Expensive expensive()
+ {
+ return new ExpensiveLiteral()
+ {
+ public int cost()
+ {
+ return 0;
+ }
+
+ public boolean veryExpensive()
+ {
+ return false;
+ }
+ };
+ }
+
+ });
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/RoundWhitefish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/RoundWhitefish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/RoundWhitefish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+@Expensive(cost=60, veryExpensive=true)
+@Whitefish
+class RoundWhitefish implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Salmon.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Salmon.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Salmon.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Named
+class Salmon implements ScottishFish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ScottishFish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ScottishFish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ScottishFish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+
+interface ScottishFish extends Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ScottishFishFarmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ScottishFishFarmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/ScottishFishFarmer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Production;
+
+@Production
+class ScottishFishFarmer extends Farmer<ScottishFish>
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/SeaBass.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/SeaBass.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/SeaBass.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+@Production
+@RequestScoped
+class SeaBass implements Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Sole.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Sole.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Sole.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Named;
+import javax.webbeans.Production;
+
+@Production
+@Whitefish
+@Named("whitefish")
+class Sole implements ScottishFish
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Spider.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+
+class Spider implements Animal
+{
+
+ public final void layEggs()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/SpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/SpiderProducer.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.Produces;
+
+@AnotherDeploymentType
+class SpiderProducer
+{
+
+ private static Spider[] ALL_SPIDERS = { new Tarantula(), new LadybirdSpider(), new DaddyLongLegs() };
+
+ @Produces public Spider[] getSpiders()
+ {
+ return ALL_SPIDERS;
+ }
+
+ @Produces public String[] getStrings()
+ {
+ return new String[0];
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Tarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Tarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Tarantula.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+class Tarantula extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Tuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Tuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Tuna.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+import javax.webbeans.RequestScoped;
+
+@AnotherDeploymentType
+@RequestScoped
+class Tuna
+{
+
+ public String getName()
+ {
+ return "Ophir";
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Whitefish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Whitefish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/lookup/typesafe/Whitefish.java 2009-01-20 06:39:37 UTC (rev 1110)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.lookup.typesafe;
+
+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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Whitefish
+{
+
+}
Modified: tck/trunk/impl/src/main/resources/tck-unit-tests.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-unit-tests.xml 2009-01-20 06:00:29 UTC (rev 1109)
+++ tck/trunk/impl/src/main/resources/tck-unit-tests.xml 2009-01-20 06:39:37 UTC (rev 1110)
@@ -28,7 +28,7 @@
<exclude name="beanDestruction" />
<exclude name="commonAnnotations" />
-->
- <exclude name="stub" />
+ <!--exclude name="stub" /-->
<exclude name="broken" />
</run>
</groups>
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1109 - doc/trunk/reference/ko-KR.
by webbeans-commits@lists.jboss.org
Author: eukim
Date: 2009-01-20 01:00:29 -0500 (Tue, 20 Jan 2009)
New Revision: 1109
Modified:
doc/trunk/reference/ko-KR/intro.po
doc/trunk/reference/ko-KR/scopescontexts.po
Log:
updated
Modified: doc/trunk/reference/ko-KR/intro.po
===================================================================
--- doc/trunk/reference/ko-KR/intro.po 2009-01-20 05:40:00 UTC (rev 1108)
+++ doc/trunk/reference/ko-KR/intro.po 2009-01-20 06:00:29 UTC (rev 1109)
@@ -8,7 +8,7 @@
"Project-Id-Version: intro\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-08 16:36+1000\n"
+"PO-Revision-Date: 2009-01-20 15:59+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -19,6 +19,7 @@
"\n"
"\n"
"\n"
+"\n"
#. Tag: title
#: intro.xml:4
@@ -184,7 +185,7 @@
msgid ""
"We may obtain an instance of <literal>TextTranslator</literal> by injecting "
"it into a Web Bean, Servlet or EJB:"
-msgstr ""
+msgstr "인스턴스를 Web Bean, Servlet 또는 EJB로 삽입하여 <literal>TextTranslator</literal> 인스턴스를 얻을 수 있습니다: "
#. Tag: programlisting
#: intro.xml:49
@@ -206,7 +207,7 @@
msgid ""
"Alternatively, we may obtain an instance by directly calling a method of the "
"Web Bean manager:"
-msgstr ""
+msgstr "다른 방법으로 Web Beans 관리자 방식을 직접 호출하여 인스턴스를 획득할 수 있습니다: "
#. Tag: programlisting
#: intro.xml:54
@@ -305,7 +306,7 @@
#: intro.xml:105
#, no-c-format
msgid "the lifecycle of each instance of the Web Bean and"
-msgstr ""
+msgstr "각각의 Web Bean 인스턴스의 수명 주기 "
#. Tag: para
#: intro.xml:108
@@ -350,13 +351,13 @@
#: intro.xml:132
#, no-c-format
msgid "they interact via well-defined public APIs"
-msgstr ""
+msgstr "잘 정의된 공개 API를 통해 상호 작용합니다 "
#. Tag: para
#: intro.xml:135
#, no-c-format
msgid "their lifecycles are completely decoupled"
-msgstr ""
+msgstr "수명 주기는 완전하게 연결 해제됩니다 "
#. Tag: para
#: intro.xml:139
@@ -678,13 +679,13 @@
#: intro.xml:267
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr ""
+msgstr "<xref linkend=\"scopescontexts\"/>에서 범위에 대해 보다 자세하게 다루겠습니다. "
#. Tag: title
#: intro.xml:272
#, no-c-format
msgid "Web Bean names and Unified EL"
-msgstr ""
+msgstr "Web Bean 이름 및 Unified EL "
#. Tag: para
#: intro.xml:274
@@ -708,7 +709,7 @@
#: intro.xml:280
#, no-c-format
msgid "Now we can easily use the Web Bean in any JSF or JSP page:"
-msgstr ""
+msgstr "이제 JSF 또는 JSP 페이지에서 쉽게 Web Bean을 사용할 수 있습니다: "
#. Tag: programlisting
#: intro.xml:282
@@ -750,7 +751,7 @@
#: intro.xml:295
#, no-c-format
msgid "Interceptor binding types"
-msgstr ""
+msgstr "인터셉터 바인딩 유형 "
#. Tag: para
#: intro.xml:297
@@ -826,7 +827,7 @@
#: intro.xml:327
#, no-c-format
msgid "Simple Web Beans"
-msgstr ""
+msgstr "단순 Web Beans "
#. Tag: para
#: intro.xml:329
@@ -883,7 +884,7 @@
#: intro.xml:358
#, no-c-format
msgid "Enterprise Web Beans"
-msgstr ""
+msgstr "엔터프라이즈 Web Beans "
#. Tag: para
#: intro.xml:360
@@ -1034,7 +1035,7 @@
#: intro.xml:427
#, no-c-format
msgid "Producer methods"
-msgstr ""
+msgstr "생산자 방식 "
#. Tag: para
#: intro.xml:429
Modified: doc/trunk/reference/ko-KR/scopescontexts.po
===================================================================
--- doc/trunk/reference/ko-KR/scopescontexts.po 2009-01-20 05:40:00 UTC (rev 1108)
+++ doc/trunk/reference/ko-KR/scopescontexts.po 2009-01-20 06:00:29 UTC (rev 1109)
@@ -8,7 +8,7 @@
"Project-Id-Version: scopescontexts\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-20 15:39+1000\n"
+"PO-Revision-Date: 2009-01-20 15:43+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -69,7 +69,7 @@
#: scopescontexts.xml:32
#, no-c-format
msgid "Scope types"
-msgstr ""
+msgstr "범위 유형 "
#. Tag: para
#: scopescontexts.xml:34
@@ -131,13 +131,13 @@
#: scopescontexts.xml:63
#, no-c-format
msgid "Built-in scopes"
-msgstr ""
+msgstr "내장된 범위 "
#. Tag: para
#: scopescontexts.xml:65
#, no-c-format
msgid "Web Beans defines four built-in scopes:"
-msgstr ""
+msgstr "Web Beans는 네 가지 내장된 범위를 정의합니다: "
#. Tag: literal
#: scopescontexts.xml:69
@@ -167,7 +167,7 @@
#: scopescontexts.xml:82
#, no-c-format
msgid "For a web application that uses Web Beans:"
-msgstr ""
+msgstr "Web Beans를 사용하는 웹 애플리케이션의 경우: "
#. Tag: para
#: scopescontexts.xml:86
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1108 - doc/trunk/reference/ko-KR.
by webbeans-commits@lists.jboss.org
Author: eukim
Date: 2009-01-20 00:40:00 -0500 (Tue, 20 Jan 2009)
New Revision: 1108
Modified:
doc/trunk/reference/ko-KR/scopescontexts.po
Log:
updated
Modified: doc/trunk/reference/ko-KR/scopescontexts.po
===================================================================
--- doc/trunk/reference/ko-KR/scopescontexts.po 2009-01-20 05:32:02 UTC (rev 1107)
+++ doc/trunk/reference/ko-KR/scopescontexts.po 2009-01-20 05:40:00 UTC (rev 1108)
@@ -8,7 +8,7 @@
"Project-Id-Version: scopescontexts\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-08 11:12+1000\n"
+"PO-Revision-Date: 2009-01-20 15:39+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -16,12 +16,13 @@
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"\n"
#. Tag: title
#: scopescontexts.xml:4
#, no-c-format
msgid "Scopes and contexts"
-msgstr ""
+msgstr "범위 및 컨텍스트 "
#. Tag: para
#: scopescontexts.xml:6
@@ -32,19 +33,19 @@
"the Web Bean. The scope also determines which clients refer to which "
"instances of the Web Bean. According to the Web Beans specification, a scope "
"determines:"
-msgstr ""
+msgstr "지금까지 <emphasis>범위 유형 어노테이션</emphasis>의 여러 가지 예를 살펴보았습니다. Web Bean의 범위는 Web Bean 인스턴스의 수명주기를 결정합니다. 또한 범위는 어떤 클라이언트가 어떤 Web Bean 인스턴스를 참조하게 할 지를 결정합니다. Web Beans 사양에 따라 범위는 다음을 결정합니다: "
#. Tag: para
#: scopescontexts.xml:14
#, no-c-format
msgid "When a new instance of any Web Bean with that scope is created"
-msgstr ""
+msgstr "범위와 함께 Web Bean의 새로운 인스턴스가 생성될 시기 "
#. Tag: para
#: scopescontexts.xml:17
#, no-c-format
msgid "When an existing instance of any Web Bean with that scope is destroyed"
-msgstr ""
+msgstr "범위와 함께 Web Bean의 기존 인스턴스가 제거될 시기 "
#. Tag: para
#: scopescontexts.xml:20
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1107 - doc/trunk/reference/ko-KR.
by webbeans-commits@lists.jboss.org
Author: eukim
Date: 2009-01-20 00:32:02 -0500 (Tue, 20 Jan 2009)
New Revision: 1107
Modified:
doc/trunk/reference/ko-KR/stereotypes.po
Log:
updated
Modified: doc/trunk/reference/ko-KR/stereotypes.po
===================================================================
--- doc/trunk/reference/ko-KR/stereotypes.po 2009-01-20 05:24:11 UTC (rev 1106)
+++ doc/trunk/reference/ko-KR/stereotypes.po 2009-01-20 05:32:02 UTC (rev 1107)
@@ -8,7 +8,7 @@
"Project-Id-Version: stereotypes\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-20 15:20+1000\n"
+"PO-Revision-Date: 2009-01-20 15:31+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -315,18 +315,17 @@
#: stereotypes.xml:109
#, no-c-format
msgid "Name defaulting with stereotypes"
-msgstr ""
+msgstr "스테레오타입과 함께 이름을 기본값으로 지정 "
#. Tag: para
#: stereotypes.xml:111
#, no-c-format
-#, fuzzy
msgid ""
"Finally, we can specify that all Web Beans with a certain stereotype have a "
"Web Bean name, defaulted by the Web Bean manager. Actions are often "
"referenced in JSP pages, so they're a perfect use case for this feature. All "
"we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr "마지막으로 특정 스테레오타입과 함께 모든 Web Beans가 Web Bean 이름을 갖도록 지정할 수 있습니다. "
+msgstr "마지막으로 특정 스테레오타입과 함께 모든 Web Beans가 Web Bean 관리자에 의해 기본값으된 Web Bean 이름을 갖도록 지정할 수 있습니다. 작업은 JSP 페이지에서 참조할 수 있어, 이러한 기능을 완벽하게 사용할 수 있는 경우라 할 수 있습니다. 필요한 작업은 빈 <literal>@Named</literal> 어노테이션을 추가하는 것입니다: "
#. Tag: programlisting
#: stereotypes.xml:116
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1106 - doc/trunk/reference/ko-KR.
by webbeans-commits@lists.jboss.org
Author: eukim
Date: 2009-01-20 00:24:11 -0500 (Tue, 20 Jan 2009)
New Revision: 1106
Modified:
doc/trunk/reference/ko-KR/stereotypes.po
Log:
updated
Modified: doc/trunk/reference/ko-KR/stereotypes.po
===================================================================
--- doc/trunk/reference/ko-KR/stereotypes.po 2009-01-20 03:39:51 UTC (rev 1105)
+++ doc/trunk/reference/ko-KR/stereotypes.po 2009-01-20 05:24:11 UTC (rev 1106)
@@ -8,7 +8,7 @@
"Project-Id-Version: stereotypes\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-20 12:34+1000\n"
+"PO-Revision-Date: 2009-01-20 15:20+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -17,12 +17,13 @@
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
"\n"
+"\n"
#. Tag: title
#: stereotypes.xml:4
#, no-c-format
msgid "Stereotypes"
-msgstr "전형적인 역할 (Stereotypes) "
+msgstr "스테레오타입 (Stereotypes) "
#. Tag: para
#: stereotypes.xml:6
@@ -33,49 +34,48 @@
#. Tag: para
#: stereotypes.xml:10
#, no-c-format
-#, fuzzy
msgid ""
"In many systems, use of architectural patterns produces a set of recurring "
"Web Bean roles. A stereotype allows a framework developer to identify such a "
"role and declare some common metadata for Web Beans with that role in a "
"central place."
-msgstr "여러 시스템에서, "
+msgstr "여러 시스템에서, 아키텍처 패턴을 사용하여 Web Bean 역할을 반복하는 모음을 생산합니다. 스테레오타입은 프레임워크 개발자가 이러한 역할을 인식하고 중앙 위치에서의 역할과 함께 Web Beans의 일반적인 메타데이터를 명시하게 합니다. "
#. Tag: para
#: stereotypes.xml:14
#, no-c-format
msgid "A stereotype encapsulates any combination of:"
-msgstr ""
+msgstr "스테레오타입은 다음의 조합을 캡슐화합니다: "
#. Tag: para
#: stereotypes.xml:18
#, no-c-format
msgid "a default deployment type,"
-msgstr ""
+msgstr "기본값 배치 유형 "
#. Tag: para
#: stereotypes.xml:21
#, no-c-format
msgid "a default scope type,"
-msgstr ""
+msgstr "기본값 범위 유형 "
#. Tag: para
#: stereotypes.xml:24
#, no-c-format
msgid "a restriction upon the Web Bean scope,"
-msgstr ""
+msgstr "Web Bean 범위에서의 제한, "
#. Tag: para
#: stereotypes.xml:27
#, no-c-format
msgid "a requirement that the Web Bean implement or extend a certain type, and"
-msgstr ""
+msgstr "특정 유형을 Web Bean이 구현하거나 확장하기 위한 요구 사항 "
#. Tag: para
#: stereotypes.xml:30
#, no-c-format
msgid "a set of interceptor binding annotations."
-msgstr ""
+msgstr "인터셉터 바인딩 어노테이션 모음 "
#. Tag: para
#: stereotypes.xml:34
@@ -83,13 +83,13 @@
msgid ""
"A stereotype may also specify that all Web Beans with the stereotype have "
"defaulted Web Bean names."
-msgstr ""
+msgstr "스테레오타입은 스테레오타입이 있는 모든 Web Beans이 Web Bean 이름을 기본값으로 하도록 지정할 수 도 있습니다. "
#. Tag: para
#: stereotypes.xml:37
#, no-c-format
msgid "A Web Bean may declare zero, one or multiple stereotypes."
-msgstr ""
+msgstr "Web Bean은 0 또는 하나 이상의 스테레오타입을 명시할 있습니다. "
#. Tag: para
#: stereotypes.xml:41
@@ -97,7 +97,7 @@
msgid ""
"A stereotype is a Java annotation type. This stereotype identifies action "
"classes in some MVC framework:"
-msgstr ""
+msgstr "스테레오타입은 Java 어노테이션 유형입니다. 이러한 스테레오타입은 일부 MVC 프레임워크에서 작업 클래스를 인식합니다: "
#. Tag: programlisting
#: stereotypes.xml:44
@@ -117,7 +117,7 @@
#: stereotypes.xml:46
#, no-c-format
msgid "We use the stereotype by applying the annotation to a Web Bean."
-msgstr ""
+msgstr "Web Bean에 어노테이션을 적용하여 스테레오타입을 사용합니다. "
#. Tag: programlisting
#: stereotypes.xml:48
@@ -133,7 +133,7 @@
#: stereotypes.xml:51
#, no-c-format
msgid "Default scope and deployment type for a stereotype"
-msgstr ""
+msgstr "스테레오타입에 대한 기본값 범위 및 배치 유형 "
#. Tag: para
#: stereotypes.xml:53
@@ -144,7 +144,7 @@
"<literal>@WebTier</literal> identifies Web Beans that should only be "
"deployed when the system executes as a web application, we might specify the "
"following defaults for action classes:"
-msgstr ""
+msgstr "스테레오타입은 해당 스테레오타입과 함께 Web Beans의 기본값 범위 또는 기본값 배치 유형을 지정할 수 있습니다. 예를 들어, <literal>@WebTier</literal> 배치 유형이 시스템이 웹 애플리케이션으로 실행될 때만 Web Beans이 배치됨을 인식할 경우, 각각의 작업 클래스에 대해 다음과 같은 기본값을 지정할 수 있습니다: "
#. Tag: programlisting
#: stereotypes.xml:59
@@ -170,7 +170,7 @@
msgid ""
"Of course, a particular action may still override these defaults if "
"necessary:"
-msgstr ""
+msgstr "물론 특정 작업은 필요할 경우 이러한 기본값을 덮어쓰기할 수 있습니다: "
#. Tag: programlisting
#: stereotypes.xml:64
@@ -186,13 +186,13 @@
#: stereotypes.xml:66
#, no-c-format
msgid "If we want to force all actions to a particular scope, we can do that too."
-msgstr ""
+msgstr "모든 작업을 특정 범위로 강제시키고자 할 경우, 강제시킬 수 있습니다. "
#. Tag: title
#: stereotypes.xml:72
#, no-c-format
msgid "Restricting scope and type with a stereotype"
-msgstr ""
+msgstr "스테레오타입으로 범위 및 유형 제한 "
#. Tag: para
#: stereotypes.xml:74
@@ -201,7 +201,7 @@
"Suppose that we wish to prevent actions from declaring certain scopes. Web "
"Beans lets us explicitly specify the set of allowed scopes for Web Beans "
"with a certain stereotype. For example:"
-msgstr ""
+msgstr "어떤 작업이 특정 범위를 명시하지 못하게 하길 원한다고 가정합니다. Web Beans는 특정 스테레오타입과 함께 Web Beans의 허용 범위 모음을 명시적으로 지정할 수 있게 합니다. 예: "
#. Tag: programlisting
#: stereotypes.xml:78
@@ -228,7 +228,7 @@
"If a particular action class attempts to specify a scope other than the Web "
"Beans request scope, an exception will be thrown by the Web Bean manager at "
"initialization time."
-msgstr ""
+msgstr "특정 작업 클래스가 Web Beans 요청 범위 외의 범위를 지정하려고 할 경우, 초기화시 예외 처리가 Web Bean 관리자에 의해 넘어가게 됩니다. "
#. Tag: para
#: stereotypes.xml:84
@@ -236,7 +236,7 @@
msgid ""
"We can also force all Web Bean with a certain stereotype to implement an "
"interface or extend a class:"
-msgstr ""
+msgstr "특정 스테레오타입과 함께 모든 Web Bean을 강제하여 인터페이스를 구현하거나 클래스를 확장할 수 있습니다: "
#. Tag: programlisting
#: stereotypes.xml:87
@@ -264,12 +264,14 @@
"<literal>AbstractAction</literal>, an exception will be thrown by the Web "
"Bean manager at initialization time."
msgstr ""
+"특정 작업 클래스가 <literal>AbstractAction</literal> 클래스를 확장하지 않을 경우, 초기화시 예외 처리가 Web "
+"Bean 관리자에 의해 넘어가게 됩니다. "
#. Tag: title
#: stereotypes.xml:96
#, no-c-format
msgid "Interceptor bindings for stereotypes"
-msgstr ""
+msgstr "스테레오타입 용 인터셉터 바인딩 "
#. Tag: para
#: stereotypes.xml:98
@@ -277,7 +279,7 @@
msgid ""
"A stereotype may specify a set of interceptor bindings to be inherited by "
"all Web Beans with that stereotype."
-msgstr ""
+msgstr "스테레오타입은 스테레오타입과 함께 모든 Web Beans에 의해 상속되기 위해 인터셉터 바인딩 모음을 지정할 수 있습니다. "
#. Tag: programlisting
#: stereotypes.xml:101
@@ -307,7 +309,7 @@
msgid ""
"This helps us get technical concerns even further away from the business "
"code!"
-msgstr ""
+msgstr "이는 비지니스 코드에서 발생할 수 있는 기술적 문제를 발생하지 않게 합니다! "
#. Tag: title
#: stereotypes.xml:109
@@ -318,12 +320,13 @@
#. Tag: para
#: stereotypes.xml:111
#, no-c-format
+#, fuzzy
msgid ""
"Finally, we can specify that all Web Beans with a certain stereotype have a "
"Web Bean name, defaulted by the Web Bean manager. Actions are often "
"referenced in JSP pages, so they're a perfect use case for this feature. All "
"we need to do is add an empty <literal>@Named</literal> annotation:"
-msgstr ""
+msgstr "마지막으로 특정 스테레오타입과 함께 모든 Web Beans가 Web Bean 이름을 갖도록 지정할 수 있습니다. "
#. Tag: programlisting
#: stereotypes.xml:116
@@ -355,13 +358,13 @@
msgid ""
"Now, <literal>LoginAction</literal> will have the name <literal>loginAction</"
"literal>."
-msgstr ""
+msgstr "이제 <literal>LoginAction</literal>은 <literal>loginAction</literal>이라는 이름을 갖게 됩니다. "
#. Tag: title
#: stereotypes.xml:124
#, no-c-format
msgid "Standard stereotypes"
-msgstr ""
+msgstr "표준 스테레오타입 "
#. Tag: para
#: stereotypes.xml:126
@@ -370,13 +373,13 @@
"We've already met two standard stereotypes defined by the Web Beans "
"specification: <literal>@Interceptor</literal> and <literal>@Decorator</"
"literal>."
-msgstr ""
+msgstr "Web Beans 사양에 의해 정의된 두가지 표준 스테레오타입 <literal>@Interceptor</literal> 및 <literal>@Decorator</literal>를 살펴보았습니다. "
#. Tag: para
#: stereotypes.xml:129
#, no-c-format
msgid "Web Beans defines one further standard stereotype:"
-msgstr ""
+msgstr "Web Beans는 하나 이상의 표준 스테레오타입을 정의합니다: "
#. Tag: programlisting
#: stereotypes.xml:131
@@ -403,5 +406,5 @@
"This stereotype is intended for use with JSF. Instead of using JSF managed "
"beans, just annotate a Web Bean <literal>@Model</literal>, and use it "
"directly in your JSF page."
-msgstr ""
+msgstr "이러한 스테레오타입은 JSF와 함께 사용하기 위한 것입니다. JSF 관리 beans을 사용하지 않고 Web Bean <literal>@Model</literal>을 어노테이션하여 이를 직접 JSF 페이지에서 사용합니다. "
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1105 - doc/trunk/reference/ko-KR.
by webbeans-commits@lists.jboss.org
Author: eukim
Date: 2009-01-19 22:39:51 -0500 (Mon, 19 Jan 2009)
New Revision: 1105
Modified:
doc/trunk/reference/ko-KR/events.po
doc/trunk/reference/ko-KR/stereotypes.po
Log:
updated
Modified: doc/trunk/reference/ko-KR/events.po
===================================================================
--- doc/trunk/reference/ko-KR/events.po 2009-01-20 02:18:56 UTC (rev 1104)
+++ doc/trunk/reference/ko-KR/events.po 2009-01-20 03:39:51 UTC (rev 1105)
@@ -8,7 +8,7 @@
"Project-Id-Version: events\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-20 01:27+1000\n"
+"PO-Revision-Date: 2009-01-20 10:55+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -23,6 +23,8 @@
"\n"
"\n"
"\n"
+"\n"
+"\n"
#. Tag: title
#: events.xml:4
@@ -140,7 +142,7 @@
"is interested in <emphasis>all</emphasis> events of a particular type. If it "
"does specify event bindings, it is only interested in events which also have "
"those event bindings."
-msgstr ""
+msgstr "옵저버 방식은 어떤 이벤트 바인딩도 지정할 필요가 없습니다—이러한 경우 특정 유형의 <emphasis>모든</emphasis> 이벤트에 관심을 갖게 됩니다. 이벤트 바인딩을 지정하지 않을 경우, 이러한 이벤트 바인딩이 있는 이벤트에만 관심을 갖게 됩니다. "
#. Tag: para
#: events.xml:53
@@ -540,7 +542,7 @@
"For example, the following observer method needs to refresh a query result "
"set that is cached in the application context, but only when transactions "
"that update the <literal>Category</literal> tree succeed:"
-msgstr ""
+msgstr "트랜잭션 옵저버는 이벤크가 제기된 트랜잭션의 완료 단계 이전 또는 이후 동안 이벤트 통지를 받습니다. 예를 들어, 다음과 같은 옵저버 방식은 트랜잭션이 <literal>Category</literal> 크리를 성공적으로 업데이트했을 경우에만 애플리케이션 컨텍스트에서 캐시된 쿼리 결과 모음을 새로고침해야 합니다: "
#. Tag: programlisting
#: events.xml:205
@@ -599,7 +601,7 @@
"Transactional observers are very important in a stateful object model like "
"Web Beans, because state is often held for longer than a single atomic "
"transaction."
-msgstr ""
+msgstr "트랜잭션 옵저버는 Web Beans와 같은 상태 기반 객체 모델에서 아주 중요합니다. 이는 단일 원자성 트랜잭션보다 오래 지속되기 때문입니다. "
#. Tag: para
#: events.xml:233
Modified: doc/trunk/reference/ko-KR/stereotypes.po
===================================================================
--- doc/trunk/reference/ko-KR/stereotypes.po 2009-01-20 02:18:56 UTC (rev 1104)
+++ doc/trunk/reference/ko-KR/stereotypes.po 2009-01-20 03:39:51 UTC (rev 1105)
@@ -8,7 +8,7 @@
"Project-Id-Version: stereotypes\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-08 11:13+1000\n"
+"PO-Revision-Date: 2009-01-20 12:34+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -16,28 +16,30 @@
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"\n"
#. Tag: title
#: stereotypes.xml:4
#, no-c-format
msgid "Stereotypes"
-msgstr ""
+msgstr "전형적인 역할 (Stereotypes) "
#. Tag: para
#: stereotypes.xml:6
#, no-c-format
msgid "According to the Web Beans specification:"
-msgstr ""
+msgstr "Web Beans 사양에 따라: "
#. Tag: para
#: stereotypes.xml:10
#, no-c-format
+#, fuzzy
msgid ""
"In many systems, use of architectural patterns produces a set of recurring "
"Web Bean roles. A stereotype allows a framework developer to identify such a "
"role and declare some common metadata for Web Beans with that role in a "
"central place."
-msgstr ""
+msgstr "여러 시스템에서, "
#. Tag: para
#: stereotypes.xml:14
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1104 - doc/trunk/reference/zh-TW.
by webbeans-commits@lists.jboss.org
Author: tchuang
Date: 2009-01-19 21:18:56 -0500 (Mon, 19 Jan 2009)
New Revision: 1104
Modified:
doc/trunk/reference/zh-TW/ri-spi.po
doc/trunk/reference/zh-TW/scopescontexts.po
doc/trunk/reference/zh-TW/specialization.po
Log:
Translation updated
Modified: doc/trunk/reference/zh-TW/ri-spi.po
===================================================================
--- doc/trunk/reference/zh-TW/ri-spi.po 2009-01-20 01:47:10 UTC (rev 1103)
+++ doc/trunk/reference/zh-TW/ri-spi.po 2009-01-20 02:18:56 UTC (rev 1104)
@@ -8,7 +8,7 @@
"Project-Id-Version: ri-spi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 16:31+0000\n"
-"PO-Revision-Date: 2009-01-20 11:03+1000\n"
+"PO-Revision-Date: 2009-01-20 11:43+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -627,7 +627,7 @@
msgid ""
"The servlet context can be used to allow your implementation of "
"<literal>ResourceLoader</literal> to interact with the container."
-msgstr ""
+msgstr "servlet 的 context 可被用來允許您 <literal>ResourceLoader</literal> 的實做來與 container 進行互動。"
#. Tag: title
#: ri-spi.xml:196
Modified: doc/trunk/reference/zh-TW/scopescontexts.po
===================================================================
--- doc/trunk/reference/zh-TW/scopescontexts.po 2009-01-20 01:47:10 UTC (rev 1103)
+++ doc/trunk/reference/zh-TW/scopescontexts.po 2009-01-20 02:18:56 UTC (rev 1104)
@@ -8,7 +8,7 @@
"Project-Id-Version: scopescontexts\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-19 18:37+1000\n"
+"PO-Revision-Date: 2009-01-20 12:10+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: scopescontexts.xml:4
#, no-c-format
msgid "Scopes and contexts"
-msgstr "Scope 和 context"
+msgstr "Scope 與 context"
#. Tag: para
#: scopescontexts.xml:6
@@ -31,25 +31,25 @@
"the Web Bean. The scope also determines which clients refer to which "
"instances of the Web Bean. According to the Web Beans specification, a scope "
"determines:"
-msgstr ""
+msgstr "到目前為止,我們已見過了一些 <emphasis>scope 類型標記(scope type annotations)</emphasis>的範例了。Web Bean 的 scope 可決定 Web Bean instance 的生命週期(lifecycle)。Scope 也能決定哪個客戶端參照哪個 Web Bean 的 instance。根據 Web Bean 規格,scope 可決定:"
#. Tag: para
#: scopescontexts.xml:14
#, no-c-format
msgid "When a new instance of any Web Bean with that scope is created"
-msgstr "任何含有該 scope 的 Web Bean 的新 instance 何時被建立"
+msgstr "任何含有該 scope 的 Web Bean 的新 instance 應何時被建立"
#. Tag: para
#: scopescontexts.xml:17
#, no-c-format
msgid "When an existing instance of any Web Bean with that scope is destroyed"
-msgstr ""
+msgstr "任何含有該 scope 的 Web Bean 的現有 instance 應何時被刪除"
#. Tag: para
#: scopescontexts.xml:20
#, no-c-format
msgid "Which injected references refer to any instance of a Web Bean with that scope"
-msgstr ""
+msgstr "哪個被注入的參照代表含有該 scope 的 Web Bean 的任何 instance"
#. Tag: para
#: scopescontexts.xml:25
@@ -75,7 +75,7 @@
msgid ""
"Web Beans features an <emphasis>extensible context model</emphasis>. It is "
"possible to define new scopes by creating a new scope type annotation:"
-msgstr ""
+msgstr "Web Bean 含有著一個 <emphasis>extensible context model(可延伸的 context 模型)</emphasis>。您可藉由建立新的 scope 類型標記來定義新的 scope:"
#. Tag: programlisting
#: scopescontexts.xml:37
@@ -99,7 +99,7 @@
"useful, we will also need to define a <literal>Context</literal> object that "
"implements the scope! Implementing a <literal>Context</literal> is usually a "
"very technical task, intended for framework development only."
-msgstr ""
+msgstr "當然,那是這項工作中最簡單的部份。若要此 scope 類型能被有效使用,我們還需要定義一個能夠實做該 scope 的 <literal>Context</literal> 物件!實做一個 <literal>Context</literal> 通常是一項非常技術性的工作,這只應使用於架構開發(framework development)上。"
#. Tag: para
#: scopescontexts.xml:44
@@ -107,7 +107,7 @@
msgid ""
"We can apply a scope type annotation to a Web Bean implementation class to "
"specify the scope of the Web Bean:"
-msgstr ""
+msgstr "我們可套用一個 scope 類型標記至一個 Web Bean 實做 class 來指定 Web Bean 的 scope:"
#. Tag: programlisting
#: scopescontexts.xml:47
@@ -123,19 +123,19 @@
#: scopescontexts.xml:58
#, no-c-format
msgid "Usually, you'll use one of Web Beans' built-in scopes."
-msgstr ""
+msgstr "您通常會使用到其中一個 Web Bean 的內建 scope。"
#. Tag: title
#: scopescontexts.xml:63
#, no-c-format
msgid "Built-in scopes"
-msgstr ""
+msgstr "內建 scope"
#. Tag: para
#: scopescontexts.xml:65
#, no-c-format
msgid "Web Beans defines four built-in scopes:"
-msgstr ""
+msgstr "Web Bean 定義了四個內建的 scope:"
#. Tag: literal
#: scopescontexts.xml:69
@@ -165,7 +165,7 @@
#: scopescontexts.xml:82
#, no-c-format
msgid "For a web application that uses Web Beans:"
-msgstr ""
+msgstr "使用 Web Bean 的網站應用程式:"
#. Tag: para
#: scopescontexts.xml:86
@@ -173,43 +173,43 @@
msgid ""
"any servlet request has access to active request, session and application "
"scopes, and, additionally"
-msgstr ""
+msgstr "任何 servlet 請求都可存取 active request、session 和應用程式 scope,另外"
#. Tag: para
#: scopescontexts.xml:90
#, no-c-format
msgid "any JSF request has access to an active conversation scope."
-msgstr ""
+msgstr "任何 JSF 請求也都能存取一個現行的 conversation scope。"
#. Tag: para
#: scopescontexts.xml:94
#, no-c-format
msgid "The request and application scopes are also active:"
-msgstr ""
+msgstr "請求和應用程式 scope 在下列情況中會是有效的:"
#. Tag: para
#: scopescontexts.xml:98
#, no-c-format
msgid "during invocations of EJB remote methods,"
-msgstr ""
+msgstr "當調用 EJB 的遠端 method 時、"
#. Tag: para
#: scopescontexts.xml:101
#, no-c-format
msgid "during EJB timeouts,"
-msgstr ""
+msgstr "當 EJB 逾時時、"
#. Tag: para
#: scopescontexts.xml:104
#, no-c-format
msgid "during message delivery to a message-driven bean, and"
-msgstr ""
+msgstr "當訊息傳送給訊息導向的 bean 時,以及"
#. Tag: para
#: scopescontexts.xml:107
#, no-c-format
msgid "during web service invocations."
-msgstr ""
+msgstr "當進行網路服務調用時。"
#. Tag: para
#: scopescontexts.xml:111
@@ -218,7 +218,7 @@
"If the application tries to invoke a Web Bean with a scope that does not "
"have an active context, a <literal>ContextNotActiveException</literal> is "
"thrown by the Web Bean manager at runtime."
-msgstr ""
+msgstr "若應用程式嘗試透過一個沒有有效 context 的 scope 來引動 Web Bean 的話,Web Bean 管理員便會在 runtime 時回傳一項 <literal>ContextNotActiveException</literal>。"
#. Tag: para
#: scopescontexts.xml:115
@@ -227,13 +227,13 @@
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
-msgstr ""
+msgstr "四個內建 scope 中有其中的三個對於所有 Java EE 開發人員來說應該都不陌生,所以我們將不花時間在此討論它們。不過在這之中有個 scope 則是新的。"
#. Tag: title
#: scopescontexts.xml:122
#, no-c-format
msgid "The conversation scope"
-msgstr ""
+msgstr "conversation scope"
#. Tag: para
#: scopescontexts.xml:124
Modified: doc/trunk/reference/zh-TW/specialization.po
===================================================================
--- doc/trunk/reference/zh-TW/specialization.po 2009-01-20 01:47:10 UTC (rev 1103)
+++ doc/trunk/reference/zh-TW/specialization.po 2009-01-20 02:18:56 UTC (rev 1104)
@@ -8,7 +8,7 @@
"Project-Id-Version: specialization\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 16:31+0000\n"
-"PO-Revision-Date: 2009-01-19 18:30+1000\n"
+"PO-Revision-Date: 2009-01-20 11:42+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: specialization.xml:4
#, no-c-format
msgid "Specialization"
-msgstr "專門化"
+msgstr "專門化(Specialization)"
#. Tag: para
#: specialization.xml:6
@@ -30,7 +30,7 @@
"<emphasis>override</emphasis> the implementation of an API at deployment "
"time. For example, the following enterprise Web Bean provides an "
"implementation of the API <literal>PaymentProcessor</literal> in production:"
-msgstr "我們已經看過了 Web Bean 的依賴注入模型如何讓我們在建置時<emphasis>置換</emphasis>一個 API 的實做了。比方說,下列企業級的 Web Bean 在生產時提供了 <literal>PaymentProcessor</literal> 這個 API 的一個實做:"
+msgstr "我們已經看過了 Web Bean 的依賴注入模型如何讓我們在建置時<emphasis>置換(override)</emphasis>了一個 API 的實做。比方說,下列企業級的 Web Bean 在生產時提供了 <literal>PaymentProcessor</literal> 這個 API 的一個實做:"
#. Tag: programlisting
#: specialization.xml:11
@@ -110,7 +110,7 @@
msgid ""
"the higher-priority Web Bean may not implement all the API types of the Web "
"Bean that it attempts to override,"
-msgstr ""
+msgstr "優先權較高的 Web Bean 無法實做它所嘗試置換的 Web Bean 的所有 API 類型、"
#. Tag: para
#: specialization.xml:36
@@ -118,7 +118,7 @@
msgid ""
"the higher-priority Web Bean may not declare all the binding types of the "
"Web Bean that it attempts to override,"
-msgstr ""
+msgstr "優先權較高的 Web Bean 無法宣告它所嘗試置換的 Web Bean 的所有綁定類型、"
#. Tag: para
#: specialization.xml:40
@@ -126,7 +126,7 @@
msgid ""
"the higher-priority Web Bean might not have the same name as the Web Bean "
"that it attempts to override, or"
-msgstr ""
+msgstr "優先權較高的 Web Bean 無法擁有與它所嘗試置換的 Web Bean 相同的名稱,或是"
#. Tag: para
#: specialization.xml:44
@@ -134,7 +134,7 @@
msgid ""
"the Web Bean that it attempts to override might declare a producer method, "
"disposal method or observer method."
-msgstr ""
+msgstr "它所嘗試置換的 Web Bean 可能能夠宣告一個 producer method、disposal method 或是 observer method。"
#. Tag: para
#: specialization.xml:49
@@ -143,7 +143,7 @@
"In each of these cases, the Web Bean that we tried to override could still "
"be called at runtime. Therefore, overriding is somewhat prone to developer "
"error."
-msgstr ""
+msgstr "在各個情況下,我們所嘗試置換的 Web Bean 都還是可能在 runtime 時被調用。因此,置換可能會造成開發上的錯誤。"
#. Tag: para
#: specialization.xml:52
@@ -153,13 +153,13 @@
"emphasis>, that helps the developer avoid these traps. Specialization looks "
"a little esoteric at first, but it's easy to use in practice, and you'll "
"really appreciate the extra security it provides."
-msgstr ""
+msgstr "Web Bean 提供了一項特殊的功能稱為 <emphasis>specialization</emphasis>,它可協助開發人員避免發生這些錯誤。Specialization 一開始看起來似乎有些難懂,不過實際上卻相當易於使用,並且您將會慶幸擁有它所提供的額外安全性。"
#. Tag: title
#: specialization.xml:58
#, no-c-format
msgid "Using specialization"
-msgstr ""
+msgstr "使用 specialization"
#. Tag: para
#: specialization.xml:60
@@ -167,13 +167,13 @@
msgid ""
"Specialization is a feature that is specific to simple and enterprise Web "
"Beans. To make use of specialization, the higher-priority Web Bean must:"
-msgstr ""
+msgstr "Specialization 是一項基於基本和企業級 Web Bean 的功能。若要有效使用 specialization,擁有較高優先權的 Web Bean 必須:"
#. Tag: para
#: specialization.xml:65
#, no-c-format
msgid "be a direct subclass of the Web Bean it overrides, and"
-msgstr ""
+msgstr "是個它所置換的 Web Bean 的直接 subclass,並且"
#. Tag: para
#: specialization.xml:68
@@ -182,13 +182,13 @@
"be a simple Web Bean if the Web Bean it overrides is a simple Web Bean or an "
"enterprise Web Bean if the Web Bean it overrides is an enterprise Web Bean, "
"and"
-msgstr ""
+msgstr "若它所置換的 Web Bean 是個基本的 Web Bean,它就必須是個基本 Web Bean,或是若它所置換的 Web Bean 是個企業級的 Web Bean,那它就必須是個企業級的 Web Bean,並且"
#. Tag: para
#: specialization.xml:73
#, no-c-format
msgid "be annotated <literal>@Specializes</literal>."
-msgstr ""
+msgstr "需被標記 <literal>@Specializes</literal>。"
#. Tag: programlisting
#: specialization.xml:77
@@ -212,19 +212,19 @@
msgid ""
"We say that the higher-priority Web Bean <emphasis>specializes</emphasis> "
"its superclass."
-msgstr ""
+msgstr "優先權較高的 Web Bean 會 <emphasis>specializes</emphasis> 它的 superclass。"
#. Tag: title
#: specialization.xml:85
#, no-c-format
msgid "Advantages of specialization"
-msgstr ""
+msgstr "Specializarion 的優點"
#. Tag: para
#: specialization.xml:87
#, no-c-format
msgid "When specialization is used:"
-msgstr ""
+msgstr "當使用了 specialization 時:"
#. Tag: para
#: specialization.xml:91
@@ -232,7 +232,7 @@
msgid ""
"the binding types of the superclass are automatically inherited by the Web "
"Bean annotated <literal>@Specializes</literal>, and"
-msgstr ""
+msgstr "superclass 的綁定類型就會自動地被標記為 <literal>@Specializes</literal> 的 Web Bean 繼承,並且"
#. Tag: para
#: specialization.xml:95
@@ -240,7 +240,7 @@
msgid ""
"the Web Bean name of the superclass is automatically inherited by the Web "
"Bean annotated <literal>@Specializes</literal>, and"
-msgstr ""
+msgstr "superclass 的 Web Bean 名稱會自動地被標記為 <literal>@Specializes</literal> 的 Web Bean 繼承,並且"
#. Tag: para
#: specialization.xml:99
@@ -249,7 +249,7 @@
"producer methods, disposal methods and observer methods declared by the "
"superclass are called upon an instance of the Web Bean annotated "
"<literal>@Specializes</literal>."
-msgstr ""
+msgstr "superclass 所宣告的 producer method、disposal method 以及 observer method 會被一個標記了 <literal>@Specializes</literal> 的 Web Bean instance 調用。"
#. Tag: para
#: specialization.xml:105
@@ -258,13 +258,13 @@
"In our example, the binding type <literal>@CreditCard</literal> of "
"<literal>CreditCardPaymentProcessor</literal> is inherited by "
"<literal>StagingCreditCardPaymentProcessor</literal>."
-msgstr ""
+msgstr "在我們的範例中,<literal>CreditCardPaymentProcessor</literal> 的 <literal>@CreditCard</literal> 綁定類型會被 <literal>StagingCreditCardPaymentProcessor</literal> 繼承。"
#. Tag: para
#: specialization.xml:109
#, no-c-format
msgid "Furthermore, the Web Bean manager will validate that:"
-msgstr ""
+msgstr "另外,Web Bean 管理員會針對於以下情形進行驗證:"
#. Tag: para
#: specialization.xml:113
@@ -273,7 +273,7 @@
"all API types of the superclass are API types of the Web Bean annotated "
"<literal>@Specializes</literal> (all local interfaces of the superclass "
"enterprise bean are also local interfaces of the subclass),"
-msgstr ""
+msgstr "superclass 的所有 API 類型都會是標記為 <literal>@Specializes</literal> 的 Web Bean 的 API 類型(superclass enterprise bean 的所有本地介面也都屬於 subclass 的本地介面)、"
#. Tag: para
#: specialization.xml:119
@@ -282,13 +282,13 @@
"the deployment type of the Web Bean annotated <literal>@Specializes</"
"literal> has a higher precedence than the deployment type of the superclass, "
"and"
-msgstr ""
+msgstr "標記為 <literal>@Specializes</literal> 的 Web Bean 的 deployment type 擁有比 superclass 的 deployment type 還要高的優先權,以及"
#. Tag: para
#: specialization.xml:124
#, no-c-format
msgid "there is no other enabled Web Bean that also specializes the superclass."
-msgstr ""
+msgstr "沒有其它已啟用的 Web Bean 會 specialize 該 superclass。"
#. Tag: para
#: specialization.xml:129
@@ -296,7 +296,7 @@
msgid ""
"If any of these conditions are violated, the Web Bean manager throws an "
"exception at initialization time."
-msgstr ""
+msgstr "若任何的這些條件被違反的話,Web Bean 管理員便會在初始化時回傳一個 exception。"
#. Tag: para
#: specialization.xml:132
@@ -305,5 +305,5 @@
"Therefore, we can be certain that the superclass will <emphasis>never</"
"emphasis> be called in any deployment of the system where the Web Bean "
"annotated <literal>@Specializes</literal> is deployed and enabled."
-msgstr ""
+msgstr "因此,我們能夠確定當標記為 <literal>@Specializes</literal> 的 Web Bean 被建置並啟用的情況下,superclass <emphasis>絕不</emphasis>會在系統的任何 deployment 中被調用。"
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1103 - doc/trunk/reference/es-ES.
by webbeans-commits@lists.jboss.org
Author: guegl
Date: 2009-01-19 20:47:10 -0500 (Mon, 19 Jan 2009)
New Revision: 1103
Modified:
doc/trunk/reference/es-ES/example.po
doc/trunk/reference/es-ES/next.po
doc/trunk/reference/es-ES/ri-spi.po
doc/trunk/reference/es-ES/ri.po
doc/trunk/reference/es-ES/scopescontexts.po
doc/trunk/reference/es-ES/specialization.po
doc/trunk/reference/es-ES/stereotypes.po
doc/trunk/reference/es-ES/xml.po
Log:
proofread
Modified: doc/trunk/reference/es-ES/example.po
===================================================================
--- doc/trunk/reference/es-ES/example.po 2009-01-20 01:04:23 UTC (rev 1102)
+++ doc/trunk/reference/es-ES/example.po 2009-01-20 01:47:10 UTC (rev 1103)
@@ -8,7 +8,7 @@
"Project-Id-Version: example\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-04 23:18+0000\n"
-"PO-Revision-Date: 2009-01-19 14:08+1000\n"
+"PO-Revision-Date: 2009-01-20 10:54+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -67,7 +67,7 @@
#: example.xml:13
#, no-c-format
msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr "Este Web Bean está vinculado al intérprete de comandos de inicio de sesión en la siguiente forma JSF:"
+msgstr "Este Web Bean está vinculado al intérprete de comandos de inicio de sesión en el siguiente formulario JSF:"
#. Tag: programlisting
#: example.xml:15
Modified: doc/trunk/reference/es-ES/next.po
===================================================================
--- doc/trunk/reference/es-ES/next.po 2009-01-20 01:04:23 UTC (rev 1102)
+++ doc/trunk/reference/es-ES/next.po 2009-01-20 01:47:10 UTC (rev 1103)
@@ -8,7 +8,7 @@
"Project-Id-Version: next\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2009-01-19 16:30+1000\n"
+"PO-Revision-Date: 2009-01-20 09:48+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -51,5 +51,5 @@
"article is substantially based upon a series of blog entries published there."
msgstr ""
"La implementación de Referencia (IR) de Web Beans se desarrolla en <literal>http://"
-"seamframework.org/WebBeans</literal>. El equipo de desarrollo de IR y la especificación de Web Beans lideran el Blog en <literal>http://in.relation.to</literal>. Este artículo se base en una serie de entradas de Blog publicadas allí."
+"seamframework.org/WebBeans</literal>. El equipo de desarrollo de la IR y la especificación de Web Beans lideran el Blog en <literal>http://in.relation.to</literal>. Este artículo se base en una serie de entradas de Blog publicadas allí."
Modified: doc/trunk/reference/es-ES/ri-spi.po
===================================================================
--- doc/trunk/reference/es-ES/ri-spi.po 2009-01-20 01:04:23 UTC (rev 1102)
+++ doc/trunk/reference/es-ES/ri-spi.po 2009-01-20 01:47:10 UTC (rev 1103)
@@ -8,7 +8,7 @@
"Project-Id-Version: ri-spi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 16:31+0000\n"
-"PO-Revision-Date: 2009-01-19 10:38+1000\n"
+"PO-Revision-Date: 2009-01-20 10:15+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: ri-spi.xml:4
#, no-c-format
msgid "Integrating the Web Beans RI into other environments"
-msgstr "Integración de IR de Web Beans en otros entornos"
+msgstr "Integración de la IR de Web Beans en otros entornos"
#. Tag: para
#: ri-spi.xml:6
@@ -32,7 +32,7 @@
"EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
"discuss the steps needed."
msgstr ""
-"Actualmente el IR de Web Beans sólo se ejecuta en JBoss AS 5; integrando el "
+"Actualmente la IR de Web Beans sólo se ejecuta en JBoss AS 5; integrando la "
"IR dentro de otros entornos EE (por ejemplo otro servidor de aplicación como "
"Glassfish), dentro de un contenedor de servlet (como Tomcat), o con una "
"implementación incrustada EJB3.1 es bastante fácil. En este apéndice veremos "
@@ -48,7 +48,7 @@
"code directly against Web Beans RI classes."
msgstr ""
"Debería ser posible ejecutar Web Beans en un entorno SE, pero tendría que "
-"hacer más cosas, agregar sus propios contextos y ciclo de vida. IR de Web "
+"hacer más cosas, agregar sus propios contextos y ciclo de vida. La IR de Web "
"Beans actualmente no expone puntos de extensión del ciclo de vida, por lo "
"tanto se tendría que codificar directamente en clases IR de Web Beans."
@@ -56,7 +56,7 @@
#: ri-spi.xml:24
#, no-c-format
msgid "The Web Beans RI SPI"
-msgstr "Wl SPI RI de Web Beans"
+msgstr "SPI RI de Web Beans"
#. Tag: para
#: ri-spi.xml:26
@@ -81,7 +81,7 @@
"interface; all property values are the fully qualified class name of the "
"implementation class."
msgstr ""
-"Puede especificar la implementación de un SPI ya sea como una propiedad del "
+"Se puede especificar la implementación de un SPI ya sea como una propiedad del "
"sistema, o en un archivo de propiedades <literal>META-INF/web-beans-ri."
"properties</literal>. Todos los nombres de propiedad son el nombre completo "
"de clase de la interfaz implementada; todos los valores de propiedad son el "
@@ -99,7 +99,7 @@
#: ri-spi.xml:48
#, no-c-format
msgid "Web Bean Discovery"
-msgstr "Descubrimiento de Web Bean"
+msgstr "Web Bean Discovery"
#. Tag: programlisting
#: ri-spi.xml:50
@@ -149,7 +149,7 @@
"is self-explanatory (the algorithm is described in Section 11.1 of the JSR-"
"299 specification, and isn't repeated here)."
msgstr ""
-"El descubrimiento de clases de Web Beans y de archivos <literal>web-bean."
+"El descubirmiento de clases de Web Bean y de archivos <literal>web-bean."
"xml</literal> es autoexplicativo (el algoritmo está descrito en la sección "
"11.1 de la especificación JSR299 y no se repite aquí)."
@@ -162,10 +162,10 @@
"webbeans.bootstrap.spi.WebBeanDiscovery</literal> with the fully qualified "
"class name as the value. For example:"
msgstr ""
-"Se le puede pedir al IR de Web Beans cargar la implementación de "
+"Se le puede pedir a la IR de Web Beans cargar la implementación de "
"<literal>WebBeanDiscovery</literal> mediante la propiedad <literal>org.jboss."
"webbeans.bootstrap.WebBeanDiscovery</literal> con el nombre completo de la "
-"clase calificada como el valor, Por ejemplo:"
+"clase calificada como el valor. Por ejemplo:"
#. Tag: programlisting
#: ri-spi.xml:65
@@ -183,7 +183,7 @@
msgid ""
"If the Web Beans RI is being used in a servlet container, it expects a "
"constructor of the form:"
-msgstr "Si el IR de Web Beans se utiliza en un contenedor de Servlet, se espera un constructor de la forma:"
+msgstr "Si la IR de Web Beans se utiliza en un contenedor de Servlet, se espera un constructor de la forma:"
#. Tag: programlisting
#: ri-spi.xml:72
@@ -198,14 +198,14 @@
"The servlet context can be used to allow your implementation of "
"<literal>WebBeanDiscovery</literal> to interact with the container."
msgstr ""
-"El contexto de servlet puede ser utilizado para permitir que la implementación de "
+"El contexto de servlet se puede utilizar para permitir que la implementación de "
"<literal>WebBeanDiscovery</literal> interactúe con el contenedor."
#. Tag: title
#: ri-spi.xml:82
#, no-c-format
msgid "EJB Discovery"
-msgstr "Descubrimiento de EJB"
+msgstr "EJB Discovery"
#. Tag: para
#: ri-spi.xml:84
@@ -216,7 +216,7 @@
"literal>. For each EJB in the application an EJBDescriptor should be "
"discovered:"
msgstr ""
-"El IR de Web Beans también delega al descubrimiento de bean "
+"La IR de Web Beans también delega el descubrimiento de bean "
"EJB3 al contenedor para no tener que examinar las anotaciones EJB3 o analizar <literal>ejb-"
"jar.xml</literal>. Para cada EJB en la aplicación se debe descubrir un "
"EJBDescriptor:"
@@ -418,7 +418,7 @@
"webbeans.bootstrap.spi.EjbDiscovery</literal> with the fully qualified class "
"name as the value. For example:"
msgstr ""
-"Se le puede pedir al IR de Web Beans cargar la implementación de "
+"Se le puede pedir a la IR de Web Beans cargar la implementación de "
"<literal>EjbDiscovery</literal> mediante la propiedad <literal>org.jboss."
"webbeans.bootstrap.spi.EjbDiscovery</literal> con el nombre completo de la "
"clase calificada como el valor. Por ejemplo:"
@@ -464,7 +464,7 @@
"environment where JNDI isn't available). To do this, implement <literal>org."
"jboss.webbeans.spi.resources.NamingContext</literal>:"
msgstr ""
-"El IR de Web Beans implementa el enlace JNDI y la búsqueda según los "
+"La IR de Web Beans implementa el enlace JNDI y la búsqueda según los "
"estándares, sin embargo si desea puede alterar el enlace y la "
"búsqueda (Por ejemplo en un entorno donde JNDI no está disponible). Para "
"este fin, implemente <literal>org.jboss.webbeans.spi.resources.NamingContext</"
@@ -522,7 +522,7 @@
#: ri-spi.xml:140 ri-spi.xml:173
#, no-c-format
msgid "and tell the RI to use it:"
-msgstr "y le pide al IR que lo utilice:"
+msgstr "y le pide a la IR que lo utilice:"
#. Tag: programlisting
#: ri-spi.xml:144
@@ -560,10 +560,10 @@
"environments. If this is case, you can implement <literal>org.jboss.webbeans."
"spi.ResourceLoader</literal>:"
msgstr ""
-"El IR de Web Beans necesita cargar clases y recursos desde el classpath en "
+"La IR de Web Beans necesita cargar clases y recursos desde el classpath en "
"varios momentos. Por defecto, se cargan desde el mismo classloader utilizado "
-"para cargar el IR, sin embargo, esto puede no ser apropiado para algunos "
-"entornos. Si este es el caso, puede implementar <literal>org.jboss.webbeans."
+"para cargar la IR, sin embargo, puede no ser lo apropiado para algunos "
+"entornos. Si este es el caso, implemente <literal>org.jboss.webbeans."
"spi.ResourceLoader</literal>:"
#. Tag: programlisting
@@ -665,8 +665,8 @@
"There are a number of requirements that the Web Beans RI places on the "
"container for correct functioning that fall outside implementation of APIs"
msgstr ""
-"Hay una serie de requisitos que el IR de Web Beans ubica en el contenedor "
-"para el funcionamiento correcto que están fuera de la implementación de los API."
+"Hay una serie de requisitos que la IR de Web Beans ubica en el contenedor "
+"para el funcionamiento correcto que está fuera de la implementación de las API."
#. Tag: term
#: ri-spi.xml:206
@@ -683,10 +683,8 @@
"through user configuation, classloader isolation for each Web Beans "
"application."
msgstr ""
-"Si se está integrando el IR de Web Beans dentro de un entorno que admite "
-"despliegue de varias aplicaciones, se debe habilitar, automáticamente o a "
-"través de la configuración del usuario, el aislamiento de classloader para "
-"cada aplicación de Web Beans."
+"Si se está integrando la IR de Web Beans dentro de un entorno que admite "
+"despliegue de varias aplicaciones, debe habilitar el aislamiento de classloader para cada aplicación de Web Beans, de forma automática o a través de la configuración del usuario."
#. Tag: term
#: ri-spi.xml:219
Modified: doc/trunk/reference/es-ES/ri.po
===================================================================
--- doc/trunk/reference/es-ES/ri.po 2009-01-20 01:04:23 UTC (rev 1102)
+++ doc/trunk/reference/es-ES/ri.po 2009-01-20 01:47:10 UTC (rev 1103)
@@ -8,7 +8,7 @@
"Project-Id-Version: ri\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 16:31+0000\n"
-"PO-Revision-Date: 2009-01-19 17:19+1000\n"
+"PO-Revision-Date: 2009-01-20 10:55+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: ri.xml:4
#, no-c-format
msgid "The Web Beans Reference Implementation"
-msgstr "La Implementación de referencia de Web Beans"
+msgstr "La implementación de referencia de Web Beans"
#. Tag: para
#: ri.xml:6
@@ -31,7 +31,7 @@
"download the latest developer release of Web Beans from the <ulink url="
"\"http://seamframework.org/Download\">the downloads page</ulink>."
msgstr ""
-"La implementación de referencia de Web Beans se desarrolla en <ulink url="
+"La implementación de referencia (IR) de Web Beans se desarrolla en <ulink url="
"\"http://seamframework.org/WebBeans\">the Seam project</ulink>. La última "
"versión de Web Beans se puede descargar desde <ulink url=\"http://"
"seamframework.org/Download\">the downloads page</ulink>."
@@ -99,7 +99,7 @@
"Next, download the Web Beans RI from <ulink url=\"http://seamframework.org/"
"Download\">seamframework.org</ulink>, and unzip it. For example"
msgstr ""
-"Luego, descargue el IR de Web Beans desde <ulink url=\"http://seamframework."
+"Luego, descargue la IR de Web Beans desde <ulink url=\"http://seamframework."
"org/Download\">seamframework.org</ulink>, y descomprímalo. Por ejemplo:"
#. Tag: programlisting
@@ -139,7 +139,7 @@
"and this step won't be necessary."
msgstr ""
"Como Web Beans es una nueva parte de software, necesitaremos actualizar JBoss "
-"AS para ejecutar el IR de Web Beans. Versiones futuras de JBOSS AS incluirán "
+"AS para ejecutar la IR de Web Beans. Versiones futuras de JBOSS AS incluirán "
"dichas actualizaciones, y este paso no será necesario."
#. Tag: para
@@ -154,7 +154,7 @@
msgstr ""
"Actualmente, se necesitan dos actualizaciones. Primero, se agrega el nuevo "
"desarrollador, <literal>webbeans.deployer</literal>. Así se agrega soporte "
-"para los archivos de Web Bean a JBoss AS, y permite al IR de Web Beans "
+"para los archivos de Web Bean a JBoss AS, y permite a la IR de Web Beans "
"solicitar el contenedor EJB3 y descubrir cuáles EJB están instalados en su "
"aplicación. En segundo lugar se necesita una actualización de JBoss EJB3."
@@ -280,7 +280,7 @@
"simple beans; the translator example is an ear example, and includes "
"enterprise beans, packaged in an EJB module. To try it out:"
msgstr ""
-"El IR de Web Beans RI incluye un segundo ejemplo que traducirá su texto en "
+"La IR de Web Beans incluye un segundo ejemplo que traducirá su texto en "
"Latín. El ejemplo numberguess es un ejemplo WAR, y sólo utiliza beans "
"sencillos; el ejemplo de traductor es un ejemplo EAR e incluye beans empresariales, empaquetados en un módulo EJB. Para probar:"
@@ -319,7 +319,7 @@
"high, or too low."
msgstr ""
"En la aplicación numberguess se le dan 10 intentos para adivinar un número "
-"de 1 a 100. Después de cada intento, se le dirá si es mayor o menor a su "
+"entre 1 y 100. Después de cada intento, se le dirá si es mayor o menor a su "
"número."
#. Tag: para
@@ -385,7 +385,7 @@
"There is an empty <literal>web-beans.xml</literal> file, which marks this "
"application as a Web Beans application."
msgstr ""
-"Hay un archivo<literal>web-beans.xml</literal> vacío, el cual marca esta "
+"Hay un archivo <literal>web-beans.xml</literal> vacío, el cual marca esta "
"aplicación como una aplicación de Web Beans."
#. Tag: para
@@ -560,7 +560,7 @@
"de <literal>.jsf</literal> </para> </callout> <callout arearefs=\"session."
"timeout\"> <para> Configurar una pausa de 10 minutos </para> </callout> </"
"calloutlist> </programlistingco> <note> <para> Aunque este demo es un demo "
-"de JSF, puede utilizar el IR de Web Beans con cualquier marco de la red "
+"de JSF, puede utilizar la IR de Web Beans con cualquier marco de la red "
"basado en Servlet. </para> </note> <para> Observemos una vista de Facelet: </"
"para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8\"/> "
"<area id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords=\"19"
@@ -641,7 +641,7 @@
"First, there is the <literal>@Random</literal> binding type, used for "
"injecting a random number:"
msgstr ""
-"El ejemplo existe de 4 clases, las primeras dos de las cuales son tipos de "
+"El ejemplo existe de 4 clases, las primeras dos son tipos de "
"enlace. Primero, hay un tipo de enlace <literal>@Random</literal>, utilizado "
"para inyectar un número aleatorio:"
@@ -992,7 +992,7 @@
#: ri.xml:332
#, no-c-format
msgid "The translator example"
-msgstr "Ejemplo del traductor"
+msgstr "Ejemplo de traductor"
#. Tag: para
#: ri.xml:334
@@ -1156,8 +1156,8 @@
"here for brevity):"
msgstr ""
"Más interesante aún es el facelet utilizado para traducir texto. Al igual "
-"que en el ejemplo de numberguess tenemos una plantilla, la cual rodea la "
-"forma (omitida aquí por razones de brevedad):"
+"que en el ejemplo de Numberguess tenemos una plantilla, la cual rodea el "
+"formulario (omitido aquí por razones de brevedad):"
#. Tag: programlisting
#: ri.xml:386
@@ -1308,8 +1308,8 @@
"translator, but we gave it a good go!"
msgstr ""
"<literal>TextTranslator</literal> es un bean con estado (con una interfaz "
-"local de negocios), donde lo mágico sucede - claro está, que no podemos "
-"desarrollar todo un traductor, pero le dimos una luz!"
+"local de negocios), donde lo mágico sucede - claro está, que no "
+"desarrollaramos un traductor completo, ¡pero le dimos una buena luz!"
#. Tag: para
#: ri.xml:425
@@ -1319,7 +1319,7 @@
"user, and dispatches it to the translator. This is a request scoped, named, "
"stateful session bean, which injects the translator."
msgstr ""
-"Por último, hay un controlador orientado UI que recoge el texto desde el "
+"Por último, hay un controlador orientado a UI que recoge el texto desde el "
"usuario y lo envía al traductor. Esta es una petición en ámbito, llamada "
"bean con estado de sesión que inyecta el traductor."
@@ -1394,8 +1394,8 @@
"WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</"
"ulink>."
msgstr ""
-"Aquí termina nuestro corto recorrido por los ejemplos IR de Web Beans. Para "
-"mayor información acerca de IR o ayuda, por favor consulte <ulink url="
+"Aquí termina nuestro corto recorrido por los ejemplos de la IR de Web Beans. Para "
+"mayor información acerca de la IR o ayuda, por favor consulte <ulink url="
"\"http://www.seamframework.org/WebBeans/Development\">http://www."
"seamframework.org/WebBeans/Development</ulink>."
Modified: doc/trunk/reference/es-ES/scopescontexts.po
===================================================================
--- doc/trunk/reference/es-ES/scopescontexts.po 2009-01-20 01:04:23 UTC (rev 1102)
+++ doc/trunk/reference/es-ES/scopescontexts.po 2009-01-20 01:47:10 UTC (rev 1103)
@@ -8,7 +8,7 @@
"Project-Id-Version: scopescontexts\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2009-01-16 15:39+1000\n"
+"PO-Revision-Date: 2009-01-20 11:45+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -32,7 +32,7 @@
"instances of the Web Bean. According to the Web Beans specification, a scope "
"determines:"
msgstr ""
-"Por lo tanto, hemos visto algunos ejemplos de <emphasis>anotaciones de tipo ámbito</"
+"Hasta ahora, hemos visto algunos ejemplos de <emphasis>anotaciones de tipo ámbito</"
"emphasis>. El ámbito de un Web Bean determina el ciclo de vida de instancias del Web Bean. El ámbito también determina qué clientes se refieren a qué instancias del Web Bean. Según la especificación de Web Beans, un ámbito determina:"
#. Tag: para
@@ -64,10 +64,10 @@
"the first time a <literal>CurrentUser</literal> is needed in that session, "
"and automatically destroyed when the session ends."
msgstr ""
-"Por ejemplo, si tenemos una sesión con ámbito Web Bean, <literal>CurrentUser</"
+"Por ejemplo, si tenemos una sesión con ámbito Web Bean, <literal>UsuarioActual</"
"literal>, todos los Web Beans que son llamados en el contexto de la misma "
"<literal>HttpSession</literal> verán la misma instancia del "
-"<literal>CurrentUser</literal>. Dicha instancia será creada automáticamente la primera vez que se necesite un <literal>CurrentUser</literal> en esa sesión, y será destruida automáticamente al terminar la sesión."
+"<literal>UsuarioActual</literal>. Dicha instancia se creará automáticamente la primera vez que se necesite un <literal>UsuarioActual</literal> en esa sesión, y se destruirá automáticamente al terminar la sesión."
#. Tag: title
#: scopescontexts.xml:32
@@ -107,7 +107,7 @@
"useful, we will also need to define a <literal>Context</literal> object that "
"implements the scope! Implementing a <literal>Context</literal> is usually a "
"very technical task, intended for framework development only."
-msgstr "Claro está que esa es la parte fácil. Para que este tipo de ámbito sea útil, necesitaremos también definir un objeto <literal>Contexto</literal> que implemente el ámbito. La implementación de un <literal>Context</literal> suele ser una tarea muy técnica, únicamente destinada a desarrollo de marco."
+msgstr "Claro está que esa es la parte fácil. Para que este tipo de ámbito sea útil, necesitaremos también definir un objeto <literal>Contexto</literal> que implemente el ámbito. La implementación de un <literal>Contexto</literal> suele ser una tarea muy técnica, únicamente destinada a desarrollo de marco."
#. Tag: para
#: scopescontexts.xml:44
@@ -193,7 +193,7 @@
#: scopescontexts.xml:94
#, no-c-format
msgid "The request and application scopes are also active:"
-msgstr "Los ámbitos de petición y aplicación están también activos:"
+msgstr "Los ámbitos de petición y aplicación también están activos:"
#. Tag: para
#: scopescontexts.xml:98
@@ -235,7 +235,7 @@
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
-msgstr "Tres de los ámbitos incorporados deben ser extremadamente familiares a cualquiere desarrollador de Java EE, por eso no perdamos tiempo en explicarlos aquí. No obstante, uno de los ámbitos es nuevo."
+msgstr "Tres de los ámbitos incorporados deben ser extremadamente familiares a cualquier desarrollador de Java EE, por eso no perdamos tiempo en explicarlos aquí. No obstante, uno de los ámbitos es nuevo."
#. Tag: title
#: scopescontexts.xml:122
@@ -251,7 +251,7 @@
"in that it holds state associated with a user of the system, and spans "
"multiple requests to the server. However, unlike the session scope, the "
"conversation scope:"
-msgstr "El ámbito de conversación de Web Beans es una poco como el ámbito de sesión tradicional en que mantiene el estado asociado con un usuario del sistema y abarca varias peticiones al servidor. SIn embargo, a diferencia del ámbito de sesión, el ámbito de conversación:"
+msgstr "El ámbito de conversación de Web Beans es un poco parecido al ámbito de sesión tradicional en que mantiene el estado asociado con el usuario del sistema y abarca varias peticiones al servidor. Sin embargo, a diferencia del ámbito de sesión, el ámbito de conversación:"
#. Tag: para
#: scopescontexts.xml:130
@@ -265,7 +265,7 @@
msgid ""
"holds state associated with a particular web browser tab in a JSF "
"application."
-msgstr "mantiene un estado asociado con un tabulador de navegador de red determinado en una aplicación JSF."
+msgstr "mantiene un estado asociado con una ficha de navegador de red determinada en una aplicación JSF."
#. Tag: para
#: scopescontexts.xml:138
@@ -285,7 +285,7 @@
"conversations are destroyed at the end of the request. If a conversation "
"should hold state across multiple requests, it must be explicitly promoted "
"to a <emphasis>long-running conversation</emphasis>."
-msgstr "El contexto de conversación está activo durante cualquier petición de JSF. Sin embargo, la mayoría de las conversaciones se destruyen al final de la petición. Si una conversación debe mantener un estado a través de múltiples peticiones, debe ser explícitamente promovido a <emphasis>conversación-larga</emphasis>."
+msgstr "El contexto de conversación está activo durante cualquier petición de JSF. Sin embargo, la mayoría de las conversaciones se destruyen al final de la petición. Si una conversación debe mantener un estado a través de múltiples peticiones, debe ser explícitamente promovida a <emphasis>conversación-larga</emphasis>."
#. Tag: title
#: scopescontexts.xml:149
@@ -403,7 +403,7 @@
"<literal>Conversation</literal> API. But some other Web Beans have a "
"lifecycle which depends completely upon another object."
msgstr ""
-"Este Web Bean puede controlar su propio ciclo de vida mediante el API de "
+"Este Web Bean puede controlar su propio ciclo de vida mediante la API de "
"<literal>Conversación</literal>. No obstante, algunos otros Web Beans tienen un ciclo de vida que depende totalmente de otro objeto."
#. Tag: title
@@ -437,7 +437,7 @@
#: scopescontexts.xml:186
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
-msgstr "Por lo tanto, el siguiente enlace propaga la conversación:"
+msgstr "Por consiguiente, el siguiente enlace propaga la conversación:"
#. Tag: programlisting
#: scopescontexts.xml:188
@@ -458,7 +458,7 @@
"very easy to implement the common POST-then-redirect pattern, without resort "
"to fragile constructs such as a \"flash\" object. In this case, the Web Bean "
"manager automatically adds a request parameter to the redirect URL."
-msgstr "El administrador de Web Bean también se requiere para propagar conversaciones a través de cualquier redirección, incluso si la conversación no está marcada como larga. Esto facilita mucho la implementación del patrón de POST-luego-redirija, sin recurrir a construcciones frágiles tales como un objeto \"flash\". En este caso, el administrador de Web Bean agrega automáticamente un parámetro a la URL de redirección."
+msgstr "El administrador de Web Bean también se requiere para propagar conversaciones a través de cualquier redirección, incluso si la conversación no está marcada como larga. Esto facilita mucho la implementación del patrón de POST-luego-redirigir, sin recurrir a construcciones frágiles tales como un objeto \"flash\". En este caso, el administrador de Web Bean agrega automáticamente un parámetro a la URL de redirección."
#. Tag: title
#: scopescontexts.xml:200
@@ -475,7 +475,7 @@
"manager implementation will normally do this on the basis of some kind of "
"timeout—though this is not required by the Web Beans specification. The "
"timeout is the period of inactivity before the conversation is destroyed."
-msgstr "Con el fin de preservar recursos, el administrador de Web Bean puede destruir una conversación y todo el estado en su contexto en cualquier momento. Una implementación de administrador de Web Bean normalmente hace esto con base en alguna clase de pausa—aunque no sea requerido por la especificación de Web Beans. La pausa es el periodo de inactividad antes de que la conversación sea destruida."
+msgstr "Con el fin de preservar recursos, el administrador de Web Bean puede destruir una conversación y todo el estado en su contexto en cualquier momento. Una implementación del administrador de Web Bean normalmente hace esto con base en alguna clase de pausa—aunque la especificación de Web Beans no lo requiere. La pausa es el periodo de inactividad anterior a la destrucción de la conversación."
#. Tag: para
#: scopescontexts.xml:208
@@ -505,9 +505,7 @@
"In addition to the four built-in scopes, Web Beans features the so-called "
"<emphasis>dependent pseudo-scope</emphasis>. This is the default scope for a "
"Web Bean which does not explicitly declare a scope type."
-msgstr ""
-"Además los cuatro ámbitos incorporados, funciones de Web Beans las tan llamadas "
-"<emphasis>ámbito seudo dependiente</emphasis>. Este es el ámbito para un Web Bean que no declare explícitamente un tipo de ámbito."
+msgstr "Además de los cuatro ámbitos incorporados, Web Beans ofrece el <emphasis>ámbito seudo dependiente</emphasis>. Este es el ámbito para el Web Bean que no declare explícitamente un tipo de ámbito."
#. Tag: para
#: scopescontexts.xml:225
@@ -613,7 +611,7 @@
"So the following injected attributes each get a different instance of "
"<literal>Calculator</literal>:"
msgstr ""
-"Por lo tanto cada uno de los siguientes atributos inyectados obtiene una instancia diferente de "
+"Por lo tanto cada uno de los siguientes atributos inyectados obtiene una instancia diferente a "
"<literal>Calculator</literal>:"
#. Tag: programlisting
@@ -642,7 +640,7 @@
"of <literal>Calculator</literal> injected. The <literal>newCalculator</"
"literal> field has a new instance of <literal>Calculator</literal> injected, "
"with a lifecycle that is bound to the owning <literal>PaymentCalc</literal>."
-msgstr "El campo <literal>calculadora</literal> tiene una instancia de conversación-en ámbito de <literal>Calculator</literal> inyectada. El campo <literal>newCalculator</literal><literal> tiene una nueva instancia de <literal>Calculator</literal> inyectada con un ciclo de vida vinculado al propietario de <literal>PaymentCalc</literal>."
+msgstr "El campo <literal>calculadora</literal> tiene una instancia de conversación-en ámbito de <literal>Calculator</literal> inyectada. El campo <literal>newCalculator</literal> tiene una nueva instancia de <literal>Calculator</literal> inyectada con un ciclo de vida vinculado al propietario de <literal>PaymentCalc</literal>."
#. Tag: para
#: scopescontexts.xml:276
Modified: doc/trunk/reference/es-ES/specialization.po
===================================================================
--- doc/trunk/reference/es-ES/specialization.po 2009-01-20 01:04:23 UTC (rev 1102)
+++ doc/trunk/reference/es-ES/specialization.po 2009-01-20 01:47:10 UTC (rev 1103)
@@ -8,7 +8,7 @@
"Project-Id-Version: specialization\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-04 23:18+0000\n"
-"PO-Revision-Date: 2009-01-19 10:55+1000\n"
+"PO-Revision-Date: 2009-01-20 11:16+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: specialization.xml:4
#, no-c-format
msgid "Specialization"
-msgstr "Especialización"
+msgstr "Specialization"
#. Tag: para
#: specialization.xml:6
@@ -32,7 +32,7 @@
"implementation of the API <literal>PaymentProcessor</literal> in production:"
msgstr ""
"Hemos visto cómo el modelo de inyección de dependencia de Web Beans nos permite "
-"<emphasis>omitir</emphasis> la implementación de un API en el momento del despliegue. Por ejemplo, la siguiente Web Bean empresarial provee una implementación del <literal>PaymentProcessor</literal> de API en producción:"
+"<emphasis>omitir</emphasis> la implementación de un API en el momento del despliegue. Por ejemplo, la siguiente Web Bean empresarial provee una implementación del <literal>Procesador de Pago</literal> de API en producción:"
#. Tag: programlisting
#: specialization.xml:11
@@ -126,7 +126,7 @@
msgid ""
"the higher-priority Web Bean may not declare all the binding types of the "
"Web Bean that it attempts to override,"
-msgstr "el Web Bean de prioridad más alta puede que no declare todos los tipos de enlace del Web Bean que intenta omitir, "
+msgstr "el Web Bean de prioridad más alta puede que no declare todos los tipos de enlace del Web Bean que intenta omitir,"
#. Tag: para
#: specialization.xml:40
@@ -162,14 +162,14 @@
"a little esoteric at first, but it's easy to use in practice, and you'll "
"really appreciate the extra security it provides."
msgstr ""
-"Web Beans ofrece una función especial, llamada <emphasis>specialization</"
+"Web Beans ofrece una función especial, llamada <emphasis>Specialization</"
"emphasis>, la cual ayuda al desarrollador a evitar estas trampas. Specialization parece un poco esotérica al comienzo, pero es fácil de utilizar en la práctica y realmente apreciará la seguridad adicional que proporciona."
#. Tag: title
#: specialization.xml:58
#, no-c-format
msgid "Using specialization"
-msgstr "Uso de especialización"
+msgstr "Uso de Specialization"
#. Tag: para
#: specialization.xml:60
@@ -179,7 +179,7 @@
"Beans. To make use of specialization, the higher-priority Web Bean must:"
msgstr ""
"Specialization es una función específica para Web "
-"Beans sencillos y empresariales. Para hacer uso de specialization, la Web Bean de prioridad más alta debe:"
+"Beans sencillos y empresariales. Para hacer uso de Specialization, la Web Bean de prioridad más alta debe:"
#. Tag: para
#: specialization.xml:65
@@ -230,13 +230,13 @@
#: specialization.xml:85
#, no-c-format
msgid "Advantages of specialization"
-msgstr "Ventajas de especialización"
+msgstr "Ventajas de Specialization"
#. Tag: para
#: specialization.xml:87
#, no-c-format
msgid "When specialization is used:"
-msgstr "Cuándo se utiliza especialización:"
+msgstr "Cuando se utiliza Specialization:"
#. Tag: para
#: specialization.xml:91
Modified: doc/trunk/reference/es-ES/stereotypes.po
===================================================================
--- doc/trunk/reference/es-ES/stereotypes.po 2009-01-20 01:04:23 UTC (rev 1102)
+++ doc/trunk/reference/es-ES/stereotypes.po 2009-01-20 01:47:10 UTC (rev 1103)
@@ -8,7 +8,7 @@
"Project-Id-Version: stereotypes\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2009-01-16 13:19+1000\n"
+"PO-Revision-Date: 2009-01-20 11:23+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -36,7 +36,7 @@
"Web Bean roles. A stereotype allows a framework developer to identify such a "
"role and declare some common metadata for Web Beans with that role in a "
"central place."
-msgstr "En muchos sistemas, el uso de patrones arquitecturales produce una serie de roles de Web Beans recurrentes. Un estereotipo permite a un desarrollador de marco identificar dicho rol y declarar algunos metadatos comunes para Web Beans con ese rol en un lugar central."
+msgstr "En muchos sistemas, el uso de patrones arquitecturales produce una serie de roles de Web Beans recurrentes. Un estereotipo permite al desarrollador de marco identificar dicho rol y declarar algunos metadatos comunes para Web Beans con ese rol en un lugar central."
#. Tag: para
#: stereotypes.xml:14
@@ -94,7 +94,7 @@
msgid ""
"A stereotype is a Java annotation type. This stereotype identifies action "
"classes in some MVC framework:"
-msgstr "Un estereotipo es un tipo de anotación Java. Dicho estereotipo identifica clases de acción en algunos marcos MVC:"
+msgstr "Un estereotipo es un tipo de anotación Java. Dicho estereotipo identifica clases de acción en algún marco MVC:"
#. Tag: programlisting
#: stereotypes.xml:44
@@ -141,7 +141,7 @@
"<literal>@WebTier</literal> identifies Web Beans that should only be "
"deployed when the system executes as a web application, we might specify the "
"following defaults for action classes:"
-msgstr "Un estereotipo puede especificar un ámbito y /o tipo de despliegue predeterminados para Web Beans con ese estereotipo. Por ejemplo, si el tipo de despliegue <literal>@WebTier</literal> identifica Web Beans que sólo deben ser desplegados sólo cuando el sistema se ejecuta como una aplicación de red, podríamos especificar los siguientes valores por defecto para clases de acción:"
+msgstr "Un estereotipo puede especificar un ámbito y /o tipo de despliegue predeterminados para Web Beans con ese estereotipo. Por ejemplo, si el tipo de despliegue <literal>@WebTier</literal> identifica Web Beans que deben ser desplegados sólo cuando el sistema se ejecuta como una aplicación de red, podríamos especificar los siguientes valores por defecto para clases de acción:"
#. Tag: programlisting
#: stereotypes.xml:59
@@ -225,7 +225,7 @@
"If a particular action class attempts to specify a scope other than the Web "
"Beans request scope, an exception will be thrown by the Web Bean manager at "
"initialization time."
-msgstr "Si una clase de acción determinada intenta especificar un ámbito diferente al ámbito de la petición de Web Beans, el administrador de Web Bean producirá una excepción en el momento de inicialización"
+msgstr "Si una clase de acción determinada intenta especificar un ámbito diferente al ámbito de la petición de Web Beans, el administrador de Web Bean producirá una excepción en el momento de inicialización."
#. Tag: para
#: stereotypes.xml:84
@@ -304,13 +304,13 @@
msgid ""
"This helps us get technical concerns even further away from the business "
"code!"
-msgstr "Esto nos ayuda a obtener cuestiones técnicas aún más allá del código de negocios!"
+msgstr "¡Esto nos ayuda a obtener cuestiones técnicas aún más allá del código de negocios!"
#. Tag: title
#: stereotypes.xml:109
#, no-c-format
msgid "Name defaulting with stereotypes"
-msgstr "Predeterminación de nombre con estereotipo"
+msgstr "Predeterminación de nombre con estereotipos"
#. Tag: para
#: stereotypes.xml:111
Modified: doc/trunk/reference/es-ES/xml.po
===================================================================
--- doc/trunk/reference/es-ES/xml.po 2009-01-20 01:04:23 UTC (rev 1102)
+++ doc/trunk/reference/es-ES/xml.po 2009-01-20 01:47:10 UTC (rev 1103)
@@ -8,7 +8,7 @@
"Project-Id-Version: xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2009-01-16 14:27+1000\n"
+"PO-Revision-Date: 2009-01-20 11:40+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -47,7 +47,7 @@
#: xml.xml:20
#, no-c-format
msgid "In either of these cases, Web Beans gives us two options:"
-msgstr "En cualquiera de estos casos, Web Beans nos ofrece dos opciones:"
+msgstr "En estos casos, Web Beans nos ofrece dos opciones:"
#. Tag: para
#: xml.xml:23
@@ -98,7 +98,7 @@
"namespace is formed by prepending <literal>urn:java:</literal> to the Java "
"package name. For the package <literal>com.mydomain.myapp</literal>, the XML "
"namespace is <literal>urn:java:com.mydomain.myapp</literal>."
-msgstr "Para cada paquete de Java, Web Beans define el espacio de nombre (namespace) de XML correspondiente. El el espacio de nombre se forma añadiendo <literal>urn:java:</literal> al nombre de paquete de Java. Para el paquete <literal>com.mydomain.myapp</literal>, el espacio de nombre de XML es <literal>urn:java:com.mydomain.myapp</literal>."
+msgstr "Para cada paquete de Java, Web Beans define el espacio de nombre de XML correspondiente. El espacio de nombre se forma añadiendo <literal>urn:java:</literal> al nombre de paquete de Java. Para el paquete <literal>com.mydomain.myapp</literal>, el espacio de nombre de XML es <literal>urn:java:com.mydomain.myapp</literal>."
#. Tag: para
#: xml.xml:47
@@ -109,7 +109,7 @@
"name of the Java type. Fields and methods of the type are specified by child "
"elements in the same namespace. If the type is an annotation, members are "
"specified by attributes of the element."
-msgstr "Los tipos Java pertenecientes a un paquete se conocen mediante un elemento XML en el espacio de nombre correspondiente al paquete. El nombre del elemento es el nombre del tipo de Java y los métodos del tipo están especificados por elementos secundarios en el mismo espacio de nombre. Si el tipo es una anotación, los miembros están especificados por atributos del elemento."
+msgstr "Los tipos Java pertenecientes a un paquete se conocen por un elemento XML en el espacio de nombre correspondiente al paquete. El nombre del elemento es el nombre del tipo de Java y los métodos del tipo están especificados por elementos secundarios en el mismo espacio de nombre. Si el tipo es una anotación, los miembros son especificados por atributos del elemento."
#. Tag: para
#: xml.xml:53
@@ -117,7 +117,7 @@
msgid ""
"For example, the element <literal><util:Date/></literal> in the "
"following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Por ejemplo, el elemento <literal><util:Date/></literal> el siguiente fragmento XML se refiere a la clase <literal>java.util.Date</literal>:"
+msgstr "Por ejemplo, el elemento <literal><util:Date/></literal> en el siguiente fragmento XML se refiere a la clase <literal>java.util.Date</literal>:"
#. Tag: programlisting
#: xml.xml:56
@@ -270,7 +270,7 @@
msgid ""
"Interceptors and decorators are just simple Web Beans, so they may be "
"declared just like any other simple Web Bean:"
-msgstr "Los interceptores y decoradores son sólo Web Beans sencillos, por consiguiente pueden ser declarados como cualquier otro Web Bean sencillo:"
+msgstr "Los interceptores y decoradores son sólo Web Beans sencillos, por consiguiente, pueden ser declarados como cualquier otro Web Bean sencillo:"
#. Tag: programlisting
#: xml.xml:90
@@ -345,7 +345,7 @@
"a set of initial field values. This Web Bean has a special, container-"
"generated binding and is therefore injectable only to the specific injection "
"point at which it is declared."
-msgstr "El elemento <literal><Name></literal> declara un Web Bean sencillo de ámbito <literal>@Dependent</literal> y clase <literal>Name</literal>, con una serie de valores de campo iniciales. Este Web Bean tiene un enlace de contenedor-generado y es por lo tanto inyectable únicamente en el punto de inyección en el cual es declarado."
+msgstr "El elemento <literal><Name></literal> declara un Web Bean sencillo de ámbito <literal>@Dependent</literal> y clase <literal>Name</literal>, con una serie de valores de campo iniciales. Este Web Bean tiene un enlace de contenedor-generado y es, por lo tanto, inyectable únicamente en el punto de inyección en el cual es declarado."
#. Tag: para
#: xml.xml:116
@@ -354,7 +354,7 @@
"This simple but powerful feature allows the Web Beans XML format to be used "
"to specify whole graphs of Java objects. It's not quite a full databinding "
"solution, but it's close!"
-msgstr "Esta función simple pero poderosa permite al formato de XML de Web Beans pueda utilizarse para especificar gráficos completos de objetos Java. No es del todo una solución para enlazar datos, pero ¡está cerca!"
+msgstr "Esta función simple pero poderosa permite que el formato XML de Web Beans pueda utilizarse para especificar gráficos completos de objetos Java. No es del todo una solución para enlazar datos, pero ¡está cerca!"
#. Tag: title
#: xml.xml:123
@@ -370,7 +370,7 @@
"developers, or who don't have access to our code, we need to provide a "
"schema. There's nothing specific to Web Beans about writing or using the "
"schema."
-msgstr "Si deseamos que nuestro formato de documento XML sea creado por personas que no son desarrolladores de Java, o que no tienen acceso a nuestro código, necesitamos proporcionar un esquema. No hay nada específico para Web Beans sobre escribir o utilizar el esquema."
+msgstr "Si deseamos que nuestro formato de documento XML sea creado por personas que no son desarrolladores de Java, o que no tienen acceso a nuestro código, necesitamos proporcionar un esquema. No hay nada específico de Web Beans sobre escribir o utilizar el esquema."
#. Tag: programlisting
#: xml.xml:130
@@ -411,5 +411,5 @@
"Writing an XML schema is quite tedious. Therefore, the Web Beans RI project "
"will provide a tool which automatically generates the XML schema from "
"compiled Java code."
-msgstr "La escritura de un esquema XML es bastante tediosa. Por lo tanto, el proyecto IR de Web Beans proporcionará una herramienta que genere automáticamente el esquema de XML desde el código de Java compilado."
+msgstr "La escritura de un esquema XML es bastante tediosa. Por lo tanto, el proyecto de la IR de Web Beans proporcionará una herramienta que genere automáticamente el esquema de XML desde el código de Java compilado."
16 years, 8 months