@Override
  public ArtifactResult resolveArtifact(RepositorySystemSession session, ArtifactRequest request) throws ArtifactResolutionException {
    if (null == request) return null;

    ArtifactRequestData requestData = new ArtifactRequestData(request);

    ArtifactResultData resultData = artifactCache.computeIfAbsent(requestData, rd -> doResolveArtifactAndWrapException(session, request));

    if (null != resultData.getResolutionException()) {
      throw resultData.getResolutionException();
    }

    return getResult(request, resultData);
  }
@Override
  public ArtifactResult resolveArtifact(RepositorySystemSession session, ArtifactRequest request)