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