package org.cad.interruptus.core.zookeeper;
import java.io.IOException;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.recipes.leader.LeaderLatch;
import org.apache.curator.framework.recipes.leader.LeaderLatchListener;
public class AttachLeaderSelectorListener implements ZookeeperLifecycleListener
{
final LeaderLatchListener listener;
LeaderLatch leaderLatch;
final String path;
public AttachLeaderSelectorListener(final LeaderLatchListener listener, final String path)
{
this.listener = listener;
this.path = path;
}
@Override
public void onStart(CuratorFramework curator) throws Exception
{
leaderLatch = new LeaderLatch(curator, path);
leaderLatch.start();
leaderLatch.addListener(listener);
}
@Override
public void onStop(CuratorFramework curator) throws IOException
{
if (leaderLatch == null) {
return;
}
leaderLatch.close();
}
}