@Override public void configure(Binder binder) { binder.install(new DruidGuiceExtensions()); binder.bind(Properties.class).toInstance(properties); binder.bind(ConfigurationObjectFactory.class).toInstance(factory); binder.bind(ObjectMapper.class).to(Key.get(ObjectMapper.class, Json.class)); binder.bind(Validator.class).toInstance(validator); binder.bind(JsonConfigurator.class); }
@Override protected void configure() { bind(CacheConfig.class).asEagerSingleton(); bind(CacheInvalidationCallback.class).annotatedWith(Names.named(CONFIG_INVALIDATION_CALLBACK)).to(PerTenantConfigInvalidationCallback.class).asEagerSingleton(); bind(ConfigKillbillService.class).to(DefaultConfigKillbillService.class).asEagerSingleton();; } }
@Override public void configure(Binder binder) { binder.disableCircularProxies(); // NOTE: this MUST NOT be a singleton because ObjectMappers are mutable. This means // one component could reconfigure the mapper and break all other components binder.bind(ObjectMapper.class).toProvider(ObjectMapperProvider.class); binder.bind(JsonCodecFactory.class).in(Scopes.SINGLETON); } }
@Override public void configure(Binder binder) { JsonConfigProvider.bind(binder, "druid.client.https", SSLClientConfig.class); binder.bind(SSLContext.class).toProvider(SSLContextProvider.class); binder.bind(SSLContext.class).annotatedWith(Global.class).toProvider(SSLContextProvider.class); binder.bind(SSLContext.class).annotatedWith(Client.class).toProvider(SSLContextProvider.class); binder.bind(SSLContext.class).annotatedWith(Router.class).toProvider(SSLContextProvider.class); binder.bind(SSLContext.class).annotatedWith(EscalatedGlobal.class).toProvider(SSLContextProvider.class); binder.bind(SSLContext.class).annotatedWith(EscalatedClient.class).toProvider(SSLContextProvider.class); } }
@Override public void configure(Binder binder) { binder.bind(TLSCertificateChecker.class) .annotatedWith(Names.named(DEFAULT_CHECKER_TYPE)) .toInstance(INSTANCE); } }
@Override protected void configure() { bind(MetricRegistry.class).toProvider(MetricRegistryProvider.class).asEagerSingleton(); bind(LocalMetricRegistry.class).in(Scopes.NO_SCOPE); // must not be a singleton! bind(ProcessBuffer.class).asEagerSingleton(); bind(InputBuffer.class).to(InputBufferImpl.class); bind(NodeId.class).toProvider(NodeIdProvider.class); bind(ServiceManager.class).toProvider(ServiceManagerProvider.class).asEagerSingleton(); bind(EventBus.class).toProvider(EventBusProvider.class).in(Scopes.SINGLETON); bind(Semaphore.class).annotatedWith(Names.named("JournalSignal")).toInstance(new Semaphore(0)); bind(InputRegistry.class).asEagerSingleton(); bind(OkHttpClient.class).toProvider(OkHttpClientProvider.class).asEagerSingleton(); bind(OkHttpClient.class).annotatedWith(Names.named("systemHttpClient")).toProvider(SystemOkHttpClientProvider.class).asEagerSingleton(); bind(MimetypesFileTypeMap.class).toInstance(new MimetypesFileTypeMap()); bind(ExecutorService.class).annotatedWith(Names.named("proxiedRequestsExecutorService")).toProvider(ProxiedRequestsExecutorService.class).asEagerSingleton();
@Override public void configure(Binder binder) { binder.bind( new TypeLiteral<SeekableStreamIndexTaskClientFactory<KinesisIndexTaskClient>>() { } ).to(KinesisIndexTaskClientFactory.class).in(LazySingleton.class); JsonConfigProvider.bind(binder, "druid.kinesis", AWSCredentialsConfig.class, Names.named("kinesis")); } }
binder.bind(TaskRunner.class).to(ForkingTaskRunner.class); binder.bind(ForkingTaskRunner.class).in(LazySingleton.class); binder.bind(IndexingServiceClient.class).toProvider(Providers.of(null)); binder.bind(new TypeLiteral<IndexTaskClientFactory<ParallelIndexTaskClient>>() {}) .toProvider(Providers.of(null)); binder.bind(ChatHandlerProvider.class).toProvider(Providers.of(null)); PolyBind.createChoice( binder, "druid.indexer.task.rowIngestionMeters.type", Key.get(RowIngestionMetersFactory.class), Key.get(DropwizardRowIngestionMetersFactory.class) ); final MapBinder<String, RowIngestionMetersFactory> rowIngestionMetersHandlerProviderBinder = PolyBind.optionBinder(binder, Key.get(RowIngestionMetersFactory.class)); rowIngestionMetersHandlerProviderBinder .addBinding("dropwizard") .to(DropwizardRowIngestionMetersFactory.class) .in(LazySingleton.class); binder.bind(DropwizardRowIngestionMetersFactory.class).in(LazySingleton.class); binder.bind(WorkerTaskMonitor.class).in(ManageLifecycle.class); binder.bind(WorkerCuratorCoordinator.class).in(ManageLifecycle.class); .to(MiddleManagerJettyServerInitializer.class) .in(LazySingleton.class); Jerseys.addResource(binder, WorkerResource.class); Jerseys.addResource(binder, TaskManagementResource.class);
@Override public void configure(Binder binder) { JsonConfigProvider.bindInstance( binder, Key.get(DruidNode.class, Self.class), node ); binder.bind(Integer.class).annotatedWith(Names.named("port")).toInstance(node.getPlaintextPort()); binder.bind(JettyServerInitializer.class).to(TestJettyServerInitializer.class).in(LazySingleton.class); Jerseys.addResource(binder, SimpleResource.class); LifecycleModule.register(binder, Server.class); } }
@Override protected void configure() { bind( MapManagerFactory.class ).to( MapManagerFactoryImpl.class ); bind( MapSerialization.class ).to( MapSerializationImpl.class ); Multibinder<Migration> migrationBinding = Multibinder.newSetBinder( binder(), Migration.class ); migrationBinding.addBinding().to( Key.get( MapSerialization.class ) ); }
@Override public void configure(Binder binder) { binder.bind(IntegrationTestingConfig.class) .toProvider(IntegrationTestingConfigProvider.class) .in(ManageLifecycle.class); JsonConfigProvider.bind(binder, "druid.test.config", IntegrationTestingConfigProvider.class); binder.bind(CuratorConfig.class).to(IntegrationTestingCuratorConfig.class); // Bind DruidNode instance to make Guice happy. This instance is currently unused. binder.bind(DruidNode.class).annotatedWith(Self.class).toInstance( new DruidNode("integration-tests", "localhost", false, 9191, null, null, true, false) ); }
@Override public void configure(Binder binder) { configBinder(binder).bindConfig(FileHiveMetastoreConfig.class); binder.bind(ExtendedHiveMetastore.class).annotatedWith(ForCachingHiveMetastore.class).to(FileHiveMetastore.class).in(Scopes.SINGLETON); binder.bind(ExtendedHiveMetastore.class).to(CachingHiveMetastore.class).in(Scopes.SINGLETON); newExporter(binder).export(ExtendedHiveMetastore.class) .as(generatedNameOf(CachingHiveMetastore.class, connectorId)); } }
@Override public void configure() { bind(IDBI.class).toInstance(Mockito.mock(IDBI.class)); bind(IDBI.class).annotatedWith(Names.named(MAIN_RO_DATA_SOURCE_ID)).toInstance(Mockito.mock(IDBI.class)); bind(IAopTester.class).to(AopTesterImpl.class).asEagerSingleton(); bind(TenantInternalApi.class).toInstance(Mockito.mock(TenantInternalApi.class)); bind(NonEntityDao.class).toInstance(Mockito.mock(NonEntityDao.class)); } });
@Override public void configure(Binder binder) binder.install(MultibindingsScanner.asModule()); Multibinder<SystemTable> globalTableBinder = Multibinder.newSetBinder(binder, SystemTable.class); globalTableBinder.addBinding().to(NodeSystemTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(QuerySystemTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(TaskSystemTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(CatalogSystemTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(SchemaPropertiesSystemTable.class).in(Scopes.SINGLETON); Multibinder.newSetBinder(binder, Procedure.class); binder.bind(KillQueryProcedure.class).in(Scopes.SINGLETON); binder.bind(GlobalSystemConnectorFactory.class).in(Scopes.SINGLETON); binder.bind(SystemConnectorRegistrar.class).asEagerSingleton();
@Override public void configure(Binder binder) { binder.bind(JsonMapper.class); configBinder(binder).bindConfig(FeaturesConfig.class); binder.bind(TypeRegistry.class).in(Scopes.SINGLETON); binder.bind(TypeManager.class).to(TypeRegistry.class).in(Scopes.SINGLETON); jsonBinder(binder).addDeserializerBinding(Type.class).to(TypeDeserializer.class); newSetBinder(binder, Type.class); jsonCodecBinder(binder).bindJsonCodec(TaskStatus.class); jsonCodecBinder(binder).bindJsonCodec(TaskInfo.class); jsonCodecBinder(binder).bindJsonCodec(TaskUpdateRequest.class); }
return; binder.bind(Log4jShutdown.class).toInstance((Log4jShutdown) registry); binder.bind(Key.get(Log4jShutterDowner.class, Names.named("ForTheEagerness"))) .to(Log4jShutterDowner.class) .asEagerSingleton();
@Override protected void configure() { // require binding for Config from archaius2 requireBinding(Config.class); bind(ApplicationInfoManager.class).asEagerSingleton(); bind(VipAddressResolver.class).to(Archaius2VipAddressResolver.class); bind(InstanceInfo.class).toProvider(EurekaConfigBasedInstanceInfoProvider.class); bind(EurekaClient.class).to(DiscoveryClient.class); // Default to the jersey1 discovery client optional args bind(AbstractDiscoveryClientOptionalArgs.class).to(Jersey1DiscoveryClientOptionalArgs.class).in(Scopes.SINGLETON); }