protected <T> ListenableFuture<T> createClient(Class<T> clientClass, ThriftServer server, final Duration connectDelay) throws TTransportException, InterruptedException, ExecutionException { return createClient(clientClass, server.getPort(), connectDelay); }
public DelayedMapAsyncProxyHandler(ThriftClientManager clientManager, ThriftServer targetServer) throws ExecutionException, InterruptedException { FramedClientConnector connector = new FramedClientConnector(HostAndPort.fromParts("localhost", targetServer.getPort())); asyncClient = clientManager.createClient(connector, DelayedMap.AsyncClient.class).get(); }
private ListenableFuture<? extends ClientInterface> createClient(ThriftClientManager clientManager) throws TTransportException, InterruptedException, ExecutionException { HostAndPort address = HostAndPort.fromParts(serverConfig.getBindAddress(), server.getPort()); return clientManager.createClient(new FramedClientConnector(address), clientClass); }
/** * Create and start the Thrift server. * * @param conf Giraph conf to set the host and ports for. * @param services Services to start */ public ClientThriftServer(GiraphConfiguration conf, List<?> services) { checkNotNull(conf, "conf is null"); checkNotNull(services, "services is null"); ThriftServiceProcessor processor = new ThriftServiceProcessor(new ThriftCodecManager(), new ArrayList<ThriftEventHandler>(), services); clientThriftServer = new ThriftServer(processor, new ThriftServerConfig()); clientThriftServer.start(); try { CLIENT_THRIFT_SERVER_HOST.set( conf, conf.getLocalHostname()); } catch (UnknownHostException e) { throw new IllegalStateException("Unable to get host information", e); } CLIENT_THRIFT_SERVER_PORT.set(conf, clientThriftServer.getPort()); }
private List<LogEntry> testProcessor(NiftyProcessor processor) throws Exception { ImmutableList<LogEntry> messages = ImmutableList.of( new LogEntry("hello", "world"), new LogEntry("bye", "world") ); try (ThriftServer server = new ThriftServer(processor).start()) { assertEquals(logThrift(server.getPort(), messages), ResultCode.OK); assertEquals(logSwift(server.getPort(), toSwiftLogEntry(messages)), com.facebook.swift.service.ResultCode.OK); } return messages; }
try (Scribe scribe = scribeClient.open(localFramedConnector(server.getPort())).get()) { assertEquals(scribe.log(MESSAGES), ResultCode.OK); assertEquals(injector.getInstance(Key.get(SwiftScribe.class, TestAnnotation.class)).getMessages(), newArrayList(MESSAGES)); try (PumaReadService puma = pumaClient.open(localFramedConnector(server.getPort())).get()) { List<ReadResultQueryInfoTimeString> results = puma.getResultTimeString(TestPuma.PUMA_REQUEST); verifyPumaResults(results);
try (Scribe scribe = scribeClient.open(localFramedConnector(server.getPort())).get()) { assertEquals(scribe.log(MESSAGES), ResultCode.OK); assertEquals(injector.getInstance(Key.get(SwiftScribe.class, TestAnnotation.class)).getMessages(), newArrayList(MESSAGES)); try (PumaReadService puma = pumaClient.open(localFramedConnector(server.getPort())).get()) { List<ReadResultQueryInfoTimeString> results = puma.getResultTimeString(TestPuma.PUMA_REQUEST); verifyPumaResults(results);
try (Scribe scribe = scribeClient.open(localFramedConnector(server.getPort())).get()) { assertEquals(scribe.log(MESSAGES), ResultCode.OK); assertEquals(injector.getInstance(SwiftScribe.class).getMessages(), newArrayList(MESSAGES)); try (PumaReadService puma = pumaClient.open(localFramedConnector(server.getPort())).get()) { List<ReadResultQueryInfoTimeString> results = puma.getResultTimeString(TestPuma.PUMA_REQUEST); verifyPumaResults(results);
private List<LogEntry> testProcessor(NiftyProcessor processor, boolean plaintext) throws Exception { ImmutableList<LogEntry> messages = ImmutableList.of( new LogEntry("hello", "world"), new LogEntry("bye", "world") ); SslServerConfiguration sslConfiguration = OpenSslServerConfiguration.newBuilder() .certFile(new File(getClass().getResource("/rsa.crt").getFile())) .keyFile(new File(getClass().getResource("/rsa.key").getFile())) .allowPlaintext(plaintext) .build(); try (ThriftServer server = new ThriftServer( processor, new ThriftServerConfig(), new NiftyTimer("timer"), ThriftServer.DEFAULT_FRAME_CODEC_FACTORIES, ThriftServer.DEFAULT_PROTOCOL_FACTORIES, ThriftServer.DEFAULT_WORKER_EXECUTORS, ThriftServer.DEFAULT_SECURITY_FACTORY, new ThriftServer.SslServerConfigurationHolder(sslConfiguration), ThriftServer.DEFAULT_TRANSPORT_ATTACH_OBSERVER).start()) { assertEquals(logThrift(server.getPort(), messages), ResultCode.OK); assertEquals(logSwift(server.getPort(), toSwiftLogEntry(messages)), com.facebook.swift.service.ResultCode.OK); } return messages; }
@Test public void testPumaSwiftException() throws Exception { PumaReadServer puma = new PumaReadServer(); ReadSemanticException exception = new ReadSemanticException("my exception"); puma.setException(exception); NiftyProcessor processor = new ThriftServiceProcessor(new ThriftCodecManager(), ImmutableList.<ThriftEventHandler>of(), puma); try ( ThriftServer server = new ThriftServer(processor).start(); ThriftClientManager clientManager = new ThriftClientManager(); PumaReadService pumaClient = clientManager.createClient( new FramedClientConnector(HostAndPort.fromParts("localhost", server.getPort())), PumaReadService.class).get() ) { pumaClient.getResultTimeString(PUMA_REQUEST); fail("Expected ReadSemanticException"); } catch (ReadSemanticException e) { assertEquals(e, exception); } }
@Test public void testPumaSwift() throws Exception { // create server and start PumaReadServer puma = new PumaReadServer(); ThriftServiceProcessor processor = new ThriftServiceProcessor(new ThriftCodecManager(), ImmutableList.<ThriftEventHandler>of(), puma); // create server and client try ( ThriftServer server = new ThriftServer(processor).start(); ThriftClientManager clientManager = new ThriftClientManager(); PumaReadService pumaClient = clientManager.createClient( new FramedClientConnector(fromParts("localhost", server.getPort())), PumaReadService.class).get() ) { // invoke puma List<ReadResultQueryInfoTimeString> results = pumaClient.getResultTimeString(PUMA_REQUEST); verifyPumaResults(results); } }
@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); } } } }