[webbeans-commits] Webbeans SVN: r2786 - in ri/trunk: impl/src/main/java/org/jboss/webbeans/bean and 5 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Mon Jun 8 11:29:47 EDT 2009
Author: pete.muir at jboss.org
Date: 2009-06-08 11:29:47 -0400 (Mon, 08 Jun 2009)
New Revision: 2786
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/ManagerImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java
ri/trunk/spi/src/main/java/org/jboss/webbeans/manager/api/WebBeansManager.java
ri/trunk/tests/src/main/java/org/jboss/webbeans/test/AbstractWebBeansTest.java
ri/trunk/tests/src/test/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java
Log:
start to clean up the mess
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java 2009-06-08 14:29:48 UTC (rev 2785)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanValidator.java 2009-06-08 15:29:47 UTC (rev 2786)
@@ -105,7 +105,7 @@
checkFacadeInjectionPoint(injectionPoint, Any.class, Event.class);
Annotation[] bindings = injectionPoint.getBindings().toArray(new Annotation[0]);
AnnotatedItem<?, ?> annotatedItem = ResolvableAnnotatedClass.of(injectionPoint.getType(), bindings);
- Set<?> resolvedBeans = manager.resolveByType(annotatedItem, injectionPoint, bindings);
+ Set<?> resolvedBeans = manager.getBeans(injectionPoint);
if (resolvedBeans.isEmpty())
{
throw new UnsatisfiedResolutionException("The injection point " + injectionPoint + " with binding types " + Names.annotationsToString(injectionPoint.getBindings()) + " in " + bean + " has unsatisfied dependencies with binding types ");
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/ManagerImpl.java 2009-06-08 14:29:48 UTC (rev 2785)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/ManagerImpl.java 2009-06-08 15:29:47 UTC (rev 2786)
@@ -373,11 +373,15 @@
public <T> Set<DisposalMethodBean<T>> resolveDisposalBeans(Class<T> apiType, Annotation... bindings)
{
// Correct?
- Set<Bean<T>> beans = getBeans(apiType, bindings);
+ Set<Bean<?>> beans = getBeans(apiType, bindings);
Set<DisposalMethodBean<T>> disposalBeans = new HashSet<DisposalMethodBean<T>>();
- for (Bean<T> bean : beans)
+ for (Bean<?> bean : beans)
+ {
if (bean instanceof DisposalMethodBean)
+ {
disposalBeans.add((DisposalMethodBean<T>) bean);
+ }
+ }
return disposalBeans;
}
@@ -455,16 +459,13 @@
{
return (Set) resolveByType(ResolvableAnnotatedClass.of(beanType, bindings), bindings);
}
-
- @Deprecated
- public <T> Set<Bean<T>> getBeans(Class<T> beanType, Annotation... bindings)
+
+ public Set<Bean<?>> getBeans(AnnotatedItem<?, ?> element, Annotation... bindings)
{
- return resolveByType(ResolvableAnnotatedClass.of(beanType, bindings), bindings);
+ return (Set) resolveByType(element, bindings);
}
-
- @Deprecated
- public <T> Set<Bean<T>> resolveByType(AnnotatedItem<T, ?> element, InjectionPoint injectionPoint, Annotation... bindings)
+ public Set<Bean<?>> getBeans(InjectionPoint injectionPoint)
{
boolean registerInjectionPoint = !injectionPoint.getType().equals(InjectionPoint.class);
try
@@ -473,7 +474,8 @@
{
currentInjectionPoint.get().push(injectionPoint);
}
- return resolveByType(element, bindings);
+ // TODO Do this properly
+ return getBeans(ResolvableAnnotatedClass.of(injectionPoint.getType(), injectionPoint.getBindings().toArray(new Annotation[0])));
}
finally
{
@@ -513,7 +515,7 @@
throw new IllegalArgumentException("Cannot resolve a type parameterized with a type parameter " + element);
}
}
- if (bindings.length > element.getMetaAnnotations(BindingType.class).size())
+ if (bindings != null && bindings.length > element.getMetaAnnotations(BindingType.class).size())
{
throw new DuplicateBindingTypeException("Duplicate bindings (" + Arrays.asList(bindings) + ") type passed " + element.toString());
}
@@ -767,19 +769,6 @@
return getInstance(bean,true);
}
-
- @Deprecated
- public Object getInstanceToInject(InjectionPoint injectionPoint)
- {
- return this.getInjectableReference(injectionPoint, null);
- }
-
- @Deprecated
- public void injectNonContextualInstance(Object instance)
- {
- nonContextualInjector.inject(instance);
- }
-
@SuppressWarnings("unchecked")
public Object getInjectableReference(InjectionPoint injectionPoint, CreationalContext<?> creationalContext)
{
@@ -916,15 +905,6 @@
return bean;
}
-
- /**
- * Resolves a set of beans based on their name
- *
- * @param The name to match
- * @return The set of matching beans
- *
- * @see javax.enterprise.inject.spi.BeanManager#getBeans(java.lang.String)
- */
public Set<Bean<?>> getBeans(String name)
{
return resolver.get(name);
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java 2009-06-08 14:29:48 UTC (rev 2785)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java 2009-06-08 15:29:47 UTC (rev 2786)
@@ -191,7 +191,8 @@
for (InjectionPoint injectionPoint : disposalInjectionPoints)
{
- Object injectionObject = getManager().getInstanceToInject(injectionPoint);
+ // TODO this seems very wrong, we should be passing a creational context here
+ Object injectionObject = getManager().getInjectableReference(injectionPoint, null);
parameters.add(injectionObject);
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java 2009-06-08 14:29:48 UTC (rev 2785)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/injection/resolution/ResolvableAnnotatedClass.java 2009-06-08 15:29:47 UTC (rev 2786)
@@ -27,7 +27,10 @@
import java.util.Set;
import javax.enterprise.inject.TypeLiteral;
+import javax.enterprise.inject.spi.InjectionPoint;
+import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
+import org.jboss.webbeans.introspector.AnnotatedItem;
import org.jboss.webbeans.introspector.AnnotationStore;
import org.jboss.webbeans.introspector.jlr.AbstractAnnotatedItem;
import org.jboss.webbeans.util.Names;
@@ -41,17 +44,17 @@
private final String _string;
- public static <T> ResolvableAnnotatedClass<T> of(TypeLiteral<T> typeLiteral, Annotation[] annotations)
+ public static <T> AnnotatedItem<T, Class<T>> of(TypeLiteral<T> typeLiteral, Annotation[] annotations)
{
return new ResolvableAnnotatedClass<T>(typeLiteral.getRawType(), typeLiteral.getType(), annotations);
}
- public static <T> ResolvableAnnotatedClass<T> of(Class<T> clazz, Annotation[] annotations)
+ public static <T> AnnotatedItem<T, Class<T>> of(Class<T> clazz, Annotation[] annotations)
{
return new ResolvableAnnotatedClass<T>(clazz, clazz, annotations);
}
- public static <T> ResolvableAnnotatedClass<T> of(Type type, Annotation[] annotations)
+ public static <T> AnnotatedItem<T, Class<T>> of(Type type, Annotation[] annotations)
{
if (type instanceof Class)
{
@@ -67,8 +70,23 @@
}
}
- public static <T> ResolvableAnnotatedClass<T> of(Member member, Annotation[] annotations)
+
+ public static <T> AnnotatedItem<T, Class<T>> of(InjectionPoint injectionPoint)
{
+ if (injectionPoint instanceof AnnotatedInjectionPoint)
+ {
+ @SuppressWarnings("unchecked")
+ AnnotatedItem<T, Class<T>> ip = (AnnotatedItem<T, Class<T>>) injectionPoint;
+ return ip;
+ }
+ else
+ {
+ return of(injectionPoint.getType(), injectionPoint.getAnnotations());
+ }
+ }
+
+ public static <T> AnnotatedItem<T, Class<T>> of(Member member, Annotation[] annotations)
+ {
if (member instanceof Field)
{
return new ResolvableAnnotatedClass<T>((Class<T>) ((Field) member).getType(), ((Field) member).getGenericType(), annotations);
Modified: ri/trunk/spi/src/main/java/org/jboss/webbeans/manager/api/WebBeansManager.java
===================================================================
--- ri/trunk/spi/src/main/java/org/jboss/webbeans/manager/api/WebBeansManager.java 2009-06-08 14:29:48 UTC (rev 2785)
+++ ri/trunk/spi/src/main/java/org/jboss/webbeans/manager/api/WebBeansManager.java 2009-06-08 15:29:47 UTC (rev 2786)
@@ -31,14 +31,6 @@
public interface WebBeansManager extends BeanManager, Serializable
{
- /**
- * Perform JSR-299 dependency injection into a non-contextual instance
- *
- * @param instance
- * the instance to inject
- */
- public void injectNonContextualInstance(Object instance);
-
public void shutdown();
}
Modified: ri/trunk/tests/src/main/java/org/jboss/webbeans/test/AbstractWebBeansTest.java
===================================================================
--- ri/trunk/tests/src/main/java/org/jboss/webbeans/test/AbstractWebBeansTest.java 2009-06-08 14:29:48 UTC (rev 2785)
+++ ri/trunk/tests/src/main/java/org/jboss/webbeans/test/AbstractWebBeansTest.java 2009-06-08 15:29:47 UTC (rev 2786)
@@ -6,12 +6,15 @@
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
+import java.util.Set;
import javax.enterprise.inject.deployment.Production;
import javax.enterprise.inject.deployment.Standard;
+import javax.enterprise.inject.spi.Bean;
import org.jboss.testharness.AbstractTest;
import org.jboss.webbeans.CurrentManager;
@@ -151,4 +154,20 @@
return false;
}
+ public <T> Bean<T> getBean(Type beanType, Annotation... bindings)
+ {
+ Set<Bean<?>> beans = getCurrentManager().getBeans(beanType, bindings);
+ if (beans.size() > 1)
+ {
+ throw new RuntimeException("More than one bean resolved to " + beanType + " with bindings " + Arrays.asList(bindings));
+ }
+ if (beans.size() == 0)
+ {
+ throw new RuntimeException("No beans resolved to " + beanType + " with bindings " + Arrays.asList(bindings));
+ }
+ @SuppressWarnings("deprecated")
+ Bean<T> bean = (Bean<T>) beans.iterator().next();
+ return bean;
+ }
+
}
Modified: ri/trunk/tests/src/test/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java 2009-06-08 14:29:48 UTC (rev 2785)
+++ ri/trunk/tests/src/test/java/org/jboss/jsr299/tck/tests/implementation/enterprise/lifecycle/EnterpriseBeanLifecycleTest.java 2009-06-08 15:29:47 UTC (rev 2786)
@@ -47,7 +47,7 @@
public void testCreateSFSB()
{
GrossStadt frankfurt = getCurrentManager().getInstanceByType(GrossStadt.class);
- Bean<KleinStadt> stadtBean = getCurrentManager().getBeans(KleinStadt.class).iterator().next();
+ Bean<KleinStadt> stadtBean = getBean(KleinStadt.class);
assert stadtBean != null : "Expected a bean for stateful session bean Kassel";
CreationalContext<KleinStadt> creationalContext = new MockCreationalContext<KleinStadt>();
KleinStadt stadtInstance = stadtBean.create(creationalContext);
@@ -75,7 +75,7 @@
public void testDestroyRemovesSFSB() throws Exception
{
GrossStadt frankfurt = getCurrentManager().getInstanceByType(GrossStadt.class);
- Bean<KleinStadt> stadtBean = getCurrentManager().getBeans(KleinStadt.class).iterator().next();
+ Bean<KleinStadt> stadtBean = getBean(KleinStadt.class);
assert stadtBean != null : "Expected a bean for stateful session bean Kassel";
Context requestContext = getCurrentManager().getContext(RequestScoped.class);
CreationalContext<KleinStadt> creationalContext = new MockCreationalContext<KleinStadt>();
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java 2009-06-08 14:29:48 UTC (rev 2785)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/xml/parser/XmlParserImplTest.java 2009-06-08 15:29:47 UTC (rev 2786)
@@ -66,10 +66,10 @@
ManagerImpl manager = parserEnv.getManager();
- Set<Bean<Order>> beansSet = manager.getBeans(Order.class);
+ Set<Bean<?>> beansSet = manager.getBeans(Order.class);
List<Class<? extends Annotation>> dTypes = manager.getEnabledDeploymentTypes();
dTypes.size();
- for(Bean<Order> bean : beansSet)
+ for(Bean<?> bean : beansSet)
{
Class<? extends Annotation> deploymentType = bean.getDeploymentType();
System.out.println("after parsing: " + deploymentType);
More information about the weld-commits
mailing list