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 2009/08/14 12:11:06 UTC

svn commit: r804156 - /tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java

Author: antelder
Date: Fri Aug 14 10:11:05 2009
New Revision: 804156

URL: http://svn.apache.org/viewvc?rev=804156&view=rev
Log:
Start of fixes for service endpoints as being discussed on the ML. The logic of this code seems qite hard to work out so its hard to tell what some of the code is for and there's few tests. If you spot an issue just go ahead and fix it and add a new test

Modified:
    tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java

Modified: tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java?rev=804156&r1=804155&r2=804156&view=diff
==============================================================================
--- tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java (original)
+++ tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBindingURIBuilderImpl.java Fri Aug 14 10:11:05 2009
@@ -326,8 +326,7 @@
                                      Monitor monitor) throws CompositeBuilderException {
         // This is a composite service so there is no component to provide a component URI
         // The path to this composite (through nested composites) is used.
-        boolean includeBindingName = service.getEndpoints().size() > 1;
-        constructBindingURI(parentComponentURI, service, binding, includeBindingName, defaultBindings, monitor);
+        constructBindingURI(parentComponentURI, service, binding, defaultBindings, monitor);
     }
 
     /**
@@ -345,8 +344,7 @@
                                      Binding binding,
                                      Map<QName, List<String>> defaultBindings,
                                      Monitor monitor) throws CompositeBuilderException {
-        boolean includeBindingName = service.getEndpoints().size() > 1;
-        constructBindingURI(component.getURI(), service, binding, includeBindingName, defaultBindings, monitor);
+        constructBindingURI(component.getURI(), service, binding, defaultBindings, monitor);
     }
 
     /**
@@ -362,11 +360,13 @@
     private void constructBindingURI(String componentURIString,
                                      Service service,
                                      Binding binding,
-                                     boolean includeBindingName,
                                      Map<QName, List<String>> defaultBindings,
                                      Monitor monitor) throws CompositeBuilderException {
 
         try {
+            
+            boolean includeBindingName = !service.getName().equals(binding.getName());
+            
             // calculate the service binding URI
             URI bindingURI;
             if (binding.getURI() != null) {
@@ -467,13 +467,17 @@
         if (baseURI == null) {
             if (componentURI == null) {
                 if (bindingURI != null) {
-                    uriString = bindingURI.toString();
+                    uriString = name + "/" + bindingURI.toString();
                 } else {
                     uriString = name;
                 }
             } else {
                 if (bindingURI != null) {
-                    uriString = componentURI.resolve(bindingURI).toString();
+                    if (bindingURI.toString().startsWith("/")) {
+                        uriString = componentURI.resolve(bindingURI).toString();
+                    } else {
+                        uriString = componentURI.resolve(name + "/" + bindingURI).toString();
+                    }
                 } else {
                     uriString = componentURI.resolve(name).toString();
                 }