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.
*