From c9dcefb153eda2127022377a2942650d7c1664b3 Mon Sep 17 00:00:00 2001 From: Vaci Koblizek Date: Mon, 7 Dec 2020 19:00:49 +0000 Subject: [PATCH] EzRpcClient must connect synchronously --- .../main/java/org/capnproto/EzRpcClient.java | 27 ++----------------- .../test/java/org/capnproto/EzRpcTest.java | 6 +++-- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/runtime-rpc/src/main/java/org/capnproto/EzRpcClient.java b/runtime-rpc/src/main/java/org/capnproto/EzRpcClient.java index b28da33..2c89179 100644 --- a/runtime-rpc/src/main/java/org/capnproto/EzRpcClient.java +++ b/runtime-rpc/src/main/java/org/capnproto/EzRpcClient.java @@ -1,39 +1,16 @@ package org.capnproto; -import java.io.IOException; -import java.net.Socket; -import java.net.SocketAddress; import java.nio.channels.AsynchronousSocketChannel; -import java.nio.channels.CompletionHandler; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; public class EzRpcClient { - private final AsynchronousSocketChannel socket; private final TwoPartyClient twoPartyRpc; private final Capability.Client client; - public EzRpcClient(SocketAddress address) throws Exception { - this.socket = AsynchronousSocketChannel.open(); - - var connected = new CompletableFuture(); - - this.socket.connect(address, null, new CompletionHandler<>() { - - @Override - public void completed(java.lang.Void result, Object attachment) { - connected.complete(null); - } - - @Override - public void failed(Throwable exc, Object attachment) { - connected.completeExceptionally(exc); - } - }); - + public EzRpcClient(AsynchronousSocketChannel socket) { this.twoPartyRpc = new TwoPartyClient(socket); - this.client = new Capability.Client(connected.thenApply(void_ -> this.twoPartyRpc.bootstrap())); + this.client = new Capability.Client(this.twoPartyRpc.bootstrap()); } public Capability.Client getMain() { diff --git a/runtime-rpc/src/test/java/org/capnproto/EzRpcTest.java b/runtime-rpc/src/test/java/org/capnproto/EzRpcTest.java index 5352c7c..31de620 100644 --- a/runtime-rpc/src/test/java/org/capnproto/EzRpcTest.java +++ b/runtime-rpc/src/test/java/org/capnproto/EzRpcTest.java @@ -3,6 +3,7 @@ package org.capnproto; import org.capnproto.rpctest.Test; import org.junit.Assert; import java.net.InetSocketAddress; +import java.nio.channels.AsynchronousSocketChannel; public class EzRpcTest { @@ -13,8 +14,9 @@ public class EzRpcTest { var server = new EzRpcServer(new RpcTestUtil.TestInterfaceImpl(callCount), address); server.start(); - var client = new EzRpcClient(new InetSocketAddress("localhost", server.getPort())); - + var clientSocket = AsynchronousSocketChannel.open(); + clientSocket.connect(new InetSocketAddress("localhost", server.getPort())).get(); + var client = new EzRpcClient(clientSocket); var cap = new Test.TestInterface.Client(client.getMain()); var request = cap.fooRequest(); request.getParams().setI(123);