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

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

commit 19606ca588233676a6db64cb61b81f382014181d
Author: Mark Struberg <[email protected]>
AuthorDate: Fri May 15 14:09:05 2020 +0200

    DELTASPIKE-1408 in some situations CDI.current() doesn't work in Weld3
    
    So we try a fallback onto CDI-1.0 tricks to resolve the BeanManager.
---
 .../deltaspike/core/api/config/base/CoreBaseConfig.java      |  5 +++++
 .../deltaspike/core/api/provider/BeanManagerProvider.java    | 12 +++++++++---
 deltaspike/parent/code/pom.xml                               |  8 ++++++--
 3 files changed, 20 insertions(+), 5 deletions(-)

diff --git 
a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
 
b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
index e988f57..313bb9b 100644
--- 
a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
+++ 
b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/base/CoreBaseConfig.java
@@ -26,6 +26,11 @@ public interface CoreBaseConfig extends DeltaSpikeBaseConfig
 {
     interface BeanManagerIntegration
     {
+        /**
+         * Whether to use CDI.current() if available.
+         * This might fail in some CDI containers in some situations.
+         * Try switching to 'false' to enforce the 'old' DeltaSpike 
BeanManager lookup.
+         */
         Boolean DELEGATE_LOOKUP =
                 
ConfigResolver.resolve("deltaspike.bean-manager.delegate_lookup")
                         .as(Boolean.class)
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 117f13f..5897b59 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
@@ -186,7 +186,8 @@ 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 (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null &&
+            resolveBeanManagerViaStaticHelper() != null)
         {
             return;
         }
@@ -208,7 +209,11 @@ public class BeanManagerProvider implements Extension
         // CDI#current delegation enabled, skip everything
         if (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null)
         {
-            return resolveBeanManagerViaStaticHelper();
+            BeanManager bm = resolveBeanManagerViaStaticHelper();
+            if (bm != null)
+            {
+                return bm;
+            }
         }
 
         BeanManagerInfo bmi = 
getBeanManagerInfo(ClassUtils.getClassLoader(null));
@@ -274,7 +279,8 @@ 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 (CDI_CURRENT_METHOD != null && CDI_CURRENT_BEAN_MANAGER_METHOD != 
null &&
+            resolveBeanManagerViaStaticHelper() != null)
         {
             return;
         }
diff --git a/deltaspike/parent/code/pom.xml b/deltaspike/parent/code/pom.xml
index c807d77..4a10e2b 100644
--- a/deltaspike/parent/code/pom.xml
+++ b/deltaspike/parent/code/pom.xml
@@ -695,7 +695,7 @@
 
             <properties>
                 <!-- Actual Weld version used with this profile -->
-                <weld.version>3.0.4.Final</weld.version>
+                <weld.version>3.1.3.Final</weld.version>
                 
<cdicontainer.version>weld-${weld.version}</cdicontainer.version>
             </properties>
             
@@ -753,7 +753,11 @@
                     <groupId>org.jboss.weld</groupId>
                     <artifactId>weld-api</artifactId>
                 </dependency>
-                
+                <dependency>
+                    <groupId>org.jboss.weld</groupId>
+                    <artifactId>weld-spi</artifactId>
+                </dependency>
+
                 <!--Other than Weld dependencies-->
                 <dependency>
                     <groupId>javax.el</groupId>

Reply via email to