[webbeans-commits] Webbeans SVN: r1620 - in tck/trunk/impl/src/main: java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution and 3 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Sat Feb 21 15:54:45 EST 2009
Author: pete.muir at jboss.org
Date: 2009-02-21 15:54:45 -0500 (Sat, 21 Feb 2009)
New Revision: 1620
Added:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Animal.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnimalFarmer.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentTypeLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMember_Broken.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMember_Broken.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Chunky.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ChunkyLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Cod.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DaddyLongLegs.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Expensive.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ExpensiveLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FakeFish.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Farmer.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FishILike.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Haddock.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Halibut.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/LadybirdSpider.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ParameterizedBean_Broken.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Plaice.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ResolutionByTypeTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/RoundWhitefish.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Salmon.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFish.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFishFarmer.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SeaBass.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Sole.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Spider.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tarantula.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tuna.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Whitefish.java
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/unit/lookup/typesafe/
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/beans.xml
Removed:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/ResolutionByTypeTest.java
Log:
Convert resolution by type tests to @Artifact
Deleted: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/ResolutionByTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/ResolutionByTypeTest.java 2009-02-21 20:20:44 UTC (rev 1619)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/ResolutionByTypeTest.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -1,276 +0,0 @@
-package org.jboss.jsr299.tck.unit.lookup.typesafe;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.List;
-import java.util.Set;
-
-import javax.inject.AnnotationLiteral;
-import javax.inject.DefinitionException;
-import javax.inject.DuplicateBindingTypeException;
-import javax.inject.TypeLiteral;
-import javax.inject.manager.Bean;
-
-import org.hibernate.tck.annotations.SpecAssertion;
-import org.hibernate.tck.annotations.SpecAssertions;
-import org.jboss.jsr299.tck.AbstractDeclarativeTest;
-import org.jboss.jsr299.tck.literals.CurrentBinding;
-import org.testng.annotations.Test;
-
-/**
- *
- * Spec version: PRD2
- *
- */
-public class ResolutionByTypeTest extends AbstractDeclarativeTest
-{
-
- @Override
- protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
- {
- List<Class<? extends Annotation>> deploymentTypes = super.getStandardDeploymentTypes();
- deploymentTypes.add(AnotherDeploymentType.class);
- return deploymentTypes;
- }
-
- @Test(groups="resolution")
- @SpecAssertions({
- @SpecAssertion(section="5.9", id = "b"),
- @SpecAssertion(section="5.9", id = "ga")
- })
- public void testDefaultBindingTypeAssumed() throws Exception
- {
- Bean<Tuna> tunaBean = createSimpleBean(Tuna.class);
- getCurrentManager().addBean(tunaBean);
- Set<Bean<Tuna>> possibleTargets = getCurrentManager().resolveByType(Tuna.class);
- assert possibleTargets.size() == 1;
- assert possibleTargets.contains(tunaBean);
- }
-
- @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class)
- @SpecAssertion(section="5.9", id = "cb")
- public void testParameterizedTypeWithWildcardParameter()
- {
- getCurrentManager().resolveByType(new TypeLiteral<ParameterizedBean_Broken<?>>(){});
- }
-
- @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class)
- @SpecAssertion(section="5.9", id = "ca")
- public <T> void testParameterizedTypeWithTypeParameter()
- {
- getCurrentManager().resolveByType(new TypeLiteral<ParameterizedBean_Broken<T>>(){});
- }
-
- @Test(groups="resolution", expectedExceptions=DuplicateBindingTypeException.class)
- @SpecAssertion(section="5.9", id = "d")
- public void testDuplicateBindingTypesUsed()
- {
- getCurrentManager().resolveByType(Tuna.class, new CurrentBinding(), new CurrentBinding());
- }
-
- @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class)
- @SpecAssertion(section="5.9", id = "e")
- public void testNonBindingTypeUsed()
- {
- getCurrentManager().resolveByType(Tuna.class, new AnotherDeploymentTypeLiteral());
- }
-
- @Test(groups="resolution")
- @SpecAssertion(section="5.9", id = "a")
- 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);
-
- getCurrentManager().addBean(tunaBean);
- getCurrentManager().addBean(salmonBean);
- getCurrentManager().addBean(haddockBean);
- getCurrentManager().addBean(seaBassBean);
-
- assert getCurrentManager().resolveByType(Tuna.class, new CurrentBinding()).size() == 1;
- assert getCurrentManager().resolveByType(Tuna.class, new CurrentBinding()).contains(tunaBean);
-
- assert getCurrentManager().resolveByType(Tuna.class).size() == 1;
- assert getCurrentManager().resolveByType(Tuna.class).contains(tunaBean);
-
- assert getCurrentManager().resolveByType(Animal.class, new CurrentBinding()).size() == 3;
- assert getCurrentManager().resolveByType(Animal.class, new CurrentBinding()).contains(salmonBean);
- assert getCurrentManager().resolveByType(Animal.class, new CurrentBinding()).contains(seaBassBean);
- assert getCurrentManager().resolveByType(Animal.class, new CurrentBinding()).contains(haddockBean);
- }
-
- @Test(groups="injection")
- @SpecAssertions({
- @SpecAssertion(section = "2.3.5", id = "b"),
- @SpecAssertion(section = "5.9", id = "gb"),
- @SpecAssertion(section = "2.3.3", id = "d")
- })
- public void testAllBindingTypesSpecifiedForResolutionMustAppearOnWebBean()
- {
- Bean<Cod> codBean = createSimpleBean(Cod.class);
- Bean<Salmon> salmonBean = createSimpleBean(Salmon.class);
- Bean<Sole> soleBean = createSimpleBean(Sole.class);
-
- getCurrentManager().addBean(codBean);
- getCurrentManager().addBean(salmonBean);
- getCurrentManager().addBean(soleBean);
-
- assert getCurrentManager().resolveByType(Animal.class, new ChunkyLiteral() {
-
- public boolean realChunky()
- {
- return true;
- }
-
- }, new AnnotationLiteral<Whitefish>() {}).size() == 1;
- assert getCurrentManager().resolveByType(Animal.class, new ChunkyLiteral() {
-
- public boolean realChunky()
- {
- return true;
- }
-
- }, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
-
- assert getCurrentManager().resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).size() == 2;
- assert getCurrentManager().resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
- assert getCurrentManager().resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(soleBean);
- }
-
- @Test(groups="resolution")
- @SpecAssertions({
- @SpecAssertion(section="5.9", id = "fd"),
- @SpecAssertion(section="2.2", id="bb"),
- @SpecAssertion(section="2.2", id="ba")
- })
- public void testResolveByTypeWithTypeParameter() throws Exception
- {
- Bean<ScottishFishFarmer> scottishFishFarmerBean = createSimpleBean(ScottishFishFarmer.class);
- Bean<AnimalFarmer> farmerBean = createSimpleBean(AnimalFarmer.class);
-
- getCurrentManager().addBean(scottishFishFarmerBean);
- getCurrentManager().addBean(farmerBean);
-
- assert getCurrentManager().resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).size() == 1;
- assert getCurrentManager().resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).contains(scottishFishFarmerBean);
- }
-
- @Test(groups={"resolution", "producerMethod"})
- @SpecAssertion(section="5.9", id = "fc")
- public void testResolveByTypeWithArray() throws Exception
- {
- Bean<SpiderProducer> spiderProducerBean = createSimpleBean(SpiderProducer.class);
- getCurrentManager().addBean(spiderProducerBean);
- Method method = SpiderProducer.class.getMethod("getSpiders");
- Bean<Spider[]> spidersModel = createProducerMethodBean(method, spiderProducerBean);
- getCurrentManager().addBean(spidersModel);
- method = SpiderProducer.class.getMethod("getStrings");
- Bean<String[]> stringModel = createProducerMethodBean(method, spiderProducerBean);
- getCurrentManager().addBean(stringModel);
-
- assert getCurrentManager().resolveByType(Spider[].class).size() == 1;
- }
-
- @Test @SpecAssertion(section="5.9", id = "ha")
- public void testOnlyHighestEnabledPrecedenceWebBeansResolved() throws Exception
- {
- Bean<Cod> codBean = createSimpleBean(Cod.class);
- Bean<Sole> soleBean = createSimpleBean(Sole.class);
- Bean<Plaice> plaiceBean = createSimpleBean(Plaice.class);
-
-
- getCurrentManager().addBean(plaiceBean);
- getCurrentManager().addBean(codBean);
- getCurrentManager().addBean(soleBean);
-
- assert getCurrentManager().resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).size() == 1;
- assert getCurrentManager().resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).contains(plaiceBean);
-
- }
-
-
- @Test(groups="resolution")
- @SpecAssertion(section="5.9", id = "hb")
- public void testNoWebBeansFound() throws Exception
- {
- deployBeans(Salmon.class, Sole.class, Plaice.class);
- assert getCurrentManager().resolveByType(Tuna.class, new CurrentBinding()).size() == 0;
- }
-
- @Test(groups="resolution")
- @SpecAssertions({
- @SpecAssertion(section="5.9.1", id = "b"),
- @SpecAssertion(section="5.9", id = "gc"),
- @SpecAssertion(section="5.9", id = "gd")
- })
- public void testResolveByTypeWithNonBindingMembers() throws Exception
- {
- Bean<Halibut> halibutBean = createSimpleBean(Halibut.class);
- Bean<RoundWhitefish> roundWhiteFishBean = createSimpleBean(RoundWhitefish.class);
- Bean<Sole> soleBean = createSimpleBean(Sole.class);
- getCurrentManager().addBean(halibutBean);
- getCurrentManager().addBean(roundWhiteFishBean);
- getCurrentManager().addBean(soleBean);
-
- Set<Bean<Animal>> beans = getCurrentManager().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.1", id = "ca")
- public void testArrayValuedAnnotationMemberWithoutNonBinding()
- {
- getCurrentManager().resolveByType(Animal.class, new BindingTypeWithBindingArrayTypeMemberLiteral_Broken() {
-
- public boolean[] bool()
- {
- return new boolean[0];
- }
-
- });
- }
-
- @Test(groups="resolution", expectedExceptions=DefinitionException.class)
- @SpecAssertion(section="5.9.1", id = "cb")
- public void testAnnotationValuedAnnotationMemberWithoutNonBinding()
- {
- getCurrentManager().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/jsr299/tck/unit/lookup/typesafe/resolution/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Animal.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+interface Animal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Animal.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnimalFarmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnimalFarmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnimalFarmer.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+class AnimalFarmer extends Farmer<Animal>
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnimalFarmer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentType.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,20 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+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.inject.DeploymentType;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+ at interface AnotherDeploymentType
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentType.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentTypeLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentTypeLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentTypeLiteral.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.inject.AnnotationLiteral;
+
+class AnotherDeploymentTypeLiteral extends AnnotationLiteral<AnotherDeploymentType> implements AnotherDeploymentType
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/AnotherDeploymentTypeLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.inject.AnnotationLiteral;
+
+abstract class BindingTypeWithBindingAnnotationMemberLiteral_Broken extends AnnotationLiteral<BindingTypeWithBindingAnnotationMember_Broken> implements BindingTypeWithBindingAnnotationMember_Broken
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMemberLiteral_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMember_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMember_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMember_Broken.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,24 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface BindingTypeWithBindingAnnotationMember_Broken
+{
+
+ Expensive expensive();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingAnnotationMember_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.inject.AnnotationLiteral;
+
+abstract class BindingTypeWithBindingArrayTypeMemberLiteral_Broken extends AnnotationLiteral<BindingTypeWithBindingArrayTypeMember_Broken> implements BindingTypeWithBindingArrayTypeMember_Broken
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMemberLiteral_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMember_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMember_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMember_Broken.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,24 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface BindingTypeWithBindingArrayTypeMember_Broken
+{
+
+ boolean[] bool();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/BindingTypeWithBindingArrayTypeMember_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Chunky.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Chunky.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Chunky.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,24 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface Chunky
+{
+
+ boolean realChunky();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Chunky.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ChunkyLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ChunkyLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ChunkyLiteral.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.inject.AnnotationLiteral;
+
+abstract class ChunkyLiteral extends AnnotationLiteral<Chunky> implements Chunky
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ChunkyLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Cod.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Cod.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Cod.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,13 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.annotation.Named;
+import javax.inject.Production;
+
+ at Production
+ at Whitefish
+ at Chunky(realChunky=true)
+ at Named("whitefish")
+class Cod implements ScottishFish
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Cod.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DaddyLongLegs.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DaddyLongLegs.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DaddyLongLegs.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+class DaddyLongLegs extends Spider
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DaddyLongLegs.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlyAnimal.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+interface DeadlyAnimal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlyAnimal.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlySpider.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/DeadlySpider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Expensive.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Expensive.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Expensive.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,28 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+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.annotation.NonBinding;
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface Expensive
+{
+
+ boolean veryExpensive();
+
+ @NonBinding
+ int cost();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Expensive.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ExpensiveLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ExpensiveLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ExpensiveLiteral.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.inject.AnnotationLiteral;
+
+abstract class ExpensiveLiteral extends AnnotationLiteral<Expensive> implements Expensive
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ExpensiveLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FakeFish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FakeFish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FakeFish.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface FakeFish
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FakeFish.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Farmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Farmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Farmer.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,9 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.inject.Production;
+
+ at Production
+class Farmer<T>
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Farmer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FishILike.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FishILike.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FishILike.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface FishILike
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/FishILike.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Haddock.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Haddock.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Haddock.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,12 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.annotation.Named;
+import javax.inject.Production;
+
+ at Production
+ at Named
+ at FishILike
+class Haddock implements Animal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Haddock.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Halibut.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Halibut.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Halibut.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,9 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+
+ at Expensive(cost=50, veryExpensive=true)
+ at Whitefish
+class Halibut implements Animal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Halibut.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/LadybirdSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/LadybirdSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/LadybirdSpider.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,14 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.context.ApplicationScoped;
+
+ at ApplicationScoped
+class LadybirdSpider extends Spider
+{
+
+ public void spinWeb()
+ {
+
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/LadybirdSpider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ParameterizedBean_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ParameterizedBean_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ParameterizedBean_Broken.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+class ParameterizedBean_Broken<T>
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ParameterizedBean_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Plaice.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Plaice.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Plaice.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,11 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.annotation.Named;
+
+ at AnotherDeploymentType
+ at Whitefish
+ at Named("whitefish")
+final class Plaice implements Animal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Plaice.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ResolutionByTypeTest.java (from rev 1615, tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/ResolutionByTypeTest.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ResolutionByTypeTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ResolutionByTypeTest.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,261 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import javax.inject.AnnotationLiteral;
+import javax.inject.DefinitionException;
+import javax.inject.DuplicateBindingTypeException;
+import javax.inject.TypeLiteral;
+import javax.inject.manager.Bean;
+
+import org.hibernate.tck.annotations.SpecAssertion;
+import org.hibernate.tck.annotations.SpecAssertions;
+import org.jboss.jsr299.tck.AbstractDeclarativeTest;
+import org.jboss.jsr299.tck.impl.packaging.Artifact;
+import org.jboss.jsr299.tck.impl.packaging.jsr299.BeansXml;
+import org.jboss.jsr299.tck.literals.CurrentBinding;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * Spec version: PRD2
+ *
+ */
+ at Artifact
+ at BeansXml("beans.xml")
+public class ResolutionByTypeTest extends AbstractDeclarativeTest
+{
+
+ @Test(groups="resolution")
+ @SpecAssertions({
+ @SpecAssertion(section="5.9", id = "b"),
+ @SpecAssertion(section="5.9", id = "ga")
+ })
+ public void testDefaultBindingTypeAssumed() throws Exception
+ {
+ Set<Bean<Tuna>> possibleTargets = getCurrentManager().resolveByType(Tuna.class);
+ assert possibleTargets.size() == 1;
+ assert possibleTargets.iterator().next().getTypes().contains(Tuna.class);
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class)
+ @SpecAssertion(section="5.9", id = "cb")
+ public void testParameterizedTypeWithWildcardParameter()
+ {
+ getCurrentManager().resolveByType(new TypeLiteral<ParameterizedBean_Broken<?>>(){});
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class)
+ @SpecAssertion(section="5.9", id = "ca")
+ public <T> void testParameterizedTypeWithTypeParameter()
+ {
+ getCurrentManager().resolveByType(new TypeLiteral<ParameterizedBean_Broken<T>>(){});
+ }
+
+ @Test(groups="resolution", expectedExceptions=DuplicateBindingTypeException.class)
+ @SpecAssertion(section="5.9", id = "d")
+ public void testDuplicateBindingTypesUsed()
+ {
+ getCurrentManager().resolveByType(Tuna.class, new CurrentBinding(), new CurrentBinding());
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class)
+ @SpecAssertion(section="5.9", id = "e")
+ public void testNonBindingTypeUsed()
+ {
+ getCurrentManager().resolveByType(Tuna.class, new AnotherDeploymentTypeLiteral());
+ }
+
+ @Test(groups="resolution")
+ @SpecAssertion(section="5.9", id = "a")
+ public void testResolveByType() throws Exception
+ {
+
+ assert getCurrentManager().resolveByType(Tuna.class, new CurrentBinding()).size() == 1;
+
+ assert getCurrentManager().resolveByType(Tuna.class).size() == 1;
+
+ Set<Bean<Animal>> beans = getCurrentManager().resolveByType(Animal.class, new AnnotationLiteral<FishILike>() {});
+ assert beans.size() == 3;
+ List<Class<? extends Animal>> classes = new ArrayList<Class<? extends Animal>>();
+ for (Bean<Animal> bean : beans)
+ {
+ if (bean.getTypes().contains(Salmon.class))
+ {
+ classes.add(Salmon.class);
+ }
+ else if (bean.getTypes().contains(SeaBass.class))
+ {
+ classes.add(SeaBass.class);
+ }
+ else if (bean.getTypes().contains(Haddock.class))
+ {
+ classes.add(Haddock.class);
+ }
+ }
+ assert classes.contains(Salmon.class);
+ assert classes.contains(SeaBass.class);
+ assert classes.contains(Haddock.class);
+ }
+
+ @Test(groups="injection")
+ @SpecAssertions({
+ @SpecAssertion(section = "2.3.5", id = "b"),
+ @SpecAssertion(section = "5.9", id = "gb"),
+ @SpecAssertion(section = "2.3.3", id = "d")
+ })
+ public void testAllBindingTypesSpecifiedForResolutionMustAppearOnWebBean()
+ {
+ assert getCurrentManager().resolveByType(Animal.class, new ChunkyLiteral() {
+
+ public boolean realChunky()
+ {
+ return true;
+ }
+
+ }, new AnnotationLiteral<Whitefish>() {}).size() == 1;
+ assert getCurrentManager().resolveByType(Animal.class, new ChunkyLiteral() {
+
+ public boolean realChunky()
+ {
+ return true;
+ }
+
+ }, new AnnotationLiteral<Whitefish>() {}).iterator().next().getTypes().contains(Cod.class);
+
+ assert getCurrentManager().resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).size() == 2;
+ List<Class<? extends Animal>> classes = new ArrayList<Class<? extends Animal>>();
+ for (Bean<ScottishFish> bean : getCurrentManager().resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}))
+ {
+ if (bean.getTypes().contains(Cod.class))
+ {
+ classes.add(Cod.class);
+ }
+ else if (bean.getTypes().contains(Sole.class))
+ {
+ classes.add(Sole.class);
+ }
+ }
+ assert classes.contains(Cod.class);
+ assert classes.contains(Sole.class);
+ }
+
+ @Test(groups="resolution")
+ @SpecAssertions({
+ @SpecAssertion(section="5.9", id = "fd"),
+ @SpecAssertion(section="2.2", id="bb"),
+ @SpecAssertion(section="2.2", id="ba")
+ })
+ public void testResolveByTypeWithTypeParameter() throws Exception
+ {
+ assert getCurrentManager().resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).size() == 1;
+ assert getCurrentManager().resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).iterator().next().getTypes().contains(ScottishFishFarmer.class);
+ }
+
+ @Test(groups={"resolution", "producerMethod"})
+ @SpecAssertion(section="5.9", id = "fc")
+ public void testResolveByTypeWithArray() throws Exception
+ {
+ assert getCurrentManager().resolveByType(Spider[].class).size() == 1;
+ }
+
+ @Test @SpecAssertion(section="5.9", id = "ha")
+ public void testOnlyHighestEnabledPrecedenceWebBeansResolved() throws Exception
+ {
+ assert getCurrentManager().resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).size() == 1;
+ assert getCurrentManager().resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).iterator().next().getTypes().contains(Plaice.class);
+
+ }
+
+
+ @Test(groups="resolution")
+ @SpecAssertion(section="5.9", id = "hb")
+ public void testNoWebBeansFound() throws Exception
+ {
+ assert getCurrentManager().resolveByType(Tuna.class, new AnnotationLiteral<FakeFish>() {}).size() == 0;
+ }
+
+ @Test(groups="resolution")
+ @SpecAssertions({
+ @SpecAssertion(section="5.9.1", id = "b"),
+ @SpecAssertion(section="5.9", id = "gc"),
+ @SpecAssertion(section="5.9", id = "gd")
+ })
+ public void testResolveByTypeWithNonBindingMembers() throws Exception
+ {
+
+ Set<Bean<Animal>> beans = getCurrentManager().resolveByType(Animal.class, new ExpensiveLiteral()
+ {
+
+ public int cost()
+ {
+ return 60;
+ }
+
+ public boolean veryExpensive()
+ {
+ return true;
+ }
+
+ }, new AnnotationLiteral<Whitefish>() {});
+ assert beans.size() == 2;
+
+ List<Class<? extends Animal>> classes = new ArrayList<Class<? extends Animal>>();
+ for (Bean<Animal> bean : beans)
+ {
+ if (bean.getTypes().contains(Halibut.class))
+ {
+ classes.add(Halibut.class);
+ }
+ else if (bean.getTypes().contains(RoundWhitefish.class))
+ {
+ classes.add(RoundWhitefish.class);
+ }
+ }
+ assert classes.contains(Halibut.class);
+ assert classes.contains(RoundWhitefish.class);
+ }
+
+ @Test(groups="resolution", expectedExceptions=DefinitionException.class)
+ @SpecAssertion(section="5.9.1", id = "ca")
+ public void testArrayValuedAnnotationMemberWithoutNonBinding()
+ {
+ getCurrentManager().resolveByType(Animal.class, new BindingTypeWithBindingArrayTypeMemberLiteral_Broken() {
+
+ public boolean[] bool()
+ {
+ return new boolean[0];
+ }
+
+ });
+ }
+
+ @Test(groups="resolution", expectedExceptions=DefinitionException.class)
+ @SpecAssertion(section="5.9.1", id = "cb")
+ public void testAnnotationValuedAnnotationMemberWithoutNonBinding()
+ {
+ getCurrentManager().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/jsr299/tck/unit/lookup/typesafe/resolution/RoundWhitefish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/RoundWhitefish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/RoundWhitefish.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+ at Expensive(cost=60, veryExpensive=true)
+ at Whitefish
+class RoundWhitefish implements Animal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/RoundWhitefish.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Salmon.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Salmon.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Salmon.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,12 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.annotation.Named;
+import javax.inject.Production;
+
+ at Production
+ at Named
+ at FishILike
+class Salmon implements ScottishFish
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Salmon.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFish.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,7 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+
+interface ScottishFish extends Animal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFish.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFishFarmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFishFarmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFishFarmer.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,9 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.inject.Production;
+
+ at Production
+class ScottishFishFarmer extends Farmer<ScottishFish>
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/ScottishFishFarmer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SeaBass.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SeaBass.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SeaBass.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,12 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.context.RequestScoped;
+import javax.inject.Production;
+
+ at Production
+ at RequestScoped
+ at FishILike
+class SeaBass implements Animal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SeaBass.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Sole.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Sole.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Sole.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,12 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.annotation.Named;
+import javax.inject.Production;
+
+ at Production
+ at Whitefish
+ at Named("whitefish")
+class Sole implements ScottishFish
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Sole.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Spider.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,7 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+
+class Spider implements Animal
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Spider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SpiderProducer.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,21 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.inject.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];
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/SpiderProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tarantula.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,6 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+class Tarantula extends Spider implements DeadlySpider
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tarantula.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tuna.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tuna.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tuna.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,15 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import javax.context.RequestScoped;
+
+ at AnotherDeploymentType
+ at RequestScoped
+class Tuna
+{
+
+ public String getName()
+ {
+ return "Ophir";
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Tuna.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Whitefish.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Whitefish.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Whitefish.java 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,22 @@
+package org.jboss.jsr299.tck.unit.lookup.typesafe.resolution;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+ at interface Whitefish
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/Whitefish.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/beans.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/beans.xml (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/beans.xml 2009-02-21 20:54:45 UTC (rev 1620)
@@ -0,0 +1,8 @@
+<Beans xmlns="urn:java:ee"
+ xmlns:test="urn:java:org.jboss.jsr299.tck.unit.lookup.typesafe.resolution">
+ <Deploy>
+ <Standard />
+ <Production />
+ <test:AnotherDeploymentType />
+ </Deploy>
+</Beans>
Property changes on: tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/unit/lookup/typesafe/resolution/beans.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the weld-commits
mailing list