类com.google.inject.multibindings.OptionalBinder源码实例Demo

下面列出了怎么用com.google.inject.multibindings.OptionalBinder的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: arcusplatform   文件: ClusterModule.java
@Override
protected void configure() {
   // TODO move Clock to a more generic module
   bind(Clock.class).toInstance(Clock.systemUTC());
   bind(ClusterService.class).asEagerSingleton();

   switch (clusterServiceDao) {
      default:
         logger.warn("unknown cluster dao {}: using default instead", clusterServiceDao);
         // fall through
      case "default":
      case "cassandra":
         bind(ClusterServiceDao.class).to(CassandraClusterServiceDao.class);
         break;
      case "zookeeper":
         logger.info("using zookeeper for cluster registration");
         bind(ClusterServiceDao.class).to(ZookeeperClusterServiceDao.class);
         break;
   }
   OptionalBinder.newOptionalBinder(binder(), new TypeLiteral<Set<ClusterServiceListener>>() {});
}
 
源代码2 项目: spectator   文件: SpectatorModule.java
@Override protected void configure() {
  // Servo is all based on static classes. The context for servo needs to be set as early
  // as possible to avoid missing metrics because the context has not yet been set.
  SpectatorContext.setRegistry(Spectator.globalRegistry());
  bind(Plugin.class).asEagerSingleton();
  bind(StaticManager.class).asEagerSingleton();
  bind(Config.class)
      .annotatedWith(Names.named("spectator"))
      .toProvider(ConfigProvider.class);
  bind(AtlasConfig.class).to(AtlasConfiguration.class);
  OptionalBinder.newOptionalBinder(binder(), ExtendedRegistry.class)
      .setDefault()
      .toInstance(Spectator.registry());
  OptionalBinder.newOptionalBinder(binder(), Clock.class)
      .setDefault()
      .toInstance(Clock.SYSTEM);
  OptionalBinder.newOptionalBinder(binder(), Registry.class)
      .setDefault()
      .to(AtlasRegistry.class)
      .in(Scopes.SINGLETON);
}
 
源代码3 项目: spectator   文件: SpectatorModuleTest.java
@Test
public void injectedRegistryAddedToGlobal() {
  final ManualClock clock = new ManualClock();
  Injector injector = Guice.createInjector(
      new AbstractModule() {
        @Override protected void configure() {
          OptionalBinder.newOptionalBinder(binder(), Clock.class)
              .setBinding()
              .toInstance(clock);
        }
      },
      new SpectatorModule());
  Registry registry = injector.getInstance(Registry.class);
  Spectator.globalRegistry().counter("test").increment();
  clock.setWallTime(5000);
  Assertions.assertEquals(1, registry.counter("test").count());
}
 
源代码4 项目: presto   文件: ThriftMetastoreModule.java
@Override
protected void setup(Binder binder)
{
    OptionalBinder.newOptionalBinder(binder, ThriftMetastoreClientFactory.class)
            .setDefault().to(DefaultThriftMetastoreClientFactory.class).in(Scopes.SINGLETON);
    binder.bind(MetastoreLocator.class).to(StaticMetastoreLocator.class).in(Scopes.SINGLETON);
    configBinder(binder).bindConfig(StaticMetastoreConfig.class);
    configBinder(binder).bindConfig(ThriftMetastoreConfig.class);

    binder.bind(ThriftMetastore.class).to(ThriftHiveMetastore.class).in(Scopes.SINGLETON);
    newExporter(binder).export(ThriftMetastore.class)
            .as(generator -> generator.generatedNameOf(ThriftHiveMetastore.class));

    if (buildConfigObject(HiveConfig.class).getRecordingPath() != null) {
        binder.bind(HiveMetastore.class)
                .annotatedWith(ForRecordingHiveMetastore.class)
                .to(BridgingHiveMetastore.class)
                .in(Scopes.SINGLETON);
        binder.bind(HiveMetastore.class)
                .annotatedWith(ForCachingHiveMetastore.class)
                .to(RecordingHiveMetastore.class)
                .in(Scopes.SINGLETON);
        binder.bind(RecordingHiveMetastore.class).in(Scopes.SINGLETON);
        newExporter(binder).export(RecordingHiveMetastore.class).withGeneratedName();

        Multibinder<Procedure> procedures = newSetBinder(binder, Procedure.class);
        procedures.addBinding().toProvider(WriteHiveMetastoreRecordingProcedure.class).in(Scopes.SINGLETON);
    }
    else {
        binder.bind(HiveMetastore.class)
                .annotatedWith(ForCachingHiveMetastore.class)
                .to(BridgingHiveMetastore.class)
                .in(Scopes.SINGLETON);
    }

    binder.install(new CachingHiveMetastoreModule());

    install(new ThriftMetastoreAuthenticationModule());
}
 
