[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