Пример #1
0
 private Mirror getMirror(RepositorySystemSession session, ArtifactRepository repository) {
   if (session != null) {
     org.eclipse.aether.repository.MirrorSelector selector = session.getMirrorSelector();
     if (selector != null) {
       RemoteRepository repo = selector.getMirror(RepositoryUtils.toRepo(repository));
       if (repo != null) {
         Mirror mirror = new Mirror();
         mirror.setId(repo.getId());
         mirror.setUrl(repo.getUrl());
         mirror.setLayout(repo.getContentType());
         return mirror;
       }
     }
   }
   return null;
 }
  private MirrorDef findMirror(RemoteRepository repository) {
    if (!mirrors.isEmpty()) {
      String repoId = repository.getId();
      String repoType = repository.getContentType();

      for (MirrorDef mirror : mirrors) {
        if (mirror.idMatcher.isExactMatch(repoId) && mirror.typeMatcher.isMatch(repoType)) {
          return mirror;
        }
      }

      for (MirrorDef mirror : mirrors) {
        if (mirror.idMatcher.isMatch(repository) && mirror.typeMatcher.isMatch(repoType)) {
          return mirror;
        }
      }
    }

    return null;
  }
  public RemoteRepository getMirror(RemoteRepository repository) {
    MirrorDef mirror = findMirror(repository);

    if (mirror == null) {
      return null;
    }

    RemoteRepository.Builder builder =
        new RemoteRepository.Builder(mirror.id, repository.getContentType(), mirror.url);

    builder.setRepositoryManager(mirror.repositoryManager);

    if (mirror.type != null && mirror.type.length() > 0) {
      builder.setContentType(mirror.type);
    }

    builder.setSnapshotPolicy(repository.getPolicy(true));
    builder.setReleasePolicy(repository.getPolicy(false));

    builder.setMirroredRepositories(Collections.singletonList(repository));

    return builder.build();
  }