Author: rfeng
Date: Wed Apr 20 22:34:51 2011
New Revision: 1095537

URL: http://svn.apache.org/viewvc?rev=1095537&view=rev
Log:
Allow the look up of endpoint address by component/service/binding name from 
the Node API

Modified:
    
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java
    
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java
    
tuscany/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java
    
tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestRuntimeWire.java
    
tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws-ri/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/ri/JAXWSServiceBindingProvider.java
    
tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/HttpPortAllocator.java
    
tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/impl/DefaultHttpPortAllocatorImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
    
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
    
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
    
tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java
 Wed Apr 20 22:34:51 2011
@@ -46,6 +46,17 @@ public interface Endpoint extends Base, 
      * or <componentURI>#service(serviceName)
      */
     void setURI(String uri);
+    
+    /**
+     * Get the deployed URI
+     * @return The deployed URI
+     */
+    String getDeployedURI();
+    /**
+     * Set the deployed URI
+     * @param deployedURI
+     */
+    void setDeployedURI(String deployedURI);
 
     /**
      * Get the component model object

Modified: 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java
 Wed Apr 20 22:34:51 2011
@@ -45,9 +45,10 @@ public class EndpointImpl implements End
 
     protected transient ExtensionPointRegistry registry;
     protected transient BuilderExtensionPoint builders;
-    protected transient ContractBuilder contractBuilder; 
+    protected transient ContractBuilder contractBuilder;
     protected boolean unresolved;
     protected String uri;
+    protected String deployedURI;
     protected Component component;
     protected ComponentService service;
     protected Binding binding;
@@ -149,10 +150,10 @@ public class EndpointImpl implements End
     public void setExtensionType(ExtensionType type) {
         throw new UnsupportedOperationException();
     }
-    
+
     public String toStringWithoutHash() {
         String output = "Endpoint: ";
-        
+
         if (getURI() != null) {
             output += " URI = " + getURI();
         }
@@ -279,20 +280,30 @@ public class EndpointImpl implements End
         }
         return names;
     }
-    
+
     public boolean isAsyncInvocation() {
-       if( service != null && service.getName().endsWith("_asyncCallback")){
+        if (service != null && service.getName().endsWith("_asyncCallback")) {
             // this is a response service at the reference component so don't 
create a
             // response reference. 
             return false;
         } // end if
-        
-        for(Intent intent : getRequiredIntents()){
-            if (intent.getName().getLocalPart().equals("asyncInvocation")){
+
+        for (Intent intent : getRequiredIntents()) {
+            if (intent.getName().getLocalPart().equals("asyncInvocation")) {
                 return true;
             }
         }
         return false;
     }
 
+    @Override
+    public String getDeployedURI() {
+        return deployedURI == null ? (binding == null ? null : 
binding.getURI()) : deployedURI;
+    }
+
+    @Override
+    public void setDeployedURI(String deployedURI) {
+        this.deployedURI = deployedURI;
+    }
+
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-atom-runtime/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -104,6 +104,7 @@ class AtomServiceBindingProvider impleme
             deployedURI = deployedURI.substring(0, deployedURI.length() - 1);
         }
         binding.setURI(deployedURI);
+        endpoint.setDeployedURI(deployedURI);
     }
 
     public void stop() {

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/CometServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -59,7 +59,8 @@ public class CometServiceBindingProvider
      */
     @Override
     public void start() {
-        ServletFactory.registerServlet(this.servletHost);
+        String deployedURI = ServletFactory.registerServlet(this.servletHost);
+        endpoint.setDeployedURI(deployedURI);
         final ComponentService service = this.endpoint.getService();
         final Interface serviceInterface = 
service.getInterfaceContract().getInterface();
         JavascriptGenerator.generateServiceProxy(service);

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ServletFactory.java
 Wed Apr 20 22:34:51 2011
@@ -91,22 +91,26 @@ public final class ServletFactory {
         * @param servletHost
         *            the underlying servlet host
         */
-       public static synchronized void registerServlet(
+       public static synchronized String registerServlet(
                        final ServletHost servletHost) {
-               registerCometServlet(servletHost);
+               String uri = registerCometServlet(servletHost);
                registerJavascriptServlet(servletHost);
+               return uri;
        }
 
-       private static void registerCometServlet(ServletHost servletHost) {
+       private static String registerCometServlet(ServletHost servletHost) {
                if (ServletFactory.cometServlet == null) {
                        ServletFactory.cometServlet = new AtmosphereServlet();
                        ServletFactory.cometServlet.addInitParameter(
                                        ServletFactory.PACKAGE_KEY, 
ServletFactory.PACKAGE_VALUE);
-                       servletHost.addServletMapping(ServletFactory.PATH,
+                       String uri = 
servletHost.addServletMapping(ServletFactory.PATH,
                                        ServletFactory.cometServlet);
                        final CometComponentContext context = new 
CometComponentContext();
                        
ServletFactory.cometServlet.getServletContext().setAttribute(
                                        
ServletFactory.COMET_COMPONENT_CONTEXT_KEY, context);
+                       return uri;
+               } else {
+                   return null;
                }
        }
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/provider/CorbaServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -66,6 +66,7 @@ public class CorbaServiceBindingProvider
             servant = new DynaCorbaServant(proxy, Utils.getTypeId(javaClass));
             servant.setIds(new String[] {binding.getId()});
             host.registerServant(binding.getCorbaname(), servant);
+            endpoint.setDeployedURI(binding.getCorbaname());
         } catch (Exception e) {
             throw new ServiceRuntimeException(e);
         }

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestRuntimeWire.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestRuntimeWire.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestRuntimeWire.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-corba-runtime/src/test/java/org/apache/tuscany/sca/binding/corba/testing/service/mocks/TestRuntimeWire.java
 Wed Apr 20 22:34:51 2011
@@ -339,4 +339,18 @@ public class TestRuntimeWire implements 
                // TODO Auto-generated method stub
                return null;
        }
+
+
+    @Override
+    public String getDeployedURI() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+
+    @Override
+    public void setDeployedURI(String deployedURI) {
+        // TODO Auto-generated method stub
+        
+    }
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-http-runtime/src/main/java/org/apache/tuscany/sca/binding/http/provider/HTTPServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -126,7 +126,8 @@ public class HTTPServiceBindingProvider 
         if (widget) {
             start1x();
         } else {
-            servletHost.addServletMapping(servletMapping, new 
HTTPBindingServiceServlet(endpoint, messageFactory));
+            String deployedURI = servletHost.addServletMapping(servletMapping, 
new HTTPBindingServiceServlet(endpoint, messageFactory));
+            endpoint.setDeployedURI(deployedURI);
         }
     }
     
@@ -189,7 +190,8 @@ public class HTTPServiceBindingProvider 
             servletMapping += "*";
         }
         
-        servletHost.addServletMapping(servletMapping, servlet);
+        String deployedURI = servletHost.addServletMapping(servletMapping, 
servlet);
+        endpoint.setDeployedURI(deployedURI);
     }
     
     public void stop() {        

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-jsonrpc-runtime/src/main/java/org/apache/tuscany/sca/binding/jsonrpc/provider/JSONRPCServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -115,6 +115,7 @@ public class JSONRPCServiceBindingProvid
             deployedURI = deployedURI.substring(0, deployedURI.length() - 1);
         }
         binding.setURI(deployedURI);
