[webbeans-commits] Webbeans SVN: r137 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/injectable and 4 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Oct 23 19:33:45 EDT 2008


Author: pete.muir at jboss.org
Date: 2008-10-23 19:33:44 -0400 (Thu, 23 Oct 2008)
New Revision: 137

Added:
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Chunky.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Whitefish.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Cod.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Farmer.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Salmon.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/ScottishFish.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Sole.java
Modified:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanImpl.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AbstractAnnotatedItem.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectableTest.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/FishFarm.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Haddock.java
Log:
Fixes and tests for type safe resolution

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanImpl.java	2008-10-23 23:30:14 UTC (rev 136)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanImpl.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -78,5 +78,11 @@
       // TODO Auto-generated method stub
       return false;
    }
+   
+   @Override
+   public String toString()
+   {
+      return model.toString();
+   }
 
 }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java	2008-10-23 23:30:14 UTC (rev 136)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -104,8 +104,16 @@
    public <T> Set<Bean<T>> resolveByType(Class<T> apiType,
          Annotation... bindingTypes)
    {
-      return getResolutionManager().get(
+      Set<Bean<T>> beans = getResolutionManager().get(
             new SimpleInjectable<T>(apiType, bindingTypes));
+      if (beans == null)
+      {
+         return new HashSet<Bean<T>>();
+      }
+      else
+      {
+         return beans;
+      }
    }
 
    public <T> Set<Bean<T>> resolveByType(TypeLiteral<T> apiType,

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java	2008-10-23 23:30:14 UTC (rev 136)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -1,6 +1,7 @@
 package org.jboss.webbeans;
 
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
@@ -17,7 +18,8 @@
    
    public ResolutionManager(ManagerImpl manager)
    {
-      resolvedInjectionPoints = new HashMap<Injectable<?, ?>, Set<?>>();
+      this.resolvedInjectionPoints = new HashMap<Injectable<?, ?>, Set<?>>();
+      this.injectionPoints = new HashSet<Injectable<?,?>>();
       this.manager = manager;
    }
    

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java	2008-10-23 23:30:14 UTC (rev 136)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injectable/Injectable.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -6,6 +6,7 @@
 import java.util.List;
 import java.util.Set;
 
+import javax.webbeans.BindingType;
 import javax.webbeans.manager.Bean;
 
 import org.jboss.webbeans.ManagerImpl;
@@ -64,14 +65,11 @@
          if (bean.getTypes().contains(getType()))
          {
             List<Annotation> beanBindingTypes = new ArrayList<Annotation>(bean.getBindingTypes());
-            for (Annotation annotation : annotatedItem.getAnnotations())
+            if (beanBindingTypes.containsAll(annotatedItem.getAnnotations()))
             {
-               if (beanBindingTypes.contains(annotation))
-               {
-                  // TODO inspect annotation parameters
-                  // TODO inspect deployment types
-                  resolvedBeans.add(bean);
-               }
+               // TODO inspect annotation parameters
+               // TODO inspect deployment types
+               resolvedBeans.add(bean);
             }
          }
       }
@@ -81,10 +79,12 @@
    @Override
    public boolean equals(Object other)
    {
+      // TODO Currently you must have any annotation literals on other for this to work, probably need to iterate over the set and check both directions
       if (other instanceof Injectable)
       {
          Injectable<?, ?> that = (Injectable<?, ?>) other;
-         return this.getAnnotatedItem().equals(that.getAnnotatedItem());
+         return this.getAnnotatedItem().getType().isAssignableFrom(that.getAnnotatedItem().getType()) &&
+            that.getAnnotatedItem().getAnnotations(BindingType.class).equals(this.getAnnotatedItem().getAnnotations(BindingType.class));
       }
       else
       {
@@ -92,4 +92,10 @@
       }
    }
    
+   @Override
+   public int hashCode()
+   {
+      return 0;
+   }
+   
 }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AbstractAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AbstractAnnotatedItem.java	2008-10-23 23:30:14 UTC (rev 136)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AbstractAnnotatedItem.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -108,9 +108,15 @@
       if (other instanceof AnnotatedItem)
       {
          AnnotatedItem<?, ?> that = (AnnotatedItem<?, ?>) other;
-         return this.getAnnotations().equals(that.getAnnotations()) && this.getDelegate().equals(that.getDelegate());
+         return this.getAnnotations().equals(that.getAnnotations()) && this.getType().equals(that.getType());
       }
       return false;
    }
