Author: rmannibucau
Date: Tue Sep 18 10:14:12 2012
New Revision: 1387080
URL: http://svn.apache.org/viewvc?rev=1387080&view=rev
Log:
using javassist by default
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1387080&r1=1387079&r2=1387080&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
Tue Sep 18 10:14:12 2012
@@ -33,7 +33,9 @@ import org.apache.webbeans.config.OpenWe
import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.intercept.ApplicationScopedBeanInterceptorHandler;
import org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler;
+import org.apache.webbeans.proxy.Factory;
import org.apache.webbeans.proxy.ProxyFactory;
+import org.apache.webbeans.proxy.javassist.JavassistFactory;
import org.apache.webbeans.spi.ContainerLifecycle;
import org.apache.webbeans.spi.ContextsService;
import org.apache.webbeans.spi.ConversationService;
@@ -58,6 +60,9 @@ import org.apache.webbeans.web.intercept
public class ThreadSingletonServiceImpl implements ThreadSingletonService {
public static final Logger logger =
Logger.getInstance(LogCategory.OPENEJB_STARTUP,
ThreadSingletonServiceImpl.class);
+
+ public static final String OPENEJB_OWB_PROXY_FACTORY =
"openejb.owb.proxy-factory";
+
//this needs to be static because OWB won't tell us what the existing
SingletonService is and you can't set it twice.
private static final ThreadLocal<WebBeansContext> contexts = new
ThreadLocal<WebBeansContext>();
private static final Map<ClassLoader, WebBeansContext>
contextByClassLoader = new ConcurrentHashMap<ClassLoader, WebBeansContext>();
@@ -67,6 +72,13 @@ public class ThreadSingletonServiceImpl
// no-op
}
+ private static Factory owbProxyFactory() {
+ if
("asm".equals(SystemInstance.get().getProperty(OPENEJB_OWB_PROXY_FACTORY))) {
+ return new AsmFactory();
+ }
+ return new JavassistFactory();
+ }
+
@Override
public void initialize(StartupObject startupObject) {
AppContext appContext = startupObject.getAppContext();
@@ -106,7 +118,7 @@ public class ThreadSingletonServiceImpl
services.put(ResourceInjectionService.class, new
CdiResourceInjectionService());
services.put(ScannerService.class, new CdiScanner());
services.put(LoaderService.class, new OptimizedLoaderService());
- services.put(org.apache.webbeans.proxy.ProxyFactory.class, new
ProxyFactory(new AsmFactory()));
+ services.put(org.apache.webbeans.proxy.ProxyFactory.class, new
ProxyFactory(owbProxyFactory()));
optional(services, ConversationService.class,
"org.apache.webbeans.jsf.DefaultConversationService");