You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2012/11/25 21:05:58 UTC
svn commit: r1413398 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
component/ProducerMethodBean.java inject/AbstractInjectable.java
Author: struberg
Date: Sun Nov 25 20:05:57 2012
New Revision: 1413398
URL: http://svn.apache.org/viewvc?rev=1413398&view=rev
Log:
OWB-392 fixed by moving it ro ProducerMethodBean
Now we can start cleaning up the logic behind it.
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java?rev=1413398&r1=1413397&r2=1413398&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ProducerMethodBean.java Sun Nov 25 20:05:57 2012
@@ -54,6 +54,8 @@ public class ProducerMethodBean<T> exten
/** Disposal method */
protected Method disposalMethod;
+ private static ThreadLocal<List<DependentCreationalContext<Object>>> dependentInstanceOfProducerMethods =
+ new ThreadLocal<List<DependentCreationalContext<Object>>>();
/**
* Creates a new instance.
*
@@ -119,13 +121,13 @@ public class ProducerMethodBean<T> exten
@Override
protected T createInstance(CreationalContext<T> creationalContext)
{
- T instance = null;
- instance = createDefaultInstance(creationalContext);
+ T instance = createDefaultInstance(creationalContext);
// Check null instance
checkNullInstance(instance);
// Check scope type
checkScopeType();
+
return instance;
}
@@ -141,14 +143,14 @@ public class ProducerMethodBean<T> exten
T instance = null;
Object parentInstance = null;
CreationalContext<?> parentCreational = null;
- InjectableMethods<T> m = null;
+ InjectableMethods<T> m;
List<DependentCreationalContext<Object>> oldDependents =
- AbstractInjectable.dependentInstanceOfProducerMethods.get();
+ dependentInstanceOfProducerMethods.get();
try
{
//X TODO dependentInstanceOfProducerMethods MUST NOT be public!
- AbstractInjectable.dependentInstanceOfProducerMethods.set(new ArrayList<DependentCreationalContext<Object>>());
+ dependentInstanceOfProducerMethods.set(new ArrayList<DependentCreationalContext<Object>>());
parentCreational = getManager().createCreationalContext(ownerComponent);
if (!Modifier.isStatic(creatorMethod.getModifiers()))
@@ -184,7 +186,7 @@ public class ProducerMethodBean<T> exten
else
{
List<DependentCreationalContext<Object>> dependents =
- AbstractInjectable.dependentInstanceOfProducerMethods.get();
+ dependentInstanceOfProducerMethods.get();
if(dependents != null)
{
for(int i = 0, size = dependents.size(); i < size; i++)
@@ -243,12 +245,12 @@ public class ProducerMethodBean<T> exten
if(oldDependents != null)
{
- AbstractInjectable.dependentInstanceOfProducerMethods.set(oldDependents);
+ dependentInstanceOfProducerMethods.set(oldDependents);
}
else
{
- AbstractInjectable.dependentInstanceOfProducerMethods.set(null);
- AbstractInjectable.dependentInstanceOfProducerMethods.remove();
+ dependentInstanceOfProducerMethods.set(null);
+ dependentInstanceOfProducerMethods.remove();
}
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java?rev=1413398&r1=1413397&r2=1413398&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java Sun Nov 25 20:05:57 2012
@@ -39,7 +39,6 @@ import org.apache.webbeans.component.Owb
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.container.InjectionResolver;
import org.apache.webbeans.context.creational.CreationalContextImpl;
-import org.apache.webbeans.context.creational.DependentCreationalContext;
import org.apache.webbeans.util.ClassUtil;
import org.apache.webbeans.util.WebBeansUtil;
@@ -68,10 +67,6 @@ public abstract class AbstractInjectable
//X TODO refactor. public static variables are utterly ugly
public static ThreadLocal<Object> instanceUnderInjection = new ThreadLocal<Object>();
- //X TODO this MUST NOT be public!
- public static ThreadLocal<List<DependentCreationalContext<Object>>> dependentInstanceOfProducerMethods =
- new ThreadLocal<List<DependentCreationalContext<Object>>>();
-
/**
* Creates a new injectable.
*