All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.singularity.data.zkmigrations.SingularityZkMigrationsModule Maven / Gradle / Ivy

There is a newer version: 1.5.0
Show newest version
package com.hubspot.singularity.data.zkmigrations;

import java.util.Collections;
import java.util.List;
import java.util.Set;

import com.google.common.collect.Lists;
import com.google.inject.Binder;
import com.google.inject.Module;
import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.multibindings.Multibinder;

public class SingularityZkMigrationsModule implements Module {

  @Override
  public void configure(Binder binder) {
    binder.bind(ZkDataMigrationRunner.class).in(Scopes.SINGLETON);

    Multibinder dataMigrations = Multibinder.newSetBinder(binder, ZkDataMigration.class);
    dataMigrations.addBinding().to(LastTaskStatusMigration.class);
    dataMigrations.addBinding().to(SingularityPendingTaskIdMigration.class);
    dataMigrations.addBinding().to(SlaveAndRackMigration.class);
    dataMigrations.addBinding().to(SingularityCmdLineArgsMigration.class);
    dataMigrations.addBinding().to(TaskManagerRequiredParentsForTransactionsMigration.class);
    dataMigrations.addBinding().to(SlaveAndRackMigration2.class);
    dataMigrations.addBinding().to(ScheduleMigration.class);
    dataMigrations.addBinding().to(SingularityRequestTypeMigration.class);
  }

  @Provides
  public List getMigrationsInOrder(Set migrations) {
    final List sortedMigrationList = Lists.newArrayList(migrations);
    Collections.sort(sortedMigrationList);

    return sortedMigrationList;
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy