Author: rmannibucau
Date: Tue Sep 18 10:15:25 2012
New Revision: 1387082
URL: http://svn.apache.org/viewvc?rev=1387082&view=rev
Log:
using javassist for owb
Modified:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
Modified:
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1387082&r1=1387081&r2=1387082&view=diff
==============================================================================
---
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
(original)
+++
openejb/branches/openejb-4.1.0/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
Tue Sep 18 10:15:25 2012
@@ -58,6 +58,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 +70,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 +116,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");