public void installCatalogConfigCache() { bind(CatalogCache.class).to(DefaultCatalogCache.class).asEagerSingleton(); bind(CacheInvalidationCallback.class).annotatedWith(Names.named(CATALOG_INVALIDATION_CALLBACK)).to(CatalogCacheInvalidationCallback.class).asEagerSingleton(); bind(OverriddenPlanCache.class).to(DefaultOverriddenPlanCache.class).asEagerSingleton(); }
binder.bind(Env.class).toInstance(finalEnv); binder.bind(Charset.class).toInstance(charset); .newSetBinder(binder, Definition.class); .newSetBinder(binder, WebSocket.Definition.class); binder.bind(HttpHandler.class).to(HttpHandlerImpl.class).in(Singleton.class); .asEagerSingleton(); Object sstore = session.store(); .asEagerSingleton(); } else { binder.bind(SessionManager.class).to(ServerSessionManager.class).asEagerSingleton(); .asEagerSingleton(); .in(RequestScoped.class); binder.bind(Route.Chain.class).toProvider(Providers.outOfScope(Route.Chain.class)) .in(RequestScoped.class); binder.bind(Response.class).toProvider(Providers.outOfScope(Response.class)) .in(RequestScoped.class); .in(RequestScoped.class); .in(RequestScoped.class);
@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")); } }
@Override protected void configure() { install( new AetherModule() ); bind( ArtifactDescriptorReader.class ).to( DefaultArtifactDescriptorReader.class ).in( Singleton.class ); bind( VersionResolver.class ).to( DefaultVersionResolver.class ).in( Singleton.class ); bind( VersionRangeResolver.class ).to( DefaultVersionRangeResolver.class ).in( Singleton.class ); bind( MetadataGeneratorFactory.class ).annotatedWith( Names.named( "snapshot" ) ) .to( SnapshotMetadataGeneratorFactory.class ).in( Singleton.class ); bind( MetadataGeneratorFactory.class ).annotatedWith( Names.named( "versions" ) ) .to( VersionsMetadataGeneratorFactory.class ).in( Singleton.class ); bind( ModelBuilder.class ).toInstance( new DefaultModelBuilderFactory().newInstance() ); }
@Override public void configure(Binder binder) JsonConfigProvider.bind(binder, "druid.worker", WorkerConfig.class); binder.bind(TaskRunner.class).to(ForkingTaskRunner.class); binder.bind(ForkingTaskRunner.class).in(LazySingleton.class); 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(JettyServerInitializer.class) .to(MiddleManagerJettyServerInitializer.class) .in(LazySingleton.class); Jerseys.addResource(binder, WorkerResource.class); Jerseys.addResource(binder, TaskManagementResource.class);
binder.bind(HiveConnectorId.class).toInstance(new HiveConnectorId(connectorId)); binder.bind(TypeTranslator.class).toInstance(new HiveTypeTranslator()); binder.bind(CoercionPolicy.class).to(HiveCoercionPolicy.class).in(Scopes.SINGLETON); binder.bind(HdfsConfiguration.class).to(HiveHdfsConfiguration.class).in(Scopes.SINGLETON); binder.bind(HdfsEnvironment.class).in(Scopes.SINGLETON); binder.bind(DirectoryLister.class).to(HadoopDirectoryLister.class).in(Scopes.SINGLETON); configBinder(binder).bindConfig(HiveClientConfig.class); Multibinder<HiveRecordCursorProvider> recordCursorProviderBinder = newSetBinder(binder, HiveRecordCursorProvider.class); recordCursorProviderBinder.addBinding().to(S3SelectRecordCursorProvider.class).in(Scopes.SINGLETON); recordCursorProviderBinder.addBinding().to(GenericHiveRecordCursorProvider.class).in(Scopes.SINGLETON); newSetBinder(binder, EventClient.class).addBinding().to(HiveEventClient.class).in(Scopes.SINGLETON); binder.bind(HivePartitionManager.class).in(Scopes.SINGLETON); binder.bind(LocationService.class).to(HiveLocationService.class).in(Scopes.SINGLETON); binder.bind(new TypeLiteral<Supplier<TransactionalMetadata>>() {}).to(HiveMetadataFactory.class).in(Scopes.SINGLETON); binder.bind(HiveTransactionManager.class).in(Scopes.SINGLETON); binder.bind(ConnectorSplitManager.class).to(HiveSplitManager.class).in(Scopes.SINGLETON); newExporter(binder).export(ConnectorSplitManager.class).as(generatedNameOf(HiveSplitManager.class, connectorId)); binder.bind(ConnectorPageSourceProvider.class).to(HivePageSourceProvider.class).in(Scopes.SINGLETON); binder.bind(ConnectorPageSinkProvider.class).to(HivePageSinkProvider.class).in(Scopes.SINGLETON); binder.bind(ConnectorNodePartitioningProvider.class).to(HiveNodePartitioningProvider.class).in(Scopes.SINGLETON); pageSourceFactoryBinder.addBinding().to(OrcPageSourceFactory.class).in(Scopes.SINGLETON); pageSourceFactoryBinder.addBinding().to(DwrfPageSourceFactory.class).in(Scopes.SINGLETON); pageSourceFactoryBinder.addBinding().to(ParquetPageSourceFactory.class).in(Scopes.SINGLETON); pageSourceFactoryBinder.addBinding().to(RcFilePageSourceFactory.class).in(Scopes.SINGLETON);
binder.bind(GcMonitor.class).to(JmxGcMonitor.class).in(Scopes.SINGLETON); binder.bind(InternalNodeManager.class).to(DiscoveryNodeManager.class).in(Scopes.SINGLETON); newExporter(binder).export(DiscoveryNodeManager.class).withGeneratedName(); httpClientBinder(binder).bindHttpClient("node-manager", ForNodeManager.class) NodeSchedulerConfig.class, config -> LEGACY.equalsIgnoreCase(config.getNetworkTopology()), moduleBinder -> moduleBinder.bind(NetworkTopology.class).to(LegacyNetworkTopology.class).in(Scopes.SINGLETON))); install(installModuleIf( NodeSchedulerConfig.class, config -> FLAT.equalsIgnoreCase(config.getNetworkTopology()), moduleBinder -> moduleBinder.bind(NetworkTopology.class).to(FlatNetworkTopology.class).in(Scopes.SINGLETON))); binder.bind(ExchangeClientSupplier.class).to(ExchangeClientFactory.class).in(Scopes.SINGLETON); httpClientBinder(binder).bindHttpClient("exchange", ForExchange.class) .withTracing() binder.bind(LocationFactory.class).to(HttpLocationFactory.class).in(Scopes.SINGLETON); binder.bind(PageSourceProvider.class).to(PageSourceManager.class).in(Scopes.SINGLETON); binder.bind(PageSinkProvider.class).to(PageSinkManager.class).in(Scopes.SINGLETON); binder.bind(Metadata.class).to(MetadataManager.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);
binder.bind(CuratorServiceAnnouncer.class).in(LazySingleton.class); binder.bind(ServiceAnnouncer.class) .to(Key.get(CuratorServiceAnnouncer.class, Names.named(NAME))) .in(LazySingleton.class); PolyBind.createChoiceWithDefault(binder, INTERNAL_DISCOVERY_PROP, Key.get(DruidNodeAnnouncer.class), CURATOR_KEY); Key.get(DruidNodeDiscoveryProvider.class), CURATOR_KEY ); PolyBind.optionBinder(binder, Key.get(DruidNodeDiscoveryProvider.class)) .addBinding(CURATOR_KEY) .to(CuratorDruidNodeDiscoveryProvider.class) .in(LazySingleton.class); PolyBind.optionBinder(binder, Key.get(DruidNodeAnnouncer.class)) .addBinding(CURATOR_KEY) .to(CuratorDruidNodeAnnouncer.class) .in(LazySingleton.class); .in(LazySingleton.class); PolyBind.optionBinder(binder, Key.get(DruidLeaderSelector.class, IndexingService.class)) .in(LazySingleton.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); } }
Key.get(DruidNode.class, Self.class), new DruidNode("test", "localhost", false, null, null, true, false) ); binder.bind(JettyServerInitializer.class).to(JettyServerInit.class).in(LazySingleton.class); Multibinder<ServletFilterHolder> multibinder = Multibinder.newSetBinder( binder, ServletFilterHolder.class ); multibinder.addBinding().toInstance( new ServletFilterHolder() Jerseys.addResource(binder, DefaultResource.class); Jerseys.addResource(binder, DirectlyReturnResource.class); binder.bind(AuthorizerMapper.class).toInstance(AuthTestUtils.TEST_AUTHORIZER_MAPPER); LifecycleModule.register(binder, Server.class);
bind(RedisCacheConfig.class).toInstance(redisCacheConfig); bind(RedissonClient.class).annotatedWith(Names.named(REDIS_CACHE_CLIENT)).toProvider(RedissonCacheClientProvider.class).asEagerSingleton(); bind(CacheManager.class).toProvider(Redis107CacheManagerProvider.class).asEagerSingleton(); } else { bind(RedissonClient.class).annotatedWith(Names.named(REDIS_CACHE_CLIENT)).toProvider(Providers.<RedissonClient>of(null)); bind(CacheManager.class).toProvider(Eh107CacheManagerProvider.class).asEagerSingleton(); bind(CacheControllerDispatcher.class).toProvider(CacheControllerDispatcherProvider.class).asEagerSingleton(); final Multibinder<BaseCacheLoader> resultSetMapperSetBinder = Multibinder.newSetBinder(binder(), BaseCacheLoader.class); resultSetMapperSetBinder.addBinding().to(ImmutableAccountCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(AccountBCDCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(RecordIdCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(AccountRecordIdCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(TenantRecordIdCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(ObjectIdCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(AuditLogCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(AuditLogViaHistoryCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(TenantCatalogCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(TenantConfigCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(TenantOverdueConfigCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(TenantKVCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(TenantCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(OverriddenPlanCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(TenantStateMachineConfigCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(AccountIdFromBundleIdCacheLoader.class).asEagerSingleton(); resultSetMapperSetBinder.addBinding().to(BundleIdFromSubscriptionIdCacheLoader.class).asEagerSingleton();
@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(Binder binder) { binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/test/memcached"); binder.bindConstant().annotatedWith(Names.named("servicePort")).to(0); binder.bindConstant().annotatedWith(Names.named("tlsServicePort")).to(-1); binder.bind(MemcachedCacheConfig.class).toInstance(config); binder.bind(Cache.class).toProvider(MemcachedProviderWithConfig.class).in(ManageLifecycle.class); } }
@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)); } });