Author: slaws
Date: Wed Dec 17 06:35:59 2008
New Revision: 727399
URL: http://svn.apache.org/viewvc?rev=727399&view=rev
Log:
Allow for multiple references from a BPEL script.
Modified:
tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
Modified:
tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
URL:
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java?rev=727399&r1=727398&r2=727399&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
Wed Dec 17 06:35:59 2008
@@ -30,11 +30,13 @@
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 @@
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 @@
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"?>
Modified:
tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
URL:
http://svn.apache.org/viewvc/tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java?rev=727399&r1=727398&r2=727399&view=diff
==============================================================================
---
tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
(original)
+++
tuscany/branches/sca-java-1.x/modules/implementation-bpel-ode/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
Wed Dec 17 06:35:59 2008
@@ -50,6 +50,10 @@
public QName getProcessName() {
return this.processName;
}
+
+ public Endpoint getEndpoint() {
+ return endpoint;
+ }
public void close() {