+   
+   @Override
+   public int hashCode()
+   {
+      return getType().hashCode();
+   }
 
 }
\ No newline at end of file

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectableTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectableTest.java	2008-10-23 23:30:14 UTC (rev 136)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectableTest.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -3,17 +3,26 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import javax.webbeans.AnnotationLiteral;
 import javax.webbeans.Current;
 import javax.webbeans.manager.Bean;
 
 import org.jboss.webbeans.BeanImpl;
+import org.jboss.webbeans.ResolutionManager;
+import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
 import org.jboss.webbeans.injectable.InjectableField;
 import org.jboss.webbeans.introspector.SimpleAnnotatedType;
 import org.jboss.webbeans.model.SimpleComponentModel;
+import org.jboss.webbeans.test.annotations.Chunky;
+import org.jboss.webbeans.test.annotations.Whitefish;
 import org.jboss.webbeans.test.components.Animal;
+import org.jboss.webbeans.test.components.Cod;
 import org.jboss.webbeans.test.components.FishFarm;
 import org.jboss.webbeans.test.components.Haddock;
+import org.jboss.webbeans.test.components.Salmon;
+import org.jboss.webbeans.test.components.ScottishFish;
 import org.jboss.webbeans.test.components.SeaBass;
+import org.jboss.webbeans.test.components.Sole;
 import org.jboss.webbeans.test.components.Tuna;
 import org.jboss.webbeans.util.Reflections;
 import org.testng.annotations.Test;
@@ -45,6 +54,39 @@
    }
    
    @Test
+   public void testOneBindingType() throws Exception
+   {
+      InjectableField<ScottishFish> scottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("scottishFish"));
+      Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleComponentModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedItem(Cod.class), super.manager), manager);
+      Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleComponentModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedItem(Salmon.class), super.manager), manager);
+      Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleComponentModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedItem(Sole.class), super.manager), manager);
+      Set<Bean<?>> beans = new HashSet<Bean<?>>();
+      beans.add(codBean);
+      beans.add(salmonBean);
+      beans.add(soleBean);
+      Set<Bean<?>> possibleTargets = scottishFishField.getPossibleBeans(beans);
+      assert possibleTargets.size() == 2;
+      assert possibleTargets.contains(codBean);
+      assert possibleTargets.contains(soleBean);
+   }
+   
+   @Test
+   public void testABindingType() throws Exception
+   {
+      InjectableField<Animal> whiteChunkyFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("whiteChunkyFish"));
+      Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleComponentModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedItem(Cod.class), super.manager), manager);
+      Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleComponentModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedItem(Salmon.class), super.manager), manager);
+      Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleComponentModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedItem(Sole.class), super.manager), manager);
+      Set<Bean<?>> beans = new HashSet<Bean<?>>();
+      beans.add(codBean);
+      beans.add(salmonBean);
+      beans.add(soleBean);
+      Set<Bean<?>> possibleTargets = whiteChunkyFishField.getPossibleBeans(beans);
+      assert possibleTargets.size() == 1;
+      assert possibleTargets.contains(codBean);
+   }
+   
+   @Test
    public void testMultipleApiTypeWithCurrent() throws Exception
    {
       InjectableField<Animal> animalField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("animal"));
@@ -59,4 +101,53 @@
       assert possibleTargets.contains(haddockBean);
    }
    
