/** * Unconditionally bind target to the set. * * @param target the target class to which it adds a binding. * * @return self to support a continuous syntax for adding more conditional bindings. */ public ConditionalMultibind<T> addBinding(Class<? extends T> target) { multibinder.addBinding().to(target); return this; }
public static void addHandler(Binder binder, Class<? extends Handler> handlerClass) { Multibinder.newSetBinder(binder, Handler.class) .addBinding() .to(handlerClass); }
private static void bindEventClientClasses(Set<String> eventClientTypes, Multibinder<EventClient> multibinder) { for (String eventClientType : eventClientTypes) { if (eventClientType.equals("human-readable")) { multibinder.addBinding().to(HumanReadableEventClient.class).in(Scopes.SINGLETON); } else if (eventClientType.equals("file")) { multibinder.addBinding().to(JsonEventClient.class).in(Scopes.SINGLETON); } } } }
@Override public void configure(final Binder binder) { Multibinder<SingularityEventListener> eventListeners = Multibinder.newSetBinder(binder, SingularityEventListener.class); eventListeners.addBinding().to(WebhookManager.class).in(Scopes.SINGLETON); binder.bind(SingularityEventListener.class).to(SingularityEventController.class).in(Scopes.SINGLETON); binder.bind(ScheduledExecutorService.class).annotatedWith(LISTENER_THREADPOOL_NAMED).toProvider(new SingularityManagedScheduledExecutorServiceProvider(configuration.getListenerThreadpoolSize(), configuration.getThreadpoolShutdownDelayInSeconds(), "listener")).in(Scopes.SINGLETON); } }
@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() ); }
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); globalTableBinder.addBinding().to(TablePropertiesSystemTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(ColumnPropertiesSystemTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(TransactionsSystemTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(AttributeJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(CatalogJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(ColumnJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(TypesJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(ProcedureColumnJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(ProcedureJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(PseudoColumnJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(SchemaJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(SuperTableJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(SuperTypeJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(TableJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(TableTypeJdbcTable.class).in(Scopes.SINGLETON); globalTableBinder.addBinding().to(UdtJdbcTable.class).in(Scopes.SINGLETON); Multibinder.newSetBinder(binder, Procedure.class); binder.bind(KillQueryProcedure.class).in(Scopes.SINGLETON);
@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); Multibinder.newSetBinder(binder, InjectionHook.class); OptionalBinder.newOptionalBinder(binder, AbstractUserService.class); OptionalBinder.newOptionalBinder(binder, UserStorage.class); Multibinder.newSetBinder(binder, RequestPreProcessorItem.class); httpServices.addBinding().to(MaterializedViewHttpService.class); httpServices.addBinding().to(QueryHttpService.class); httpServices.addBinding().to(OptionMethodHttpService.class); binder.bind(JSLoggerService.class).to(JSCodeJDBCLoggerService.class); .annotatedWith(Names.named("rakam-client")) .toProvider(() -> RAsyncHttpClient.create(1000 * 60 * 10, "rakam-custom-script")) .in(Scopes.SINGLETON); .annotatedWith(ForHttpServer.class) .to(NioEventLoopGroup.class) .in(Scopes.SINGLETON);
@Override public void configure(Binder binder) { binder.bind(HostAndPort.class).annotatedWith(named(HTTP_HOST_AND_PORT)).toProvider(SingularityHostAndPortProvider.class).in(Scopes.SINGLETON); binder.bind(LeaderLatch.class).to(SingularityLeaderLatch.class).in(Scopes.SINGLETON); binder.bind(CuratorFramework.class).toProvider(SingularityCuratorProvider.class).in(Scopes.SINGLETON); Multibinder<ConnectionStateListener> connectionStateListeners = Multibinder.newSetBinder(binder, ConnectionStateListener.class); connectionStateListeners.addBinding().to(SingularityAbort.class).in(Scopes.SINGLETON); Multibinder<LeaderLatchListener> leaderLatchListeners = Multibinder.newSetBinder(binder, LeaderLatchListener.class); leaderLatchListeners.addBinding().to(SingularityLeaderController.class).in(Scopes.SINGLETON); binder.bind(MailTemplateHelpers.class).in(Scopes.SINGLETON); binder.bind(SingularityExceptionNotifier.class).in(Scopes.SINGLETON); binder.bind(LoadBalancerClient.class).to(LoadBalancerClientImpl.class).in(Scopes.SINGLETON); binder.bind(SingularityMailRecordCleaner.class).in(Scopes.SINGLETON); binder.bind(SingularityManagedScheduledExecutorServiceFactory.class).in(Scopes.SINGLETON); binder.bind(ScheduledExecutorService.class).annotatedWith(HEALTHCHECK_THREADPOOL_NAMED).toProvider(new SingularityManagedScheduledExecutorServiceProvider(configuration.getHealthcheckStartThreads(), configuration.getThreadpoolShutdownDelayInSeconds(), "healthcheck")).in(Scopes.SINGLETON); binder.bind(ScheduledExecutorService.class).annotatedWith(NEW_TASK_THREADPOOL_NAMED).toProvider(new SingularityManagedScheduledExecutorServiceProvider(configuration.getCheckNewTasksScheduledThreads(), configuration.getThreadpoolShutdownDelayInSeconds(), "check-new-task")).in(Scopes.SINGLETON);
@Override public void configure(Binder binder) binder.bind(PrestoS3ClientFactory.class).in(Scopes.SINGLETON); 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); newExporter(binder).export(FileFormatDataSourceStats.class).as(generatedNameOf(FileFormatDataSourceStats.class, connectorId)); Multibinder<HivePageSourceFactory> pageSourceFactoryBinder = newSetBinder(binder, HivePageSourceFactory.class); 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); Multibinder<HiveFileWriterFactory> fileWriterFactoryBinder = newSetBinder(binder, HiveFileWriterFactory.class); newExporter(binder).export(OrcFileWriterFactory.class).as(generatedNameOf(OrcFileWriterFactory.class, connectorId)); configBinder(binder).bindConfig(OrcFileWriterConfig.class); fileWriterFactoryBinder.addBinding().to(OrcFileWriterFactory.class).in(Scopes.SINGLETON); fileWriterFactoryBinder.addBinding().to(RcFileFileWriterFactory.class).in(Scopes.SINGLETON);
@Override protected void configure() { bind( TokenSerialization.class ).to( TokenSerializationImpl.class ); Multibinder<Migration> migrationBinding = Multibinder.newSetBinder( binder(), Migration.class ); migrationBinding.addBinding().to( Key.get( TokenSerialization.class ) ); } }
@Override public void configure(Binder binder) { MapBinder<String, RowDecoderFactory> decoderFactoriesByName = MapBinder.newMapBinder(binder, String.class, RowDecoderFactory.class); decoderFactoriesByName.addBinding(DummyRowDecoder.NAME).to(DummyRowDecoderFactory.class).in(SINGLETON); decoderFactoriesByName.addBinding(CsvRowDecoder.NAME).to(CsvRowDecoderFactory.class).in(SINGLETON); decoderFactoriesByName.addBinding(JsonRowDecoder.NAME).to(JsonRowDecoderFactory.class).in(SINGLETON); decoderFactoriesByName.addBinding(RawRowDecoder.NAME).to(RawRowDecoderFactory.class).in(SINGLETON); decoderFactoriesByName.addBinding(AvroRowDecoder.NAME).to(AvroRowDecoderFactory.class).in(SINGLETON); binder.bind(DispatchingRowDecoderFactory.class).in(SINGLETON); } }
Key.get(SegmentPublisher.class) ); publisherBinder.addBinding("noop").to(NoopSegmentPublisher.class).in(LazySingleton.class); publisherBinder.addBinding("metadata").to(MetadataSegmentPublisher.class).in(LazySingleton.class); rowIngestionMetersHandlerProviderBinder .addBinding("dropwizard") .to(DropwizardRowIngestionMetersFactory.class) .in(LazySingleton.class); binder.bind(DropwizardRowIngestionMetersFactory.class).in(LazySingleton.class); handlerProviderBinder .addBinding("announce") .to(ServiceAnnouncingChatHandlerProvider.class) .in(LazySingleton.class); handlerProviderBinder .addBinding("noop") .to(NoopChatHandlerProvider.class) .in(LazySingleton.class); binder.bind( new TypeLiteral<List<FireDepartment>>() binder.install(new CacheModule());
public void installOverdueConfigCache() { bind(OverdueConfigCache.class).to(DefaultOverdueConfigCache.class).asEagerSingleton(); bind(CacheInvalidationCallback.class).annotatedWith(Names.named(OVERDUE_INVALIDATION_CALLBACK)).to(OverdueCacheInvalidationCallback.class).asEagerSingleton(); } }
JsonConfigProvider.bind(binder, "druid.worker", WorkerConfig.class); 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)); 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);
@Override protected void configure() { bindFlags(context); MapBinder<String, AuthServiceExtension> mapBinder = MapBinder.newMapBinder(binder(), String.class, AuthServiceExtension.class); authServiceExtensions.forEach( authExtension -> mapBinder.addBinding(authExtension.getServiceId()).toInstance(authExtension)); bind(AuthServiceProviderRegistry.class).to(PortabilityAuthServiceProviderRegistry.class); bind(SymmetricKeyGenerator.class).toInstance(keyGenerator); bind(TypeManager.class).toInstance(typeManager); bind(JobStore.class).toInstance(jobStore); bind(TokenManager.class).toInstance(tokenManager); if (trustManagerFactory != null) { bind(TrustManagerFactory.class).toInstance(trustManagerFactory); } if (keyManagerFactory != null) { bind(KeyManagerFactory.class).toInstance(keyManagerFactory); } bind(AsymmetricKeyGenerator.class).toInstance(new RsaSymmetricKeyGenerator(getMonitor())); Multibinder<Action> actionBinder = Multibinder.newSetBinder(binder(), Action.class); actionBinder.addBinding().to(DataTypesAction.class); actionBinder.addBinding().to(GetTransferServicesAction.class); actionBinder.addBinding().to(CreateTransferJobAction.class); actionBinder.addBinding().to(GenerateServiceAuthDataAction.class); actionBinder.addBinding().to(ReserveWorkerAction.class); actionBinder.addBinding().to(GetReservedWorkerAction.class); actionBinder.addBinding().to(StartTransferJobAction.class); actionBinder.addBinding().to(GetTransferJobAction.class); }
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(); 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) { Multibinder<SingularityAuthenticator> multibinder = Multibinder.newSetBinder(binder, SingularityAuthenticator.class); for (SingularityAuthenticatorClass clazz : getConfiguration().getAuthConfiguration().getAuthenticators()) { multibinder.addBinding().to(clazz.getAuthenticatorClass()); if (clazz == SingularityAuthenticatorClass.WEBHOOK) { AuthConfiguration authConfiguration = getConfiguration().getAuthConfiguration(); AsyncHttpClientConfig clientConfig = new AsyncHttpClientConfig.Builder() .setConnectionTimeoutInMs(authConfiguration.getWebhookAuthConnectTimeoutMs()) .setRequestTimeoutInMs(authConfiguration.getWebhookAuthRequestTimeoutMs()) .setMaxRequestRetry(authConfiguration.getWebhookAuthRetries()) .build(); SingularityAsyncHttpClient webhookAsyncHttpClient = new SingularityAsyncHttpClient(clientConfig); binder.bind(AsyncHttpClient.class).annotatedWith(Names.named(WEBHOOK_AUTH_HTTP_CLIENT)).toInstance(webhookAsyncHttpClient); } } binder.bind(SingularityAuthFeature.class); binder.bind(SingularityMultiMethodAuthenticator.class); binder.bind(SingularityAuthDatastore.class).to(getConfiguration().getAuthConfiguration().getDatastore().getAuthDatastoreClass()); binder.bind(SingularityAuthorizationHelper.class).in(Scopes.SINGLETON); } }
@Override protected void configure() { bind(ServletRequest.class).to(HttpServletRequest.class); bind(ServletResponse.class).to(HttpServletResponse.class); bind(BeatContext.class) .annotatedWith(ArgoSystem.class) .to(DefaultBeatContext.class); bind(ActionResult.class) .annotatedWith(Names.named("HTTP_STATUS=404")) .toInstance(StatusCodeActionResult.defaultSc404); bind(ActionResult.class) .annotatedWith(Names.named("HTTP_STATUS=405")) .toInstance(StatusCodeActionResult.defaultSc405); bind(Action.class).annotatedWith(StaticActionAnnotation.class) .to(StaticFilesAction.class); bind(ClientContext.class).to(DefaultClientContext.class); bind(Model.class).to(DefaultModel.class); bind(MultipartConfigElement.class) .toProvider(DefaultMultipartConfigElementProvider.class) .in(Singleton.class); // bind all controllers. for (Class<? extends ArgoController> clazz : argo.getControllerClasses()) bind(clazz).in(Singleton.class); }
@Override protected void configure() { final MapBinder<String, AuthenticatingRealm> auth = authenticationRealmBinder(); auth.addBinding(AccessTokenAuthenticator.NAME).to(AccessTokenAuthenticator.class).in(Scopes.SINGLETON); auth.addBinding(RootAccountRealm.NAME).to(RootAccountRealm.class).in(Scopes.SINGLETON); auth.addBinding(LdapUserAuthenticator.NAME).to(LdapUserAuthenticator.class).in(Scopes.SINGLETON); auth.addBinding(PasswordAuthenticator.NAME).to(PasswordAuthenticator.class).in(Scopes.SINGLETON); auth.addBinding(SessionAuthenticator.NAME).to(SessionAuthenticator.class).in(Scopes.SINGLETON); } }