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


Reply via email to