code: public Future<ExtensionResponse> extend(Date aggregationTime, Date publicationTime) throws KSIException {
          Util.notNull(aggregationTime, "aggregationTime");
          Collection<KSIExtendingService> services = subservices;
          Collection<Callable<ExtensionResponse>> tasks = new ArrayList<>(services.size());
          for (KSIExtendingService service : services) {
              tasks.add(new ExtendingTask(service, aggregationTime, publicationTime));
          }
          return new ServiceCallFuture<>(
                  executorService.submit(new ServiceCallsTask<>(executorService, tasks))
          );
      }
docs: Creates a non-blocking extending request. Sends the request to all the subservices in parallel. First successful response is
  used, others are cancelled. Request fails only if all the subservices fail.
  
  @see KSIExtendingService#extend(Date, Date)