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/07/11 00:09:40 UTC
git commit: DELTASPIKE-207 fix possible mem leak
Updated Branches:
refs/heads/master 2b5095035 -> 5819dc890
DELTASPIKE-207 fix possible mem leak
Project: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/commit/5819dc89
Tree: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/tree/5819dc89
Diff: http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/diff/5819dc89
Branch: refs/heads/master
Commit: 5819dc89013b6075a6eecedf0f62278c25bf00f9
Parents: 2b50950
Author: Mark Struberg <st...@apache.org>
Authored: Wed Jul 11 00:04:00 2012 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Wed Jul 11 00:04:00 2012 +0200
----------------------------------------------------------------------
.../deltaspike/cdise/owb/MockServletContext.java | 6 ++
.../cdise/owb/OpenWebBeansContextControl.java | 55 ++----------
.../org/apache/deltaspike/cdise/owb/OwbHelper.java | 66 +++++++++++++++
3 files changed, 80 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/5819dc89/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/MockServletContext.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/MockServletContext.java b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/MockServletContext.java
index 42e7967..2aa4ceb 100644
--- a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/MockServletContext.java
+++ b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/MockServletContext.java
@@ -29,6 +29,7 @@ import java.util.StringTokenizer;
import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
import javax.servlet.ServletException;
/**
@@ -53,6 +54,11 @@ public class MockServletContext implements ServletContext
return instance;
}
+ public static ServletContextEvent getServletContextEvent()
+ {
+ return new ServletContextEvent(getInstance());
+ }
+
public Object getAttribute(String name)
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/5819dc89/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 e1068e3..0f195ee 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
@@ -41,57 +41,18 @@ public class OpenWebBeansContextControl implements ContextControl
{
private static final Logger LOG = Logger.getLogger(OpenWebBeansContextControl.class.getName());
- 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("mockSession1");
- }
-
- return session;
- }
-
- protected Object getMockServletContext()
- {
- if (isServletApiAvailable() && servletContext == null)
- {
- servletContext = MockServletContext.getInstance();
- }
-
- return servletContext;
- }
@Override
public void startContexts()
{
ContextFactory contextFactory = getContextFactory();
- contextFactory.initSingletonContext(getMockServletContext());
- contextFactory.initApplicationContext(getMockServletContext());
- contextFactory.initSessionContext(getMockSession());
+ contextFactory.initSingletonContext(OwbHelper.getMockServletContextEvent());
+ contextFactory.initApplicationContext(OwbHelper.getMockServletContextEvent());
+ contextFactory.initSessionContext(OwbHelper.getMockSession());
contextFactory.initRequestContext(null);
contextFactory.initConversationContext(null);
}
@@ -154,14 +115,14 @@ public class OpenWebBeansContextControl implements ContextControl
{
ContextFactory contextFactory = getContextFactory();
- contextFactory.initApplicationContext(getMockServletContext());
+ contextFactory.initApplicationContext(OwbHelper.getMockServletContextEvent());
}
private void startSessionScope()
{
ContextFactory contextFactory = getContextFactory();
- contextFactory.initSessionContext(getMockSession());
+ contextFactory.initSessionContext(OwbHelper.getMockSession());
}
private void startRequestScope()
@@ -189,7 +150,7 @@ public class OpenWebBeansContextControl implements ContextControl
Context context = contextFactory.getStandardContext(ContextTypes.SINGLETON);
if (context != null)
{
- contextFactory.destroySingletonContext(getMockServletContext());
+ contextFactory.destroySingletonContext(OwbHelper.getMockServletContextEvent());
}
}
@@ -200,7 +161,7 @@ public class OpenWebBeansContextControl implements ContextControl
Context context = contextFactory.getStandardContext(ContextTypes.APPLICATION);
if (context != null)
{
- contextFactory.destroyApplicationContext(getMockServletContext());
+ contextFactory.destroyApplicationContext(OwbHelper.getMockServletContextEvent());
}
}
@@ -211,7 +172,7 @@ public class OpenWebBeansContextControl implements ContextControl
Context context = contextFactory.getStandardContext(ContextTypes.SESSION);
if (context != null)
{
- contextFactory.destroySessionContext(getMockSession());
+ contextFactory.destroySessionContext(OwbHelper.getMockSession());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-deltaspike/blob/5819dc89/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OwbHelper.java
----------------------------------------------------------------------
diff --git a/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OwbHelper.java b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OwbHelper.java
new file mode 100644
index 0000000..e2860a4
--- /dev/null
+++ b/deltaspike/cdictrl/impl-owb/src/main/java/org/apache/deltaspike/cdise/owb/OwbHelper.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.deltaspike.cdise.owb;
+
+import javax.servlet.ServletContextEvent;
+
+/**
+ * A few utility methods for OWB
+ */
+public class OwbHelper
+{
+ private OwbHelper()
+ {
+ // just to prevent initialisation
+ }
+
+ public static Object getMockSession()
+ {
+ if (isServletApiAvailable())
+ {
+ return new MockHttpSession("mockSession1");
+ }
+
+ return null;
+ }
+
+ public static Object getMockServletContextEvent()
+ {
+ if (isServletApiAvailable() )
+ {
+ return new ServletContextEvent(MockServletContext.getInstance());
+ }
+
+ return null;
+ }
+
+ private static boolean isServletApiAvailable()
+ {
+ try
+ {
+ Class servletClass = Class.forName("javax.servlet.http.HttpSession");
+ return servletClass != null;
+ }
+ catch (ClassNotFoundException e)
+ {
+ return false;
+ }
+ }
+
+}