public DependencyNode collectDependencyGraph()

in src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyCollectorBuilder.java [74:126]


    public DependencyNode collectDependencyGraph(DependencyCollectorRequest dependencyCollectorRequest)
            throws DependencyCollectorBuilderException {
        DefaultRepositorySystemSession session = null;
        try {
            ProjectBuildingRequest buildingRequest = dependencyCollectorRequest.getBuildingRequest();
            MavenProject project = buildingRequest.getProject();

            Artifact projectArtifact = project.getArtifact();
            List<ArtifactRepository> remoteArtifactRepositories = project.getRemoteArtifactRepositories();

            RepositorySystemSession repositorySession = buildingRequest.getRepositorySession();

            session = new DefaultRepositorySystemSession(repositorySession);

            session.setDependencyGraphTransformer(dependencyCollectorRequest.getDependencyGraphTransformer());

            session.setDependencySelector(dependencyCollectorRequest.getDependencySelector());

            for (Map.Entry<String, Object> entry :
                    dependencyCollectorRequest.getConfigProperties().entrySet()) {
                session.setConfigProperty(entry.getKey(), entry.getValue());
            }

            org.eclipse.aether.artifact.Artifact aetherArtifact = RepositoryUtils.toArtifact(projectArtifact);

            List<org.eclipse.aether.repository.RemoteRepository> aetherRepos =
                    RepositoryUtils.toRepos(remoteArtifactRepositories);

            CollectRequest collectRequest = new CollectRequest();
            collectRequest.setRootArtifact(aetherArtifact);
            collectRequest.setRepositories(aetherRepos);

            org.eclipse.aether.artifact.ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();
            collectDependencyList(collectRequest, project, stereotypes);
            collectManagedDependencyList(collectRequest, project, stereotypes);

            CollectResult collectResult = repositorySystem.collectDependencies(session, collectRequest);

            org.eclipse.aether.graph.DependencyNode rootNode = collectResult.getRoot();

            if (LOGGER.isDebugEnabled()) {
                logTree(rootNode);
            }

            return buildDependencyNode(null, rootNode, projectArtifact, dependencyCollectorRequest.getFilter());
        } catch (DependencyCollectionException e) {
            throw new DependencyCollectorBuilderException("Could not collect dependencies: " + e.getResult(), e);
        } finally {
            if (session != null) {
                session.setReadOnly();
            }
        }
    }