源代码5 项目: arcusplatform   文件: HttpHealthCheckModule.java
@Override
protected void configure() {
   bind(HttpHealthCheckServer.class)
      .asEagerSingleton();
   expose(HttpHealthCheckServer.class);
   
   OptionalBinder.newOptionalBinder(binder(), ClusterService.class);
   
   Multibinder<HttpResource> resourceBinder =
         Multibinder
            .newSetBinder(binder(), HttpResource.class, Names.named(HealthCheckServerConfig.NAME_HEALTHCHECK_RESOURCES));
   resourceBinder.addBinding().to(CheckPage.class);
   resourceBinder.addBinding().to(StatusPage.class);
}
 
源代码6 项目: ProjectAres   文件: TournamentModelManifest.java
@Override
protected void configure() {
    bindAndExpose(TournamentStore.class);

    bindModel(team.Team.class, team.Partial.class);

    bindModel(Tournament.class, model -> {
        model.bindStore().to(TournamentStore.class);
        model.queryService().setBinding().to(TournamentService.class);
    });

    OptionalBinder.newOptionalBinder(publicBinder(), TournamentService.class)
                  .setDefault().to(NullTournamentService.class);
}
 
源代码7 项目: ProjectAres   文件: ModelBinder.java
private ModelBinder(ProtectedBinder protectedBinder, TypeLiteral<M> M, TypeLiteral<P> P) {
    this.binder = Binders.wrap(protectedBinder.publicBinder());
    this.M = M;
    this.P = P;

    this.metas = Multibinder.newSetBinder(binder, ModelMeta.class);
    this.serviceBinder = OptionalBinder.newOptionalBinder(binder, ModelService(M, P));
    this.queryServiceBinder = OptionalBinder.newOptionalBinder(binder, QueryService(M));
    this.updateServiceBinder = OptionalBinder.newOptionalBinder(binder, UpdateService(P));
    this.storeBinder = OptionalBinder.newOptionalBinder(binder, ModelStore(M));

    binder.install(new OneTime());
    binder.install(new PerModel());
}
 
源代码8 项目: ProjectAres   文件: SessionModelManifest.java
@Override
protected void configure() {
    bindModel(Session.class, SessionDoc.Partial.class, model -> {
        model.bindService().to(SessionService.class);
    });

    OptionalBinder.newOptionalBinder(publicBinder(), SessionService.class);
}
 
源代码9 项目: ProjectAres   文件: UserModelManifest.java
@Override
protected void configure() {
    bindModel(User.class, UserDoc.Partial.class, model -> {
        model.bindService().to(UserService.class);
    });

    OptionalBinder.newOptionalBinder(publicBinder(), UserService.class);
}
 
源代码10 项目: ProjectAres   文件: EngagementModelManifest.java
@Override
protected void configure() {
    bindModel(EngagementDoc.class);

    OptionalBinder.newOptionalBinder(publicBinder(), EngagementService.class)
                  .setDefault().to(LocalEngagementService.class);
}
 
源代码11 项目: ProjectAres   文件: WhisperModelManifest.java
@Override
protected void configure() {
    bindModel(Whisper.class, WhisperDoc.Partial.class, model -> {
        model.bindService().to(WhisperService.class);
    });

    OptionalBinder.newOptionalBinder(publicBinder(), WhisperService.class)
                  .setDefault().to(NullWhisperService.class);

}
 
源代码12 项目: ProjectAres   文件: ServerModelManifest.java
@Override
protected void configure() {
    bindAndExpose(ServerStore.class);

    bindModel(Server.class, ServerDoc.Partial.class, model -> {
        model.bindStore().to(ServerStore.class);
        model.bindService().to(ServerService.class);
    });

    OptionalBinder.newOptionalBinder(publicBinder(), ServerService.class);
}
 
源代码13 项目: ProjectAres   文件: MapModelManifest.java
@Override
protected void configure() {
    bindModel(MapDoc.class, model -> {
        model.bindService().to(MapService.class);
    });

    OptionalBinder.newOptionalBinder(publicBinder(), MapService.class);
}
 
源代码14 项目: yql-plus   文件: PlannerCompilerModule.java
@Override
protected void configure() {
    OptionalBinder.newOptionalBinder(binder(), Key.get(PlanProgramCompileOptions.class))
            .setDefault().toInstance(PlanProgramCompileOptions.DEFAULT_OPTIONS);
    bind(ProgramCompiler.class).to(PlanProgramCompiler.class);
    install(new PlanScopedModule());
    install(new ASMClassSourceModule());
}
 
