summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/binding-sca-runtime
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-02-07 23:07:58 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-02-07 23:07:58 +0000
commiteeaf84366a7e92085ffdec489f3a2efd3528aa76 (patch)
tree643312571fbbe399bc739774498bfc2a2c323891 /sca-java-2.x/trunk/modules/binding-sca-runtime
parent1523a8305daba91eb28d1fe65811b2a6bb41cc79 (diff)
Enable the allowsPassByReference support
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1068209 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/binding-sca-runtime')
-rw-r--r--sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCAReferenceBindingProvider.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCAReferenceBindingProvider.java b/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCAReferenceBindingProvider.java
index 6bda9f0c2d..3d159fcae7 100644
--- a/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCAReferenceBindingProvider.java
+++ b/sca-java-2.x/trunk/modules/binding-sca-runtime/src/main/java/org/apache/tuscany/sca/binding/sca/provider/RuntimeSCAReferenceBindingProvider.java
@@ -20,6 +20,7 @@
package org.apache.tuscany.sca.binding.sca.provider;
import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.SCABinding;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.UtilityExtensionPoint;
@@ -144,8 +145,9 @@ public class RuntimeSCAReferenceBindingProvider implements EndpointReferenceAsyn
passByValue = false;
}
} else {
-// boolean allowsPBR = chain.allowsPassByReference(); TODO: TUSCANY-3479 this breaks the conformance tests as it needs to consider _both_ ends
- boolean allowsPBR = false;
+ Reference ref = epr.getReference().getReference();
+ boolean allowsPBR = (ref != null && ref.isAllowsPassByReference()) || chain.allowsPassByReference();
+
if (allowsPBR && interfaceContractMapper.isCompatibleByReference(operation,
targetOp,
Compatibility.SUBSET)) {