@Provides @Singleton private static DriftClientFactoryManager<Annotation> getDriftClientFactory( ThriftCodecManager codecManager, MethodInvokerFactory<Annotation> methodInvokerFactory, MethodInvocationStatsFactory methodInvocationStatsFactory) { return new DriftClientFactoryManager<>(codecManager, methodInvokerFactory, methodInvocationStatsFactory); }
@Provides @Singleton private static DriftClientFactoryManager<Annotation> getDriftClientFactory( ThriftCodecManager codecManager, MethodInvokerFactory<Annotation> methodInvokerFactory, MethodInvocationStatsFactory methodInvocationStatsFactory) { return new DriftClientFactoryManager<>(codecManager, methodInvokerFactory, methodInvocationStatsFactory); }
@Test public void testInvoker() throws Exception { ResultsSupplier resultsSupplier = new ResultsSupplier(); MockMethodInvokerFactory<String> methodInvokerFactory = new MockMethodInvokerFactory<>(resultsSupplier); TestingMethodInvocationStatsFactory statsFactory = new TestingMethodInvocationStatsFactory(); List<TestingExceptionClassifier> classifiers = ImmutableList.of(new TestingExceptionClassifier(), new TestingExceptionClassifier(), new TestingExceptionClassifier()); DriftClientFactoryManager<String> clientFactoryManager = new DriftClientFactoryManager<>(codecManager, methodInvokerFactory, statsFactory); DriftClientFactory driftClientFactory = clientFactoryManager.createDriftClientFactory("clientIdentity", new MockAddressSelector(), mergeExceptionClassifiers(classifiers)); DriftClient<Client> driftClient = driftClientFactory.createDriftClient(Client.class, Optional.empty(), ImmutableList.of(), new DriftClientConfig()); Client client = driftClient.get(ADDRESS_SELECTION_CONTEXT, HEADERS); assertEquals(methodInvokerFactory.getClientIdentity(), "clientIdentity"); testClient(resultsSupplier, ImmutableList.of(methodInvokerFactory.getMethodInvoker()), classifiers, statsFactory, client, Optional.empty()); }
@Test public void testFilter() throws Exception { ResultsSupplier resultsSupplier = new ResultsSupplier(); PassThroughFilter passThroughFilter = new PassThroughFilter(); ShortCircuitFilter shortCircuitFilter = new ShortCircuitFilter(resultsSupplier); MockMethodInvokerFactory<String> invokerFactory = new MockMethodInvokerFactory<>(resultsSupplier); TestingMethodInvocationStatsFactory statsFactory = new TestingMethodInvocationStatsFactory(); List<TestingExceptionClassifier> classifiers = ImmutableList.of(new TestingExceptionClassifier(), new TestingExceptionClassifier(), new TestingExceptionClassifier()); DriftClientFactoryManager<String> clientFactoryManager = new DriftClientFactoryManager<>(codecManager, invokerFactory, statsFactory); DriftClientFactory driftClientFactory = clientFactoryManager.createDriftClientFactory("clientIdentity", new MockAddressSelector(), mergeExceptionClassifiers(classifiers)); DriftClient<Client> driftClient = driftClientFactory.createDriftClient( Client.class, Optional.empty(), ImmutableList.of(passThroughFilter, shortCircuitFilter), new DriftClientConfig()); Client client = driftClient.get(ADDRESS_SELECTION_CONTEXT, HEADERS); assertEquals(invokerFactory.getClientIdentity(), "clientIdentity"); testClient(resultsSupplier, ImmutableList.of(passThroughFilter, shortCircuitFilter), classifiers, statsFactory, client, Optional.empty()); }
private static int logApacheThriftDriftClientAsync( HostAndPort address, String headerValue, List<DriftLogEntry> entries, List<MethodInvocationFilter> filters, Transport transport, Protocol protocol, boolean secure) { if (!isValidConfiguration(transport, protocol)) { return 0; } AddressSelector<?> addressSelector = context -> Optional.of(() -> address); ApacheThriftClientConfig config = new ApacheThriftClientConfig() .setTransport(toApacheThriftTransport(transport)) .setProtocol(toApacheThriftProtocol(protocol)) .setTrustCertificate(ClientTestUtils.getCertificateChainFile()) .setSslEnabled(secure); ApacheThriftConnectionFactoryConfig factoryConfig = new ApacheThriftConnectionFactoryConfig(); try (ApacheThriftMethodInvokerFactory<String> methodInvokerFactory = new ApacheThriftMethodInvokerFactory<>(factoryConfig, clientIdentity -> config)) { DriftClientFactoryManager<String> proxyFactoryManager = new DriftClientFactoryManager<>(CODEC_MANAGER, methodInvokerFactory); DriftClientFactory proxyFactory = proxyFactoryManager.createDriftClientFactory("myFactory", addressSelector, NORMAL_RESULT); DriftAsyncScribe scribe = proxyFactory.createDriftClient(DriftAsyncScribe.class, Optional.empty(), filters, new DriftClientConfig()).get(); assertEquals(scribe.log(headerValue, entries).get(), DRIFT_OK); } catch (Exception e) { throw new RuntimeException(e); } return 1; }
clientIdentity -> config, testingAllocator)) { DriftClientFactoryManager<String> proxyFactoryManager = new DriftClientFactoryManager<>(CODEC_MANAGER, methodInvokerFactory); DriftClientFactory proxyFactory = proxyFactoryManager.createDriftClientFactory("myFactory", addressSelector, NORMAL_RESULT);
clientIdentity -> config, testingAllocator)) { DriftClientFactoryManager<String> clientFactoryManager = new DriftClientFactoryManager<>(CODEC_MANAGER, methodInvokerFactory); DriftClientFactory proxyFactory = clientFactoryManager.createDriftClientFactory("clientIdentity", addressSelector, NORMAL_RESULT);
private static int logApacheThriftDriftClient( HostAndPort address, String headerValue, List<DriftLogEntry> entries, List<MethodInvocationFilter> filters, Transport transport, Protocol protocol, boolean secure) { if (!isValidConfiguration(transport, protocol)) { return 0; } AddressSelector<?> addressSelector = context -> Optional.of(() -> address); ApacheThriftClientConfig config = new ApacheThriftClientConfig() .setTransport(toApacheThriftTransport(transport)) .setProtocol(toApacheThriftProtocol(protocol)) .setTrustCertificate(ClientTestUtils.getCertificateChainFile()) .setSslEnabled(secure); ApacheThriftConnectionFactoryConfig factoryConfig = new ApacheThriftConnectionFactoryConfig(); try (ApacheThriftMethodInvokerFactory<String> methodInvokerFactory = new ApacheThriftMethodInvokerFactory<>(factoryConfig, clientIdentity -> config)) { DriftClientFactoryManager<String> clientFactoryManager = new DriftClientFactoryManager<>(CODEC_MANAGER, methodInvokerFactory); DriftClientFactory proxyFactory = clientFactoryManager.createDriftClientFactory("clientIdentity", addressSelector, NORMAL_RESULT); DriftScribe scribe = proxyFactory.createDriftClient(DriftScribe.class, Optional.empty(), filters, new DriftClientConfig()).get(); assertEquals(scribe.log(headerValue, entries), DRIFT_OK); } catch (Exception e) { throw new RuntimeException(e); } return 1; }