You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/05/07 07:21:41 UTC

svn commit: r535748 - /incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/builder/impl/DefaultCompositeBuilder.java

Author: jsdelfino
Date: Sun May  6 22:21:40 2007
New Revision: 535748

URL: http://svn.apache.org/viewvc?view=rev&rev=535748
Log:
Make sure that top level component references target the actual service promoted by a composite service.

Modified:
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/builder/impl/DefaultCompositeBuilder.java

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/builder/impl/DefaultCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/builder/impl/DefaultCompositeBuilder.java?view=diff&rev=535748&r1=535747&r2=535748
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/builder/impl/DefaultCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/builder/impl/DefaultCompositeBuilder.java Sun May  6 22:21:40 2007
@@ -726,8 +726,7 @@
             if (componentReference.isAutowire()) {
 
                 // Find suitable targets in the current composite for an
-                // autowired
-                // reference
+                // autowired reference
                 Multiplicity multiplicity = componentReference.getMultiplicity();
                 for (Component component : composite.getComponents()) {
                     for (ComponentService componentService : component.getServices()) {
@@ -1078,15 +1077,13 @@
                             promotedReference.getBindings().addAll(componentReference.getBindings());
 
                             // Wire the promoted reference to the actual
-                            // non-composite
-                            // component services
+                            // non-composite component services
                             promotedReference.getTargets().clear();
                             for (ComponentService target : componentReference.getTargets()) {
                                 if (target.getService() instanceof CompositeService) {
 
                                     // Wire to the actual component service
-                                    // promoted by a
-                                    // composite service
+                                    // promoted by a composite service
                                     CompositeService compositeService = (CompositeService)target.getService();
                                     ComponentService componentService = compositeService.getPromotedService();
                                     if (componentService != null) {
@@ -1097,6 +1094,26 @@
                                     // Wire to a non-composite target service
                                     promotedReference.getTargets().add(target);
                                 }
+                            }
+                        }
+                    }
+                }
+            } else {
+                for (ComponentReference componentReference : component.getReferences()) {
+
+                    // Wire the component reference to the actual
+                    // non-composite component services
+                    List<ComponentService> targets = componentReference.getTargets();
+                    for (int i = 0, n = targets.size(); i<n; i++) {
+                        ComponentService target = targets.get(i);
+                        if (target.getService() instanceof CompositeService) {
+
+                            // Wire to the actual component service
+                            // promoted by a composite service
+                            CompositeService compositeService = (CompositeService)target.getService();
+                            ComponentService componentService = compositeService.getPromotedService();
+                            if (componentService != null) {
+                                targets.set(i, componentService);
                             }
                         }
                     }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org