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(); }