[webbeans-commits] Webbeans SVN: r1110 - in tck/trunk/impl/src/main: java/org/jboss/webbeans/tck/tests and 37 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Tue Jan 20 01:39:39 EST 2009
Author: shane.bryzak at 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;
+
+ at 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;
-
- at 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
+ *
+ */
+ at 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
+ *
+ */
+ at 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;
+
+ at 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
+ *
+ */
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at 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;
+
+ at 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;
+
+
+ at 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;
+
+ at InterceptorBindingType
+ at Dependent
+ at Target({TYPE, METHOD})
+ at Retention(RUNTIME)
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Dependent
+ at 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;
+
+ at SuppressWarnings("serial")
+ at 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;
+
+ at 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;
+
+ at SuppressWarnings("serial")
+ at 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;
+
+ at SuppressWarnings("serial")
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at 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;
+
+ at 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
+ *
+ */
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at 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;
+
+ at SuppressWarnings("serial")
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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
+ *
+ */
+ at 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;
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at Named
+ at 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;
+
+ at FishStereotype
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at 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;
+
+
+ at Production
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at 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;
+
+ at Production
+ at Whitefish
+ at Chunky(realChunky=true)
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at Inherited
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+
+
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at Inherited
+ at 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;
+
+ at Production
+ at 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;
+
+ at 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;
+
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at Named
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at HornedAnimalDeploymentType
+ at 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;
+
+
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at Inherited
+ at 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;
+
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at AnotherDeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at FishStereotype
+ at 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;
+
+ at HornedMammalStereotype
+ at 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;
+
+ at 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;
+
+ at HornedMammalStereotype
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at Named
+ at 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;
+
+ at Production
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at AnotherDeploymentType
+ at 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;
+
+ at RiverFishStereotype
+ at 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;
+
+ at MammalStereotype
+ at 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;
+
+ at 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;
+
+ at FishStereotype
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at 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;
+
+ at Production
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at 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;
+
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at ScopeType
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at ScopeType
+ at 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;
+
+ at RequestScoped
+ at 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;
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at Named
+ at 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;
+
+ at RiverFishStereotype
+ at 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;
+
+
+ at 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;
+
+
+ at 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;
+
+ at RiverFishStereotype
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at ScopeType
+ at 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;
+
+ at 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;
+
+ at AnimalStereotype
+ at FishStereotype
+ at 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;
+
+ at FishStereotype
+ at 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;
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at 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;
+
+ at AnimalStereotype
+ at 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;
+
+ at 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;
+
+ at Production
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at Inherited
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at Stereotype
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at AnotherDeploymentType
+ at 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;
+
+ at HornedMammalStereotype
+ at 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;
+
+ at Stereotype(supportedScopes=ApplicationScoped.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at HornedAnimalDeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Stereotype(requiredTypes=Mammal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at HornedMammalStereotype
+ at 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;
+
+ at RequestScopedAnimalStereotype
+ at RequestScoped
+ at 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;
+
+ at HornedMammalStereotype
+ at RequestScopedAnimalStereotype
+ at RequestScoped
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at HornedAnimalDeploymentType
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class, supportedScopes=RequestScoped.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at 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;
+
+ at 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;
+
+ at ApplicationScopedHornedMammalStereotype
+ at RequestScopedAnimalStereotype
+ at 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;
+
+ at 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;
+
+ at Stereotype
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at Asynchronous
+ at 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;
+
+ at Stereotype
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at Named("foo")
+ at 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;
+
+ at Stereotype
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at Production
+ at AnotherDeploymentType
+ at 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;
+
+ at Stereotype
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at RequestScoped
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Production
+ at 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;
+
+ at Stereotype()
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at 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;
+
+ at 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;
+
+ at RequestScoped
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Stateless
+ at 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;
+
+ at 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;
+
+ at 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
+ *
+ */
+ at 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;
+
+ at RequestScoped
+ at 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;
+
+ at 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;
+
+ at Stateful
+ at Tame
+ at 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.
+ *
+ */
+ at 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;
+
+ at BindingType
+ at Retention(RUNTIME)
+ at 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;
+
+ at RequestScoped
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Tame
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Stateless
+ at 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;
+
+ at Stateless
+ at 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;
+
+ at Stateless
+ at 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;
+
+ at Stateless
+ at 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
+ */
+ at 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
+ */
+
+ at 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
+ */
+ at 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
+ */
+ at 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;
+
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at 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;
+
+ at Specializes
+ at 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
+ at 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;
+
+ at Stateful
+ at Tame
+ at 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;
+
+ at Specializes
+ at 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
+ at 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
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at Stateful
+ at 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
+ at 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
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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 annotationsthat 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 annotationsthat 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 annotationsthat 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 annotationsthat 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 annotationsthat 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 annotationsthat 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 annotationsthat 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 annotationsthat 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;
+
+ at Stateless
+ at 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;
+
+ at Stateful
+ at ApplicationScoped
+ at 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;
+
+ at Stateless
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at Stateful
+ at 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;
+
+ at SessionScoped
+ at Stateful
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at 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;
+
+ at 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;
+
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at ApplicationScoped
+ at Named
+ at 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;
+
+ at RequestScopedAnimalStereotype
+ at RequestScoped
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at 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 annotationsthat 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 annotationsthat 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 annotationsthat 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 annotationsthat 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 annotationsthat 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 annotationsthat 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;
+
+ at 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;
+
+
+ at HeavyDuty
+ at 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;
+
+ at FishStereotype
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class, supportedScopes=RequestScoped.class)
+ at Target( { TYPE })
+ at Retention(RUNTIME)
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at SessionScoped
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at 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;
+
+ at Stereotype
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at 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;
+
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Production
+ at Whitefish
+ at Chunky(realChunky=true)
+ at 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;
+
+ at Production
+ at 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;
+
+ at 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;
+
+ at AnotherDeploymentType
+ at Whitefish
+ at 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;
+
+ at 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;
+
+ at Production
+ at 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;
+
+ at Production
+ at 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;
+
+ at Production
+ at Whitefish
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at 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;
+
+ at Stereotype(requiredTypes=Animal.class)
+ at Target( { TYPE, METHOD, FIELD })
+ at Retention(RUNTIME)
+ at RequestScoped
+ at 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
+ *
+ */
+ at 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
+ *
+ */
+ at 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;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at Production
+ at Whitefish
+ at Chunky(realChunky=true)
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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;
+
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at Production
+ at 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;
+
+
+ at Expensive(cost=50, veryExpensive=true)
+ at 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;
+
+ at 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;
+
+ at 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;
+
+ at AnotherDeploymentType
+ at Whitefish
+ at 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;
+
+ at 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;
+
+ at Expensive(cost=60, veryExpensive=true)
+ at 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;
+
+ at Production
+ at 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;
+
+ at 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;
+
+ at Production
+ at 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;
+
+ at Production
+ at Whitefish
+ at 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;
+
+ at 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;
+
+ at AnotherDeploymentType
+ at 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;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at 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>
More information about the weld-commits
mailing list