Author: jsdelfino
Date: Sat May 13 02:42:21 2006
New Revision: 406056

URL: http://svn.apache.org/viewcvs?rev=406056&view=rev
Log:
Fix for TUSCANY-326, resolve wires across module fragments

Modified:
    
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ServiceURI.java
    
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/CompositeImpl.java
    
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java
    
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java

Modified: 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ServiceURI.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ServiceURI.java?rev=406056&r1=406055&r2=406056&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ServiceURI.java
 (original)
+++ 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/ServiceURI.java
 Sat May 13 02:42:21 2006
@@ -33,6 +33,11 @@
     public String getAddress();
 
     /**
+     * @return Returns the path.
+     */
+    public String getPath();
+
+    /**
      * Returns the module component name
      * @return
      */

Modified: 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/CompositeImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/CompositeImpl.java?rev=406056&r1=406055&r2=406056&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/CompositeImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/CompositeImpl.java
 Sat May 13 02:42:21 2006
@@ -252,7 +252,15 @@
         }
         componentType.initialize(modelContext);
 
-        // Wire the module parts
+        // Wire the parts in this composite
+        wire(modelContext);
+    }
+
+    /**
+     * Wire the parts in this composite.
+     * @param modelContext
+     */
+    protected void wire(AssemblyContext modelContext) {
         for (Wire wire : getWires()) {
 
             // Get the source reference
@@ -276,7 +284,7 @@
                 }
             }
             if (configuredReference == null) {
-                throw new IllegalArgumentException("Cannot find wire source " 
+ sourceURI.getAddress());
+                throw new IllegalArgumentException("Cannot find wire source " 
+ sourceURI.getPath());
             } else {
 
                 // Resolve the target service endpoint
@@ -293,11 +301,10 @@
                         
configuredReference.getTargetConfiguredServices().add(configuredService);
                     }
                 } else {
-                    throw new IllegalArgumentException("Cannot find service 
for '" + targetURI.getAddress() +"'.");
+                    throw new IllegalArgumentException("Cannot find service '" 
+ targetURI.getPath() +"'.");
                 }
             }
         }
-
     }
 
     public Class<?> getImplementationClass() {

Modified: 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java?rev=406056&r1=406055&r2=406056&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ModuleFragmentImpl.java
 Sat May 13 02:42:21 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.tuscany.model.assembly.impl;
 
+import org.apache.tuscany.model.assembly.AssemblyContext;
 import org.apache.tuscany.model.assembly.ModuleFragment;
 
 /**
@@ -24,6 +25,11 @@
 public class ModuleFragmentImpl extends CompositeImpl implements 
ModuleFragment {
 
     protected ModuleFragmentImpl() {
+    }
+
+    protected void wire(AssemblyContext modelContext) {
+        // No wiring inside a module fragment
+        // Wires are handled at the module level
     }
 
 }

Modified: 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java?rev=406056&r1=406055&r2=406056&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/assembly/impl/ServiceURIImpl.java
 Sat May 13 02:42:21 2006
@@ -37,13 +37,19 @@
     private String serviceName;
 
     /**
-     * Constructor
+     * Constructs a new ServiceURIImpl.
      * @param address
      */
     protected ServiceURIImpl(String address) {
         this.address = address;
     }
 
+    /**
+     * Constructs a new ServiceURIImpl.
+     * @param moduleComponent
+     * @param partName
+     * @param portName
+     */
     protected ServiceURIImpl(ModuleComponent moduleComponent, String partName, 
String portName) {
          if (moduleComponent != null)
              moduleComponentName = moduleComponent.getName();
@@ -54,8 +60,7 @@
     }
 
     /**
-     * Constructor
-     *
+     * Constructs a new ServiceURIImpl.
      * @param moduleComponent
      * @param configuredPort
      */
@@ -113,10 +118,6 @@
         isParsed = true;
     }
 
-    /**
-     * Returns true if the address scheme is sca:
-     *
-     */
     public boolean isSCAScheme() {
         if (isSCAScheme == null) {
             if (address != null && address.startsWith("sca://")) {
@@ -128,13 +129,31 @@
         return isSCAScheme.booleanValue();
     }
 
-    /**
-     * @return Returns the address.
-     */
     public String getAddress() {
         return address;
     }
 
+    public String getPath() {
+        StringBuffer path = new StringBuffer();
+        String mc = getModuleComponentName();
+        if (mc != null) {
+            path.append(mc);
+        }
+        String p = getPartName();
+        if (p !=null) {
+            if (path.length()!=0)
+                path.append('/');
+            path.append(p);
+        }
+        String s = getServiceName();
+        if (s !=null) {
+            if (path.length()!=0)
+                path.append('/');
+            path.append(s);
+        }
+        return path.toString();
+    }
+    
     /**
      * Parse the address.
      */


Reply via email to