You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/07/19 19:50:48 UTC

svn commit: r795579 - in /incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/ container/ context/creational/

Author: gerdogdu
Date: Sun Jul 19 17:50:47 2009
New Revision: 795579

URL: http://svn.apache.org/viewvc?rev=795579&view=rev
Log:
Update some injection codes.

Modified:
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractBean.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ResolutionUtil.java
    incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractBean.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractBean.java?rev=795579&r1=795578&r2=795579&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractBean.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/AbstractBean.java Sun Jul 19 17:50:47 2009
@@ -30,6 +30,7 @@
 import org.apache.webbeans.config.inheritance.BeanInheritedMetaData;
 import org.apache.webbeans.config.inheritance.IBeanInheritedMetaData;
 import org.apache.webbeans.container.BeanManagerImpl;
+import org.apache.webbeans.context.creational.CreationalContextFactory;
 import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.deployment.DeploymentTypeManager;
 import org.apache.webbeans.intercept.InterceptorData;
@@ -432,8 +433,11 @@
         AbstractBean<?> dependent = (AbstractBean<?>)dependentComponent;
         dependent.setDependentOwnerInjectionPoint(injectionPoint);        
         
+        @SuppressWarnings("unchecked")
+        CreationalContext<?> dependentCreational = CreationalContextFactory.getInstance().getCreationalContext(dependentComponent);
+        
         //Get dependent instance
-        object = BeanManagerImpl.getManager().getInstance(dependentComponent);
+        object = BeanManagerImpl.getManager().getReference(dependentComponent, injectionPoint.getType(), dependentCreational);
         
         CreationalContextImpl<T> cc = (CreationalContextImpl<T>)this.creationalContext;
 

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=795579&r1=795578&r2=795579&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java Sun Jul 19 17:50:47 2009
@@ -676,7 +676,7 @@
     {
         if(beanType != null)
         {
-            if(!bean.getTypes().contains(beanType))
+            if(!ResolutionUtil.checkBeanTypeAssignableToGivenType(bean.getTypes(), beanType))
             {
                 throw new IllegalArgumentException("Given bean type : " + beanType + " is not applicable for the bean instance : " + bean);
             }

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java?rev=795579&r1=795578&r2=795579&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectionResolver.java Sun Jul 19 17:50:47 2009
@@ -265,7 +265,7 @@
         
         return specializedComponents;
     }
-
+    
     /**
      * Resolution by type.
      * 

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ResolutionUtil.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ResolutionUtil.java?rev=795579&r1=795578&r2=795579&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ResolutionUtil.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/ResolutionUtil.java Sun Jul 19 17:50:47 2009
@@ -15,6 +15,8 @@
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.Iterator;
 import java.util.Set;
 
 import javax.enterprise.context.ScopeType;
@@ -34,6 +36,22 @@
 
     }
 
+    public static boolean checkBeanTypeAssignableToGivenType(Set<Type> beanTypes, Type givenType)
+    { 
+        Iterator<Type> itBeanApiTypes = beanTypes.iterator();
+        while (itBeanApiTypes.hasNext())
+        {
+            Type beanApiType = itBeanApiTypes.next();                    
+            
+            if(ClassUtil.isAssignable(beanApiType, givenType))
+            {
+                return true;
+            }                    
+        }
+        
+        return false;
+    }
+    
     public static void resolveByTypeConditions(ParameterizedType type)
     {
         Asserts.assertNotNull(type, "type parameter can not be null");

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java?rev=795579&r1=795578&r2=795579&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java Sun Jul 19 17:50:47 2009
@@ -117,7 +117,6 @@
         if(this.incompleteInstancesMap.containsKey(this.incompleteBean))
         {
             this.incompleteInstancesMap.remove(this.incompleteBean);
-            this.incompleteInstancesMap = null;
         }        
     }