summaryrefslogtreecommitdiffstats
path: root/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/RpcExecutor.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/RpcExecutor.java')
-rw-r--r--sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/RpcExecutor.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/RpcExecutor.java b/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/RpcExecutor.java
index 6707496194..03e83cec61 100644
--- a/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/RpcExecutor.java
+++ b/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/RpcExecutor.java
@@ -22,6 +22,7 @@ package org.apache.tuscany.sca.binding.erlang.impl;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
+import java.util.Map;
import org.apache.tuscany.sca.binding.erlang.ErlangBinding;
import org.apache.tuscany.sca.binding.erlang.impl.types.TypeHelpersProxy;
@@ -40,18 +41,18 @@ import com.ericsson.otp.erlang.OtpErlangTuple;
public class RpcExecutor implements Runnable {
- private RuntimeComponentService service;
- private ErlangBinding binding;
+ private Map<String, RuntimeComponentService> services;
+ private Map<String, ErlangBinding> bindings;
private OtpConnection connection;
private static final OtpErlangAtom OK = new OtpErlangAtom("ok");
private static final OtpErlangAtom ERROR = new OtpErlangAtom("error");
private static final OtpErlangAtom BADRPC = new OtpErlangAtom("badrpc");
- public RpcExecutor(RuntimeComponentService service, ErlangBinding binding,
+ public RpcExecutor(Map<String, RuntimeComponentService> services, Map<String, ErlangBinding> bindings,
OtpConnection connection) {
- this.service = service;
- this.binding = binding;
+ this.bindings = bindings;
+ this.services = services;
this.connection = connection;
}
@@ -85,13 +86,15 @@ public class RpcExecutor implements Runnable {
} else {
argsList = new OtpErlangList(args);
}
- if (!binding.getModule().equals(module)) {
+ if (!services.containsKey(module)) {
// TODO: externalize message?
OtpErlangObject errorMsg = MessageHelper.functionUndefMessage(
module, function, argsList,
"Module not found in SCA component.");
sendMessage(connection, senderPid, senderRef, BADRPC, errorMsg);
} else {
+ RuntimeComponentService service = services.get(module);
+ ErlangBinding binding = bindings.get(module);
List<Operation> operations = service.getInterfaceContract()
.getInterface().getOperations();
Operation operation = null;