Author: slaws Date: Fri Aug 5 12:52:48 2011 New Revision: 1154194 URL: http://svn.apache.org/viewvc?rev=1154194&view=rev Log: TUSCANY-3907 - Clone top level composites before adding them to the domain level composite so that they don't get build more than once. Also clone bindings when reference and services are cloned. Modified: tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java Modified: tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java?rev=1154194&r1=1154193&r2=1154194&view=diff ============================================================================== --- tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java (original) +++ tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ReferenceImpl.java Fri Aug 5 12:52:48 2011 @@ -53,7 +53,10 @@ public class ReferenceImpl extends Abstr @Override public Object clone() throws CloneNotSupportedException { ReferenceImpl clone = (ReferenceImpl)super.clone(); - clone.bindings = new ArrayList(bindings); + clone.bindings = new ArrayList(); + for (Binding binding : getBindings()){ + clone.bindings.add((Binding)binding.clone()); + } clone.targets = new ArrayList(targets); // clone the endpoint references themselves and set the reference pointer back to // this new refrence Modified: tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java?rev=1154194&r1=1154193&r2=1154194&view=diff ============================================================================== --- tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java (original) +++ tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ServiceImpl.java Fri Aug 5 12:52:48 2011 @@ -50,7 +50,9 @@ public class ServiceImpl extends Abstrac public Object clone() throws CloneNotSupportedException { ServiceImpl clone = (ServiceImpl)super.clone(); clone.bindings = new ArrayList(); - clone.bindings.addAll(getBindings()); + for (Binding binding : getBindings()){ + clone.bindings.add((Binding)binding.clone()); + } return clone; } Modified: tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java?rev=1154194&r1=1154193&r2=1154194&view=diff ============================================================================== --- tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java (original) +++ tuscany/sca-java-2.x/trunk/modules/deployment/src/main/java/org/apache/tuscany/sca/deployment/impl/DeployerImpl.java Fri Aug 5 12:52:48 2011 @@ -583,6 +583,15 @@ public class DeployerImpl implements Dep for (Contribution contribution : contributionList) { for (Composite composite : contribution.getDeployables()) { + // TUSCANY-3907 - clone the top level composite before we includr + // it so that the composite model retained within + // the CompositeModelResolver is not changed by the build + try { + composite = (Composite)composite.clone(); + } catch (CloneNotSupportedException ex){ + // it is supported on Composite + } + // Include the node composite in the top-level composite domainComposite.getIncludes().add(composite); }