@Override protected void setup(Binder binder) { newSetBinder(binder, Filter.class, TheServlet.class).addBinding() .to(AuthenticationFilter.class).in(Scopes.SINGLETON); binder.bind(PasswordAuthenticatorManager.class).in(Scopes.SINGLETON); List<AuthenticationType> authTypes = buildConfigObject(SecurityConfig.class).getAuthenticationTypes(); Multibinder<Authenticator> authBinder = newSetBinder(binder, Authenticator.class); for (AuthenticationType authType : authTypes) { if (authType == CERTIFICATE) { authBinder.addBinding().to(CertificateAuthenticator.class).in(Scopes.SINGLETON); } else if (authType == KERBEROS) { configBinder(binder).bindConfig(KerberosConfig.class); authBinder.addBinding().to(KerberosAuthenticator.class).in(Scopes.SINGLETON); } else if (authType == PASSWORD) { authBinder.addBinding().to(PasswordAuthenticator.class).in(Scopes.SINGLETON); } else if (authType == JWT) { configBinder(binder).bindConfig(JsonWebTokenConfig.class); authBinder.addBinding().to(JsonWebTokenAuthenticator.class).in(Scopes.SINGLETON); } else { throw new AssertionError("Unhandled auth type: " + authType); } } }
public static void addExprMacro(final Binder binder, final Class<? extends ExprMacroTable.ExprMacro> clazz) { Multibinder.newSetBinder(binder, ExprMacroTable.ExprMacro.class) .addBinding() .to(clazz); } }
public static void addResource(Binder binder, Class<?> resourceClazz) { Multibinder.newSetBinder(binder, new TypeLiteral<Class<?>>(){}, JSR311Resource.class) .addBinding() .toInstance(resourceClazz); } }
@Override public void configure(Binder binder) { Multibinder<Procedure> procedures = newSetBinder(binder, Procedure.class); procedures.addBinding().toProvider(CreateEmptyPartitionProcedure.class).in(Scopes.SINGLETON); } }
@Override public void configure(final Env env, final Config config, final Binder binder) { GsonBuilder gsonb = new GsonBuilder(); if (configurer != null) { configurer.accept(gsonb, config); } Gson gson = gsonb.create(); binder.bind(Gson.class).toInstance(gson); Multibinder.newSetBinder(binder, Parser.class).addBinding() .toInstance(new GsonParser(type, gson)); GsonRenderer renderer = raw ? new GsonRawRenderer(type, gson) : new GsonRenderer(type, gson); Multibinder.newSetBinder(binder, Renderer.class).addBinding().toInstance(renderer); }
@Override protected void configureServlets() { Binder binder = binder(); JsonConfigProvider.bind(binder, "druid.server.http", ServerConfig.class); JsonConfigProvider.bind(binder, "druid.server.https", TLSServerConfig.class); binder.bind(GuiceContainer.class).to(DruidGuiceContainer.class); binder.bind(DruidGuiceContainer.class).in(Scopes.SINGLETON); binder.bind(CustomExceptionMapper.class).in(Singleton.class); binder.bind(ForbiddenExceptionMapper.class).in(Singleton.class); serve("/*").with(DruidGuiceContainer.class); Jerseys.addResource(binder, StatusResource.class); binder.bind(StatusResource.class).in(LazySingleton.class); // Adding empty binding for ServletFilterHolders and Handlers so that injector returns an empty set if none // are provided by extensions. Multibinder.newSetBinder(binder, Handler.class); Multibinder.newSetBinder(binder, ServletFilterHolder.class); MetricsModule.register(binder, JettyMonitor.class); }
@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 ) ); } }
Multibinder.newSetBinder(binder, InjectionHook.class); OptionalBinder.newOptionalBinder(binder, AbstractUserService.class); OptionalBinder.newOptionalBinder(binder, UserStorage.class); Multibinder<Tag> tags = Multibinder.newSetBinder(binder, Tag.class); tags.addBinding().toInstance(new Tag().name("admin").description("System related actions").externalDocs(MetadataConfig.centralDocs)); tags.addBinding().toInstance(new Tag().name("query").description("Analyze data").externalDocs(MetadataConfig.centralDocs)); tags.addBinding().toInstance(new Tag().name("materialized-view").description("Materialized view").externalDocs(MetadataConfig.centralDocs)); Multibinder.newSetBinder(binder, RequestPreProcessorItem.class); Multibinder<CustomParameter> customParameters = Multibinder.newSetBinder(binder, CustomParameter.class); customParameters.addBinding().toProvider(ProjectPermissionParameterProvider.class); Multibinder<HttpService> httpServices = Multibinder.newSetBinder(binder, HttpService.class); httpServices.addBinding().to(MaterializedViewHttpService.class); httpServices.addBinding().to(QueryHttpService.class); httpServices.addBinding().to(OptionMethodHttpService.class); Multibinder.newSetBinder(binder, WebSocketService.class); .in(Scopes.SINGLETON); Key.get(HttpRequestHandler.class, NotFoundHandler.class)); .in(Scopes.SINGLETON);
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(JDBCPoolDataSource.class) .annotatedWith(Names.named("report.metadata.store.jdbc")) .toInstance(metadataDataSource); 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); Multibinder<EventMapper> timeMapper = Multibinder.newSetBinder(binder, EventMapper.class); timeMapper.addBinding().to(TimestampEventMapper.class).in(Scopes.SINGLETON);
.newSetBinder(binder, Definition.class); .newSetBinder(binder, WebSocket.Definition.class); .newSetBinder(binder, Err.Handler.class); .newSetBinder(binder, Parser.class); .newSetBinder(binder, Renderer.class); parsers.addBinding().toInstance(BuiltinParser.Basic); parsers.addBinding().toInstance(BuiltinParser.Collection); parsers.addBinding().toInstance(BuiltinParser.Optional); parsers.addBinding().toInstance(BuiltinParser.Enum); parsers.addBinding().toInstance(BuiltinParser.Bytes); renderers.addBinding().toInstance(BuiltinRenderer.asset); renderers.addBinding().toInstance(BuiltinRenderer.bytes); renderers.addBinding().toInstance(BuiltinRenderer.byteBuffer); renderers.addBinding().toInstance(BuiltinRenderer.file); renderers.addBinding().toInstance(BuiltinRenderer.charBuffer); renderers.addBinding().toInstance(BuiltinRenderer.stream); renderers.addBinding().toInstance(BuiltinRenderer.reader); renderers.addBinding().toInstance(BuiltinRenderer.fileChannel); parsers.addBinding().toInstance(new DateParser(dateFormat)); parsers.addBinding().toInstance(new LocalDateParser(dateTimeFormatter)); parsers.addBinding().toInstance(new ZonedDateTimeParser(zonedDateTimeFormat)); parsers.addBinding().toInstance(new LocaleParser());
@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(SingularityLeaderController.class).in(Scopes.SINGLETON);
@Override public void configure(Binder binder) { binder.bind(ThriftCodecFactory.class).to(CompilerThriftCodecFactory.class).in(Scopes.SINGLETON); binder.bind(ThriftCatalog.class).in(Scopes.SINGLETON); binder.bind(ThriftCodecManager.class).in(Scopes.SINGLETON); newSetBinder(binder, new TypeLiteral<ThriftCodec<?>>() {}, InternalThriftCodec.class).permitDuplicates(); binder.bind(ClassLoader.class) .annotatedWith(ForCompiler.class) .toInstance(parent); } }
@Override public void configure(Binder binder) 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); 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); 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); configBinder(binder).bindConfig(OrcFileWriterConfig.class); fileWriterFactoryBinder.addBinding().to(OrcFileWriterFactory.class).in(Scopes.SINGLETON); fileWriterFactoryBinder.addBinding().to(RcFileFileWriterFactory.class).in(Scopes.SINGLETON);
binder.bind(SqlParser.class).in(Scopes.SINGLETON); binder.bind(SqlParserOptions.class).toInstance(sqlParserOptions); sqlParserOptions.useEnhancedErrorHandler(serverConfig.isEnhancedErrorReporting()); binder.bind(GcMonitor.class).to(JmxGcMonitor.class).in(Scopes.SINGLETON); binder.bind(DiscoveryNodeManager.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) binder.bind(TaskManagementExecutor.class).in(Scopes.SINGLETON); binder.bind(SqlTaskManager.class).in(Scopes.SINGLETON); binder.bind(TaskManager.class).to(Key.get(SqlTaskManager.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); binder.bind(BlockEncodingManager.class).in(Scopes.SINGLETON); binder.bind(BlockEncodingSerde.class).to(BlockEncodingManager.class).in(Scopes.SINGLETON); newSetBinder(binder, BlockEncoding.class); jsonBinder(binder).addSerializerBinding(Block.class).to(BlockJsonSerde.Serializer.class); jsonBinder(binder).addDeserializerBinding(Block.class).to(BlockJsonSerde.Deserializer.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);
@Override protected void setup(Binder binder) { Multibinder<HttpService> httpServices = Multibinder.newSetBinder(binder, HttpService.class); httpServices.addBinding().to(EventExplorerHttpService.class); Multibinder<EventMapper> timeMapper = Multibinder.newSetBinder(binder, EventMapper.class); timeMapper.permitDuplicates().addBinding().to(TimestampEventMapper.class).in(Scopes.SINGLETON); Multibinder<Tag> tags = Multibinder.newSetBinder(binder, Tag.class); tags.addBinding().toInstance(new Tag().name("event-explorer").description("Event Explorer").externalDocs(MetadataConfig.centralDocs)); binder.bind(EventExplorerListener.class).asEagerSingleton(); }
@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() { final EhCacheConfig ehCacheConfig = new ConfigurationObjectFactory(skifeConfigSource).build(EhCacheConfig.class); bind(EhCacheConfig.class).toInstance(ehCacheConfig); bind(RedisCacheConfig.class).toInstance(redisCacheConfig); 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();
bind(CassandraCluster.class).to(CassandraClusterImpl.class).asEagerSingleton(); bind(DataStaxCluster.class).to(DataStaxClusterImpl.class).asEagerSingleton(); bind(Session.class).toProvider(DataStaxSessionProvider.class).asEagerSingleton(); Multibinder<Migration> migrationBinding = Multibinder.newSetBinder(binder(), Migration.class); migrationBinding.addBinding().to(Key.get(MigrationInfoSerialization.class)); bind(TimeService.class).to(TimeServiceImpl.class); Multibinder.newSetBinder(binder(), MigrationPlugin.class);
@Override public void configure(Binder binder) { binder.disableCircularProxies(); binder.bind(Servlet.class).annotatedWith(TheServlet.class).to(Key.get(ServletContainer.class)); jaxrsBinder(binder).bind(JsonMapper.class); jaxrsBinder(binder).bind(SmileMapper.class); jaxrsBinder(binder).bind(ParsingExceptionMapper.class); jaxrsBinder(binder).bind(OverrideMethodFilter.class); newSetBinder(binder, Object.class, JaxrsResource.class).permitDuplicates(); newSetBinder(binder, JaxrsBinding.class, JaxrsResource.class).permitDuplicates(); }