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/06 23:47:41 UTC
svn commit: r535658 -
/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/builder/impl/DefaultCompositeBuilder.java
Author: jsdelfino
Date: Sun May 6 14:47:39 2007
New Revision: 535658
URL: http://svn.apache.org/viewvc?view=rev&rev=535658
Log:
Propagate interfaces from inner composite services to the corresponding component services.
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=535658&r1=535657&r2=535658
==============================================================================
--- 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 14:47:39 2007
@@ -610,6 +610,23 @@
private void connectCompositeServices(Composite composite,
Map<String, ComponentService> componentServices) {
+ // Propagate interfaces from inner composite components' services to
+ // their component services
+ for (Component component : composite.getComponents()) {
+ if (component.getImplementation() instanceof Composite) {
+ for (ComponentService componentService : component.getServices()) {
+ Service service = componentService.getService();
+ if (service != null) {
+ if (componentService.getInterfaceContract() == null) {
+ componentService.setInterfaceContract(service.getInterfaceContract());
+ }
+ }
+ }
+ }
+ }
+
+ // Connect composite services to the component services that they
+ // promote
for (Service service : composite.getServices()) {
CompositeService compositeService = (CompositeService)service;
@@ -633,6 +650,7 @@
}
}
}
+
}
/**
@@ -645,6 +663,23 @@
private void connectCompositeReferences(Composite composite,
Map<String, ComponentReference> componentReferences) {
+ // Propagate interfaces from inner composite components' references to
+ // their component references
+ for (Component component : composite.getComponents()) {
+ if (component.getImplementation() instanceof Composite) {
+ for (ComponentReference componentReference : component.getReferences()) {
+ Reference reference = componentReference.getReference();
+ if (reference != null) {
+ if (componentReference.getInterfaceContract() == null) {
+ componentReference.setInterfaceContract(reference.getInterfaceContract());
+ }
+ }
+ }
+ }
+ }
+
+ // Connect composite references to the component references
+ // that they promote
for (Reference reference : composite.getReferences()) {
CompositeReference compositeReference = (CompositeReference)reference;
List<ComponentReference> promotedReferences = compositeReference.getPromotedReferences();
@@ -1098,13 +1133,14 @@
// services and references that they promote
connectCompositeServices(composite, componentServices);
connectCompositeReferences(composite, componentReferences);
-
+
// Connect component references to their targets
connectComponentReferences(composite, componentServices, componentReferences);
// Connect component references as described in wires
connectWires(composite, componentServices, componentReferences);
+ // Resolve sourced properties
resolveSourcedProperties(composite);
// Validate that references are wired or promoted, according
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org