Author: pete.muir(a)jboss.org
Date: 2009-04-06 08:21:51 -0400 (Mon, 06 Apr 2009)
New Revision: 2313
Added:
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/lookup/LookupInstanceTest.java
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java
Log:
WBRI-223
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java 2009-04-06
12:20:13 UTC (rev 2312)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java 2009-04-06
12:21:51 UTC (rev 2313)
@@ -11,9 +11,13 @@
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.context.DependentContext;
+import org.jboss.webbeans.log.Log;
+import org.jboss.webbeans.log.Logging;
public abstract class AbstractFacadeBean<T> extends AbstractStandardBean<T>
{
+
+ private static final Log log = Logging.getLog(AbstractFacadeBean.class);
protected AbstractFacadeBean(ManagerImpl manager)
{
@@ -25,16 +29,22 @@
try
{
DependentContext.INSTANCE.setActive(true);
- //TODO Fix to use IP's manager rather than this bean's
InjectionPoint injectionPoint = this.getManager().getInjectionPoint();
- Type genericType = injectionPoint.getType();
- if (genericType instanceof ParameterizedType )
+ if (injectionPoint != null)
{
- Type type = ((ParameterizedType) genericType).getActualTypeArguments()[0];
- if (type instanceof Class)
+ Type genericType = injectionPoint.getType();
+ if (genericType instanceof ParameterizedType )
{
- Class<?> clazz = Class.class.cast(type);
- return newInstance(clazz, fixBindings(injectionPoint.getBindings()));
+ Type type = ((ParameterizedType)
genericType).getActualTypeArguments()[0];
+ if (type instanceof Class)
+ {
+ Class<?> clazz = Class.class.cast(type);
+ return newInstance(clazz, fixBindings(injectionPoint.getBindings()));
+ }
+ else
+ {
+ throw new IllegalStateException("Must have concrete type argument
" + injectionPoint);
+ }
}
else
{
@@ -43,9 +53,9 @@
}
else
{
- throw new IllegalStateException("Must have concrete type argument "
+ injectionPoint);
+ log.warn("Dynamic lookup of " + toString() + " is not
supported");
+ return null;
}
-
}
finally
{
Added:
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/lookup/LookupInstanceTest.java
===================================================================
---
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/lookup/LookupInstanceTest.java
(rev 0)
+++
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/lookup/LookupInstanceTest.java 2009-04-06
12:21:51 UTC (rev 2313)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.test.unit.lookup;
+
+import java.util.List;
+
+import javax.inject.Instance;
+import javax.inject.TypeLiteral;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.webbeans.literal.ObtainsLiteral;
+import org.jboss.webbeans.test.unit.AbstractWebBeansTest;
+import org.testng.annotations.Test;
+
+@Artifact
+public class LookupInstanceTest extends AbstractWebBeansTest
+{
+
+
+ @Test
+ public void testLookupInstance() throws Exception
+ {
+ assert manager.getInstanceByType(new
TypeLiteral<Instance<List<?>>>(){}, new ObtainsLiteral()) == null;
+ }
+
+}
Property changes on:
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/lookup/LookupInstanceTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Show replies by date