summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/core
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/modules/core')
-rw-r--r--java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java
index c349e43615..ac977cbf37 100644
--- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java
+++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/CallbackReferenceImpl.java
@@ -143,12 +143,20 @@ public class CallbackReferenceImpl<B> extends CallableReferenceImpl<B> {
try {
// TODO - EPR - is this correct?
- // Fluff up a new response wire based on the callback endpoint
- RuntimeComponentReference ref =
- bind((RuntimeComponentReference)wire.getEndpointReference().getReference(),
- resolvedEndpoint);
-
- boundWire = ref.getRuntimeWires().get(0);
+ // test if the call back wire is manually configured
+ if ((wire.getEndpointReference().isUnresolved()== false) &&
+ (wire.getEndpointReference().getTargetEndpoint().isUnresolved()== false)){
+ boundWire = wire;
+ resolvedEndpoint = wire.getEndpointReference().getTargetEndpoint();
+ } else {
+ // Fluff up a new response wire based on the callback endpoint
+ // that came in across the wire
+ RuntimeComponentReference ref =
+ bind((RuntimeComponentReference)wire.getEndpointReference().getReference(),
+ resolvedEndpoint);
+
+ boundWire = ref.getRuntimeWires().get(0);
+ }
Binding binding = wire.getEndpointReference().getBinding();