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 2016/02/16 10:11:36 UTC
tomee git commit: TOMEE-1713 ensure we don't force OWB services
Repository: tomee
Updated Branches:
refs/heads/master 136a1e016 -> bab82465f
TOMEE-1713 ensure we don't force OWB services
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/bab82465
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/bab82465
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/bab82465
Branch: refs/heads/master
Commit: bab82465f3d3d5e03e15c7f99ec378fef3ffa6b9
Parents: 136a1e0
Author: Romain manni-Bucau <rm...@gmail.com>
Authored: Tue Feb 16 10:11:20 2016 +0100
Committer: Romain manni-Bucau <rm...@gmail.com>
Committed: Tue Feb 16 10:11:20 2016 +0100
----------------------------------------------------------------------
.../openejb/cdi/ThreadSingletonServiceImpl.java | 41 +++++++++++++-------
1 file changed, 27 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/bab82465/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 b662e1c..612e673 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
@@ -94,7 +94,6 @@ public class ThreadSingletonServiceImpl implements ThreadSingletonService {
//initialize owb context, cf geronimo's OpenWebBeansGBean
final Properties properties = new Properties();
- final Map<Class<?>, Object> services = new HashMap<>();
properties.setProperty(OpenWebBeansConfiguration.APPLICATION_IS_JSP, "true");
properties.setProperty(OpenWebBeansConfiguration.USE_EJB_DISCOVERY, "true");
//from CDI builder
@@ -125,21 +124,35 @@ public class ThreadSingletonServiceImpl implements ThreadSingletonService {
properties.put(ResourceInjectionService.class.getName(), CdiResourceInjectionService.class.getName());
properties.put(TransactionService.class.getName(), OpenEJBTransactionService.class.getName());
- services.put(BeanArchiveService.class, new OpenEJBBeanInfoService());
+ // NOTE: ensure user can extend/override all the services = set it only if not present in properties, see WebBeansContext#getService()
+ final Map<Class<?>, Object> services = new HashMap<>();
services.put(AppContext.class, appContext);
- services.put(JNDIService.class, new OpenEJBJndiService());
- try {
- services.put(ELAdaptor.class, new CustomELAdapter(appContext));
- } catch (final NoClassDefFoundError noClassDefFoundError) {
- // no-op: no javax.el
+ if (!properties.containsKey(ApplicationBoundaryService.class.getName())) {
+ services.put(ApplicationBoundaryService.class, new DefaultApplicationBoundaryService());
+ }
+ if (!properties.containsKey(ScannerService.class.getName())) {
+ services.put(ScannerService.class, new CdiScanner());
+ }
+ if (!properties.containsKey(JNDIService.class.getName())) {
+ services.put(JNDIService.class, new OpenEJBJndiService());
}
- services.put(ScannerService.class, new CdiScanner());
- services.put(ApplicationBoundaryService.class, new DefaultApplicationBoundaryService());
- final LoaderService loaderService = SystemInstance.get().getComponent(LoaderService.class);
- if (loaderService == null && !properties.containsKey(LoaderService.class.getName())) {
- services.put(LoaderService.class, new OptimizedLoaderService());
- } else if (loaderService != null) {
- services.put(LoaderService.class, loaderService);
+ if (!properties.containsKey(BeanArchiveService.class.getName())) {
+ services.put(BeanArchiveService.class, new OpenEJBBeanInfoService());
+ }
+ if (!properties.containsKey(ELAdaptor.class.getName())) {
+ try {
+ services.put(ELAdaptor.class, new CustomELAdapter(appContext));
+ } catch (final NoClassDefFoundError noClassDefFoundError) {
+ // no-op: no javax.el
+ }
+ }
+ if (!properties.containsKey(LoaderService.class.getName())) {
+ final LoaderService loaderService = SystemInstance.get().getComponent(LoaderService.class);
+ if (loaderService == null && !properties.containsKey(LoaderService.class.getName())) {
+ services.put(LoaderService.class, new OptimizedLoaderService());
+ } else if (loaderService != null) {
+ services.put(LoaderService.class, loaderService);
+ }
}
final ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();