in iep-leader-api/src/main/java/com/netflix/iep/leader/StandardLeaderElector.java [80:108]
public StandardLeaderElector(
LeaderId leaderId,
LeaderDatabase leaderDatabase,
Config config,
Registry registry,
Map<ResourceId, LeaderId> resourceLeaders,
Id leaderRemovalsCounterId,
Id resourceLeaderGaugeId,
Id resourceWithNoLeaderGaugeId
) {
Objects.requireNonNull(leaderId, "leaderId");
Objects.requireNonNull(leaderDatabase, "dbTable");
Objects.requireNonNull(config, "config");
Objects.requireNonNull(registry, "registry");
Objects.requireNonNull(resourceLeaders, "resourceLeaders");
Objects.requireNonNull(leaderRemovalsCounterId, "leaderRemovalsCounterId");
Objects.requireNonNull(resourceLeaderGaugeId, "resourceLeaderGaugeId");
Objects.requireNonNull(resourceWithNoLeaderGaugeId, "resourceWithNoLeaderGaugeId");
this.leaderId = leaderId;
this.leaderDatabase = leaderDatabase;
this.config = config;
this.registry = registry;
this.resourceLeaders = new ConcurrentHashMap<>(resourceLeaders); // defensive copy
this.leaderRemovalsCounterId = leaderRemovalsCounterId;
this.resourceLeaderGaugeId = resourceLeaderGaugeId;
this.resourceWithNoLeaderGaugeId = resourceWithNoLeaderGaugeId;
}