DELTASPIKE-745 remove createContextControl and add more JavaDoc explaining the 
stateless nature of ContextControl


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

Branch: refs/heads/master
Commit: 7a1c9837ef33b1a7ff3ac449c584f535f4c69857
Parents: 3eae53c
Author: Mark Struberg <[email protected]>
Authored: Wed Oct 29 18:39:35 2014 +0100
Committer: Mark Struberg <[email protected]>
Committed: Thu Oct 30 00:23:29 2014 +0100

----------------------------------------------------------------------
 .../deltaspike/cdise/api/CdiContainer.java      |  4 ----
 .../deltaspike/cdise/api/ContextControl.java    | 18 ++++++++++++++-
 .../cdise/openejb/OpenEjbContainerControl.java  | 24 --------------------
 .../cdise/owb/OpenWebBeansContainerControl.java | 24 --------------------
 .../cdise/weld/WeldContainerControl.java        | 23 -------------------
 .../servlet/CdiServletRequestListener.java      |  2 +-
 6 files changed, 18 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/7a1c9837/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/CdiContainer.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/CdiContainer.java
 
b/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/CdiContainer.java
index e15453e..88ac7fb 100644
--- 
a/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/CdiContainer.java
+++ 
b/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/CdiContainer.java
@@ -73,8 +73,4 @@ public interface CdiContainer
      */
     ContextControl getContextControl();
 
-    /**
-     * @return a new - dependent context control object.
-     */
-    ContextControl createContextControl();
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/7a1c9837/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/ContextControl.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/ContextControl.java
 
b/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/ContextControl.java
index 3d22526..fedf2ed 100644
--- 
a/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/ContextControl.java
+++ 
b/deltaspike/cdictrl/api/src/main/java/org/apache/deltaspike/cdise/api/ContextControl.java
@@ -23,7 +23,23 @@ import java.lang.annotation.Annotation;
 /**
  * Control native CDI Container Contexts.
  * Just inject this interface and you gain manual access over built-in 
Contexts.
- * The respective integration code will provide a &064;Dependent scoped 
instance.
+ * The respective integration code will provide a &064;Dependent scoped 
instance
+ * which itself is stateless.
+ *
+ * The {@link #startContext(Class)} and {@link #stopContext(Class)} only affect
+ * the current Thread. When leaving a Thread each started context needs to get
+ * stopped as well (best practice is to do that in a <i>finally</i> block.
+ *
+ * If a container supports controlling the Session Context then each Thread 
will
+ * get a new 'dummy' storage assigned. It is not intended to 'attach' to a real
+ * Session but to allow the re-use of existing beans.
+ *
+ * Many containers make heavy use of ThreadLocals. Thus it might be necessary 
to
+ * call
+ * <pre>
+ *     contextControl.startContext(ApplicationScoped.class);
+ * </pre>
+ * to 'attach' or 'activate' the ApplicationContext within your current Thread.
  */
 public interface ContextControl
 {

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/7a1c9837/deltaspike/cdictrl/impl-openejb/src/main/java/org/apache/deltaspike/cdise/openejb/OpenEjbContainerControl.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/cdictrl/impl-openejb/src/main/java/org/apache/deltaspike/cdise/openejb/OpenEjbContainerControl.java
 
b/deltaspike/cdictrl/impl-openejb/src/main/java/org/apache/deltaspike/cdise/openejb/OpenEjbContainerControl.java
index 22a14ec..5d98263 100644
--- 
a/deltaspike/cdictrl/impl-openejb/src/main/java/org/apache/deltaspike/cdise/openejb/OpenEjbContainerControl.java
+++ 
b/deltaspike/cdictrl/impl-openejb/src/main/java/org/apache/deltaspike/cdise/openejb/OpenEjbContainerControl.java
@@ -172,28 +172,4 @@ public class OpenEjbContainerControl implements 
CdiContainer
         }
         return ctxCtrl;
     }
