package com.hubspot.blazar.zookeeper; import com.google.common.net.HostAndPort; import io.dropwizard.lifecycle.Managed; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.recipes.leader.LeaderLatch; import org.apache.curator.framework.recipes.leader.LeaderLatchListener; import javax.inject.Inject; import javax.inject.Singleton; import java.util.Set; @Singleton public class BlazarLeaderLatch extends LeaderLatch implements Managed { @Inject public BlazarLeaderLatch(CuratorFramework client, HostAndPort hostAndPort, Set<LeaderLatchListener> listeners) { super(client, "/leader", hostAndPort.toString()); for (LeaderLatchListener listener : listeners) { addListener(listener); } } @Override public void stop() throws Exception { super.close(); } }