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 2012/03/27 16:22:07 UTC
[2/2] git commit: DELTASPIKE-136 make servlet-api optional for
cdictrl-owb
DELTASPIKE-136 make servlet-api optional for cdictrl-owb
Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/6f5ff204
Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/6f5ff204
Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/6f5ff204
Branch: refs/heads/master
Commit: 6f5ff204280572d80eaaa7c1d5ecf9542408d921
Parents: 798f293
Author: Mark Struberg <st...@apache.org>
Authored: Tue Mar 27 16:19:33 2012 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Tue Mar 27 16:20:07 2012 +0200
----------------------------------------------------------------------
.../deltaspike/cdise/api/ContextControl.java | 1 +
.../cdise/owb/OpenWebBeansContextControl.java | 59 ++++++++++++---
2 files changed, 50 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/6f5ff204/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 c0c5cdb..3d22526 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
@@ -55,4 +55,5 @@ public interface ContextControl
*/
void stopContext(Class<? extends Annotation> scopeClass);
+
}
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/6f5ff204/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContextControl.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContextControl.java b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContextControl.java
index b1bcabe..2f9457a 100644
--- a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContextControl.java
+++ b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OpenWebBeansContextControl.java
@@ -42,18 +42,57 @@ public class OpenWebBeansContextControl implements ContextControl
private static final Logger LOG = Logger.getLogger(OpenWebBeansContextControl.class.getName());
- private MockHttpSession session = new MockHttpSession();;
- private MockServletContext servletContext = new MockServletContext();
+ private Boolean servletApiAvailable = null;
+
+ private Object session = null;
+ private Object servletContext = null;
+
+ protected boolean isServletApiAvailable()
+ {
+ if (servletApiAvailable == null)
+ {
+ try
+ {
+ Class servletClass = Class.forName("javax.servlet.http.HttpSession");
+ servletApiAvailable = servletClass != null;
+ LOG.fine("Servlet API available: " + servletApiAvailable);
+ }
+ catch (ClassNotFoundException e)
+ {
+ servletApiAvailable = Boolean.FALSE;
+ }
+ }
+ return servletApiAvailable;
+ }
+
+ protected Object getMockSession()
+ {
+ if (isServletApiAvailable() && session == null)
+ {
+ session = new MockHttpSession();
+ }
+ return session;
+ }
+
+ protected Object getMockServletContext()
+ {
+ if (isServletApiAvailable() && servletContext == null)
+ {
+ servletContext = new MockServletContext();
+ }
+
+ return servletContext;
+ }
@Override
public void startContexts()
{
ContextFactory contextFactory = getContextFactory();
- contextFactory.initSingletonContext(servletContext);
- contextFactory.initApplicationContext(servletContext);
- contextFactory.initSessionContext(session);
+ contextFactory.initSingletonContext(getMockServletContext());
+ contextFactory.initApplicationContext(getMockServletContext());
+ contextFactory.initSessionContext(getMockSession());
contextFactory.initRequestContext(null);
contextFactory.initConversationContext(null);
}
@@ -120,14 +159,14 @@ public class OpenWebBeansContextControl implements ContextControl
{
ContextFactory contextFactory = getContextFactory();
- contextFactory.initApplicationContext(servletContext);
+ contextFactory.initApplicationContext(getMockServletContext());
}
private void startSessionScope()
{
ContextFactory contextFactory = getContextFactory();
- contextFactory.initSessionContext(session);
+ contextFactory.initSessionContext(getMockSession());
}
private void startRequestScope()
@@ -155,7 +194,7 @@ public class OpenWebBeansContextControl implements ContextControl
Context context = contextFactory.getStandardContext(ContextTypes.SINGLETON);
if (context != null)
{
- contextFactory.destroySingletonContext(servletContext);
+ contextFactory.destroySingletonContext(getMockServletContext());
}
}
@@ -166,7 +205,7 @@ public class OpenWebBeansContextControl implements ContextControl
Context context = contextFactory.getStandardContext(ContextTypes.APPLICATION);
if (context != null)
{
- contextFactory.destroyApplicationContext(servletContext);
+ contextFactory.destroyApplicationContext(getMockServletContext());
}
}
@@ -177,7 +216,7 @@ public class OpenWebBeansContextControl implements ContextControl
Context context = contextFactory.getStandardContext(ContextTypes.SESSION);
if (context != null)
{
- contextFactory.destroySessionContext(session);
+ contextFactory.destroySessionContext(getMockSession());
}
}