summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--branches/sca-java-1.x/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/branches/sca-java-1.x/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java b/branches/sca-java-1.x/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java
index 26114ab8b2..045cae4e75 100644
--- a/branches/sca-java-1.x/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java
+++ b/branches/sca-java-1.x/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppServletHost.java
@@ -19,7 +19,9 @@
package org.apache.tuscany.sca.host.webapp;
+import java.beans.Introspector;
import java.io.File;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.InetAddress;
import java.net.MalformedURLException;
@@ -28,6 +30,7 @@ import java.net.URL;
import java.net.UnknownHostException;
import java.util.Collections;
import java.util.HashMap;
+import java.util.IdentityHashMap;
import java.util.Map;
import java.util.logging.Logger;
@@ -39,6 +42,7 @@ import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
+import org.apache.commons.logging.LogFactory;
import org.apache.tuscany.sca.host.embedded.SCADomain;
import org.apache.tuscany.sca.host.http.SecurityContext;
import org.apache.tuscany.sca.host.http.ServletHost;
@@ -57,7 +61,7 @@ public class WebAppServletHost implements ServletHost {
public static final String SCA_DOMAIN_ATTRIBUTE = "org.apache.tuscany.sca.SCADomain";
- private static final WebAppServletHost instance = new WebAppServletHost();
+ private static WebAppServletHost instance = null;
private Map<String, Servlet> servlets;
private SCADomain scaDomain;
@@ -210,6 +214,9 @@ public class WebAppServletHost implements ServletHost {
}
public static WebAppServletHost getInstance() {
+ if (instance == null){
+ instance = new WebAppServletHost();
+ }
return instance;
}
@@ -309,7 +316,15 @@ public class WebAppServletHost implements ServletHost {
if (scaDomain instanceof WebSCADomain) {
((WebSCADomain)scaDomain).destroy();
}
+ servletContext.setAttribute(SCA_DOMAIN_ATTRIBUTE, null);
+ scaDomain = null;
}
+
+ servletContext = null;
+ instance = null;
+ servlets.clear();
+ LogFactory.release(this.getClass().getClassLoader());
+ Introspector.flushCaches();
}
public String getContextPath() {