-
-    @Override
-    public ContextControl createContextControl()
-    {
-        BeanManager beanManager = getBeanManager();
-
-        if (beanManager == null)
-        {
-            LOG.warning("If the CDI-container was started by the environment, 
you can't use this helper." +
-                    "Instead you can resolve ContextControl manually " +
-                    "(e.g. via 
BeanProvider.getContextualReference(ContextControl.class) ). " +
-                    "If the container wasn't started already, you have to use 
CdiContainer#boot before.");
-
-            return null;
-        }
-        Set<Bean<?>> beans = beanManager.getBeans(ContextControl.class);
-        Bean<ContextControl> depCtxCtrlBean = (Bean<ContextControl>) 
beanManager.resolve(beans);
-
-        CreationalContext<ContextControl> depCtxCtrlCreationalContext = 
getBeanManager()
-                .createCreationalContext(ctxCtrlBean);
-
-        return (ContextControl)
-                getBeanManager().getReference(depCtxCtrlBean, 
ContextControl.class, depCtxCtrlCreationalContext);
-    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/7a1c9837/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
 
b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
index 8ac6326..9e8a620 100644
--- 
a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
+++ 
b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContainerControl.java
@@ -129,28 +129,4 @@ public class OpenWebBeansContainerControl implements 
CdiContainer
         }
         return ctxCtrl;
     }
-
-    @Override
-    public ContextControl createContextControl()
-    {
-        BeanManager beanManager = getBeanManager();
-
-        if (beanManager == null)
-        {
-            LOG.warning("If the CDI-container was started by the environment, 
you can't use this helper." +
-                    "Instead you can resolve ContextControl manually " +
-                    "(e.g. via 
BeanProvider.getContextualReference(ContextControl.class) ). " +
-                    "If the container wasn't started already, you have to use 
CdiContainer#boot before.");
-
-            return null;
-        }
-        Set<Bean<?>> beans = beanManager.getBeans(ContextControl.class);
-        Bean<ContextControl> depCtxCtrlBean = (Bean<ContextControl>) 
beanManager.resolve(beans);
-
-        CreationalContext<ContextControl> depCtxCtrlCreationalContext = 
getBeanManager()
-                .createCreationalContext(ctxCtrlBean);
-
-        return (ContextControl)
-                getBeanManager().getReference(depCtxCtrlBean, 
ContextControl.class, depCtxCtrlCreationalContext);
-    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/7a1c9837/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
 
b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
index 057575f..bdc9345 100644
--- 
a/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
+++ 
b/deltaspike/cdictrl/impl-weld/src/main/java/org/apache/deltaspike/cdise/weld/WeldContainerControl.java
@@ -130,27 +130,4 @@ public class WeldContainerControl implements CdiContainer
         return ctxCtrl;
     }
 
-    @Override
-    public ContextControl createContextControl()
-    {
-        BeanManager beanManager = getBeanManager();
-
-        if (beanManager == null)
-        {
-            LOG.warning("If the CDI-container was started by the environment, 
you can't use this helper." +
-                    "Instead you can resolve ContextControl manually " +
-                    "(e.g. via 
BeanProvider.getContextualReference(ContextControl.class) ). " +
-                    "If the container wasn't started already, you have to use 
CdiContainer#boot before.");
-
-            return null;
-        }
-        Set<Bean<?>> beans = beanManager.getBeans(ContextControl.class);
-        Bean<ContextControl> depCtxCtrlBean = (Bean<ContextControl>) 
beanManager.resolve(beans);
-
-        CreationalContext<ContextControl> depCtxCtrlCreationalContext = 
getBeanManager()
-                .createCreationalContext(ctxCtrlBean);
-
-        return (ContextControl)
-                getBeanManager().getReference(depCtxCtrlBean, 
ContextControl.class, depCtxCtrlCreationalContext);
-    }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/7a1c9837/deltaspike/cdictrl/servlet/src/main/java/org/apache/deltaspike/cdise/servlet/CdiServletRequestListener.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/cdictrl/servlet/src/main/java/org/apache/deltaspike/cdise/servlet/CdiServletRequestListener.java
 
b/deltaspike/cdictrl/servlet/src/main/java/org/apache/deltaspike/cdise/servlet/CdiServletRequestListener.java
index 840cada..efa5038 100644
--- 
a/deltaspike/cdictrl/servlet/src/main/java/org/apache/deltaspike/cdise/servlet/CdiServletRequestListener.java
+++ 
b/deltaspike/cdictrl/servlet/src/main/java/org/apache/deltaspike/cdise/servlet/CdiServletRequestListener.java
@@ -57,6 +57,6 @@ public class CdiServletRequestListener implements 
ServletRequestListener
     private ContextControl getContextControl()
     {
         CdiContainer container = CdiContainerLoader.getCdiContainer();
-        return container.createContextControl();
+        return container.getContextControl();
     }
 }

Reply via email to