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;
}
}