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