diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-09-08 05:55:44 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2010-09-08 05:55:44 +0000 |
commit | a738b52d8257db36862548b699f81292d9ea0a0d (patch) | |
tree | 5e9f658e6d34758c47525a18861e25306ad5f405 /sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java | |
parent | eb7dc287d00e10e561043e859924ebc656235f83 (diff) |
Tidy up binding.rest osgi enablement
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@993613 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java')
-rw-r--r-- | sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/TuscanyRESTServlet.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/TuscanyRESTServlet.java b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/TuscanyRESTServlet.java index 3d3c4048fa..f40f69b218 100644 --- a/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/TuscanyRESTServlet.java +++ b/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/TuscanyRESTServlet.java @@ -24,6 +24,7 @@ import java.util.Enumeration; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; +import javax.servlet.ServletException; import javax.ws.rs.HttpMethod; import javax.ws.rs.core.MediaType; import javax.xml.parsers.DocumentBuilderFactory; @@ -54,6 +55,21 @@ public class TuscanyRESTServlet extends RestServlet { this.registry = registry; this.resourceClass = resourceClass; } + + public void init() throws ServletException { + ClassLoader cl = + ClassLoaderContext.setContextClassLoader(Thread.currentThread().getContextClassLoader(), + registry.getServiceDiscovery(), + "/META-INF/server/wink-providers"); + try { + super.init(); + } finally { + if (cl != null) { + // return previous classLoader + Thread.currentThread().setContextClassLoader(cl); + } + } + } @Override public DeploymentConfiguration getDeploymentConfiguration() throws ClassNotFoundException, InstantiationException, @@ -65,8 +81,8 @@ public class TuscanyRESTServlet extends RestServlet { ClassLoaderContext.setContextClassLoader(Thread.currentThread().getContextClassLoader(), registry.getServiceDiscovery(), "javax.ws.rs.ext.RuntimeDelegate", - "META-INF/wink-alternate-shortcuts.properties", - "META-INF/server/wink-providers"); + "/META-INF/wink-alternate-shortcuts.properties", + "/META-INF/server/wink-providers"); DeploymentConfiguration config = null; try { |