@Override public void init() throws Throwable { client = new ZooClient(logger.getLogger(ZooClient.class), config); life.add(client); client.addZooListener(new ZooHaEventListener()); client.addCompatibilityModeListener(new ZooCompatibilityModeListener()); life.init(); }
@Override public void start() throws Throwable { life.start(); // Binds ZooClient so we have a local address to use next Listeners.notifyListeners( bindingListeners, new Listeners.Notification<BindingListener>() { @Override public void notify(BindingListener listener) { listener.listeningAt(URI.create(client.getClusterServer())); } }); client.refreshMasterFromZooKeeper(); Listeners.notifyListeners( haListeners, new Listeners.Notification<ClusterMemberListener>() { @Override public void notify(ClusterMemberListener listener) { listener.coordinatorIsElected(new InstanceId(client.getCachedMaster().getMachineId())); } }); Listeners.notifyListeners( haListeners, new Listeners.Notification<ClusterMemberListener>() { @Override public void notify(ClusterMemberListener listener) { listener.memberIsAvailable( HighAvailabilityModeSwitcher.MASTER, new InstanceId(client.getCachedMaster().getMachineId()), URI.create("ha://" + client.getCachedMaster().getServerAsString())); } }); }