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 02:37:32 UTC

svn commit: r589464 - in /incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node: impl/DomainManagerServiceImpl.java impl/SCANodeImpl.java impl/SCANodeUtil.java launch/SCANodeLauncher.java

Author: jsdelfino
Date: Sun Oct 28 18:37:31 2007
New Revision: 589464

URL: http://svn.apache.org/viewvc?rev=589464&view=rev
Log:
Use a more reliable way to get a free IP port. Changed the node launcher to pick a free IP port for the launched node.

Modified:
    incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java
    incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java
    incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeUtil.java
    incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/launch/SCANodeLauncher.java

Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java?rev=589464&r1=589463&r2=589464&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java Sun Oct 28 18:37:31 2007
@@ -58,7 +58,6 @@
                 returnValue =  domainManager.registerNode(nodeURI, nodeURL);
                 break;
             } catch(UndeclaredThrowableException ex) {
-                ex.printStackTrace();
                 logger.log(Level.INFO, "Trying to register node " + 
                                        nodeURI + 
                                        " at endpoint " +

Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java?rev=589464&r1=589463&r2=589464&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java Sun Oct 28 18:37:31 2007
@@ -19,6 +19,8 @@
 
 package org.apache.tuscany.sca.node.impl;
 
+import java.net.InetAddress;
+import java.net.ServerSocket;
 import java.net.URI;
 import java.net.URL;
 import java.util.ArrayList;
@@ -131,6 +133,15 @@
      */
     private void init() throws NodeException {
         try {
+            
+            // Generate a unique node URI
+            if (nodeURI == null) {
+                
+               String host = InetAddress.getLocalHost().getHostName();
+               ServerSocket socket = new ServerSocket(0);
+               nodeURI = "http://" + host + ":" + socket.getLocalPort();
+               socket.close();
+            }
             
             // create a node runtime for the domain contributions to run on
             nodeRuntime = new ReallySmallRuntime(nodeClassLoader);

Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeUtil.java?rev=589464&r1=589463&r2=589464&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeUtil.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeUtil.java Sun Oct 28 18:37:31 2007
@@ -156,7 +156,7 @@
      * @return node manager url
      */    
     public static void fixUpNodeServiceUrls(List<Component> nodeComponents, URL nodeUrlString)
-      throws MalformedURLException, UnknownHostException {
+      throws MalformedURLException, UnknownHostException, IOException {
       
         for(Component component : nodeComponents){
             for (ComponentService service : component.getServices() ){
@@ -197,7 +197,7 @@
      * @param nodeURL the URL provided as the identifier of the node
      */
     public static void fixUpNodeServiceBindingUrl(Binding binding, URL manualUrl)
-      throws MalformedURLException, UnknownHostException{
+      throws MalformedURLException, UnknownHostException, IOException {
 
         String urlString = binding.getURI(); 
         
@@ -243,25 +243,12 @@
      * @param startPort
      * @return
      */
-    public static int findFreePort(int startPort)
+    public static int findFreePort(int startPort) throws IOException
     {
-        boolean portIsBusy = true;
-        int freePort = startPort;
-        
-        do {
-            try {
-                ServerSocket socket = new ServerSocket(freePort);
-                portIsBusy = false;
-                socket.close();
-                break;
-            }
-            catch (IOException ex) {
-                // the port is busy
-                freePort = freePort + 1;
-            }
-        } while (portIsBusy && freePort < 9999); 
-        
-        return freePort;
+        ServerSocket socket = new ServerSocket(0);
+        int port = socket.getLocalPort();
+        socket.close();
+        return port;
     }  
     
     /**

Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/launch/SCANodeLauncher.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/launch/SCANodeLauncher.java?rev=589464&r1=589463&r2=589464&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/launch/SCANodeLauncher.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/launch/SCANodeLauncher.java Sun Oct 28 18:37:31 2007
@@ -40,7 +40,7 @@
             System.out.println("Composite: " + compositeFile);
             
             SCANodeFactory nodeFactory = SCANodeFactory.newInstance();
-            node = nodeFactory.createSCANode("node", "http://localhost:9999");
+            node = nodeFactory.createSCANode(null, "http://localhost:9999");
 
             ClassLoader classLoader = SCANodeLauncher.class.getClassLoader();
             URL contribution = SCAContributionUtil.findContributionFromResource(classLoader, compositeFile); 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org