You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2015/09/11 07:55:35 UTC

tomee git commit: ensuring batchee uses the right classloader forcing some eager bean manager access

Repository: tomee
Updated Branches:
  refs/heads/master 549d7334e -> e158fb678


ensuring batchee uses the right classloader forcing some eager bean manager access


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

Branch: refs/heads/master
Commit: e158fb678a30633cf8516b1ca32aba5762866465
Parents: 549d733
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Thu Sep 10 22:55:17 2015 -0700
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Thu Sep 10 22:55:17 2015 -0700

----------------------------------------------------------------------
 .../apache/openejb/batchee/BatchEEServiceManager.java | 14 ++++++++++++++
 .../apache/openejb/cdi/OptimizedLoaderService.java    |  5 ++++-
 2 files changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/e158fb67/container/openejb-core/src/main/java/org/apache/openejb/batchee/BatchEEServiceManager.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/batchee/BatchEEServiceManager.java b/container/openejb-core/src/main/java/org/apache/openejb/batchee/BatchEEServiceManager.java
index ae62276..09aecc8 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/batchee/BatchEEServiceManager.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/batchee/BatchEEServiceManager.java
@@ -18,13 +18,17 @@ package org.apache.openejb.batchee;
 
 import org.apache.batchee.container.services.ServicesManager;
 import org.apache.batchee.container.services.ServicesManagerLocator;
+import org.apache.batchee.container.services.factory.CDIBatchArtifactFactory;
+import org.apache.batchee.spi.BatchArtifactFactory;
 import org.apache.openejb.AppContext;
 import org.apache.openejb.assembler.classic.event.AssemblerAfterApplicationCreated;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.observer.Observes;
 import org.apache.openejb.observer.event.ObserverAdded;
 import org.apache.openejb.util.AppFinder;
+import org.apache.webbeans.config.WebBeansContext;
 
+import javax.enterprise.inject.spi.BeanManager;
 import java.util.Properties;
 
 public class BatchEEServiceManager implements ServicesManagerLocator {
@@ -43,6 +47,9 @@ public class BatchEEServiceManager implements ServicesManagerLocator {
         thread.setContextClassLoader(init.getContext().getClassLoader());
         final ServicesManager servicesManager = new ServicesManager();
         try {
+            if (properties.getProperty(BatchArtifactFactory.class.getName()) == null) {
+                properties.setProperty(BatchArtifactFactory.class.getName(), TomEEArtifactFactory.class.getName());
+            }
             servicesManager.init(properties); // will look for batchee.properties so need the right classloader
         } finally {
             thread.setContextClassLoader(current);
@@ -60,4 +67,11 @@ public class BatchEEServiceManager implements ServicesManagerLocator {
         }
         throw new IllegalStateException("Can't find ServiceManager for " + contextClassLoader);
     }
+
+    public static class TomEEArtifactFactory extends CDIBatchArtifactFactory {
+        @Override
+        protected BeanManager getBeanManager() {
+            return WebBeansContext.currentInstance().getBeanManagerImpl();
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/tomee/blob/e158fb67/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java
index 8a10bcc..1317520 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java
@@ -18,6 +18,7 @@
 package org.apache.openejb.cdi;
 
 import org.apache.openejb.core.ParentClassLoaderFinder;
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.classloader.ClassLoaderAwareHandler;
@@ -25,6 +26,7 @@ import org.apache.webbeans.service.DefaultLoaderService;
 import org.apache.webbeans.spi.LoaderService;
 import org.apache.webbeans.spi.plugins.OpenWebBeansPlugin;
 
+import javax.enterprise.inject.spi.Extension;
 import java.lang.reflect.Proxy;
 import java.net.URL;
 import java.util.ArrayList;
@@ -33,7 +35,6 @@ import java.util.Collections;
 import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
-import javax.enterprise.inject.spi.Extension;
 
 /**
  * @version $Rev$ $Date$
@@ -120,6 +121,8 @@ public class OptimizedLoaderService implements LoaderService {
                     }
                 }
                 break;
+            case "org.apache.batchee.container.cdi.BatchCDIInjectionExtension": // see org.apache.openejb.batchee.BatchEEServiceManager
+                return "true".equals(SystemInstance.get().getProperty("tomee.batchee.cdi.use-extension", "false"));
             case "org.apache.commons.jcs.jcache.cdi.MakeJCacheCDIInterceptorFriendly":
                 final String spi = "META-INF/services/javax.cache.spi.CachingProvider";
                 try {