package com.hubspot.singularity.scheduler;

import com.google.inject.AbstractModule;
import com.google.inject.Scopes;
import com.hubspot.singularity.data.history.SingularityHistoryPurger;
import com.hubspot.singularity.helpers.RebalancingHelper;
import com.hubspot.singularity.hooks.LoadBalancerClientImpl;
import com.hubspot.singularity.mesos.SingularityMesosOfferScheduler;
import com.hubspot.singularity.mesos.SingularityMesosTaskPrioritizer;

public class SingularitySchedulerModule extends AbstractModule {

  @Override
  protected void configure() {
    bind(SingularityHealthchecker.class).in(Scopes.SINGLETON);
    bind(SingularityNewTaskChecker.class).in(Scopes.SINGLETON);
    bind(SingularityCleanupPoller.class).in(Scopes.SINGLETON);
    bind(SingularityStatusUpdateDeltaPoller.class).in(Scopes.SINGLETON);
    bind(SingularityExpiringUserActionPoller.class).in(Scopes.SINGLETON);
    bind(SingularityHistoryPurger.class).in(Scopes.SINGLETON);
    bind(SingularitySlaveReconciliationPoller.class).in(Scopes.SINGLETON);
    bind(SingularityCooldownPoller.class).in(Scopes.SINGLETON);
    bind(SingularityDeployPoller.class).in(Scopes.SINGLETON);
    bind(SingularityCooldownPoller.class).in(Scopes.SINGLETON);
    bind(SingularityDeployPoller.class).in(Scopes.SINGLETON);
    bind(SingularitySchedulerPoller.class).in(Scopes.SINGLETON);
    bind(SingularityJobPoller.class).in(Scopes.SINGLETON);
    bind(SingularityTaskShellCommandDispatchPoller.class).in(Scopes.SINGLETON);
    bind(SingularityTaskReconciliationPoller.class).in(Scopes.SINGLETON);
    bind(SingularityScheduler.class).in(Scopes.SINGLETON);
    bind(SingularityCooldownChecker.class).in(Scopes.SINGLETON);
    bind(SingularityDeployChecker.class).in(Scopes.SINGLETON);
    bind(SingularityCleaner.class).in(Scopes.SINGLETON);
    bind(SingularityCooldown.class).in(Scopes.SINGLETON);
    bind(SingularityDeployHealthHelper.class).in(Scopes.SINGLETON);
    bind(SingularityCooldown.class).in(Scopes.SINGLETON);
    bind(SingularityHealthchecker.class).in(Scopes.SINGLETON);
    bind(SingularityNewTaskChecker.class).in(Scopes.SINGLETON);
    bind(SingularityTaskReconciliation.class).in(Scopes.SINGLETON);
    bind(SingularityMailPoller.class).in(Scopes.SINGLETON);
    bind(SingularityDisasterDetectionPoller.class).in(Scopes.SINGLETON);
    bind(SingularityPriorityKillPoller.class).in(Scopes.SINGLETON);
    bind(SingularityUsageCleanerPoller.class).in(Scopes.SINGLETON);
    bind(SingularityUsagePoller.class).in(Scopes.SINGLETON);
    bind(SingularityMesosTaskPrioritizer.class).in(Scopes.SINGLETON);
    bind(SingularityMesosOfferScheduler.class).in(Scopes.SINGLETON);
    bind(SingularityLeaderCache.class).in(Scopes.SINGLETON);
    bind(SingularityLeaderCacheCoordinator.class).in(Scopes.SINGLETON);
    bind(SingularityAutoScaleSpreadAllPoller.class).in(Scopes.SINGLETON);
    bind(SingularityMesosHeartbeatChecker.class).in(Scopes.SINGLETON);
    bind(RebalancingHelper.class).in(Scopes.SINGLETON);
    bind(SingularityUpstreamPoller.class).in(Scopes.SINGLETON);
    bind(SingularityUpstreamChecker.class).in(Scopes.SINGLETON);
  }
}

@@ -243,69 +243,8 @@
 er;%0A
-import com.hubspot.singularity.hooks.LoadBalancerClientImpl;%0A
 impo
@@ -304,24 +304,24 @@
 rScheduler;%0A
+
 import com.h
@@ -1093,134 +1093,8 @@
 N);%0A
-    bind(SingularityCooldownPoller.class).in(Scopes.SINGLETON);%0A    bind(SingularityDeployPoller.class).in(Scopes.SINGLETON);%0A
     
@@ -1729,32 +1729,32 @@
 pes.SINGLETON);%0A
+
     bind(Singula
@@ -1799,71 +1799,8 @@
 N);%0A
-    bind(SingularityHealthchecker.class).in(Scopes.SINGLETON);%0A
     

remove duplicate bind