+        endpoint.setDeployedURI(deployedURI);
         return mappedURI;
     }
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-rest-runtime/src/main/java/org/apache/tuscany/sca/binding/rest/provider/RESTServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -281,6 +281,7 @@ public class RESTServiceBindingProvider 
             deployedURI = deployedURI.substring(0, deployedURI.length() - 1);
         }
         binding.setURI(deployedURI);
+        endpoint.setDeployedURI(deployedURI);
         return mappedURI;
     }
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-rmi-runtime/src/main/java/org/apache/tuscany/sca/binding/rmi/provider/RMIServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -80,6 +80,7 @@ public class RMIServiceBindingProvider i
             String uri = rmiHost.registerService(binding.getURI(), rmiProxy);
             // Update the binding with the physical URI
             binding.setURI(uri);
+            endpoint.setDeployedURI(uri);
 
         } catch (RMIHostException e) {
             throw new ServiceRuntimeException(e);

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/DelegatingSCAServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -95,6 +95,7 @@ public class DelegatingSCAServiceBinding
             provider.start();
             // Set the resolved binding URI back to the binding.sca
             endpoint.getBinding().setURI(mappedEndpoint.getBinding().getURI());
+            endpoint.setDeployedURI(mappedEndpoint.getDeployedURI());
             started = true;
         }
     }

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/provider/Axis2ServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -20,20 +20,13 @@ package org.apache.tuscany.sca.binding.w
 
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.wsdl.Port;
 
