@Override
  public List<ArtifactResult> resolveArtifacts(RepositorySystemSession session, Collection<? extends ArtifactRequest> requests)
    throws ArtifactResolutionException {
    if (null == requests) return null;

    List<ArtifactRequest> requestList = new ArrayList<>(requests);

    List<ArtifactResultData> resultDataList = ParallelRunnerForServer.execute(
      true,
      requests,
      request -> doResolveArtifactAndWrapException(session, request)
    );

    List<ArtifactResult> results = new ArrayList<>(requests.size());
    boolean error = false;
    for (int i = 0; i < requests.size(); i++) {
      ArtifactResultData resultData = resultDataList.get(i);
      if (null != resultData.getResolutionException()) {
        error = true;
      }
      results.add(getResult(requestList.get(i), resultData));
    }

    if (error) {
      throw new ArtifactResolutionException(results);
    }
    return results;
  }
@Override
  public List<ArtifactResult> resolveArtifacts(RepositorySystemSession session, Collection<? extends ArtifactRequest> requests)