public ThriftClient<T> createClient() { return new ThriftClient<>(clientManager, service, config, service.getSimpleName()); }
@Override public ThriftClient<?> call() throws Exception { return new ThriftClient<T>( getClientManager(), interfaceClass, thriftClientConfig, clientName); }}); } catch (Exception e) {
public ThriftClient<T> createClient() { return new ThriftClient<>(clientManager, service, config, service.getSimpleName()); }
private Scribe createScribeClient( ThriftClientManager manager, ScopedServer server, TProtocolFactory protocolFactory) throws ExecutionException, InterruptedException, TException { ThriftClientConfig config = new ThriftClientConfig().setConnectTimeout(Duration.valueOf("1s")) .setReceiveTimeout(Duration.valueOf("10s")) .setReadTimeout(Duration.valueOf("1s")) .setWriteTimeout(Duration.valueOf("1s")); ThriftClient<Scribe> thriftClient = new ThriftClient<>(manager, Scribe.class, config, "ScribeClient"); return thriftClient.open(new FramedClientConnector(HostAndPort.fromParts("localhost", server.getPort()), TDuplexProtocolFactory.fromSingleFactory(protocolFactory))).get(); }
@Test public void testGenericProcessor() throws ExecutionException, InterruptedException { ThriftCodecManager codecManager = new ThriftCodecManager(); ThriftServiceProcessor processor = new ThriftServiceProcessor(codecManager, ImmutableList.<ThriftEventHandler>of(), new GenericService()); try (ThriftServer server = new ThriftServer(processor, new ThriftServerConfig()).start(); ThriftClientManager clientManager = new ThriftClientManager(codecManager)) { ThriftClient<GenericInterface.Client> clientOpener = new ThriftClient<>(clientManager, GenericInterface.Client.class); try (GenericInterface.Client client = clientOpener.open(new FramedClientConnector(HostAndPort.fromParts("localhost", server.getPort()))).get()) { GenericStruct<String> original = new GenericStruct<>(); original.genericField = "original.genericField"; GenericStruct<String> copy = client.echo(original); assertEquals(original, copy); } } } }
protected <T> ListenableFuture<T> createHttpClient(Class<T> clientClass, int serverPort) throws TTransportException, InterruptedException, ExecutionException { ThriftClientConfig config = new ThriftClientConfig().setConnectTimeout(new Duration(1, TimeUnit.SECONDS)) .setReceiveTimeout(new Duration(10, TimeUnit.SECONDS)) .setReadTimeout(new Duration(1, TimeUnit.SECONDS)) .setWriteTimeout(new Duration(1, TimeUnit.SECONDS)); HttpClientConnector connector = new HttpClientConnector(URI.create("http://localhost:" + serverPort + "/thrift/")); return new ThriftClient<>(clientManager, clientClass, config, "asyncTestClient").open(connector); }
protected <T> ListenableFuture<T> createClient(Class<T> clientClass, int serverPort, final Duration connectDelay) throws TTransportException, InterruptedException, ExecutionException { HostAndPort address = HostAndPort.fromParts("localhost", serverPort); ThriftClientConfig config = new ThriftClientConfig().setConnectTimeout(new Duration(1, TimeUnit.SECONDS)) .setReceiveTimeout(new Duration(10, TimeUnit.SECONDS)) .setReadTimeout(new Duration(1, TimeUnit.SECONDS)) .setWriteTimeout(new Duration(1, TimeUnit.SECONDS)); FramedClientConnector connector = new FramedClientConnector(address) { @Override public FramedClientChannel newThriftClientChannel( Channel nettyChannel, NettyClientConfig nettyClientConfig) { if (connectDelay.toMillis() > 0) { // Introduce an artificial delay to the client creation process, to test // cases where the client future is not set immediately when making async // connections Uninterruptibles.sleepUninterruptibly(connectDelay.toMillis(), TimeUnit.MILLISECONDS); } return super.newThriftClientChannel(nettyChannel, nettyClientConfig); } }; return new ThriftClient<>(clientManager, clientClass, config, "asyncTestClient").open(connector); }