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


Reply via email to