Author: pete.muir(a)jboss.org
Date: 2008-10-28 13:25:28 -0400 (Tue, 28 Oct 2008)
New Revision: 199
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ApplicationContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/RequestContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
Log:
Actually allow dyanmic lookups :-)
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-28
15:39:14 UTC (rev 198)
+++
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ResolutionManager.java 2008-10-28
17:25:28 UTC (rev 199)
@@ -48,6 +48,7 @@
public ResolutionManager(ManagerImpl manager)
{
this.injectionPoints = new HashSet<Injectable<?,?>>();
+ this.resolvedInjectionPoints = new InjectableMap();
this.manager = manager;
}
@@ -63,19 +64,15 @@
public void clear()
{
- resolvedInjectionPoints = null;
+ resolvedInjectionPoints = new InjectableMap();
resolvedNames = new HashMap<String, Set<Bean<?>>>();
}
- public void resolveBeans()
+ public void resolveInjectionPoints()
{
- if (resolvedInjectionPoints == null)
+ for (Injectable<?, ?> injectable : injectionPoints)
{
- resolvedInjectionPoints = new InjectableMap();
- for (Injectable<?, ?> injectable : injectionPoints)
- {
- registerInjectionPoint(injectable);
- }
+ registerInjectionPoint(injectable);
}
}
@@ -83,13 +80,14 @@
{
if (key.getType().equals(Object.class))
{
+ // TODO Fix this cast
return (Set<Bean<T>>) (Set) manager.getBeans();
}
- else
+ if (!resolvedInjectionPoints.containsKey(key))
{
- resolveBeans();
- return resolvedInjectionPoints.get(key);
+ registerInjectionPoint(key);
}
+ return resolvedInjectionPoints.get(key);
}
public Set<Bean<?>> get(String name)
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ApplicationContextTest.java
===================================================================
---
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ApplicationContextTest.java 2008-10-28
15:39:14 UTC (rev 198)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ApplicationContextTest.java 2008-10-28
17:25:28 UTC (rev 199)
@@ -2,6 +2,7 @@
import org.testng.annotations.Test;
+@SpecVersion("PDR")
public class ApplicationContextTest extends AbstractTest
{
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
===================================================================
---
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java 2008-10-28
15:39:14 UTC (rev 198)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java 2008-10-28
17:25:28 UTC (rev 199)
@@ -28,7 +28,7 @@
}
@Test(groups="clientProxy",
expectedExceptions=UnproxyableDependencyException.class)
@SpecAssertion(section="4.4.1")
- public void testInjectionPointWithUnproxyableTypeResolvesToNormalScopedWebBean()
+ public void testInjectionPointWithUnproxyableTypeWhichResolvesToNormalScopedWebBean()
{
assert false;
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
===================================================================
---
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-10-28
15:39:14 UTC (rev 198)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-10-28
17:25:28 UTC (rev 199)
@@ -1,6 +1,7 @@
package org.jboss.webbeans.test;
import javax.webbeans.ContextNotActiveException;
+import javax.webbeans.NonexistentFieldException;
import javax.webbeans.NullableDependencyException;
import org.testng.annotations.Test;
@@ -45,6 +46,54 @@
assert false;
}
+ @Test(groups="injection") @SpecAssertion(section="3.6.1")
+ public void testInjectFields()
+ {
+ assert false;
+ }
+
+ @Test(groups="injection") @SpecAssertion(section="3.6")
+ public void testInjectingStaticField()
+ {
+ assert false;
+ }
+
+ @Test(groups="injection") @SpecAssertion(section="3.6")
+ public void testInjectingFinalField()
+ {
+ assert false;
+ }
+
+ @Test(groups={"injection", "webbeansxml"})
@SpecAssertion(section="3.6.2")
+ public void testInjectFieldsDeclaredInXml()
+ {
+ assert false;
+ }
+
+ @Test(groups={"injection", "webbeansxml"})
@SpecAssertion(section="3.6.2")
+ public void testInjectedFieldDeclaredInXmlIgnoresJavaAnnotations()
+ {
+ assert false;
+ }
+
+ @Test(groups={"injection", "webbeansxml"})
@SpecAssertion(section="3.6.2")
+ public void testInjectedFieldDeclaredInXmlAssumesCurrent()
+ {
+ assert false;
+ }
+
+ @Test(groups={"injection", "webbeansxml"},
expectedExceptions=NonexistentFieldException.class)
@SpecAssertion(section="3.6.2")
+ public void testNonexistentFieldDefinedInXml()
+ {
+ assert false;
+ }
+
+ @Test(groups={"injection", "webbeansxml"})
@SpecAssertion(section="3.6.2")
+ public void testInjectFieldsDeclaredInXmlAndJava()
+ {
+ assert false;
+ }
+
/*
@Test(groups="injection") @SpecAssertion(section="4.2")
@@ -53,5 +102,6 @@
assert false;
}
- */
+ */
+
}
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java
===================================================================
---
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java 2008-10-28
15:39:14 UTC (rev 198)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java 2008-10-28
17:25:28 UTC (rev 199)
@@ -62,6 +62,7 @@
ResolutionManager resolutionManager = manager.getResolutionManager();
resolutionManager.addInjectionPoint(whiteScottishFishField);
+ resolutionManager.resolveInjectionPoints();
manager.getInstanceByType(ScottishFish.class, new
AnnotationLiteral<Whitefish>(){});
}
@@ -79,6 +80,7 @@
ResolutionManager resolutionManager = manager.getResolutionManager();
resolutionManager.addInjectionPoint(whiteScottishFishField);
+ resolutionManager.resolveInjectionPoints();
manager.getInstanceByType(Tuna.class, new CurrentAnnotationLiteral());
}
@@ -92,6 +94,7 @@
ResolutionManager resolutionManager = manager.getResolutionManager();
resolutionManager.addInjectionPoint(plaiceField);
+ resolutionManager.resolveInjectionPoints();
manager.getInstanceByType(Plaice.class, new
AnnotationLiteral<Whitefish>(){});
}
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/RequestContextTest.java
===================================================================
---
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/RequestContextTest.java 2008-10-28
15:39:14 UTC (rev 198)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/RequestContextTest.java 2008-10-28
17:25:28 UTC (rev 199)
@@ -2,6 +2,7 @@
import org.testng.annotations.Test;
+@SpecVersion("PDR")
public class RequestContextTest extends AbstractTest
{
@@ -24,7 +25,7 @@
}
@Test(groups={"contexts", "ejb3"})
@SpecAssertion(section="8.5.1")
- public void testScopeActiveDuringEjbTimeoust()
+ public void testScopeActiveDuringEjbTimeoutsInEE6()
{
assert false;
}
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
===================================================================
---
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-10-28
15:39:14 UTC (rev 198)
+++
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-10-28
17:25:28 UTC (rev 199)
@@ -131,11 +131,6 @@
@Test(groups="resolution") @SpecAssertion(section={"4.9.2",
"4.9.4"})
public void testResolveByType() throws Exception
{
- InjectableField<Animal> realChunkyWhiteFishField = new
InjectableField<Animal>(FishFarm.class.getDeclaredField("realChunkyWhiteFish"));
- InjectableField<Animal> animalField = new
InjectableField<Animal>(FishFarm.class.getDeclaredField("animal"));
- InjectableField<ScottishFish> scottishFishField = new
InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- InjectableField<Tuna> tunaField = new
InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
-
Bean<Tuna> tunaBean = new BeanImpl<Tuna>(new
SimpleBeanModel<Tuna>(new SimpleAnnotatedType<Tuna>(Tuna.class),
getEmptyAnnotatedType(Tuna.class), super.manager), manager);
Bean<Cod> codBean = new BeanImpl<Cod>(new
SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class),
getEmptyAnnotatedType(Cod.class), super.manager), manager);
Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new
SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class),
getEmptyAnnotatedType(Salmon.class), super.manager), manager);
@@ -150,12 +145,6 @@
manager.addBean(haddockBean);
manager.addBean(seaBassBean);
- ResolutionManager resolutionManager = manager.getResolutionManager();
- resolutionManager.addInjectionPoint(realChunkyWhiteFishField);
- resolutionManager.addInjectionPoint(animalField);
- resolutionManager.addInjectionPoint(scottishFishField);
- resolutionManager.addInjectionPoint(tunaField);
-
assert manager.resolveByType(Tuna.class, new CurrentAnnotationLiteral()).size() ==
1;
assert manager.resolveByType(Tuna.class, new
CurrentAnnotationLiteral()).contains(tunaBean);
@@ -203,6 +192,7 @@
ResolutionManager resolutionManager = manager.getResolutionManager();
resolutionManager.addInjectionPoint(scottishFishFarmerField);
+ resolutionManager.resolveInjectionPoints();
assert manager.resolveByType(new
TypeLiteral<Farmer<ScottishFish>>(){}).size() == 1;
assert manager.resolveByType(new
TypeLiteral<Farmer<ScottishFish>>(){}).contains(scottishFishFarmerBean);
@@ -230,6 +220,7 @@
ResolutionManager resolutionManager = manager.getResolutionManager();
resolutionManager.addInjectionPoint(whiteFishField);
+ resolutionManager.resolveInjectionPoints();
assert manager.resolveByType(Animal.class, new AnnotationLiteral<Whitefish>()
{}).size() == 1;
assert manager.resolveByType(Animal.class, new AnnotationLiteral<Whitefish>()
{}).contains(plaiceBean);
@@ -249,6 +240,7 @@
ResolutionManager resolutionManager = manager.getResolutionManager();
resolutionManager.addInjectionPoint(veryExpensiveWhitefishField);
+ resolutionManager.resolveInjectionPoints();
Set<Bean<Animal>> beans = manager.resolveByType(Animal.class, new
ExpensiveAnnotationLiteral()
{
@@ -282,6 +274,7 @@
ResolutionManager resolutionManager = manager.getResolutionManager();
resolutionManager.addInjectionPoint(whiteScottishFishField);
+ resolutionManager.resolveInjectionPoints();
assert manager.resolveByType(Tuna.class, new CurrentAnnotationLiteral()).size() ==
0;
}