package fi.otavanopisto.pyramus.plugin.maven;
import java.util.List;
import org.sonatype.aether.RepositorySystem;
import org.sonatype.aether.RepositorySystemSession;
import org.sonatype.aether.RequestTrace;
import org.sonatype.aether.artifact.Artifact;
import org.sonatype.aether.collection.CollectRequest;
import org.sonatype.aether.collection.CollectResult;
import org.sonatype.aether.collection.DependencyCollectionException;
import org.sonatype.aether.graph.Dependency;
import org.sonatype.aether.graph.Exclusion;
import org.sonatype.aether.repository.RemoteRepository;
import org.sonatype.aether.resolution.ArtifactResult;
import org.sonatype.aether.resolution.DependencyRequest;
import org.sonatype.aether.resolution.DependencyResolutionException;
import org.sonatype.aether.util.DefaultRequestTrace;
public class DependencyResolver {
public List<ArtifactResult> resolveDependencies(RepositorySystem system, RepositorySystemSession session, List<RemoteRepository> repositories, Artifact artifact, String artifactScope, List<Exclusion> artifactExclusions)
throws DependencyCollectionException, DependencyResolutionException {
RequestTrace trace = DefaultRequestTrace.newChild(null, null);
CollectRequest collect = new CollectRequest();
collect.setRepositories(repositories);
collect.setRoot(new Dependency(artifact, "compile", false, artifactExclusions));
DependencyRequest depRequest = new DependencyRequest(collect, null);
depRequest.setTrace(trace);
collect.setTrace(DefaultRequestTrace.newChild(trace, depRequest));
CollectResult result = system.collectDependencies(session, collect);
depRequest.setRoot(result.getRoot());
return system.resolveDependencies(session, depRequest).getArtifactResults();
}
}