-import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.description.TransportInDescription;
-import org.apache.axis2.description.TransportOutDescription;
-import org.apache.axis2.engine.ListenerManager;
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
@@ -198,6 +191,7 @@ public class Axis2ServiceBindingProvider
                     deployedURI = servletHost.addServletMapping(endpointURI, 
servlet);
                 }
             }
+            endpoint.setDeployedURI(deployedURI);
         } catch (AxisFault e) {
             throw new RuntimeException(e);
         }                                        

Modified: 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws-ri/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/ri/JAXWSServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws-ri/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/ri/JAXWSServiceBindingProvider.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws-ri/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/ri/JAXWSServiceBindingProvider.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws-ri/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/ri/JAXWSServiceBindingProvider.java
 Wed Apr 20 22:34:51 2011
@@ -31,9 +31,9 @@ import javax.xml.namespace.QName;
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 import javax.xml.ws.Endpoint;
+import javax.xml.ws.Service.Mode;
 import javax.xml.ws.ServiceMode;
 import javax.xml.ws.WebServiceProvider;
-import javax.xml.ws.Service.Mode;
 import javax.xml.ws.soap.SOAPBinding;
 
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
@@ -125,7 +125,8 @@ public class JAXWSServiceBindingProvider
         wsEndpoint.publish(wsBinding.getURI());
      
        
-        jaxwsBindingProvider.start();        
+        jaxwsBindingProvider.start();     
+        endpoint.setDeployedURI(wsBinding.getURI());
        
     }
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/HttpPortAllocator.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/HttpPortAllocator.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/HttpPortAllocator.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/HttpPortAllocator.java
 Wed Apr 20 22:34:51 2011
@@ -27,6 +27,8 @@ import org.apache.tuscany.sca.host.http.
  * @version $Rev$ $Date$
  */
 public interface HttpPortAllocator {
+    int DEFAULT_HTTP_PORT = 8085;
+    int DEFAULT_HTTPS_PORT = 8443;
     /**
      * Get default port for a given http scheme
      * @param scheme the http scheme in use (http/https)

Modified: 
tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/impl/DefaultHttpPortAllocatorImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/impl/DefaultHttpPortAllocatorImpl.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/impl/DefaultHttpPortAllocatorImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/host-http/src/main/java/org/apache/tuscany/sca/host/http/extensibility/impl/DefaultHttpPortAllocatorImpl.java
 Wed Apr 20 22:34:51 2011
@@ -34,21 +34,21 @@ public class DefaultHttpPortAllocatorImp
 
         if (scheme == null || scheme == HttpScheme.HTTP) {
             try {
-                port = Integer.parseInt(getVariable("HTTP_PORT", "8080"));
+                port = Integer.parseInt(getVariable("HTTP_PORT", 
String.valueOf(DEFAULT_HTTP_PORT)));
                 if (port == 0) {
-                    port = findFreePort(8080, 9080);
+                    port = findFreePort(DEFAULT_HTTP_PORT, DEFAULT_HTTP_PORT + 
1000);
                 }
             } catch (NumberFormatException e) {
-                port = 8080;
+                port = DEFAULT_HTTP_PORT;
             }
         } else if (scheme == HttpScheme.HTTPS) {
             try {
-                port = Integer.parseInt(getVariable("HTTPS_PORT", "8443"));
+                port = Integer.parseInt(getVariable("HTTPS_PORT", 
String.valueOf(DEFAULT_HTTPS_PORT)));
                 if (port == 0) {
-                    port = findFreePort(8443, 9443);
+                    port = findFreePort(DEFAULT_HTTPS_PORT, DEFAULT_HTTPS_PORT 
+ 1000);
                 }
             } catch (NumberFormatException e) {
-                port = 8443;
+                port = DEFAULT_HTTPS_PORT;
             }
         }
 

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/Node.java
 Wed Apr 20 22:34:51 2011
@@ -80,4 +80,11 @@ public interface Node {
      * @return a ServiceReference for the designated service
      */
     <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, 
String serviceName);
+    
+    /**
+     * Returns the URI for the given service binding endpoint
+     * @param serviceBindingName It can be the 
componentName/<serviceName>/<bindingName>
+     * @return
+     */
+    String getEndpointAddress(String serviceBindingName);
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
 Wed Apr 20 22:34:51 2011
