summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/implementation-bpel-ode
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2008-12-17 14:35:59 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2008-12-17 14:35:59 +0000
commite932b4b558015ee1e771321786666cf1b3be5361 (patch)
treed476d776985f7870b65b13cf5abbf0ef5ebb5a0e /branches/sca-java-1.x/modules/implementation-bpel-ode
parent507dbf9a94c049f983fa28ccae5ed22add21ea5d (diff)
Allow for multiple references from a BPEL script.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@727399 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.x/modules/implementation-bpel-ode')
-rw-r--r--branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java20
-rw-r--r--branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java4
2 files changed, 21 insertions, 3 deletions
diff --git a/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java b/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
index 15e9229601..6ce6a727af 100644
--- a/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
+++ b/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
@@ -30,11 +30,13 @@ import org.apache.ode.bpel.iapi.MessageExchange;
import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.ode.utils.DOMUtils;
+import org.apache.tuscany.sca.assembly.ComponentReference;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
import org.apache.tuscany.sca.runtime.RuntimeWire;
+import org.osoa.sca.ServiceRuntimeException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -86,8 +88,21 @@ public class ODEExternalService {
TuscanyPRC channel = (TuscanyPRC) partnerRoleMessageExchange.getChannel();
RuntimeComponent tuscanyRuntimeComponent = _server.getTuscanyRuntimeComponent(channel.getProcessName());
- RuntimeComponentReference runtimeComponentReference =
- (RuntimeComponentReference)tuscanyRuntimeComponent.getReferences().get(0);
+ // get the right reference based on the partner link name
+ String referenceName = channel.getEndpoint().serviceName.getLocalPart();
+ RuntimeComponentReference runtimeComponentReference = null;
+
+ for (ComponentReference reference : tuscanyRuntimeComponent.getReferences()){
+ if (reference.getName().equals(referenceName)){
+ runtimeComponentReference = (RuntimeComponentReference)reference;
+ break;
+ }
+ }
+
+ if (runtimeComponentReference == null){
+ throw new ServiceRuntimeException("Can't find component reference for partner link " + referenceName);
+ }
+
RuntimeWire runtimeWire =
runtimeComponentReference.getRuntimeWire(runtimeComponentReference.getBindings().get(0));
@@ -95,7 +110,6 @@ public class ODEExternalService {
Operation operation =
findOperation(partnerRoleMessageExchange.getOperation().getName(), runtimeComponentReference);
-
/*
This is how a request looks like (payload is wrapped with extra info)
<?xml version="1.0" encoding="UTF-8"?>
diff --git a/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java b/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
index 8f8f608217..c2c16a24ca 100644
--- a/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
+++ b/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
@@ -50,6 +50,10 @@ public class TuscanyPRC implements PartnerRoleChannel {
public QName getProcessName() {
return this.processName;
}
+
+ public Endpoint getEndpoint() {
+ return endpoint;
+ }
public void close() {