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() {
 


Reply via email to