Repository: tomee
Updated Branches:
  refs/heads/master e6ebfddea -> 069385506


TOMEE-1913 trying to deactivate CDI fallback to see how much it does hurt


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/06938550
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/06938550
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/06938550

Branch: refs/heads/master
Commit: 06938550651525c7c513c9a848b059ef8951fc45
Parents: e6ebfdd
Author: Romain manni-Bucau <rmannibu...@gmail.com>
Authored: Wed Aug 24 12:31:17 2016 +0200
Committer: Romain manni-Bucau <rmannibu...@gmail.com>
Committed: Wed Aug 24 12:31:17 2016 +0200

----------------------------------------------------------------------
 .../openejb/cdi/ThreadSingletonServiceImpl.java | 37 +++-----------------
 1 file changed, 4 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/06938550/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
 
b/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
index 5170eba..afcfc5f 100644
--- 
a/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
+++ 
b/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
@@ -22,7 +22,6 @@ import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.cdi.transactional.TransactionContext;
 import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.AppFinder;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
@@ -33,6 +32,7 @@ import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.corespi.se.DefaultApplicationBoundaryService;
 import org.apache.webbeans.intercept.ApplicationScopedBeanInterceptorHandler;
 import org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler;
+import org.apache.webbeans.intercept.RequestScopedBeanInterceptorHandler;
 import org.apache.webbeans.intercept.SessionScopedBeanInterceptorHandler;
 import org.apache.webbeans.spi.ApplicationBoundaryService;
 import org.apache.webbeans.spi.BeanArchiveService;
@@ -46,17 +46,13 @@ import org.apache.webbeans.spi.ScannerService;
 import org.apache.webbeans.spi.SecurityService;
 import org.apache.webbeans.spi.TransactionService;
 import org.apache.webbeans.spi.adaptor.ELAdaptor;
-import org.apache.webbeans.intercept.RequestScopedBeanInterceptorHandler;
 
-import java.util.Collections;
-import java.util.Comparator;
+import javax.enterprise.inject.spi.DeploymentException;
+import javax.transaction.Transactional;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
-import javax.enterprise.inject.spi.DeploymentException;
-import javax.transaction.Transactional;
 
 /**
  * @version $Rev:$ $Date:$
@@ -287,14 +283,7 @@ public class ThreadSingletonServiceImpl implements 
ThreadSingletonService {
         context = AppFinder.findAppContextOrWeb(cl, 
AppFinder.WebBeansContextTransformer.INSTANCE);
         if (context == null) {
             context = contexts.get();
-            if (context == null) {
-                // Fallback strategy is to just grab the first AppContext and 
assume it is the right one
-                // This kind of algorithm could be greatly improved
-                final List<AppContext> appContexts = 
SystemInstance.get().getComponent(ContainerSystem.class).getAppContexts();
-                if (appContexts.size() > 0) {
-                    return getWebBeansContext(appContexts);
-                }
-
+            if (context == null) { // any "guess" algortithm there would break 
prod apps cause AppFinder failed already, let's try to not try to be more 
clever than we can
                 throw new IllegalStateException("On a thread without an 
initialized context nor a classloader mapping a deployed app");
             }
         } else { // some cache to avoid to browse each app each time
@@ -304,24 +293,6 @@ public class ThreadSingletonServiceImpl implements 
ThreadSingletonService {
         return context;
     }
 
-    private static WebBeansContext getWebBeansContext(final List<AppContext> 
appContexts) {
-        Collections.sort(appContexts, new Comparator<AppContext>() {
-            @Override
-            public int compare(final AppContext appContext, final AppContext 
appContext1) {
-                return cdiSize(appContext1) - cdiSize(appContext);
-            }
-        });
-        return appContexts.get(0).getWebBeansContext();
-    }
-
-    private static int cdiSize(final AppContext ctx) {
-        final WebBeansContext wbc = ctx.getWebBeansContext();
-        if (wbc == null) {
-            return 0;
-        }
-        return wbc.getBeanManagerImpl().getBeans().size();
-    }
-
     @Override
     public WebBeansContext get(final Object key) {
         return getContext((ClassLoader) key);

Reply via email to