@Override
public org.jboss.forge.addon.dependencies.DependencyNode resolveDependencyHierarchy(final DependencyQuery query)
{
try
{
RepositorySystem system = container.getRepositorySystem();
Settings settings = container.getSettings();
DefaultRepositorySystemSession session = container.setupRepoSession(system, settings);
session.setDependencyTraverser(new DependencyTraverser()
{
@Override
public boolean traverseDependency(org.eclipse.aether.graph.Dependency dependency)
{
if (query.getScopeType() != null)
return query.getScopeType().equals(dependency.getScope());
else
return !"test".equals(dependency.getScope());
}
@Override
public DependencyTraverser deriveChildTraverser(DependencyCollectionContext context)
{
return this;
}
});
session.setDependencySelector(new ScopeDependencySelector("test"));
final CoordinateBuilder coord = CoordinateBuilder.create(query.getCoordinate());
Artifact queryArtifact = MavenConvertUtils.coordinateToMavenArtifact(coord);
List<RemoteRepository> remoteRepos = MavenConvertUtils.convertToMavenRepos(query.getDependencyRepositories(),
settings);
remoteRepos.addAll(MavenRepositories.getRemoteRepositories(container, settings));
CollectRequest collectRequest = new CollectRequest(new org.eclipse.aether.graph.Dependency(queryArtifact,
null), remoteRepos);
DependencyRequest dr = new DependencyRequest(collectRequest, null);
DependencyResult result = system.resolveDependencies(session, dr);
DependencyNodeBuilder hierarchy = MavenConvertUtils.toDependencyNode(factory, null, result.getRoot());
return hierarchy;
}
catch (Exception e)
{