You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2009/08/27 19:53:51 UTC

svn commit: r808553 - /tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java

Author: slaws
Date: Thu Aug 27 17:53:50 2009
New Revision: 808553

URL: http://svn.apache.org/viewvc?rev=808553&view=rev
Log:
Move the reference/service resetting outside the loop as they don't need to be there. 

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

Modified: tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java?rev=808553&r1=808552&r2=808553&view=diff
==============================================================================
--- tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java (original)
+++ tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/CompositeImpl.java Thu Aug 27 17:53:50 2009
@@ -58,29 +58,33 @@
     public Object clone() throws CloneNotSupportedException {
         CompositeImpl clone = (CompositeImpl)super.clone();
 
+        // clone the child components
         clone.components = new ArrayList<Component>();
         for (Component component : getComponents()) {
             Component clonedComponent = (Component)component.clone();
-            for (Service service : clone.getServices()) {
-                CompositeService compositeService = (CompositeService)service;
-                // Force the promoted component/service to be rebuilt against the clone
-                if (compositeService.getPromotedComponent() != null) {
-                    compositeService.getPromotedComponent().setUnresolved(true);
-                }
-                if (compositeService.getPromotedService() != null) {
-                    compositeService.getPromotedService().setUnresolved(true);
-                }
+            clone.components.add(clonedComponent);
+        }
+        
+        // reset the references and services so the get re-resolved
+        for (Service service : clone.getServices()) {
+            CompositeService compositeService = (CompositeService)service;
+            // Force the promoted component/service to be rebuilt against the clone
+            if (compositeService.getPromotedComponent() != null) {
+                compositeService.getPromotedComponent().setUnresolved(true);
             }
-            for (Reference reference : clone.getReferences()) {
-                CompositeReference compositeReference = (CompositeReference)reference;
-                for (ComponentReference ref : compositeReference.getPromotedReferences()) {
-                    // Force the promoted reference to be rebuilt against the clone
-                    ref.setUnresolved(true);
-                }
+            if (compositeService.getPromotedService() != null) {
+                compositeService.getPromotedService().setUnresolved(true);
+            }
+        }
+        for (Reference reference : clone.getReferences()) {
+            CompositeReference compositeReference = (CompositeReference)reference;
+            for (ComponentReference ref : compositeReference.getPromotedReferences()) {
+                // Force the promoted reference to be rebuilt against the clone
+                ref.setUnresolved(true);
             }
-
-            clone.components.add(clonedComponent);
         }
+        
+        // clone the wires
         clone.wires = new ArrayList<Wire>();
         for (Wire wire : getWires()) {
             clone.wires.add((Wire)wire.clone());