List of usage examples for org.apache.maven.artifact.resolver ArtifactResolutionResult getCircularDependencyException
public CyclicDependencyException getCircularDependencyException(int i)
From source file:org.sourcepit.osgifier.maven.context.MavenDependencyWalker.java
License:Apache License
private Set<Artifact> resolve(Request walkerRequest, Artifact artifact, MavenProject resolutionContext, boolean resolveRoot, List<Dependency> dependencies) { final ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact);/*from w w w. j a v a2 s. co m*/ request.setResolveRoot(resolveRoot); request.setResolveTransitively(!resolveRoot); if (dependencies != null) { final Set<Artifact> artifactDependencies = new LinkedHashSet<Artifact>(); for (Dependency dependency : dependencies) { artifactDependencies.add(repositorySystem.createArtifactWithClassifier(dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), dependency.getType(), dependency.getClassifier())); } request.setArtifactDependencies(artifactDependencies); } request.setLocalRepository(walkerRequest.getLocalRepository()); final List<ArtifactRepository> remoteRepositories = new ArrayList<ArtifactRepository>(); final Set<String> repoIds = new HashSet<String>(); final List<ArtifactRepository> requestRepos = walkerRequest.getRemoteRepositories(); if (requestRepos != null) { for (ArtifactRepository artifactRepository : requestRepos) { repoIds.add(artifactRepository.getId()); remoteRepositories.add(artifactRepository); } } if (resolutionContext != null) { for (ArtifactRepository artifactRepository : resolutionContext.getRemoteArtifactRepositories()) { if (repoIds.add(artifactRepository.getId())) { remoteRepositories.add(artifactRepository); } } request.setManagedVersionMap(resolutionContext.getManagedVersionMap()); } request.setRemoteRepositories(remoteRepositories); final ArtifactFilter artifactFilter = walkerRequest.getArtifactFilter(); request.setCollectionFilter(artifactFilter); request.setResolutionFilter(artifactFilter); ArtifactResolutionResult result = repositorySystem.resolve(request); final Exception ex; if (result.hasExceptions()) { ex = result.getExceptions().get(0); } else if (result.hasCircularDependencyExceptions()) { ex = result.getCircularDependencyException(0); } else if (result.hasErrorArtifactExceptions()) { ex = result.getErrorArtifactExceptions().get(0); } else if (result.hasMetadataResolutionExceptions()) { ex = result.getMetadataResolutionException(0); } else { ex = null; } if (ex != null) { throw new IllegalStateException(ex); } for (Artifact missingArtifact : result.getMissingArtifacts()) { throw Exceptions.pipe(new ArtifactNotFoundException("Unable to resolve artifact", missingArtifact)); } return result.getArtifacts(); }