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;
}
/**