public Module getModule() { return binder -> { binder.bind(ThriftHeaderProvider.class).to(DefaultThriftHeaderProvider.class).in(SINGLETON); driftClientBinder(binder) .bindDriftClient(PrestoThriftService.class) .withAddressSelector(extendedSimpleAddressSelector()); }; } }
public <T> DriftClientBindingBuilder bindDriftClient(Class<T> clientInterface) { String configPrefix = getServiceName(clientInterface); return bindDriftClient(clientInterface, configPrefix, DefaultClient.class); }
public <T, C> void bindConfigDefaults(Class<T> clientInterface, Class<C> configClass, ConfigDefaults<C> configDefaults) { bindConfigDefaults(configClass, DefaultClient.class, configClass, configDefaults); }
public static DriftClientBinder driftClientBinder(Binder binder) { return new DriftClientBinder(binder); }
public <T> void bindClientConfigDefaults(Class<T> clientInterface, ConfigDefaults<DriftClientConfig> configDefaults) { bindClientConfigDefaults(clientInterface, DefaultClient.class, configDefaults); }
private <T> DriftClientBindingBuilder bindDriftClient(Class<T> clientInterface, String configPrefix, Class<? extends Annotation> annotation) { Annotation clientAnnotation = getDriftClientAnnotation(clientInterface, annotation); configBinder(binder).bindConfig(DriftClientConfig.class, clientAnnotation, configPrefix); TypeLiteral<DriftClient<T>> typeLiteral = driftClientTypeLiteral(clientInterface); Provider<T> instanceProvider = new DriftClientInstanceProvider<>(clientAnnotation, Key.get(typeLiteral, annotation)); Provider<DriftClient<T>> factoryProvider = new DriftClientProvider<>(clientInterface, clientAnnotation); binder.bind(Key.get(clientInterface, annotation)).toProvider(instanceProvider).in(Scopes.SINGLETON); binder.bind(Key.get(typeLiteral, annotation)).toProvider(factoryProvider).in(Scopes.SINGLETON); if (annotation == DefaultClient.class) { binder.bind(Key.get(clientInterface)).toProvider(instanceProvider).in(Scopes.SINGLETON); binder.bind(Key.get(typeLiteral)).toProvider(factoryProvider).in(Scopes.SINGLETON); } return new DriftClientBindingBuilder(binder, clientAnnotation, configPrefix); }
public <T> DriftClientBindingBuilder bindDriftClient(Class<T> clientInterface) { String configPrefix = getServiceName(clientInterface); return bindDriftClient(clientInterface, configPrefix, DefaultClient.class); }
public <T> void bindClientConfigDefaults(Class<T> clientInterface, Class<? extends Annotation> annotationType, ConfigDefaults<DriftClientConfig> configDefaults) { bindConfigDefaults(clientInterface, annotationType, DriftClientConfig.class, configDefaults); }
public static DriftClientBinder driftClientBinder(Binder binder) { return new DriftClientBinder(binder); }
public <T> void bindClientConfigDefaults(Class<T> clientInterface, ConfigDefaults<DriftClientConfig> configDefaults) { bindClientConfigDefaults(clientInterface, DefaultClient.class, configDefaults); }
private <T> DriftClientBindingBuilder bindDriftClient(Class<T> clientInterface, String configPrefix, Class<? extends Annotation> annotation) { Annotation clientAnnotation = getDriftClientAnnotation(clientInterface, annotation); configBinder(binder).bindConfig(DriftClientConfig.class, clientAnnotation, configPrefix); TypeLiteral<DriftClient<T>> typeLiteral = driftClientTypeLiteral(clientInterface); Provider<T> instanceProvider = new DriftClientInstanceProvider<>(clientAnnotation, Key.get(typeLiteral, annotation)); Provider<DriftClient<T>> factoryProvider = new DriftClientProvider<>(clientInterface, clientAnnotation); binder.bind(Key.get(clientInterface, annotation)).toProvider(instanceProvider).in(Scopes.SINGLETON); binder.bind(Key.get(typeLiteral, annotation)).toProvider(factoryProvider).in(Scopes.SINGLETON); if (annotation == DefaultClient.class) { binder.bind(Key.get(clientInterface)).toProvider(instanceProvider).in(Scopes.SINGLETON); binder.bind(Key.get(typeLiteral)).toProvider(factoryProvider).in(Scopes.SINGLETON); } return new DriftClientBindingBuilder(binder, clientAnnotation, configPrefix); }
@Override public void configure(Binder binder) { driftClientBinder(binder) .bindDriftClient(PrestoThriftService.class) .withExceptionClassifier(t -> { if (t instanceof PrestoThriftServiceException) { boolean retryable = ((PrestoThriftServiceException) t).isRetryable(); return new ExceptionClassification(Optional.of(retryable), HostStatus.NORMAL); } return NORMAL_EXCEPTION; }); binder.bind(ThriftConnector.class).in(Scopes.SINGLETON); binder.bind(ThriftMetadata.class).in(Scopes.SINGLETON); binder.bind(ThriftSplitManager.class).in(Scopes.SINGLETON); binder.bind(ThriftPageSourceProvider.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(ThriftConnectorConfig.class); binder.bind(ThriftSessionProperties.class).in(Scopes.SINGLETON); binder.bind(ThriftIndexProvider.class).in(Scopes.SINGLETON); binder.bind(ThriftConnectorStats.class).in(Scopes.SINGLETON); newExporter(binder).export(ThriftConnectorStats.class) .as(generatedNameOf(ThriftConnectorStats.class, connectorId)); }
public <T> DriftClientBindingBuilder bindDriftClient(Class<T> clientInterface, Class<? extends Annotation> annotationType) { String configPrefix = getServiceName(clientInterface); if (annotationType != DefaultClient.class) { configPrefix += "." + annotationType.getSimpleName(); } return bindDriftClient(clientInterface, configPrefix, annotationType); }
public <T, C> void bindConfigDefaults(Class<T> clientInterface, Class<C> configClass, ConfigDefaults<C> configDefaults) { bindConfigDefaults(configClass, DefaultClient.class, configClass, configDefaults); }
public Module getModule() { return binder -> { binder.bind(ThriftHeaderProvider.class).to(DefaultThriftHeaderProvider.class).in(SINGLETON); driftClientBinder(binder) .bindDriftClient(PrestoThriftService.class) .withAddressSelector(extendedSimpleAddressSelector()); }; } }
public <T> DriftClientBindingBuilder bindDriftClient(Class<T> clientInterface, Class<? extends Annotation> annotationType) { String configPrefix = getServiceName(clientInterface); if (annotationType != DefaultClient.class) { configPrefix += "." + annotationType.getSimpleName(); } return bindDriftClient(clientInterface, configPrefix, annotationType); }
public <T> void bindClientConfigDefaults(Class<T> clientInterface, Class<? extends Annotation> annotationType, ConfigDefaults<DriftClientConfig> configDefaults) { bindConfigDefaults(clientInterface, annotationType, DriftClientConfig.class, configDefaults); }
@Override public void configure(Binder binder) { driftClientBinder(binder) .bindDriftClient(PrestoThriftService.class) .withExceptionClassifier(t -> { if (t instanceof PrestoThriftServiceException) { boolean retryable = ((PrestoThriftServiceException) t).isRetryable(); return new ExceptionClassification(Optional.of(retryable), HostStatus.NORMAL); } return NORMAL_EXCEPTION; }); binder.bind(ThriftConnector.class).in(Scopes.SINGLETON); binder.bind(ThriftMetadata.class).in(Scopes.SINGLETON); binder.bind(ThriftSplitManager.class).in(Scopes.SINGLETON); binder.bind(ThriftPageSourceProvider.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(ThriftConnectorConfig.class); binder.bind(ThriftSessionProperties.class).in(Scopes.SINGLETON); binder.bind(ThriftIndexProvider.class).in(Scopes.SINGLETON); binder.bind(ThriftConnectorStats.class).in(Scopes.SINGLETON); newExporter(binder).export(ThriftConnectorStats.class).withGeneratedName(); }
.setBinding() .toInstance(statsFactory), binder -> driftClientBinder(binder) .bindDriftClient(Client.class) .withAddressSelector(new MockAddressSelector()) .withExceptionClassifier(clientClassifier), binder -> driftClientBinder(binder) .bindDriftClient(Client.class, CustomClient.class) .withAddressSelector(new MockAddressSelector()) .withExceptionClassifier(customClientClassifier));
new TestingJmxModule(), transportModule, binder -> driftClientBinder(binder).bindDriftClient(DriftScribe.class) .withAddressSelector(addressSelector) .withMethodInvocationFilter(staticFilterBinder(filters)), binder -> driftClientBinder(binder).bindDriftClient(DriftScribe.class, CustomClient.class) .withAddressSelector(addressSelector) .withMethodInvocationFilter(staticFilterBinder(filters)),