Author: rmannibucau
Date: Wed May 15 21:19:52 2013
New Revision: 1483091

URL: http://svn.apache.org/r1483091
Log:
since webbeanscontext can be null avoiding to rely too much on it - more 
cleanup to do, this commit simply do the minimum for openejb app

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/RequestScopedThreadContextListener.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java?rev=1483091&r1=1483090&r2=1483091&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/BeanContext.java
 Wed May 15 21:19:52 2013
@@ -46,7 +46,6 @@ import org.apache.openejb.util.proxy.Dyn
 import org.apache.openejb.util.reflection.Reflections;
 import org.apache.webbeans.component.InjectionTargetBean;
 import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.inject.OWBInjector;
 import org.apache.webbeans.intercept.DecoratorHandler;
@@ -73,7 +72,6 @@ import javax.naming.Name;
 import javax.naming.NameNotFoundException;
 import javax.naming.NamingException;
 import javax.persistence.EntityManagerFactory;
-import java.lang.annotation.Annotation;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
@@ -102,7 +100,6 @@ public class BeanContext extends Deploym
 
     private boolean isPassivatingScope = true;
     private ConstructorInjectionBean<Object> constructorInjectionBean = null;
-    private WebBeansContext webBeansContext = null;
 
     public boolean isDynamicallyImplemented() {
         return proxyClass != null;
@@ -1432,7 +1429,7 @@ public class BeanContext extends Deploym
 
             final CdiEjbBean cdiEjbBean = get(CdiEjbBean.class);
 
-            if (!CreationalContextImpl.class.isInstance(creationalContext)) {
+            if (!CreationalContextImpl.class.isInstance(creationalContext) && 
webBeansContext != null) {
                 if (creationalContext == null) {
                     creationalContext = 
webBeansContext.getCreationalContextFactory().getCreationalContext(cdiEjbBean);
                 } else {
@@ -1491,25 +1488,33 @@ public class BeanContext extends Deploym
 
                 final Class clazz = interceptorData.getInterceptorClass();
 
-                ConstructorInjectionBean interceptorConstructor = 
interceptorData.get(ConstructorInjectionBean.class);
-                if (interceptorConstructor == null) {
-                    synchronized (this) {
-                        interceptorConstructor = 
interceptorData.get(ConstructorInjectionBean.class);
-                        if (interceptorConstructor == null) {
-                            interceptorConstructor = new 
ConstructorInjectionBean(webBeansContext, clazz, 
webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz));
-                            
interceptorData.set(ConstructorInjectionBean.class, interceptorConstructor);
+                final Object iInstance;
+                if (webBeansContext != null) {
+                    ConstructorInjectionBean interceptorConstructor = 
interceptorData.get(ConstructorInjectionBean.class);
+                    if (interceptorConstructor == null) {
+                        synchronized (this) {
+                            interceptorConstructor = 
interceptorData.get(ConstructorInjectionBean.class);
+                            if (interceptorConstructor == null) {
+                                interceptorConstructor = new 
ConstructorInjectionBean(webBeansContext, clazz, 
webBeansContext.getAnnotatedElementFactory().newAnnotatedType(clazz));
+                                
interceptorData.set(ConstructorInjectionBean.class, interceptorConstructor);
+                            }
                         }
                     }
+                    iInstance = 
interceptorConstructor.create(creationalContext);
+                } else {
+                    iInstance = clazz.newInstance();
                 }
 
-                final InjectionProcessor interceptorInjector = new 
InjectionProcessor(interceptorConstructor.create(creationalContext), 
this.getInjections(), org.apache.openejb.InjectionProcessor.unwrap(ctx));
+                final InjectionProcessor interceptorInjector = new 
InjectionProcessor(iInstance, this.getInjections(), 
org.apache.openejb.InjectionProcessor.unwrap(ctx));
                 try {
                     final Object interceptorInstance = 
interceptorInjector.createInstance();
-                    try {
-                        
OWBInjector.inject(webBeansContext.getBeanManagerImpl(), interceptorInstance, 
creationalContext);
-                    } catch (final Throwable t) {
-                        // TODO handle this differently
-                        // this is temporary till the injector can be rewritten
+                    if (webBeansContext != null) {
+                        try {
+                            
OWBInjector.inject(webBeansContext.getBeanManagerImpl(), interceptorInstance, 
creationalContext);
+                        } catch (final Throwable t) {
+                            // TODO handle this differently
+                            // this is temporary till the injector can be 
rewritten
+                        }
                     }
 
                     interceptorInstances.put(clazz.getName(), 
interceptorInstance);
@@ -1603,6 +1608,9 @@ public class BeanContext extends Deploym
     public <T> void inject(final T instance, CreationalContext<T> ctx) {
 
         final WebBeansContext webBeansContext = getWebBeansContext();
+        if (webBeansContext == null) {
+            return;
+        }
 
         InjectionTargetBean<T> beanDefinition = get(CdiEjbBean.class);
 
@@ -1617,10 +1625,6 @@ public class BeanContext extends Deploym
         beanDefinition.getInjectionTarget().inject(instance, ctx);
     }
 
-    public void setWebBeansContext(final WebBeansContext webBeansContext) {
-        this.webBeansContext = webBeansContext;
-    }
-
     public WebBeansContext getWebBeansContext() {
         final CdiEjbBean<?> bean = get(CdiEjbBean.class);
         if (bean != null) {

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/RequestScopedThreadContextListener.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/RequestScopedThreadContextListener.java?rev=1483091&r1=1483090&r2=1483091&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/RequestScopedThreadContextListener.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/RequestScopedThreadContextListener.java
 Wed May 15 21:19:52 2013
@@ -37,6 +37,10 @@ public class RequestScopedThreadContextL
         final BeanContext beanContext = newContext.getBeanContext();
 
         final WebBeansContext webBeansContext = 
beanContext.getModuleContext().getAppContext().getWebBeansContext();
+        if (webBeansContext == null) {
+            return;
+        }
+
         final ContextsService contextsService = 
webBeansContext.getContextsService();
 
         final Context requestContext = 
contextsService.getCurrentContext(RequestScoped.class);


Reply via email to