code: public Future<T> doConfigurationUpdate(final ConfigurationRequest<T> configurationRequest) {
          Util.notNull(configurationRequest, "ConfigurationRequest passed to ConfigurationHandler");
          return executorService.submit(new Callable<T>() {
              public T call() throws Exception {
                  try {
                      T conf = configurationRequest.invoke();
                      updateListenersWithNewConfiguration(conf);
                      return conf;
                  } catch (Exception e) {
                      updateListenersWithFailure(e);
                      throw e;
                  }
              }
          });
      }
docs: Invokes a configuration request and updates listeners asynchronously.
  
  @param configurationRequest may not be null.