Author: slaws
Date: Mon Dec 17 06:30:07 2007
New Revision: 604880

URL: http://svn.apache.org/viewvc?rev=604880&view=rev
Log:
Make binding implement Clonable and use this in the BindinUtil class to try to 
clone all bindings that are selected to talk to services. Also add the target 
service name to the end of all forward reference binding names. 

Modified:
    
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java
    
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingUtil.java
    
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java
    
incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestBinding.java
    
incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/impl/EJBBindingImpl.java
    
incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/impl/RSSBindingImpl.java
    
incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPResourceBindingImpl.java
    
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
    
incubator/tuscany/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java
    
incubator/tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java
    
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java
    
incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/utils/AbstractBinding.java

Modified: 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Binding.java
 Mon Dec 17 06:30:07 2007
@@ -24,7 +24,7 @@
  * 
  * @version $Rev$ $Date$
  */
-public interface Binding extends Base {
+public interface Binding extends Base, Cloneable {
 
     /**
      * Returns the binding URI.
@@ -53,4 +53,11 @@
      * @param name the binding name
      */
     void setName(String name);
+    
+    /**
+     * Clone the binding
+     * 
+     * @return
+     */
+    Object clone() throws CloneNotSupportedException;   
 }

Modified: 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingUtil.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingUtil.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingUtil.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BindingUtil.java
 Mon Dec 17 06:30:07 2007
@@ -64,7 +64,34 @@
             for (Binding serviceBinding : target) {
                 if (binding.getClass() == serviceBinding.getClass() && 
                     hasCompatiblePolicySets(binding, serviceBinding)) {
-                    
+
+                    try {
+                        Binding cloned = (Binding)binding.clone();
+                        
+                        //Customise the binding name to make it unique 
+                        // regardless of how many bindings or targets there are
+                        cloned.setName(binding.getName() + "#" + 
serviceBinding.getName());
+                        
+                        // Set the binding URI to the URI of the target service
+                        // that has been matched
+                        if (binding.getURI() == null) {
+                            cloned.setURI(serviceBinding.getURI());
+                        }
+                        
+                        if (binding instanceof OptimizableBinding) {
+                            OptimizableBinding endpoint = 
((OptimizableBinding)cloned);
+                            endpoint.setTargetComponent(component);
+                            endpoint.setTargetComponentService(service);
+                            endpoint.setTargetBinding(serviceBinding);
+                        } 
+                           
+                        matched.add(cloned);
+                        break;
+                    } catch (Exception ex) {
+                        // do nothing 
+                    }
+/*                    
+                   
                     Binding cloned = binding;
                     if (binding instanceof OptimizableBinding) {
                         // TODO: We need to clone the reference binding
@@ -85,6 +112,7 @@
                     }
                     matched.add(cloned);
                     break;
+*/                    
                 }
             }
         }

Modified: 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/DomainWireBuilderImpl.java
 Mon Dec 17 06:30:07 2007
@@ -261,7 +261,8 @@
                                 Binding binding = null;
                                 
                                 for (Binding tmpBinding : 
reference.getBindings()){
-                                    if 
((tmpBinding.getName().equals(targetName) || 
+                                    if ((tmpBinding.getName() != null) &&
+                                        
(tmpBinding.getName().equals(targetName) || 
                                          
tmpBinding.getName().equals(componentName))){
                                         binding = tmpBinding;
                                     }
@@ -276,7 +277,8 @@
                                 if (newBinding != null) {
                                     if (binding != null){
                                         // there is a binding already so see 
if the URI has changed
-                                        if 
(!binding.getURI().equals(newBinding.getURI())){
+                                        if ((binding.getURI() == null) ||
+                                            
(!binding.getURI().equals(newBinding.getURI()))){
                                             
binding.setURI(newBinding.getURI());
                                             compositeChanged = true;
                                         }

Modified: 
incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestBinding.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestBinding.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestBinding.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/assembly/src/test/java/org/apache/tuscany/sca/assembly/TestBinding.java
 Mon Dec 17 06:30:07 2007
@@ -48,4 +48,8 @@
     public boolean isUnresolved() {
         return false;
     }
+    
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }     
 }

Modified: 
incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/impl/EJBBindingImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/impl/EJBBindingImpl.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/impl/EJBBindingImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-ejb/src/main/java/org/apache/tuscany/sca/binding/ejb/impl/EJBBindingImpl.java
 Mon Dec 17 06:30:07 2007
@@ -53,6 +53,13 @@
      * Whether the binding is unresolved
      */
     private boolean unresolved;
+    
+    /**
+     * Clone the binding
+     */
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }    
 
     /**
      * The type of session for this EJB Binding 

Modified: 
incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/impl/RSSBindingImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/impl/RSSBindingImpl.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/impl/RSSBindingImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-feed/src/main/java/org/apache/tuscany/sca/binding/feed/impl/RSSBindingImpl.java
 Mon Dec 17 06:30:07 2007
@@ -86,4 +86,8 @@
     public void setRequiredIntents(List<Intent> intents) {
         this.requiredIntents = intents;
     }
+    
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }     
 }

Modified: 
incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPResourceBindingImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPResourceBindingImpl.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPResourceBindingImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-http/src/main/java/org/apache/tuscany/sca/binding/http/impl/HTTPResourceBindingImpl.java
 Mon Dec 17 06:30:07 2007
@@ -54,5 +54,9 @@
     public void setUnresolved(boolean unresolved) {
         // The sample binding is always resolved
     }
+    
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }     
 
 }

Modified: 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-jms/src/main/java/org/apache/tuscany/sca/binding/jms/impl/JMSBinding.java
 Mon Dec 17 06:30:07 2007
@@ -35,6 +35,13 @@
 
 public class JMSBinding implements Binding {
     
+    /**
+     * Clone the binding
+     */
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    } 
+    
     // properties required to implement the Tuscany 
     // binding extension SPI
     private String uri                   = null; 

Modified: 
incubator/tuscany/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/DistributedSCABindingImpl.java
 Mon Dec 17 06:30:07 2007
@@ -105,5 +105,11 @@
     public void setUnresolved(boolean unresolved){
     }
     
+    /**
+     * Clone the binding
+     */
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }     
 
 }

Modified: 
incubator/tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/binding-ws/src/main/java/org/apache/tuscany/sca/binding/ws/impl/WebServiceBindingImpl.java
 Mon Dec 17 06:30:07 2007
@@ -97,6 +97,10 @@
         this.unresolved = unresolved;
     }
 
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    } 
+    
     public List<Object> getExtensions() {
         return extensions;
     }

Modified: 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java
 Mon Dec 17 06:30:07 2007
@@ -346,7 +346,7 @@
             Binding callbackBinding = null;
             for (Binding binding : callbackService.getBindings()) {
                 // first look for a callback binding whose name matches the 
reference binding name
-                if (binding.getName().equals(refBinding.getName())) {
+               if (refBinding.getName().startsWith(binding.getName())) {
                     callbackBinding = binding;
                     break;
                 }

Modified: 
incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/utils/AbstractBinding.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/utils/AbstractBinding.java?rev=604880&r1=604879&r2=604880&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/utils/AbstractBinding.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/utils/AbstractBinding.java
 Mon Dec 17 06:30:07 2007
@@ -61,5 +61,9 @@
     public void setUnresolved(boolean unresolved) {
         this.unresolved = unresolved;
     }
+    
+    public Object clone() throws CloneNotSupportedException {
+        return super.clone();
+    }     
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to