void (@NotNull ProgressIndicator indicator) { final List<Pair<RepositoryArtifactDescription, RemoteRepositoryDescription>> resultList = new ArrayList<>(); try { for (String serviceUrl : MavenRepositoryServicesManager.getServiceUrls(project)) { try { final List<RepositoryArtifactDescription> artifacts = MavenRepositoryServicesManager.findArtifacts(template, serviceUrl); if (!artifacts.isEmpty()) { final List<RemoteRepositoryDescription> repositories = MavenRepositoryServicesManager.getRepositories(serviceUrl); final Map<String, RemoteRepositoryDescription> map = new HashMap<>(); for (RemoteRepositoryDescription repository : repositories) { map.put(repository.getId(), repository); } for (RepositoryArtifactDescription artifact : artifacts) { final RemoteRepositoryDescription repository = map.get(artifact.getRepositoryId()); // if the artifact is provided by an unsupported repository just skip it // because it won't be resolved anyway if (repository != null) { resultList.add(Pair.create(artifact, repository)); } } } } catch (Exception e) { LOG.error(e); } } } finally { ApplicationManager.getApplication().invokeLater(() -> resultProcessor.accept(resultList)); } }