com.google.inject.multibindings.OptionalBinder#newOptionalBinder ( )源码实例Demo

下面列出了com.google.inject.multibindings.OptionalBinder#newOptionalBinder ( ) 实例代码,或者点击链接到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 项目: 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);
}
 
源代码3 项目: 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());
}
 
源代码4 项目: ProjectAres   文件: SessionModelManifest.java
@Override
protected void configure() {
    bindModel(Session.class, SessionDoc.Partial.class, model -> {
        model.bindService().to(SessionService.class);
    });

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

    OptionalBinder.newOptionalBinder(publicBinder(), UserService.class);
}
 
源代码6 项目: 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);
}
 
源代码7 项目: ProjectAres   文件: MapModelManifest.java
@Override
protected void configure() {
    bindModel(MapDoc.class, model -> {
        model.bindService().to(MapService.class);
    });

    OptionalBinder.newOptionalBinder(publicBinder(), MapService.class);
}
 
源代码8 项目: 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);
}
 
源代码9 项目: arcusplatform   文件: SimplePartitionModule.java
@Override
protected void configure() {
   bind(Partitioner.class).to(SimplePartitioner.class);
   OptionalBinder.newOptionalBinder(binder(), new TypeLiteral<Set<PartitionListener>>() {});
}
 
源代码10 项目: 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>>() {});
}
 
源代码11 项目: ProjectAres   文件: Binders.java
default <T> OptionalBinder<T> forOptional(Key<T> key) {
    return OptionalBinder.newOptionalBinder(forwardedBinder(), key);
}