You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/10/29 07:25:08 UTC
svn commit: r589510 - in /incubator/tuscany/java/sca/modules:
binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/
binding-http/src/main/java/org/apache/tuscany/sca/binding/http/provider/
binding-jsonrpc/src/main/java/org/apache/tus...
Author: jsdelfino
Date: Sun Oct 28 23:25:07 2007
New Revision: 589510
URL: http://svn.apache.org/viewvc?rev=589510&view=rev
Log:
Correctly record actual binding URIs in the bindings. Also make sure that the servlet mappings are actually removed, using the exact same URI that was used to add them.
Modified:
incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/AtomServiceBindingProvider.java
incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/RSSServiceBindingProvider.java
incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPResourceServiceBindingProvider.java
incubator/tuscany/java/sca/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java
Modified: incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/AtomServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/AtomServiceBindingProvider.java?rev=589510&r1=589509&r2=589510&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/AtomServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/AtomServiceBindingProvider.java Sun Oct 28 23:25:07 2007
@@ -37,7 +37,7 @@
private AtomBinding binding;
private ServletHost servletHost;
private MessageFactory messageFactory;
- private String uri;
+ private String servletMapping;
AtomServiceBindingProvider(RuntimeComponent component,
RuntimeComponentService service,
@@ -48,7 +48,6 @@
this.binding = binding;
this.servletHost = servletHost;
this.messageFactory = messageFactory;
- uri = binding.getURI();
}
public InterfaceContract getBindingInterfaceContract() {
@@ -66,17 +65,20 @@
FeedBindingListenerServlet servlet =
new FeedBindingListenerServlet(wire, messageFactory, "atom_1.0");
- String mapping = uri;
- if (!mapping.endsWith("/")) {
- mapping += "/";
+ servletMapping = binding.getURI();
+ if (!servletMapping.endsWith("/")) {
+ servletMapping += "/";
}
- if (!mapping.endsWith("*")) {
- mapping += "*";
+ if (!servletMapping.endsWith("*")) {
+ servletMapping += "*";
}
- servletHost.addServletMapping(mapping, servlet);
+ servletHost.addServletMapping(servletMapping, servlet);
+
+ // Save the actual binding URI in the binding
+ binding.setURI(servletHost.getURLMapping(binding.getURI()).toString());
}
public void stop() {
- servletHost.removeServletMapping(uri);
+ servletHost.removeServletMapping(servletMapping);
}
}
Modified: incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/RSSServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/RSSServiceBindingProvider.java?rev=589510&r1=589509&r2=589510&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/RSSServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/provider/RSSServiceBindingProvider.java Sun Oct 28 23:25:07 2007
@@ -37,7 +37,7 @@
private RSSBinding binding;
private ServletHost servletHost;
private MessageFactory messageFactory;
- private String uri;
+ private String servletMapping;
RSSServiceBindingProvider(RuntimeComponent component,
RuntimeComponentService service,
@@ -48,7 +48,6 @@
this.binding = binding;
this.servletHost = servletHost;
this.messageFactory = messageFactory;
- uri = binding.getURI();
}
public InterfaceContract getBindingInterfaceContract() {
@@ -66,11 +65,15 @@
FeedBindingListenerServlet servlet =
new FeedBindingListenerServlet(wire, messageFactory, "rss_2.0");
- servletHost.addServletMapping(uri, servlet);
+ servletMapping = binding.getURI();
+ servletHost.addServletMapping(servletMapping, servlet);
+
+ // Save the actual binding URI in the binding
+ binding.setURI(servletHost.getURLMapping(binding.getURI()).toString());
}
public void stop() {
- servletHost.removeServletMapping(uri);
+ servletHost.removeServletMapping(servletMapping);
}
}
Modified: incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPResourceServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPResourceServiceBindingProvider.java?rev=589510&r1=589509&r2=589510&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPResourceServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPResourceServiceBindingProvider.java Sun Oct 28 23:25:07 2007
@@ -44,7 +44,7 @@
private HTTPResourceBinding binding;
private MessageFactory messageFactory;
private ServletHost servletHost;
- private String uri;
+ private String servletMapping;
public HTTPResourceServiceBindingProvider(RuntimeComponent component,
RuntimeComponentService service,
@@ -55,14 +55,6 @@
this.binding = binding;
this.messageFactory = messageFactory;
this.servletHost = servletHost;
-
- uri = binding.getURI();
- if (!uri.endsWith("/")) {
- uri += "/";
- }
- if (!uri.endsWith("*")) {
- uri += "*";
- }
}
public InterfaceContract getBindingInterfaceContract() {
@@ -112,13 +104,24 @@
// Register the default resource servlet with the servlet host
DefaultResourceServlet resourceServlet = new DefaultResourceServlet(locationURL.toString());
- servletHost.addServletMapping(uri, resourceServlet);
+
+ servletMapping = binding.getURI();
+ if (!servletMapping.endsWith("/")) {
+ servletMapping += "/";
+ }
+ if (!servletMapping.endsWith("*")) {
+ servletMapping += "*";
+ }
+ servletHost.addServletMapping(servletMapping, resourceServlet);
+
+ // Save the actual binding URI in the binding
+ binding.setURI(servletHost.getURLMapping(binding.getURI()).toString());
}
public void stop() {
// Unregister from the hosting server
- servletHost.removeServletMapping(uri);
+ servletHost.removeServletMapping(servletMapping);
}
}
Modified: incubator/tuscany/java/sca/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java?rev=589510&r1=589509&r2=589510&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-jsonrpc/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java Sun Oct 28 23:25:07 2007
@@ -20,6 +20,7 @@
package org.apache.tuscany.sca.binding.jsonrpc.provider;
import java.net.URI;
+import java.util.ArrayList;
import java.util.List;
import org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding;
@@ -45,7 +46,8 @@
* @version $Rev$ $Date$
*/
public class JSONRPCServiceBindingProvider implements ServiceBindingProvider {
- // path to the scaDomain.js script
+
+ // Path to the scaDomain.js script
// Note: this is the same as the Ajax binding to keep the client code
// the same for clients using either the ajax or jsonrpc binding
private static final String SCA_DOMAIN_SCRIPT = "/SCADomain/scaDomain.js";
@@ -54,7 +56,8 @@
private InterfaceContract serviceContract;
private JSONRPCBinding binding;
private ServletHost servletHost;
- private String uri;
+ private List<String> servletMappings = new ArrayList<String>();
+ private String domainScriptMapping;
public JSONRPCServiceBindingProvider(RuntimeComponent component,
RuntimeComponentService service,
@@ -63,7 +66,6 @@
this.service = service;
this.binding = binding;
this.servletHost = servletHost;
- uri = binding.getURI();
//clone the service contract to avoid databinding issues
try {
@@ -99,8 +101,7 @@
// Create and register a servlet for this service
JSONRPCServiceServlet serviceServlet =
new JSONRPCServiceServlet(binding, componentService, serviceContract, serviceInterface, proxy);
-
- String mapping = uri;
+ String mapping = binding.getURI();
if (!mapping.endsWith("/")) {
mapping += "/";
}
@@ -108,10 +109,15 @@
mapping += "*";
}
servletHost.addServletMapping(mapping, serviceServlet);
+ servletMappings.add(mapping);
+ servletHost.addServletMapping(binding.getURI(), serviceServlet);
+ servletMappings.add(binding.getURI());
+
+ // Save the actual binding URI
+ binding.setURI(servletHost.getURLMapping(binding.getURI()).toString());
- // register service to scaDomain.js
+ // Register service to scaDomain.js
int port;
- servletHost.addServletMapping(binding.getURI(), serviceServlet);
URI uri = URI.create(binding.getURI());
port = uri.getPort();
if (port == -1) {
@@ -120,41 +126,33 @@
// get the ScaDomainScriptServlet, if it doesn't yet exist create one
// this uses removeServletMapping / addServletMapping as theres no getServletMapping facility
- URI domainURI = URI.create("http://localhost:" + port + SCA_DOMAIN_SCRIPT);
+ domainScriptMapping = URI.create("http://localhost:" + port + SCA_DOMAIN_SCRIPT).toString();
ScaDomainScriptServlet scaDomainServlet =
- (ScaDomainScriptServlet)servletHost.getServletMapping(domainURI.toString());
+ (ScaDomainScriptServlet)servletHost.getServletMapping(domainScriptMapping);
if (scaDomainServlet == null) {
scaDomainServlet = new ScaDomainScriptServlet();
- servletHost.addServletMapping(domainURI.toString(), scaDomainServlet);
+ servletHost.addServletMapping(domainScriptMapping, scaDomainServlet);
}
+
// Add this service to the scadomain script servlet
scaDomainServlet.addService(binding.getName());
-
-
}
public void stop() {
- // remove the servlet mapping from servletHost
- servletHost.removeServletMapping(uri);
- // unregister service from scaDomain.js
- int port;
- servletHost.removeServletMapping(binding.getURI());
- URI uri = URI.create(binding.getURI());
- port = uri.getPort();
- if (port == -1) {
- port = servletHost.getDefaultPort();
+ // Remove the servlet mappings we've added
+ for (String mapping: servletMappings) {
+ servletHost.removeServletMapping(mapping);
}
// Unregister the service from the scaDomain script servlet
- URI domainURI = URI.create("http://localhost:" + port + SCA_DOMAIN_SCRIPT);
- ScaDomainScriptServlet scaDomainServlet = (ScaDomainScriptServlet) servletHost.getServletMapping(domainURI.toString());
+ ScaDomainScriptServlet scaDomainServlet = (ScaDomainScriptServlet) servletHost.getServletMapping(domainScriptMapping);
if (scaDomainServlet != null) {
scaDomainServlet.removeService(binding.getName());
// Remove the servlet if there's no more registered services
if (scaDomainServlet.getServiceNames().isEmpty()) {
- servletHost.removeServletMapping(domainURI.toString());
+ servletHost.removeServletMapping(domainScriptMapping);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org