You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2014/11/17 10:45:58 UTC

[1/2] deltaspike git commit: DELTASPIKE-745 remove overly strict startContext checks

Repository: deltaspike
Updated Branches:
  refs/heads/master 4f4dc13d7 -> 6e62f8eb3


DELTASPIKE-745 remove overly strict startContext checks


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/115322c0
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/115322c0
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/115322c0

Branch: refs/heads/master
Commit: 115322c0611b056031c55d78e0926d888102700e
Parents: 4f4dc13
Author: Mark Struberg <st...@apache.org>
Authored: Thu Oct 30 08:50:45 2014 +0100
Committer: Mark Struberg <st...@apache.org>
Committed: Mon Nov 17 07:07:24 2014 +0100

----------------------------------------------------------------------
 .../apache/deltaspike/cdise/weld/WeldContextControl.java    | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/115322c0/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContextControl.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContextControl.java b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContextControl.java
index 9a2cc36..e1ef95f 100644
--- a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContextControl.java
+++ b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContextControl.java
@@ -161,14 +161,9 @@ public class WeldContextControl implements ContextControl
         {
             rcHolder = new RequestContextHolder(requestContextFactory.get(), new HashMap<String, Object>());
             requestContexts.set(rcHolder);
+            rcHolder.getBoundRequestContext().associate(rcHolder.getRequestMap());
+            rcHolder.getBoundRequestContext().activate();
         }
-        else
-        {
-            throw new IllegalStateException(RequestScoped.class.getName() + " started already");
-        }
-
-        rcHolder.getBoundRequestContext().associate(rcHolder.getRequestMap());
-        rcHolder.getBoundRequestContext().activate();
     }
 
     void stopRequestScope()


[2/2] deltaspike git commit: DELTASPIKE-782 fix parent ClassLoader lookup

Posted by st...@apache.org.
DELTASPIKE-782 fix parent ClassLoader lookup

* Don't stop on getSystemClassLoader as this might be perfectly fine in embedded scenarios.
* Properly grab the loadTimeBm from the parent ClassLoader if any


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/6e62f8eb
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/6e62f8eb
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/6e62f8eb

Branch: refs/heads/master
Commit: 6e62f8eb3048fdffd2ce5fef53d6e338d4c05747
Parents: 115322c
Author: Mark Struberg <st...@apache.org>
Authored: Mon Nov 17 09:19:42 2014 +0100
Committer: Mark Struberg <st...@apache.org>
Committed: Mon Nov 17 09:26:05 2014 +0100

----------------------------------------------------------------------
 .../core/api/provider/BeanManagerProvider.java  | 35 +++++++++-----------
 1 file changed, 16 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/6e62f8eb/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/provider/BeanManagerProvider.java
----------------------------------------------------------------------
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 a72bcf3..e349ea9 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
@@ -197,17 +197,23 @@ public class BeanManagerProvider implements Extension
     {
         BeanManagerInfo bmi = getBeanManagerInfo(ClassUtils.getClassLoader(null));
 
-        // warn the user if he tries to use the BeanManager before container startup
         if (!bmi.booted)
         {
-            if (!isParentBeanManagerBooted())
-            {
-                LOG.warning("When using the BeanManager to retrieve Beans before the Container is started," +
-                        " non-portable behaviour results!");
+            // warn the user if he tries to use the BeanManager before container startup
+            LOG.warning("When using the BeanManager to retrieve Beans before the Container is started," +
+                    " non-portable behaviour results!");
+
 
-                // reset the flag to only issue the warning once.
-                // this is a workaround for some containers which mess up EAR handling.
-                bmi.booted = true;
+            // This is a workaround for some containers with messed up EAR handling.
+            // Those containers might boot up with the shared ear ClassLoader
+            // and later run the WARs with their own child ClassLoaders.
+            if (bmi.loadTimeBm == null)
+            {
+                BeanManagerInfo parentBmi = getParentBeanManagerInfo(ClassUtils.getClassLoader(null));
+                if (parentBmi != null)
+                {
+                    bmi.loadTimeBm = parentBmi.loadTimeBm;
+                }
             }
         }
 
@@ -375,16 +381,6 @@ public class BeanManagerProvider implements Extension
     }
 
     /**
-     * @return whether a BeanManagerInfo for a parent ClassLoader is available and has the booted flag set.
-     */
-    private boolean isParentBeanManagerBooted()
-    {
-        BeanManagerInfo parentBmi = getParentBeanManagerInfo(ClassUtils.getClassLoader(null));
-
-        return parentBmi != null && parentBmi.booted;
-    }
-
-    /**
      * This method recurses into the parent ClassLoaders and checks whether a BeanManagerInfo for it exists.
      *
      * @return the BeanManagerInfo of the parent ClassLoader hierarchy if any exists, or <code>null</code> if there is
@@ -393,7 +389,7 @@ public class BeanManagerProvider implements Extension
     private BeanManagerInfo getParentBeanManagerInfo(ClassLoader classLoader)
     {
         ClassLoader parentClassLoader = classLoader.getParent();
-        if (parentClassLoader == null || parentClassLoader.equals(ClassLoader.getSystemClassLoader()))
+        if (parentClassLoader == null)
         {
             return null;
         }
@@ -401,6 +397,7 @@ public class BeanManagerProvider implements Extension
         BeanManagerInfo bmi = getBeanManagerInfo(parentClassLoader);
         if (bmi == null)
         {
+            // recursive call up to the root ClassLoader
             bmi = getParentBeanManagerInfo(parentClassLoader);
         }