This is an automated email from the ASF dual-hosted git repository.

tandraschko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/deltaspike.git


The following commit(s) were added to refs/heads/master by this push:
     new ea50ace41 removed reflection hacks
ea50ace41 is described below

commit ea50ace41a97d715ef7306e322f3103ba8c0ffe8
Author: Thomas Andraschko <[email protected]>
AuthorDate: Tue Oct 10 15:45:26 2023 +0200

    removed reflection hacks
---
 .../core/api/provider/BeanManagerProvider.java     | 60 +++++-----------------
 1 file changed, 13 insertions(+), 47 deletions(-)

diff --git 
a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java
 
b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java
index 3eafa16a2..27c0cbe33 100644
--- 
a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java
+++ 
b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java
@@ -23,10 +23,10 @@ import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
 import jakarta.enterprise.inject.spi.AfterDeploymentValidation;
 import jakarta.enterprise.inject.spi.BeanManager;
 import jakarta.enterprise.inject.spi.BeforeShutdown;
+import jakarta.enterprise.inject.spi.CDI;
 import jakarta.enterprise.inject.spi.Extension;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
-import java.lang.reflect.Method;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.logging.Level;
@@ -62,38 +62,8 @@ public class BeanManagerProvider implements Extension
 {
     private static final Logger  LOG = 
Logger.getLogger(BeanManagerProvider.class.getName());
 
-    //for CDI 1.1+ delegation
-    private static final Method CDI_CURRENT_METHOD;
-    private static final Method CDI_CURRENT_BEAN_MANAGER_METHOD;
-
     private static BeanManagerProvider bmpSingleton;
 
-    static
-    {
-        Class cdiClass = 
ClassUtils.tryToLoadClassForName("jakarta.enterprise.inject.spi.CDI");
-
-        Method resolvedCdiCurrentMethod = null;
-        Method resolvedCdiBeanManagerMethod = null;
-        //only init methods if a cdi 1.1+ container is available and the 
delegation-mode isn't deactivated.
-        //deactivation is e.g. useful if owb is used in "parallel mode" in a 
weld-based server.
-        if (cdiClass != null && 
CoreBaseConfig.BeanManagerIntegration.DELEGATE_LOOKUP)
-        {
-            try
-            {
-                resolvedCdiCurrentMethod = 
cdiClass.getDeclaredMethod("current");
-                resolvedCdiBeanManagerMethod = 
cdiClass.getDeclaredMethod("getBeanManager");
-            }
-            catch (Exception e)
-            {
-                LOG.log(Level.SEVERE, "Couldn't get method from " + 
cdiClass.getName(), e);
-            }
-        }
-
-        //null if no init happened e.g. due to CDI 1.0 or deactivated 
delegation-mode
-        CDI_CURRENT_METHOD = resolvedCdiCurrentMethod;
-        CDI_CURRENT_BEAN_MANAGER_METHOD = resolvedCdiBeanManagerMethod;
-    }
-
     /**
      * This data container is used for storing the BeanManager for each web 
application. This is needed in EAR or other
      * multi-webapp scenarios when the DeltaSpike classes (jars) are provided 
in a shared ClassLoader.
@@ -135,7 +105,7 @@ public class BeanManagerProvider implements Extension
     public static boolean isActive()
     {
         // CDI#current delegation enabled, skip everything
-        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null)
+        if (CoreBaseConfig.BeanManagerIntegration.DELEGATE_LOOKUP)
         {
             return bmpSingleton != null;
         }
@@ -175,7 +145,7 @@ public class BeanManagerProvider implements Extension
         setBeanManagerProvider(this);
 
         // CDI#current delegation enabled, skip everything
-        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null &&
+        if (CoreBaseConfig.BeanManagerIntegration.DELEGATE_LOOKUP &&
             resolveBeanManagerViaStaticHelper() != null)
         {
             return;
@@ -196,7 +166,7 @@ public class BeanManagerProvider implements Extension
     public BeanManager getBeanManager()
     {
         // CDI#current delegation enabled, skip everything
-        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null)
+        if (CoreBaseConfig.BeanManagerIntegration.DELEGATE_LOOKUP)
         {
             BeanManager bm = resolveBeanManagerViaStaticHelper();
             if (bm != null)
@@ -268,7 +238,7 @@ public class BeanManagerProvider implements Extension
     public void cleanupFinalBeanManagers(@Observes AfterDeploymentValidation 
adv)
     {
         // CDI#current delegation enabled, skip everything
-        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null &&
+        if (CoreBaseConfig.BeanManagerIntegration.DELEGATE_LOOKUP &&
             resolveBeanManagerViaStaticHelper() != null)
         {
             return;
@@ -294,7 +264,7 @@ public class BeanManagerProvider implements Extension
     public void cleanupStoredBeanManagerOnShutdown(@Observes BeforeShutdown 
beforeShutdown)
     {
         // CDI#current delegation enabled, skip everything
-        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null)
+        if (CoreBaseConfig.BeanManagerIntegration.DELEGATE_LOOKUP)
         {
             return;
         }
@@ -330,19 +300,15 @@ public class BeanManagerProvider implements Extension
 
     private BeanManager resolveBeanManagerViaStaticHelper()
     {
-        if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null)
+        try
         {
-            try
-            {
-                Object cdiCurrentObject = CDI_CURRENT_METHOD.invoke(null);
-                return (BeanManager) 
CDI_CURRENT_BEAN_MANAGER_METHOD.invoke(cdiCurrentObject);
-            }
-            catch (Throwable t)
-            {
-                LOG.log(Level.FINEST, "failed to delegate bean-manager lookup 
-> fallback to default.", t);
-            }
+            return CDI.current().getBeanManager();
+        }
+        catch (Throwable t)
+        {
+            LOG.log(Level.FINEST, "failed to delegate bean-manager lookup -> 
fallback to default.", t);
+            return null;
         }
-        return null;
     }
 
     /**

Reply via email to