[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