You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by st...@apache.org on 2017/10/23 17:19:39 UTC
[24/28] tomee git commit: TOMEE-2131 ensure we eagerly init the
batchee ServicesManager when the context is available if needed
TOMEE-2131 ensure we eagerly init the batchee ServicesManager when the context is available if needed
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/884e2a13
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/884e2a13
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/884e2a13
Branch: refs/heads/fb_tomee8
Commit: 884e2a13e9f1b62507b3db6f872468854514d44c
Parents: 37513d1
Author: Romain Manni-Bucau <rm...@gmail.com>
Authored: Thu Oct 5 16:34:39 2017 +0200
Committer: Romain Manni-Bucau <rm...@gmail.com>
Committed: Thu Oct 5 16:34:39 2017 +0200
----------------------------------------------------------------------
.../openejb/batchee/BatchEEServiceManager.java | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/884e2a13/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 096861c..e0060f9 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
@@ -36,19 +36,26 @@ import java.util.Properties;
public class BatchEEServiceManager implements ServicesManagerLocator {
public void initEnvironment(@Observes final ObserverAdded event) {
- if (event.getObserver() == this) {
+ if (event.getObserver() == this && !Boolean.getBoolean("openejb.batchee.integration.skip")) {
ServicesManager.setServicesManagerLocator(this);
}
}
public void storeClassLoader(@Observes final AssemblerAfterApplicationCreated init) {
- final Properties properties = new Properties(SystemInstance.get().getProperties());
- properties.putAll(init.getApp().properties);
+ doInit(init.getContext());
+ }
+
+ private void doInit(final AppContext context) {
+ if (context.get(ServicesManager.class) != null) {
+ return;
+ }
final Thread thread = Thread.currentThread();
final ClassLoader current = thread.getContextClassLoader();
- thread.setContextClassLoader(init.getContext().getClassLoader());
+ thread.setContextClassLoader(context.getClassLoader());
final ServicesManager servicesManager = new ServicesManager();
+ final Properties properties = new Properties(SystemInstance.get().getProperties());
+ properties.putAll(context.getProperties());
try {
if (properties.getProperty(BatchArtifactFactory.class.getName()) == null) {
properties.setProperty(BatchThreadPoolService.class.getName(), TomEEThreadPoolService.class.getName());
@@ -61,7 +68,7 @@ public class BatchEEServiceManager implements ServicesManagerLocator {
thread.setContextClassLoader(current);
}
- init.getContext().set(ServicesManager.class, servicesManager);
+ context.set(ServicesManager.class, servicesManager);
}
@Override
@@ -69,6 +76,7 @@ public class BatchEEServiceManager implements ServicesManagerLocator {
final ClassLoader contextClassLoader = unwrap(Thread.currentThread().getContextClassLoader());
final AppContext context = AppFinder.findAppContextOrWeb(contextClassLoader, AppFinder.AppContextTransformer.INSTANCE);
if (context != null) {
+ doInit(context);
return context.get(ServicesManager.class);
}
throw new IllegalStateException("Can't find ServiceManager for " + contextClassLoader);