public ClientFactory setReceiveTimeout(Duration receiveTimeout) { thriftClientConfig.setReceiveTimeout(receiveTimeout); return this; } public ClientFactory setReadTimeout(Duration readTimeout) {
@Test public void testExplicitPropertyMappings() { Map<String, String> properties = new ImmutableMap.Builder<String, String>() .put("thrift.client.connect-timeout", "10s") .put("thrift.client.receive-timeout", "1d") .put("thrift.client.read-timeout", "10h") .put("thrift.client.write-timeout", "1s") .put("thrift.client.socks-proxy", "localhost:8080") .put("thrift.client.max-frame-size", "200") .build(); ThriftClientConfig expected = new ThriftClientConfig() .setConnectTimeout(Duration.valueOf("10s")) .setReceiveTimeout(Duration.valueOf("1d")) .setReadTimeout(Duration.valueOf("10h")) .setWriteTimeout(Duration.valueOf("1s")) .setSocksProxy(HostAndPort.fromParts("localhost", 8080)) .setMaxFrameSize(200); ConfigAssertions.assertFullMapping(properties, expected); }
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 testDefaults() { ConfigAssertions.assertRecordedDefaults(ConfigAssertions.recordDefaults(ThriftClientConfig.class) .setConnectTimeout(Duration.valueOf("500ms")) .setReceiveTimeout(Duration.valueOf("1m")) .setReadTimeout(Duration.valueOf("10s")) .setWriteTimeout(Duration.valueOf("1m")) .setSocksProxy(null) .setMaxFrameSize(16777216)); }
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); }