You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/07/13 01:51:58 UTC
svn commit: r555820 -
/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
Author: rfeng
Date: Thu Jul 12 16:51:57 2007
New Revision: 555820
URL: http://svn.apache.org/viewvc?view=rev&rev=555820
Log:
Fix the reference target/binding override/promotion
Modified:
incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java?view=diff&rev=555820&r1=555819&r2=555820
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/CompositeBuilderImpl.java Thu Jul 12 16:51:57 2007
@@ -1243,7 +1243,10 @@
// Wire the promoted reference to the actual
// non-composite component services
- promotedReference.getTargets().clear();
+ if (promotedReference.getMultiplicity() == Multiplicity.ONE_ONE || promotedReference
+ .getMultiplicity() == Multiplicity.ONE_ONE) {
+ promotedReference.getTargets().clear();
+ }
for (ComponentService target : componentReference.getTargets()) {
if (target.getService() instanceof CompositeService) {
@@ -1291,15 +1294,16 @@
Multiplicity multiplicity = promotedReference.getMultiplicity();
if(multiplicity == Multiplicity.ZERO_N || multiplicity == Multiplicity.ONE_N) {
// Merging for 0..N or 1..N
+ promotedReference.getBindings().clear();
promotedReference.getBindings().addAll(reference.getBindings());
} else {
// Override the configuration of the promoted reference for 0..1 or 1..1
SCABinding scaBinding = promotedReference.getBinding(SCABinding.class);
promotedReference.getBindings().clear();
// FIXME: [rfeng] I don't think we should keep the SCABinding
- if (scaBinding != null) {
- promotedReference.getBindings().add(scaBinding);
- }
+// if (scaBinding != null) {
+// promotedReference.getBindings().add(scaBinding);
+// }
promotedReference.getBindings().addAll(reference.getBindings());
}
}
@@ -1461,6 +1465,7 @@
// Choose a binding for the reference based on the bindings available on the service
protected Binding resolveBindings(ComponentReference reference, ComponentService service) {
List<Binding> refBindings = new ArrayList<Binding>(reference.getBindings());
+ // Find the corresponding bindings from the service side
for(Binding binding: reference.getBindings()){
for(Binding serviceBinding: service.getBindings()) {
if(binding.getClass() == serviceBinding.getClass()) {
@@ -1470,13 +1475,16 @@
}
}
if(refBindings.isEmpty()) {
+ // No matching binding
return null;
} else {
for(Binding binding: refBindings) {
+ // If binding.sca is present,
if(SCABinding.class.isInstance(binding)) {
return binding;
}
}
+ // Use the first one
return refBindings.get(0);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org