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 09:13:47 UTC

svn commit: r589537 - /incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCANodeImpl.java

Author: jsdelfino
Date: Mon Oct 29 01:13:46 2007
New Revision: 589537

URL: http://svn.apache.org/viewvc?rev=589537&view=rev
Log:
Use binding URI from deployed composite to determine the default URI and port for a node.

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

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=589537&r1=589536&r2=589537&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 Mon Oct 29 01:13:46 2007
@@ -33,8 +33,11 @@
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Binding;
 import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.ComponentService;
 import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.Service;
 import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.DeployedArtifact;
@@ -158,15 +161,6 @@
                 factories.addFactory(nodeFactory);    
             }
  
-            // Configure the default server port
-            int port = URI.create(nodeURI).getPort();
-            if (port != -1) {
-                ServletHostExtensionPoint servletHosts = nodeRuntime.getExtensionPointRegistry().getExtensionPoint(ServletHostExtensionPoint.class);
-                for (ServletHost servletHost: servletHosts.getServletHosts()) {
-                    servletHost.setDefaultPort(port);
-                }
-            }
-            
             // Create an in-memory domain level composite
             AssemblyFactory assemblyFactory = nodeRuntime.getAssemblyFactory();
             nodeComposite = assemblyFactory.createComposite();
@@ -364,16 +358,77 @@
             compositesToStart.add(compositeName);  
         }
     }
+
+    /**
+     * Configure the default HTTP port for this node.
+     */
+    private void configureDefaultPort() {
+        Composite composite = composites.get(compositesToStart.get(0));
+        if (composite == null) {
+            return;
+        }
+        
+        int port = -1;
+        for (Service service: composite.getServices()) {
+            for (Binding binding: service.getBindings()) {
+                String uri = binding.getURI();
+                if (uri != null) {
+                    port = URI.create(uri).getPort();
+                    if (port != -1) {
+                        break;
+                    }
+                }
+            }
+            if (port != -1) {
+                break;
+            }
+        }
+        for (Component component: composite.getComponents()) {
+            for (ComponentService service: component.getServices()) {
+                for (Binding binding: service.getBindings()) {
+                    String uri = binding.getURI();
+                    if (uri != null) {
+                        port = URI.create(uri).getPort();
+                        if (port != -1) {
+                            break;
+                        }
+                    }
+                }
+                if (port != -1) {
+                    break;
+                }
+            }
+            if (port != -1) {
+                break;
+            }
+        }
+
+        // Then get the port from the node URI 
+        if (port == -1) {
+            port = URI.create(nodeURI).getPort();
+        }
+        
+        // Configure the default port
+        if (port != -1) {
+            ServletHostExtensionPoint servletHosts = nodeRuntime.getExtensionPointRegistry().getExtensionPoint(ServletHostExtensionPoint.class);
+            for (ServletHost servletHost: servletHosts.getServletHosts()) {
+                servletHost.setDefaultPort(port);
+            }
+        }
+    }
     
     private void startComposites() throws NodeException {
         try {
             if (compositesToStart.size() == 0 ){
                 logger.log(Level.INFO, nodeURI + 
                                        " has no composites to start" );
-            } else {  
+            } else {
+                
+                // Configure the default server port for the node
+                configureDefaultPort();
+                
                 for (QName compositeName : compositesToStart) {
                     Composite composite = composites.get(compositeName);
-                    
                     if (composite == null) {
                         logger.log(Level.INFO, "Composite not found during start: " + compositeName);
                     } else {



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