use of org.sonatype.aether.graph.DependencyVisitor in project sonatype-aether by sonatype.
the class DefaultRepositorySystem method resolveDependencies.
public DependencyResult resolveDependencies(RepositorySystemSession session, DependencyRequest request) throws DependencyResolutionException {
validateSession(session);
RequestTrace trace = DefaultRequestTrace.newChild(request.getTrace(), request);
DependencyResult result = new DependencyResult(request);
DependencyCollectionException dce = null;
ArtifactResolutionException are = null;
if (request.getRoot() != null) {
result.setRoot(request.getRoot());
} else if (request.getCollectRequest() != null) {
CollectResult collectResult;
try {
request.getCollectRequest().setTrace(trace);
collectResult = dependencyCollector.collectDependencies(session, request.getCollectRequest());
} catch (DependencyCollectionException e) {
dce = e;
collectResult = e.getResult();
}
result.setRoot(collectResult.getRoot());
result.setCollectExceptions(collectResult.getExceptions());
} else {
throw new IllegalArgumentException("dependency node or collect request missing");
}
ArtifactRequestBuilder builder = new ArtifactRequestBuilder(trace);
DependencyFilter filter = request.getFilter();
DependencyVisitor visitor = (filter != null) ? new FilteringDependencyVisitor(builder, filter) : builder;
visitor = new TreeDependencyVisitor(visitor);
result.getRoot().accept(visitor);
List<ArtifactRequest> requests = builder.getRequests();
List<ArtifactResult> results;
try {
results = artifactResolver.resolveArtifacts(session, requests);
} catch (ArtifactResolutionException e) {
are = e;
results = e.getResults();
}
result.setArtifactResults(results);
updateNodesWithResolvedArtifacts(results);
if (dce != null) {
throw new DependencyResolutionException(result, dce);
} else if (are != null) {
throw new DependencyResolutionException(result, are);
}
return result;
}
use of org.sonatype.aether.graph.DependencyVisitor in project sonatype-aether by sonatype.
the class DefaultRepositorySystem method resolveDependencies.
public List<ArtifactResult> resolveDependencies(RepositorySystemSession session, DependencyNode node, DependencyFilter filter) throws ArtifactResolutionException {
validateSession(session);
RequestTrace trace = DefaultRequestTrace.newChild(null, node);
ArtifactRequestBuilder builder = new ArtifactRequestBuilder(trace);
DependencyVisitor visitor = (filter != null) ? new FilteringDependencyVisitor(builder, filter) : builder;
visitor = new TreeDependencyVisitor(visitor);
node.accept(visitor);
List<ArtifactRequest> requests = builder.getRequests();
try {
List<ArtifactResult> results = resolveArtifacts(session, requests);
updateNodesWithResolvedArtifacts(results);
return results;
} catch (ArtifactResolutionException e) {
updateNodesWithResolvedArtifacts(e.getResults());
throw e;
}
}
Aggregations