You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ar...@apache.org on 2013/04/06 22:11:21 UTC

svn commit: r1465294 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: inject/AbstractInjectable.java portable/InstanceProducer.java

Author: arne
Date: Sat Apr  6 20:11:19 2013
New Revision: 1465294

URL: http://svn.apache.org/r1465294
Log:
OWB-766: Removed public static ThreadLocal

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/AbstractInjectable.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java

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=1465294&r1=1465293&r2=1465294&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 Sat Apr  6 20:11:19 2013
@@ -40,7 +40,6 @@ import org.apache.webbeans.container.Bea
 import org.apache.webbeans.container.InjectionResolver;
 import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.portable.InjectionPointProducer;
-import org.apache.webbeans.portable.InstanceProducer;
 import org.apache.webbeans.util.ClassUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 
@@ -82,15 +81,10 @@ public abstract class AbstractInjectable
         InjectionResolver instance = beanManager.getInjectionResolver();
 
         Bean<?> injectedBean = instance.getInjectionPointBean(injectionPoint);
-        if(isInstanceProviderInjection(injectionPoint))
-        {
-            InstanceProducer.local.set(injectionPoint);
-        }
-        
-        else if(isEventProviderInjection(injectionPoint))
+        if (isInstanceProviderInjection(injectionPoint) || isEventProviderInjection(injectionPoint))
         {
             creationalContext.putInjectionPoint(injectionPoint);
-        }        
+        }
         
         boolean injectionPointBeanLocalSetOnStack = false;
         try 

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java?rev=1465294&r1=1465293&r2=1465294&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/InstanceProducer.java Sat Apr  6 20:11:19 2013
@@ -28,12 +28,11 @@ import javax.enterprise.inject.Instance;
 import javax.enterprise.inject.spi.InjectionPoint;
 
 import org.apache.webbeans.config.WebBeansContext;
+import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.inject.instance.InstanceImpl;
 
 public class InstanceProducer<T> extends AbstractProducer<Instance<T>>
 {
-    // TODO refactor. public static variables are uterly ugly
-    public static ThreadLocal<InjectionPoint> local = new ThreadLocal<InjectionPoint>();
     private Class<Instance<T>> returnType;
     private Set<Annotation> qualifiers;
     private WebBeansContext webBeansContext;
@@ -50,7 +49,12 @@ public class InstanceProducer<T> extends
     {
         try
         {
-            InjectionPoint injectionPoint = local.get();
+            InjectionPoint injectionPoint = null;
+            //TODO What should we do here if creationalContext is not instanceof CreationalContextImpl?
+            if (creationalContext instanceof CreationalContextImpl)
+            {
+                injectionPoint = ((CreationalContextImpl<Instance<T>>)creationalContext).getInjectionPoint();
+            }
             Set<Annotation> qualifiers;
             Type type;
 
@@ -72,8 +76,10 @@ public class InstanceProducer<T> extends
         }
         finally
         {
-            local.set(null);
-            local.remove();
+            if (creationalContext instanceof CreationalContextImpl)
+            {
+                ((CreationalContextImpl<Instance<T>>)creationalContext).removeInjectionPoint();
+            }
         }
     }
 }