this.resourceManagerLeaderElectionService = new SingleLeaderElectionService(dispatcher, DEFAULT_LEADER_ID); this.dispatcherLeaderElectionService = new SingleLeaderElectionService(dispatcher, DEFAULT_LEADER_ID);
@Override public LeaderRetrievalService getResourceManagerLeaderRetriever() { enter(); try { return resourceManagerLeaderElectionService.createLeaderRetrievalService(); } finally { exit(); } }
@Override public void close() throws Exception { if (enterUnlessClosed()) { try { try { // this class' own cleanup logic resourceManagerLeaderElectionService.shutdown(); dispatcher.shutdownNow(); } finally { // in any case must we call the parent cleanup logic super.close(); } } finally { exit(); } } } }
public void shutdown() { shutdownInternally(new Exception("The leader service is shutting down")); }
void removeListener(EmbeddedLeaderRetrievalService service) { synchronized (lock) { // if the service was not even started, simply do nothing if (!service.running || shutdown) { return; } try { if (!listeners.remove(service)) { throw new IllegalStateException("leader retrieval service does not belong to this service"); } // stop the service service.listener = null; service.running = false; } catch (Throwable t) { fatalError(t); } } }
@Override public void start(LeaderRetrievalListener listener) throws Exception { checkNotNull(listener); addListener(this, listener); }
@Override public void run() { try { contender.grantLeadership(leaderSessionId); } catch (Throwable t) { errorOnGrantLeadership(contender, t); } } }
@Override public void stop() throws Exception { removeListener(this); }
public void shutdown() { shutdownInternally(new Exception("The leader service is shutting down")); }
void removeListener(EmbeddedLeaderRetrievalService service) { synchronized (lock) { // if the service was not even started, simply do nothing if (!service.running || shutdown) { return; } try { if (!listeners.remove(service)) { throw new IllegalStateException("leader retrieval service does not belong to this service"); } // stop the service service.listener = null; service.running = false; } catch (Throwable t) { fatalError(t); } } }
@Override public void start(LeaderRetrievalListener listener) throws Exception { checkNotNull(listener); addListener(this, listener); }
@Override public void run() { try { contender.grantLeadership(leaderSessionId); } catch (Throwable t) { errorOnGrantLeadership(contender, t); } } }
@Override public void stop() throws Exception { removeListener(this); }
public void shutdown() { shutdownInternally(new Exception("The leader service is shutting down")); }
void removeListener(EmbeddedLeaderRetrievalService service) { synchronized (lock) { // if the service was not even started, simply do nothing if (!service.running || shutdown) { return; } try { if (!listeners.remove(service)) { throw new IllegalStateException("leader retrieval service does not belong to this service"); } // stop the service service.listener = null; service.running = false; } catch (Throwable t) { fatalError(t); } } }
@Override public void start(LeaderRetrievalListener listener) throws Exception { checkNotNull(listener); addListener(this, listener); }
@Override public void run() { try { contender.grantLeadership(leaderSessionId); } catch (Throwable t) { errorOnGrantLeadership(contender, t); } } }
@Override public void stop() throws Exception { removeListener(this); }
@Override public LeaderRetrievalService getDispatcherLeaderRetriever() { enter(); try { return dispatcherLeaderElectionService.createLeaderRetrievalService(); } finally { exit(); } }
@Override public void close() throws Exception { if (enterUnlessClosed()) { try { try { // this class' own cleanup logic resourceManagerLeaderElectionService.shutdown(); dispatcher.shutdownNow(); } finally { // in any case must we call the parent cleanup logic super.close(); } } finally { exit(); } } } }