@Override
    public void shutdown() {
        log.log(Level.FINE, "shutdownSourceConnections");
        shutdownSourceConnections();
        log.log(Level.FINE, "delayedResponsesFuture.cancel");
        delayedResponsesFuture.cancel(true);
        log.log(Level.FINE, "delayedResponsesFuture.shutdownNow");
        delayedResponsesScheduler.shutdownNow();
        log.log(Level.FINE, "supervisor.transport().shutdown().join()");
        supervisor.transport().shutdown().join();
    }
Retrieves the requested config from the cache or the remote server.
<p>
If the requested config is different from the one in cache, the cached request is returned immediately.
If they are equal, this method returns null.
<p>
If the config was not in cache, this method starts a <em>Subscriber</em> in a separate thread
that gets the config and calls updateSubscribers().

@param input The config to retrieve - can be empty (no payload), or have a valid payload.
@return A Config with a payload.
config-proxy/src/main/java/com/yahoo/vespa/config/proxy/RpcConfigSourceClient.java