Package com.google.inject

Examples of com.google.inject.PrivateModule


    @Test
    public void requestInjectionInOnePrivateModule()
        throws Exception
    {
        final ObjectWithSetterInjection obj = new ObjectWithSetterInjection();
        Guice.createInjector( new PrivateModule()
        {
            @Override
            protected void configure()
            {
                bind( Foo.class ).to( Foo1.class );
View Full Code Here


    @Test
    public void requestInjectionInTwoPrivateModule()
        throws Exception
    {
        final ObjectWithSetterInjection obj = new ObjectWithSetterInjection();
        Guice.createInjector( new PrivateModule()
                              {
                                  @Override
                                  protected void configure()
                                  {
                                      bind( Foo.class ).to( Foo1.class );
                                      requestInjection( obj );
                                  }
                              }, //                                                                 //
                              new PrivateModule()
                              {
                                  @Override
                                  protected void configure()
                                  {
                                      bind( Foo.class ).to( Foo2.class );
View Full Code Here

      }
    });

    // AsyncModule itself is not a subclass of PrivateModule because TaskEventModule internally uses
    // a MultiBinder, which cannot span multiple injectors.
    install(new PrivateModule() {
      @Override
      protected void configure() {
        bind(new TypeLiteral<Amount<Long, Time>>() { })
            .toInstance(TRANSIENT_TASK_STATE_TIMEOUT.get());
        bind(ScheduledExecutorService.class).toInstance(executor);

        bind(TaskTimeout.class).in(Singleton.class);
        requireBinding(StatsProvider.class);
        expose(TaskTimeout.class);
      }
    });
    PubsubEventModule.bindSubscriber(binder(), TaskTimeout.class);

    install(new PrivateModule() {
      @Override
      protected void configure() {
        bind(TaskGroupsSettings.class).toInstance(new TaskGroupsSettings(
            new TruncatedBinaryBackoff(INITIAL_SCHEDULE_DELAY.get(), MAX_SCHEDULE_DELAY.get()),
            RateLimiter.create(MAX_SCHEDULE_ATTEMPTS_PER_SEC.get())));

        bind(RescheduleCalculatorImpl.RescheduleCalculatorSettings.class)
            .toInstance(new RescheduleCalculatorImpl.RescheduleCalculatorSettings(
                new TruncatedBinaryBackoff(INITIAL_FLAPPING_DELAY.get(), MAX_FLAPPING_DELAY.get()),
                FLAPPING_THRESHOLD.get(),
                MAX_RESCHEDULING_DELAY.get()));

        bind(RescheduleCalculator.class).to(RescheduleCalculatorImpl.class).in(Singleton.class);
        expose(RescheduleCalculator.class);
        if (ENABLE_PREEMPTOR.get()) {
          bind(PREEMPTOR_KEY).to(PreemptorImpl.class);
          bind(PreemptorImpl.class).in(Singleton.class);
          LOG.info("Preemptor Enabled.");
        } else {
          bind(PREEMPTOR_KEY).toInstance(NULL_PREEMPTOR);
          LOG.warning("Preemptor Disabled.");
        }
        expose(PREEMPTOR_KEY);
        bind(new TypeLiteral<Amount<Long, Time>>() { }).annotatedWith(PreemptionDelay.class)
            .toInstance(PREEMPTION_DELAY.get());
        bind(TaskGroups.class).in(Singleton.class);
        expose(TaskGroups.class);
      }
    });
    bindTaskScheduler(binder(), PREEMPTOR_KEY, RESERVATION_DURATION.get());
    PubsubEventModule.bindSubscriber(binder(), TaskGroups.class);

    install(new PrivateModule() {
      @Override
      protected void configure() {
        bind(OfferReturnDelay.class).to(RandomJitterReturnDelay.class);
        bind(ScheduledExecutorService.class).toInstance(executor);
        bind(OfferQueue.class).to(OfferQueueImpl.class);
        bind(OfferQueueImpl.class).in(Singleton.class);
        expose(OfferQueue.class);
      }
    });
    PubsubEventModule.bindSubscriber(binder(), OfferQueue.class);

    install(new PrivateModule() {
      @Override
      protected void configure() {
        // TODO(ksweeney): Create a configuration validator module so this can be injected.
        // TODO(William Farner): Revert this once large task counts is cheap ala hierarchichal store
        bind(HistoryPrunnerSettings.class).toInstance(new HistoryPrunnerSettings(
            HISTORY_PRUNE_THRESHOLD.get(),
            HISTORY_MIN_RETENTION_THRESHOLD.get(),
            HISTORY_MAX_PER_JOB_THRESHOLD.get()
        ));
        bind(ScheduledExecutorService.class).toInstance(executor);

        bind(HistoryPruner.class).in(Singleton.class);
        expose(HistoryPruner.class);
      }
    });
    PubsubEventModule.bindSubscriber(binder(), HistoryPruner.class);

    install(new PrivateModule() {
      @Override
      protected void configure() {
        bind(ScheduledExecutorService.class).toInstance(executor);
        bind(TaskThrottler.class).in(Singleton.class);
        expose(TaskThrottler.class);
      }
    });
    PubsubEventModule.bindSubscriber(binder(), TaskThrottler.class);

    install(new PrivateModule() {
      @Override
      protected void configure() {
        bind(GcExecutorSettings.class).toInstance(new RandomGcExecutorSettings(
            EXECUTOR_GC_INTERVAL.get(),
            Optional.fromNullable(GC_EXECUTOR_PATH.get())));
View Full Code Here

  @VisibleForTesting
  static void bindTaskScheduler(
      Binder binder,
      final Key<Preemptor> preemptorKey,
      final Amount<Long, Time> reservationDuration) {
        binder.install(new PrivateModule() {
          @Override
          protected void configure() {
            bind(Preemptor.class).to(preemptorKey);
            bind(new TypeLiteral<Amount<Long, Time>>() { }).annotatedWith(ReservationDuration.class)
                .toInstance(reservationDuration);
View Full Code Here

   *
   * @param storageClass Non-volatile storage implementation class.
   * @return Binding module.
   */
  public static Module wrappingModule(final Class<? extends NonVolatileStorage> storageClass) {
    return new PrivateModule() {
      @Override
      protected void configure() {
        bind(Storage.class).to(CallOrderEnforcingStorage.class);
        bind(NonVolatileStorage.class).to(CallOrderEnforcingStorage.class);
        bind(CallOrderEnforcingStorage.class).in(Singleton.class);
View Full Code Here

    bind(TaskIdGenerator.class).to(TaskIdGeneratorImpl.class);

    bind(UserTaskLauncher.class).in(Singleton.class);

    install(new PrivateModule() {
      @Override
      protected void configure() {
        bind(LeadingOptions.class).toInstance(
            new LeadingOptions(MAX_REGISTRATION_DELAY.get(), MAX_LEADING_DURATION.get()));
View Full Code Here

    bindInterceptor(
        THRIFT_IFACE_MATCHER,
        GuiceUtils.interfaceMatcher(AuroraAdmin.Iface.class, true),
        authInterceptor);

    install(new PrivateModule() {
      @Override
      protected void configure() {
        // Ensure that the provided methods exist on the decorated interface.
        List<Method> methods =
            ImmutableList.copyOf(AuroraSchedulerManager.Iface.class.getMethods());
View Full Code Here

  static Module wrapInPrivateModule(
      Class<? extends Module> moduleClass,
      final Iterable<Class<?>> exposedClasses) {

    final Module module = instantiateModule(moduleClass);
    return new PrivateModule() {
      @Override
      protected void configure() {
        install(module);
        for (Class<?> klass : exposedClasses) {
          expose(klass);
View Full Code Here

    }
    return nonProviderDeclaredTypeLiteral;
  }

  Module bindTo(final Key<T> returnValueKey) {
    return new PrivateModule() {
      @SuppressWarnings({ "unchecked", "RedundantCast" })
      // raw keys are necessary for the args array and return value
      @Override protected void configure() {
        Binder binder = binder();
View Full Code Here

      }
    );
  }

  private Module createProgramFactoryModule() {
    return new PrivateModule() {
      @Override
      protected void configure() {
        bind(LocationFactory.class)
          .annotatedWith(Names.named("program.location.factory"))
          .toInstance(new LocalLocationFactory(new File(System.getProperty("user.dir"))));
View Full Code Here

TOP

Related Classes of com.google.inject.PrivateModule

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.