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