源代码15 项目: spectator   文件: TestModule.java
@Override protected void configure() {
  final Registry registry = new DefaultRegistry();
  OptionalBinder.newOptionalBinder(binder(), ExtendedRegistry.class)
      .setBinding()
      .toInstance(new ExtendedRegistry(registry));
  OptionalBinder.newOptionalBinder(binder(), Registry.class)
      .setBinding()
      .toInstance(registry);
}
 
源代码16 项目: dropwizard-guicey   文件: MultibindingsModule.java
@Override
protected void configure() {
    final Multibinder<Plugin> pluginMultibinder = Multibinder.newSetBinder(binder(), Plugin.class);
    pluginMultibinder.addBinding().to(MyPlugin.class);
    pluginMultibinder.addBinding().toInstance(new MyPlugin2());

    final MapBinder<String, KeyedPlugin> keyedPluginMapBinder =
            MapBinder.newMapBinder(binder(), String.class, KeyedPlugin.class);
    keyedPluginMapBinder.addBinding("foo").to(MyKeyedPlugin.class);
    keyedPluginMapBinder.addBinding("bar").toInstance(new MyKeyedPlugin2());
    
    OptionalBinder.newOptionalBinder(binder(), OptService.class).setDefault().to(DefImpl.class);
    install(new OverideModule());
}
 
源代码17 项目: seed   文件: CryptoModule.java
@Override
protected void configure() {
    // Truststore
    OptionalBinder.newOptionalBinder(binder(), Key.get(KeyStore.class, Names.named(TRUSTSTORE)));
    if (trustStore != null) {
        bind(KeyStore.class).annotatedWith(Names.named(TRUSTSTORE)).toInstance(trustStore);
    }

    // Keystore(s)
    for (Entry<String, KeyStore> keyStoreEntry : this.keyStores.entrySet()) {
        bind(Key.get(KeyStore.class, Names.named(keyStoreEntry.getKey()))).toInstance(keyStoreEntry.getValue());
    }

    // Encryption service(s)
    for (Entry<Key<EncryptionService>, EncryptionService> entry : this.encryptionServices.entrySet()) {
        bind(entry.getKey()).toInstance(entry.getValue());
    }

    // Hashing service
    bind(HashingService.class).to(PBKDF2HashingService.class);

    // SSL context
    OptionalBinder.newOptionalBinder(binder(), SSLContext.class);
    if (sslContext != null) {
        bind(SSLContext.class).toInstance(sslContext);
    }

    // Bind custom X509KeyManager if any
    if (keyManagerClass != null) {
        bind(X509KeyManager.class).to(keyManagerClass);
    } else {
        bind(X509KeyManager.class).toProvider(Providers.of(null));
    }

    // KeyManager adapters should be injectable
    keyManagerAdapters.forEach(this::requestInjection);
}
 
源代码18 项目: arcusplatform   文件: SimplePartitionModule.java
@Override
protected void configure() {
   bind(Partitioner.class).to(SimplePartitioner.class);
   OptionalBinder.newOptionalBinder(binder(), new TypeLiteral<Set<PartitionListener>>() {});
}
 
源代码19 项目: arcusplatform   文件: ClusteredPartitionModule.java
@Override
protected void configure() {
   bind(Partitioner.class).to(DynamicPartitioner.class);
   bindSetOf(ClusterServiceListener.class).addBinding().to(DynamicPartitioner.class);
   OptionalBinder.newOptionalBinder(binder(), new TypeLiteral<Set<PartitionListener>>() {});
}
 
源代码20 项目: ProjectAres   文件: Binders.java
default <T> OptionalBinder<T> forOptional(Key<T> key) {
    return OptionalBinder.newOptionalBinder(forwardedBinder(), key);
}
 
源代码21 项目: ProjectAres   文件: ModelBinder.java
public OptionalBinder<QueryService<M>> queryService() {
    return queryServiceBinder;
}
 
源代码22 项目: ProjectAres   文件: ModelBinder.java
public OptionalBinder<UpdateService<P>> updateService() {
    return updateServiceBinder;
}
 
源代码23 项目: dropwizard-guicey   文件: MultibindingsModule.java
@Override
protected void configure() {
    OptionalBinder.newOptionalBinder(binder(), OptService.class).setBinding().to(ActualImpl.class);
}
 
源代码24 项目: ProjectAres   文件: Binders.java
default <T> OptionalBinder<T> forOptional(TypeLiteral<T> type) { return forOptional(Key.get(type)); } 
源代码25 项目: ProjectAres   文件: Binders.java
default <T> OptionalBinder<T> forOptional(Class<T> type) { return forOptional(Key.get(type)); } 
 类所在包
 同包方法