Author: pete.muir(a)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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@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;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@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;
+
+@Production
+@Whitefish
+@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;
+
+@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;
+
+@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;
+
+@Production
+@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