in registry-center/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/elasticjob/reg/zookeeper/ZookeeperRegistryCenter.java [326:350]
public void addConnectionStateChangedEventListener(final String key,
final ConnectionStateChangedEventListener listener) {
CoordinatorRegistryCenter coordinatorRegistryCenter = this;
ConnectionStateListener connStateListener = (client, newState) -> {
State state;
switch (newState) {
case CONNECTED:
state = State.CONNECTED;
break;
case LOST:
case SUSPENDED:
state = State.UNAVAILABLE;
break;
case RECONNECTED:
state = State.RECONNECTED;
break;
case READ_ONLY:
default:
throw new IllegalStateException("Illegal registry center connection state: " + newState);
}
listener.onStateChanged(coordinatorRegistryCenter, state);
};
client.getConnectionStateListenable().addListener(connStateListener);
connStateListeners.computeIfAbsent(key, k -> new LinkedList<>()).add(connStateListener);
}