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/03/20 15:06:57 UTC

svn commit: r756470 - in /tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl: ComponentReferenceEndpointReferenceBuilderImpl.java ComponentServiceEndpointBuilderImpl.java

Author: slaws
Date: Fri Mar 20 14:06:57 2009
New Revision: 756470

URL: http://svn.apache.org/viewvc?rev=756470&view=rev
Log:
wait until endpoint references have been created before trying to set callback endpoint reference on the services

Modified:
    tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java
    tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceEndpointBuilderImpl.java

Modified: tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java?rev=756470&r1=756469&r2=756470&view=diff
==============================================================================
--- tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java (original)
+++ tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentReferenceEndpointReferenceBuilderImpl.java Fri Mar 20 14:06:57 2009
@@ -32,6 +32,7 @@
 import org.apache.tuscany.sca.assembly.EndpointReference2;
 import org.apache.tuscany.sca.assembly.Implementation;
 import org.apache.tuscany.sca.assembly.Multiplicity;
+import org.apache.tuscany.sca.assembly.Reference;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilder;
 import org.apache.tuscany.sca.assembly.builder.CompositeBuilderException;
 import org.apache.tuscany.sca.definitions.Definitions;
@@ -94,9 +95,23 @@
             
             // create endpoint references to represent the component reference
             for (ComponentReference reference : component.getReferences()) {
+                
                 createReferenceEndpointReferences(composite, component, reference, components, componentServices, monitor);
+                
+                // fix up links between endpoints and endpoint references that represent callbacks
+                for (ComponentService service : component.getServices()){
+                    if ((service.getInterfaceContract() != null) &&
+                        (service.getInterfaceContract().getCallbackInterface() != null)){
+                        if ( reference.getName().equals(service.getName())){
+                            for ( Endpoint2 endpoint : service.getEndpoints()){
+                                endpoint.getCallbackEndpointReferences().addAll(reference.getEndpointReferences());
+                            }
+                            break;
+                        } 
+                    }
+                }
             }
-        }
+        } 
     }    
     
     private void createReferenceEndpointReferences(Composite composite, 

Modified: tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceEndpointBuilderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceEndpointBuilderImpl.java?rev=756470&r1=756469&r2=756470&view=diff
==============================================================================
--- tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceEndpointBuilderImpl.java (original)
+++ tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/ComponentServiceEndpointBuilderImpl.java Fri Mar 20 14:06:57 2009
@@ -119,28 +119,12 @@
                     endpointComponent = ServiceConfigurationUtil.getPromotedComponent(compositeService);
                 } 
                 
-                // if this service has a callback get the callback endpoint references
-                List<EndpointReference2> callbackEndpointReferences = null;
-                
-                if ((service.getInterfaceContract() != null) &&
-                    (service.getInterfaceContract().getCallbackInterface() != null)){
-                    // find the callback reference
-                    for ( Reference reference : component.getReferences()){
-                        if ( reference.getName().equals(service.getName())){
-                            callbackEndpointReferences = reference.getEndpointReferences();
-                            break;
-                        }
-                    } 
-                }
                 
                 for (Binding binding : service.getBindings()){
                     Endpoint2 endpoint = assemblyFactory.createEndpoint();
                     endpoint.setComponent(endpointComponent);
                     endpoint.setService(endpointService);
                     endpoint.setBinding(binding);
-                    if (callbackEndpointReferences != null) {
-                        endpoint.getCallbackEndpointReferences().addAll(callbackEndpointReferences);
-                    }
                     endpoint.setUnresolved(false);
                     service.getEndpoints().add(endpoint);
                 }