@@ -154,6 +154,17 @@ public abstract class NodeFactory extend
             }
         }
 
+        @Override
+        public String getEndpointAddress(String serviceBindingName) {
+            try {
+                return (String)node.getClass().getMethod("getEndpointAddress", 
String.class)
+                    .invoke(node, serviceBindingName);
+            } catch (Throwable e) {
+                handleException(e);
+                return null;
+            }
+        }
+
     }
 
     /**

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
 Wed Apr 20 22:34:51 2011
@@ -365,4 +365,38 @@ public class NodeImpl implements Node, N
         return contributions;
     }
 
+    @Override
+    public String getEndpointAddress(String serviceBindingName) {
+        if (serviceBindingName == null) {
+            throw new IllegalArgumentException("Service binding name cannot be 
null");
+        }
+        
+        // Calculate the names for compoment/service/binding
+        String[] parts = serviceBindingName.split("/");
+        String componentName = parts[0];
+        String serviceName = parts.length >= 2 ? parts[1] : null;
+        String bindingName = parts.length >= 3 ? parts[2] : serviceName;
+
+        if (domainComposite != null) {
+            for (Component component : domainComposite.getComponents()) {
+                if (!component.getName().equals(componentName)) {
+                    continue;
+                }
+                for (Service service : component.getServices()) {
+                    if (serviceName != null && 
!service.getName().equals(serviceName)) {
+                        continue;
+                    }
+                    if (service instanceof RuntimeComponentService) {
+                        for (Endpoint ep : 
((RuntimeComponentService)service).getEndpoints()) {
+                            if (bindingName == null || 
bindingName.equals(ep.getBinding().getName())) {
+                                return ep.getDeployedURI();
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
 }

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java?rev=1095537&r1=1095536&r2=1095537&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/test/java/org/apache/tuscany/sca/node/impl/NodeImplTestCase.java
 Wed Apr 20 22:34:51 2011
@@ -116,6 +116,14 @@ public class NodeImplTestCase {
         node.start();
         HelloWorld hw = node.getService(HelloWorld.class, "HelloWorld");
         Assert.assertEquals("Hello, Node", hw.hello("Node"));
+        String address = node.getEndpointAddress("HelloWorld");
+        Assert.assertNotNull(address);
+        address = node.getEndpointAddress("HelloWorld/HelloWorld");
+        Assert.assertNotNull(address);
+        address = node.getEndpointAddress("HelloWorld/HelloWorld/HelloWorld");
+        Assert.assertNotNull(address);
+        address = node.getEndpointAddress("HelloWorld/HelloWorld1");
+        Assert.assertNull(address);        
         node.stop();
     }
 


Reply via email to