[webbeans-commits] Webbeans SVN: r2314 - in ri/trunk: impl/src/main/java/org/jboss/webbeans/bean/standard and 2 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Mon Apr 6 09:18:28 EDT 2009
Author: pete.muir at jboss.org
Date: 2009-04-06 09:18:28 -0400 (Mon, 06 Apr 2009)
New Revision: 2314
Added:
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListInstance.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListStringInstance.java
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/InstanceImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/ManagerImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/EventBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/InstanceBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventImpl.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ParameterizedProducerTest.java
Log:
WBRI-222
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java 2009-04-06 12:21:51 UTC (rev 2313)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/FacadeImpl.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -18,6 +18,7 @@
package org.jboss.webbeans;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
import java.util.HashSet;
import java.util.Set;
@@ -42,7 +43,7 @@
// The Web Beans manager
private final ManagerImpl manager;
// The type of the operation
- protected final Class<T> type;
+ protected final Type type;
/**
* Constructor
@@ -51,7 +52,7 @@
* @param manager The Web Beans manager
* @param bindings The binding types
*/
- protected FacadeImpl(Class<T> type, ManagerImpl manager, Set<? extends Annotation> bindings)
+ protected FacadeImpl(Type type, ManagerImpl manager, Set<? extends Annotation> bindings)
{
this.manager = manager;
this.type = type;
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/InstanceImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/InstanceImpl.java 2009-04-06 12:21:51 UTC (rev 2313)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/InstanceImpl.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -18,11 +18,13 @@
package org.jboss.webbeans;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
import java.util.Set;
import javax.inject.Instance;
-import javax.inject.manager.Manager;
+import org.jboss.webbeans.injection.resolution.ResolvableAnnotatedClass;
+
/**
* Helper implementation for Instance for getting instances
*
@@ -35,9 +37,9 @@
{
- public static <I> Instance<I> of(Class<I> clazz, ManagerImpl manager, Set<Annotation> annotations)
+ public static <I> Instance<I> of(Type type, ManagerImpl manager, Set<Annotation> annotations)
{
- return new InstanceImpl<I>(clazz, manager, annotations);
+ return new InstanceImpl<I>(type, manager, annotations);
}
/**
@@ -47,7 +49,7 @@
* @param manager The Web Beans manager
* @param bindings The binding types
*/
- private InstanceImpl(Class<T> type, ManagerImpl manager, Set<Annotation> bindings)
+ private InstanceImpl(Type type, ManagerImpl manager, Set<Annotation> bindings)
{
super(type, manager, bindings);
}
@@ -63,7 +65,8 @@
*/
public T get(Annotation... bindings)
{
- return getManager().getInstanceByType(type, mergeInBindings(bindings));
+ Annotation[] annotations = mergeInBindings(bindings);
+ return getManager().getInstanceByType(ResolvableAnnotatedClass.<T>of(type, annotations), annotations);
}
/**
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/ManagerImpl.java 2009-04-06 12:21:51 UTC (rev 2313)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/ManagerImpl.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -626,7 +626,7 @@
public <T> Manager addObserver(Observer<T> observer, Class<T> eventType, Annotation... bindings)
{
- return _addObserver(observer, eventType, bindings);
+ return addObserverByType(observer, eventType, bindings);
}
/**
@@ -638,12 +638,12 @@
*/
public <T> Manager addObserver(ObserverImpl<T> observer)
{
- return _addObserver(observer, observer.getEventType(), observer.getBindingsAsArray());
+ return addObserverByType(observer, observer.getEventType(), observer.getBindingsAsArray());
}
public <T> Manager addObserver(Observer<T> observer, TypeLiteral<T> eventType, Annotation... bindings)
{
- return _addObserver(observer, eventType.getType(), bindings);
+ return addObserverByType(observer, eventType.getType(), bindings);
}
/**
@@ -655,12 +655,12 @@
* @param bindings
* @return
*/
- protected <T> Manager _addObserver(Observer<T> observer, Type eventType, Annotation... bindings)
+ public <T> Manager addObserverByType(Observer<T> observer, Type eventType, Annotation... bindings)
{
this.eventManager.addObserver(observer, eventType, bindings);
for (ManagerImpl childActivity : childActivities)
{
- childActivity._addObserver(observer, eventType, bindings);
+ childActivity.addObserverByType(observer, eventType, bindings);
}
return this;
}
@@ -901,7 +901,7 @@
* @param bindings The binding types to match
* @return An instance of the bean
*/
- private <T> T getInstanceByType(AnnotatedItem<T, ?> element, Annotation... bindings)
+ public <T> T getInstanceByType(AnnotatedItem<T, ?> element, Annotation... bindings)
{
return getInstance(getBeanByType(element, bindings));
}
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:21:51 UTC (rev 2313)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/AbstractFacadeBean.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -36,15 +36,7 @@
if (genericType instanceof ParameterizedType )
{
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);
- }
+ return newInstance(type, fixBindings(injectionPoint.getBindings()));
}
else
{
@@ -97,6 +89,6 @@
*/
protected abstract Set<Class<? extends Annotation>> getFilteredAnnotationTypes();
- protected abstract T newInstance(Class<?> clazz, Set<Annotation> annotations);
+ protected abstract T newInstance(Type type, Set<Annotation> annotations);
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/EventBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/EventBean.java 2009-04-06 12:21:51 UTC (rev 2313)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/EventBean.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -56,9 +56,9 @@
}
@Override
- protected Event<?> newInstance(Class<?> clazz, Set<Annotation> annotations)
+ protected Event<?> newInstance(Type type, Set<Annotation> annotations)
{
- return EventImpl.of(clazz, getManager(), annotations);
+ return EventImpl.of(type, getManager(), annotations);
}
@Override
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/InstanceBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/InstanceBean.java 2009-04-06 12:21:51 UTC (rev 2313)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/standard/InstanceBean.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -55,9 +55,9 @@
}
@Override
- protected Instance<?> newInstance(Class<?> clazz, Set<Annotation> annotations)
+ protected Instance<?> newInstance(Type type, Set<Annotation> annotations)
{
- return InstanceImpl.of(clazz, getManager(), annotations);
+ return InstanceImpl.of(type, getManager(), annotations);
}
@Override
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventImpl.java 2009-04-06 12:21:51 UTC (rev 2313)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/event/EventImpl.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -19,6 +19,7 @@
import java.io.Serializable;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
import java.util.Set;
import javax.event.Event;
@@ -41,7 +42,7 @@
private static final long serialVersionUID = 8130060821283091287L;
- public static <E> Event<E> of(Class<E> eventType, ManagerImpl manager, Set<Annotation> bindings)
+ public static <E> Event<E> of(Type eventType, ManagerImpl manager, Set<Annotation> bindings)
{
return new EventImpl<E>(eventType, manager, bindings);
}
@@ -54,7 +55,7 @@
* @param manager The Web Beans manager
* @param bindings The binding types
*/
- public EventImpl(Class<T> eventType, ManagerImpl manager, Set<Annotation> bindings)
+ public EventImpl(Type eventType, ManagerImpl manager, Set<Annotation> bindings)
{
super(eventType, manager, bindings);
}
@@ -78,7 +79,7 @@
*/
public void observe(Observer<T> observer, Annotation... bindings)
{
- getManager().addObserver(observer, type, mergeInBindings(bindings));
+ getManager().addObserverByType(observer, type, mergeInBindings(bindings));
}
@Override
@@ -86,7 +87,7 @@
{
StringBuilder buffer = new StringBuilder();
buffer.append("Observable Event:\n");
- buffer.append(" Event Type: " + type.getName() + "\n");
+ buffer.append(" Event Type: " + type.toString() + "\n");
buffer.append(Strings.collectionToString(" Event Bindings: ", bindings));
return buffer.toString();
}
Added: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListInstance.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListInstance.java (rev 0)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListInstance.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.test.unit.implementation.producer.field;
+
+import java.util.List;
+
+import javax.inject.Instance;
+import javax.inject.Obtains;
+
+public class ListInstance
+{
+ @Obtains
+ Instance<List> instance;
+
+ public List get()
+ {
+ return instance.get();
+ }
+
+}
Property changes on: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListInstance.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListStringInstance.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListStringInstance.java (rev 0)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListStringInstance.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.test.unit.implementation.producer.field;
+
+import java.util.List;
+
+import javax.inject.Instance;
+import javax.inject.Obtains;
+
+public class ListStringInstance
+{
+ @Obtains Instance<List<String>> instance;
+
+ public List<String> get()
+ {
+ return instance.get();
+ }
+
+}
Property changes on: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ListStringInstance.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ParameterizedProducerTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ParameterizedProducerTest.java 2009-04-06 12:21:51 UTC (rev 2313)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/producer/field/ParameterizedProducerTest.java 2009-04-06 13:18:28 UTC (rev 2314)
@@ -64,4 +64,18 @@
assert item.getSetterInjection().size() == 4;
}
+
+ @Test
+ public void testInstanceList()
+ {
+ ListInstance listInstance = manager.getInstanceByType(ListInstance.class);
+ assert listInstance.get().size() == 3;
+ }
+
+ @Test
+ public void testTypeParameterInstance()
+ {
+ ListStringInstance listInstance = manager.getInstanceByType(ListStringInstance.class);
+ assert listInstance.get().size() == 2;
+ }
}
More information about the weld-commits
mailing list