+   @Test
+   public void testResolveByType() throws Exception
+   {
+      InjectableField<Animal> whiteChunkyFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("whiteChunkyFish"));
+      InjectableField<Animal> animalField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("animal"));
+      InjectableField<ScottishFish> scottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("scottishFish"));
+      InjectableField<Tuna> tunaField = new InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
+      
+      Bean<Tuna> tunaBean = new BeanImpl<Tuna>(new SimpleComponentModel<Tuna>(new SimpleAnnotatedType<Tuna>(Tuna.class), getEmptyAnnotatedItem(Tuna.class), super.manager), manager);
+      Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleComponentModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedItem(Cod.class), super.manager), manager);
+      Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleComponentModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedItem(Salmon.class), super.manager), manager);
+      Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleComponentModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedItem(Sole.class), super.manager), manager);
+      Bean<SeaBass> seaBassBean = new BeanImpl<SeaBass>(new SimpleComponentModel<SeaBass>(new SimpleAnnotatedType<SeaBass>(SeaBass.class), getEmptyAnnotatedItem(SeaBass.class), super.manager), manager);
+      Bean<Haddock> haddockBean = new BeanImpl<Haddock>(new SimpleComponentModel<Haddock>(new SimpleAnnotatedType<Haddock>(Haddock.class), getEmptyAnnotatedItem(Haddock.class), super.manager), manager);
+      
+      manager.addBean(tunaBean);
+      manager.addBean(codBean);
+      manager.addBean(salmonBean);
+      manager.addBean(soleBean);
+      manager.addBean(haddockBean);
+      manager.addBean(seaBassBean);
+      
+      ResolutionManager resolutionManager = manager.getResolutionManager();
+      resolutionManager.addInjectionPoint(whiteChunkyFishField);
+      resolutionManager.addInjectionPoint(animalField);
+      resolutionManager.addInjectionPoint(scottishFishField);
+      resolutionManager.addInjectionPoint(tunaField);
+      
+      resolutionManager.registerInjectionPoints();
+      
+      System.out.println("injection points registered");
+      
+      assert manager.resolveByType(Tuna.class, new CurrentAnnotationLiteral()).size() == 1;
+      assert manager.resolveByType(Tuna.class, new CurrentAnnotationLiteral()).contains(tunaBean);
+      
+      assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).size() == 3;
+      assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(salmonBean);
+      assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(seaBassBean);
+      assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(haddockBean);
+      
+      assert manager.resolveByType(Animal.class, new AnnotationLiteral<Chunky>() {}, new AnnotationLiteral<Whitefish>() {}).size() == 1;
+      assert manager.resolveByType(Animal.class, new AnnotationLiteral<Chunky>() {}, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
+      
+      assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).size() == 2;
+      assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
+      assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(soleBean);
+      
+   }
+      
 }

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Chunky.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Chunky.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Chunky.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.test.annotations;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+public @interface Chunky
+{
+
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Chunky.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Whitefish.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Whitefish.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Whitefish.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.test.annotations;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+public @interface Whitefish
+{
+
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/annotations/Whitefish.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Cod.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Cod.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Cod.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.test.components;
+
+import javax.webbeans.Production;
+
+import org.jboss.webbeans.test.annotations.Chunky;
+import org.jboss.webbeans.test.annotations.Whitefish;
+
+ at Production
+ at Whitefish
+ at Chunky
+public class Cod implements ScottishFish
+{
+
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Cod.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Farmer.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Farmer.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Farmer.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.test.components;
+
+import javax.webbeans.Production;
+
+ at Production
+public class Farmer<T>
+{
+
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Farmer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/FishFarm.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/FishFarm.java	2008-10-23 23:30:14 UTC (rev 136)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/FishFarm.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -3,6 +3,9 @@
 import javax.webbeans.Current;
 import javax.webbeans.Production;
 
+import org.jboss.webbeans.test.annotations.Chunky;
+import org.jboss.webbeans.test.annotations.Whitefish;
+
 @Production
 public class FishFarm
 {
@@ -15,4 +18,13 @@
    @Current
    private Animal animal;
    
+   @SuppressWarnings("unused")
+   @Whitefish
+   private ScottishFish scottishFish;
+   
+   @Whitefish @Chunky
+   private Animal whiteChunkyFish;
+   
+   private Farmer<ScottishFish> scottishFishFarmer;
+   
 }

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Haddock.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Haddock.java	2008-10-23 23:30:14 UTC (rev 136)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Haddock.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -3,6 +3,8 @@
 import javax.webbeans.Named;
 import javax.webbeans.Production;
 
+import org.jboss.webbeans.test.annotations.Whitefish;
+
 @Production
 @Named
 public class Haddock implements Animal

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Salmon.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Salmon.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Salmon.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.components;
+
+import javax.webbeans.Production;
+
+import org.jboss.webbeans.test.annotations.Whitefish;
+
+ at Production
+public class Salmon implements ScottishFish
+{
+
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Salmon.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/ScottishFish.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/ScottishFish.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/ScottishFish.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.test.components;
+
+public interface ScottishFish extends Animal
+{
+
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/ScottishFish.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Sole.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Sole.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Sole.java	2008-10-23 23:33:44 UTC (rev 137)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.test.components;
+
+import javax.webbeans.Production;
+
+import org.jboss.webbeans.test.annotations.Whitefish;
+
+ at Production
+ at Whitefish
+public class Sole implements ScottishFish
+{
+
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/components/Sole.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain




More information about the weld-commits mailing list