You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2006/10/25 14:20:03 UTC
svn commit: r467620 - in /incubator/tuscany/java/sca:
kernel/spi/src/main/java/org/apache/tuscany/spi/host/
runtime/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/
runtime/webapp-host/src/test/java/org/apache/tuscany/runtime/webapp/
servic...
Author: antelder
Date: Wed Oct 25 05:20:02 2006
New Revision: 467620
URL: http://svn.apache.org/viewvc?view=rev&rev=467620
Log:
TUSCANY-822, apply patch from Bert Lamb - Fix JSON-RPC binding for multiple services per composite
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java
incubator/tuscany/java/sca/runtime/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/ServletHostImpl.java
incubator/tuscany/java/sca/runtime/webapp-host/src/test/java/org/apache/tuscany/runtime/webapp/ServletHostTestCase.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java
incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java?view=diff&rev=467620&r1=467619&r2=467620
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/host/ServletHost.java Wed Oct 25 05:20:02 2006
@@ -42,7 +42,17 @@
* registered Servlet.
*
* @param mapping the uri-mapping for the Servlet
+ * @returns the servlet that was registered to the mapping, null if nothing was registered to the mapping
*/
- void unregisterMapping(String mapping);
+ Servlet unregisterMapping(String mapping);
+
+ /**
+ * Check to see if a mapping exists.
+ *
+ * @param mapping the uri-mapping for the Servlet
+ * @return true if mapping is registered, false otherwise
+ */
+ boolean isMappingRegistered(String mapping);
+
}
Modified: incubator/tuscany/java/sca/runtime/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/ServletHostImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/ServletHostImpl.java?view=diff&rev=467620&r1=467619&r2=467620
==============================================================================
--- incubator/tuscany/java/sca/runtime/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/ServletHostImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/ServletHostImpl.java Wed Oct 25 05:20:02 2006
@@ -94,9 +94,14 @@
}
servlets.put(path, servlet);
}
+
+ public boolean isMappingRegistered(String mapping) {
+ return servlets.containsKey(mapping);
+
+ }
- public void unregisterMapping(String path) {
- servlets.remove(path);
+ public Servlet unregisterMapping(String path) {
+ return servlets.remove(path);
}
public void addListener(RuntimeEventListener listener) {
Modified: incubator/tuscany/java/sca/runtime/webapp-host/src/test/java/org/apache/tuscany/runtime/webapp/ServletHostTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/webapp-host/src/test/java/org/apache/tuscany/runtime/webapp/ServletHostTestCase.java?view=diff&rev=467620&r1=467619&r2=467620
==============================================================================
--- incubator/tuscany/java/sca/runtime/webapp-host/src/test/java/org/apache/tuscany/runtime/webapp/ServletHostTestCase.java (original)
+++ incubator/tuscany/java/sca/runtime/webapp-host/src/test/java/org/apache/tuscany/runtime/webapp/ServletHostTestCase.java Wed Oct 25 05:20:02 2006
@@ -54,6 +54,8 @@
Servlet servlet = createMock(Servlet.class);
ServletHostImpl host = new ServletHostImpl();
host.registerMapping("foo", servlet);
+ assertEquals(true, host.isMappingRegistered("foo"));
+ assertEquals(false, host.isMappingRegistered("bar"));
try {
host.registerMapping("foo", servlet);
fail();
@@ -71,7 +73,8 @@
replay(servlet);
ServletHostImpl host = new ServletHostImpl();
host.registerMapping("foo", servlet);
- host.unregisterMapping("foo");
+ Servlet unregedServlet = host.unregisterMapping("foo");
+ assertEquals(unregedServlet, servlet);
try {
host.service(req, res);
} catch (IllegalStateException e) {
Modified: incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java?view=diff&rev=467620&r1=467619&r2=467620
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.axis2/src/test/java/org/apache/tuscany/binding/axis2/Axis2ServiceTestCase.java Wed Oct 25 05:20:02 2006
@@ -134,11 +134,16 @@
mappings.put(mapping, servlet);
}
- public void unregisterMapping(String mapping) {
+ public Servlet unregisterMapping(String mapping) {
+ return mappings.remove(mapping);
}
public Servlet getMapping(String mapping) {
return mappings.get(mapping);
+ }
+
+ public boolean isMappingRegistered(String mapping) {
+ return mappings.containsKey(mapping);
}
}
Modified: incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java?view=diff&rev=467620&r1=467619&r2=467620
==============================================================================
--- incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java (original)
+++ incubator/tuscany/java/sca/services/bindings/binding.jsonrpc/src/main/java/org/apache/tuscany/binding/jsonrpc/JSONRPCService.java Wed Oct 25 05:20:02 2006
@@ -29,6 +29,7 @@
*/
public class JSONRPCService extends ServiceExtension {
private ServletHost servletHost;
+ private static int servletRegistrationCount = 0;
public JSONRPCService(String theName, Class<?> interfaze, CompositeComponent parent, WireService wireService, ServletHost servletHost) {
@@ -37,18 +38,25 @@
this.servletHost = servletHost;
}
- public void start() {
+ public synchronized void start() {
super.start();
JSONRPCEntryPointServlet servlet = new JSONRPCEntryPointServlet(getName(), this.getServiceInstance());
servletHost.registerMapping("/" + getName(), servlet);
- servletHost.registerMapping("/SCA/scripts", new ScriptGetterServlet());
+ if((servletRegistrationCount == 0) && (!servletHost.isMappingRegistered("/SCA/scripts"))) {
+ servletHost.registerMapping("/SCA/scripts", new ScriptGetterServlet());
+ }
+ servletRegistrationCount++;
}
@Destroy
- public void stop() {
+ public synchronized void stop() {
servletHost.unregisterMapping("/" + getName());
- servletHost.unregisterMapping("/SCA/scripts");
+ servletRegistrationCount--;
+ if(servletRegistrationCount == 0)
+ {
+ servletHost.unregisterMapping("/SCA/scripts");
+ }
super.stop();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org