@Override public void configure(Binder binder) { configBinder(binder).bindConfig(DbResourceGroupConfig.class); binder.bind(ResourceGroupsDao.class).toProvider(MysqlDaoProvider.class).in(Scopes.SINGLETON); binder.bind(DbResourceGroupConfigurationManager.class).in(Scopes.SINGLETON); binder.bind(ResourceGroupConfigurationManager.class).to(DbResourceGroupConfigurationManager.class).in(Scopes.SINGLETON); newExporter(binder).export(DbResourceGroupConfigurationManager.class).withGeneratedName(); } }
@Override public void configure(Binder binder) { configBinder(binder).bindConfig(WarningCollectorConfig.class); configBinder(binder).bindConfig(TestingWarningCollectorConfig.class); }
@Override public void configure(Binder binder) { configBinder(binder).bindConfig(FileResourceGroupConfig.class); binder.bind(FileResourceGroupConfigurationManager.class).in(Scopes.SINGLETON); } }
@Override public void configure(Binder binder) { binder.disableCircularProxies(); binder.bind(NodeInfo.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(NodeConfig.class); newExporter(binder).export(NodeInfo.class).withGeneratedName(); } }
@Override protected void setup(Binder binder) { binder.bind(Clock.class).toInstance(Clock.systemUTC()); binder.bind(LockService.class).toProvider(LockServiceProvider.class); binder.bind(FieldDependency.class).toProvider(FieldDependencyProvider.class).in(Scopes.SINGLETON); binder.bind(QueryHttpService.class).asEagerSingleton(); binder.bind(QueryExecutorService.class).asEagerSingleton(); configBinder(binder).bindConfig(TaskConfig.class); configBinder(binder).bindConfig(EventStreamConfig.class); configBinder(binder).bindConfig(RealTimeConfig.class); binder.bind(ActiveModuleListBuilder.class).asEagerSingleton(); binder.bind(FastGenericFunnelQueryExecutor.class); configBinder(binder).bindConfig(HttpServerConfig.class); configBinder(binder).bindConfig(ProjectConfig.class); configBinder(binder).bindConfig(EncryptionConfig.class); configBinder(binder).bindConfig(CustomDataSourceConfig.class); binder.bind(SchemaChecker.class).asEagerSingleton(); .annotatedWith(Names.named("rakam-client")) .toProvider(() -> RAsyncHttpClient.create(1000 * 60 * 10, "rakam-custom-script")) .in(Scopes.SINGLETON); binder.bind(WebServiceModule.class);
@Override public void configure(Binder binder) { this.binder = requireNonNull(binder, "binder is null"); // bind the configuration configBinder(binder).bindConfig(KerberosConfig.class); configBinder(binder).bindConfig(HttpClientConfig.class, annotation, name); // bind the client binder.bind(HttpClient.class).annotatedWith(annotation).toProvider(new HttpClientProvider(name, annotation)).in(Scopes.SINGLETON); // kick off the binding for the default filters newSetBinder(binder, HttpRequestFilter.class, GlobalFilter.class); // kick off the binding for the filter set newSetBinder(binder, HttpRequestFilter.class, annotation); // export stats newExporter(binder).export(HttpClient.class).annotatedWith(annotation).withGeneratedName(); }
binder.bind(WebUserService.class).asEagerSingleton(); binder.bind(DashboardService.class).asEagerSingleton(); binder.bind(UserDefaultService.class).asEagerSingleton(); configBinder(binder).bindConfig(EmailClientConfig.class); configBinder(binder).bindConfig(EncryptionConfig.class); configBinder(binder).bindConfig(UserPluginConfig.class); configBinder(binder).bindConfig(RealTimeConfig.class); configBinder(binder).bindConfig(EventStreamConfig.class); configBinder(binder).bindConfig(EventExplorerConfig.class); configBinder(binder).bindConfig(UserPluginConfig.class); binder.bind(ProjectDeleteEventListener.class).asEagerSingleton(); binder.bind(ReportMetadata.class).to(JDBCReportMetadata.class).in(Scopes.SINGLETON); binder.bind(CustomReportMetadata.class).to(JDBCCustomReportMetadata.class).in(Scopes.SINGLETON); binder.bind(DefaultDashboardCreator.class).asEagerSingleton();
@Override public void configure(Binder binder) binder.requireExplicitBindings(); binder.disableCircularProxies(); binder.bind(new TypeLiteral<Supplier<DateTime>>() {}).to(RealTimeSupplier.class).in(Scopes.SINGLETON); binder.bind(ConflictResolver.class).in(Scopes.SINGLETON); Key<RemoteStore> remoteStoreKey = Key.get(RemoteStore.class, annotation); configBinder(binder).bindConfig(StoreConfig.class, annotation, name); httpClientBinder(binder).bindHttpClient(name, annotation); binder.bind(DistributedStore.class).annotatedWith(annotation).toProvider(new DistributedStoreProvider(name, localStoreKey, storeConfigKey, remoteStoreKey)).in(Scopes.SINGLETON); binder.bind(Replicator.class).annotatedWith(annotation).toProvider(new ReplicatorProvider(name, localStoreKey, httpClientKey, storeConfigKey)).in(Scopes.SINGLETON); binder.bind(HttpRemoteStore.class).annotatedWith(annotation).toProvider(new RemoteHttpStoreProvider(name, httpClientKey, storeConfigKey)).in(Scopes.SINGLETON); binder.bind(LocalStore.class).annotatedWith(annotation).to(localStoreClass).in(Scopes.SINGLETON); binder.bind(RemoteStore.class).annotatedWith(annotation).to(Key.get(HttpRemoteStore.class, annotation)); newExporter(binder).export(DistributedStore.class).annotatedWith(annotation).as(generatedNameOf(DistributedStore.class, named(name))); newExporter(binder).export(HttpRemoteStore.class).annotatedWith(annotation).as(generatedNameOf(HttpRemoteStore.class, named(name))); newExporter(binder).export(Replicator.class).annotatedWith(annotation).as(generatedNameOf(Replicator.class, named(name)));
@Override public void bind(Binder binder, Annotation annotation, String prefix) { configBinder(binder).bindConfig(SimpleAddressSelectorConfig.class, annotation, prefix); binder.bind(AddressSelector.class) .annotatedWith(annotation) .toProvider(new ExtendedSimpleAddressSelectorProvider(annotation)); }
@Override public void configure(Binder binder) { binder.disableCircularProxies(); configBinder(binder).bindConfig(HttpServerConfig.class); configBinder(binder).bindConfigDefaults(HttpServerConfig.class, config -> { config.setHttpPort(httpPort); if (httpPort == 0) { config.setHttpsPort(0); } }); binder.bind(HttpServerInfo.class).in(Scopes.SINGLETON); binder.bind(TestingHttpServer.class).in(Scopes.SINGLETON); binder.bind(HttpServer.class).to(Key.get(TestingHttpServer.class)); newSetBinder(binder, Filter.class, TheServlet.class); newSetBinder(binder, HttpResourceBinding.class, TheServlet.class); binder.bind(AnnouncementHttpServerInfo.class).to(LocalAnnouncementHttpServerInfo.class); } }
@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)); }
@Override protected void setup(Binder binder) { WebhookConfig webhookConfig = buildConfigObject(WebhookConfig.class); if(webhookConfig.getUrl() != null) { configBinder(binder).bindConfig(WebhookConfig.class); configBinder(binder).bindConfig(AWSConfig.class); Multibinder<EventMapper> mappers = Multibinder.newSetBinder(binder, EventMapper.class); mappers.addBinding().to(WebhookEventMapper.class).in(Scopes.SINGLETON); } }
@Override public void configure(Binder binder) { configBinder(binder).bindConfig(JdbcDatabaseConfig.class); configBinder(binder).bindConfig(MySqlDataSourceConfig.class, ForMetadata.class, "metadata"); configBinder(binder).bindConfigDefaults(MySqlDataSourceConfig.class, ForMetadata.class, config -> { config.setMaxConnections(100); config.setDefaultFetchSize(1000); }); }
@Test public void testConfigGlobalDefaults() throws Exception { int globalDefaultValue = 1; int defaultValue = 2; int customValue = 3; Module module = binder -> { configBinder(binder).bindConfigGlobalDefaults(Config1.class, (config -> { config.setByteOption((byte) globalDefaultValue); config.setIntegerOption(globalDefaultValue); config.setLongOption(globalDefaultValue); })); configBinder(binder).bindConfigDefaults(Config1.class, MyAnnotation.class, (config -> { config.setIntegerOption(defaultValue); config.setLongOption(defaultValue); })); configBinder(binder).bindConfig(Config1.class, MyAnnotation.class); }; Injector injector = createInjector(ImmutableMap.of("longOption", "" + customValue), module); Config1 config = injector.getInstance(Key.get(Config1.class, MyAnnotation.class)); assertEquals(config.getByteOption(), globalDefaultValue); assertEquals(config.getIntegerOption(), defaultValue); assertEquals(config.getLongOption(), customValue); }
void withConfigDefaults(ConfigDefaults<HttpClientConfig> configDefaults) { configBinder(binder).bindConfigDefaults(HttpClientConfig.class, annotation, configDefaults); }
@Override protected void setup(Binder binder) { InternalCommunicationConfig internalCommunicationConfig = buildConfigObject(InternalCommunicationConfig.class); configBinder(binder).bindConfigGlobalDefaults(HttpClientConfig.class, config -> { config.setKeyStorePath(internalCommunicationConfig.getKeyStorePath()); config.setKeyStorePassword(internalCommunicationConfig.getKeyStorePassword()); }); install(installModuleIf(InternalCommunicationConfig.class, InternalCommunicationConfig::isKerberosEnabled, kerberosInternalCommunicationModule())); }
public <T> void bindConfigDefaults(Class<T> configClass, ConfigDefaults<T> configDefaults) { requireNonNull(configClass, "configClass is null"); requireNonNull(configDefaults, "configDefaults is null"); bindConfigDefaults(Key.get(configClass), configDefaults); }
@Override public void configure(Binder binder) { binder.bind(JdbcClient.class).to(RedshiftClient.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(BaseJdbcConfig.class); } }
@Override public void configure(Binder binder) { binder.disableCircularProxies(); binder.bind(NodeInfo.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(NodeConfig.class); newExporter(binder).export(NodeInfo.class).withGeneratedName(); } }
@Override protected void setup(Binder binder) { configBinder(binder).bindConfig(MetadataConfig.class); configBinder(binder).bindConfig(PrestoConfig.class); PrestoConfig prestoConfig = buildConfigObject(PrestoConfig.class); OptionalBinder<JDBCConfig> userConfig = OptionalBinder.newOptionalBinder(binder, Key.get(JDBCConfig.class, UserConfig.class)); binder.bind(QueryExecutor.class).to(PrestoQueryExecutor.class); binder.bind(PrestoQueryExecutor.class).asEagerSingleton(); binder.bind(char.class).annotatedWith(EscapeIdentifier.class).toInstance('"'); binder.bind(MaterializedViewService.class).to(PrestoMaterializedViewService.class); binder.bind(String.class).annotatedWith(TimestampToEpochFunction.class).toInstance("to_unixtime"); binder.bind(EventStream.class).to(PrestoEventStream.class).in(Scopes.SINGLETON); binder.bind(QueryMetadataStore.class).to(JDBCQueryMetadata.class) .in(Scopes.SINGLETON); binder.bind(Metastore.class).to(implementation).in(Scopes.SINGLETON); binder.bind(PrestoAbstractMetastore.class).to(implementation).in(Scopes.SINGLETON);