Example usage for org.apache.maven RepositoryUtils toDependency

List of usage examples for org.apache.maven RepositoryUtils toDependency

Introduction

In this page you can find the example usage for org.apache.maven RepositoryUtils toDependency.

Prototype

public static Dependency toDependency(org.apache.maven.model.Dependency dependency,
            ArtifactTypeRegistry stereotypes) 

Source Link

Usage

From source file:de.jutzig.maven.eclipse.feature.CreateFeatureMojo.java

public void execute() throws MojoExecutionException, MojoFailureException {
    try {// w ww . j ava 2 s .  c  o m
        computeExcludes();
        writeHeader();

        List<Dependency> dependencies = project.getDependencies();
        for (Dependency dependency : dependencies) {
            if (ignoreArtifact(dependency))
                continue;
            org.sonatype.aether.graph.Dependency dep2 = RepositoryUtils.toDependency(dependency,
                    repoSession.getArtifactTypeRegistry());
            DependencyNode node = new DefaultDependencyNode(dep2);
            ArtifactRequest request = new ArtifactRequest(node);
            ArtifactResult result = repoSystem.resolveArtifact(repoSession, request);
            Artifact artifact = result.getArtifact();
            writeArtifact(artifact);
        }

        serializeOutput();
        addResource();
    } catch (ParserConfigurationException e) {
        throw new MojoExecutionException("failed to generate feature.xml", e);
    } catch (ArtifactResolutionException e) {
        throw new MojoExecutionException("failed to resolve dependency", e);
    } catch (TransformerException e) {
        throw new MojoExecutionException("failed to serialize results", e);
    } catch (IOException e) {
        throw new MojoExecutionException("failed to generate feature.xml", e);
    } catch (RuntimeException e) {
        getLog().error(e);
    }

}

From source file:org.apache.commons.weaver.maven.AbstractCWMojo.java

License:Apache License

private List<String> createClasspath() throws DependencyResolutionException {
    final CollectRequest collect = new CollectRequest();
    collect.setRootArtifact(RepositoryUtils.toArtifact(project.getArtifact()));
    collect.setRequestContext("project");
    collect.setRepositories(project.getRemoteProjectRepositories());

    for (final Dependency dependency : project.getDependencies()) {
        // guard against case where best-effort resolution for invalid models is requested:
        if (StringUtils.isAnyBlank(dependency.getGroupId(), dependency.getArtifactId(),
                dependency.getVersion())) {
            continue;
        }//from  ww w.  j a  v a 2s  .  c  o m
        collect.addDependency(
                RepositoryUtils.toDependency(dependency, repositorySystemSession.getArtifactTypeRegistry()));
    }
    final DependencyResult dependencyResult = repositorySystem.resolveDependencies(repositorySystemSession,
            new DependencyRequest().setFilter(new ScopeDependencyFilter(getExcludeScopes()))
                    .setCollectRequest(collect));

    return dependencyResult.getArtifactResults().stream()
            .map(ar -> ar.getArtifact().getFile().getAbsolutePath()).distinct().collect(Collectors.toList());
}

From source file:org.commonjava.emb.project.graph.DependencyGraphResolver.java

License:Apache License

private DependencyGraph accumulate(final ProjectToolsSession session, final RepositorySystemSession rss,
        final Collection<MavenProject> projects, final RemoteRepository... remoteRepositories) {
    final ArtifactTypeRegistry stereotypes = rss.getArtifactTypeRegistry();

    final DependencyGraph depGraph = session.getDependencyGraph();
    final GraphAccumulator accumulator = new GraphAccumulator(depGraph);

    for (final MavenProject project : projects) {
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Collecting dependencies for: " + project);
        }/*  w  w  w  . j  a va2 s  .  c o  m*/
        final CollectRequest request = new CollectRequest();
        request.setRequestContext("project");
        request.setRepositories(Arrays.asList(remoteRepositories));

        if (project.getDependencyArtifacts() == null) {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Adding dependencies to collection request...");
            }
            for (final Dependency dependency : project.getDependencies()) {
                request.addDependency(RepositoryUtils.toDependency(dependency, stereotypes));
            }
        } else {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Mapping project dependencies by management key...");
            }
            final Map<String, Dependency> dependencies = new HashMap<String, Dependency>();
            for (final Dependency dependency : project.getDependencies()) {
                final String key = dependency.getManagementKey();
                dependencies.put(key, dependency);
            }

            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Adding dependencies to collection request...");
            }
            for (final org.apache.maven.artifact.Artifact artifact : project.getDependencyArtifacts()) {
                final String key = artifact.getDependencyConflictId();
                final Dependency dependency = dependencies.get(key);
                final Collection<org.apache.maven.model.Exclusion> exclusions = dependency != null
                        ? dependency.getExclusions()
                        : null;

                org.sonatype.aether.graph.Dependency dep = RepositoryUtils.toDependency(artifact, exclusions);
                if (!JavaScopes.SYSTEM.equals(dep.getScope()) && dep.getArtifact().getFile() != null) {
                    // enable re-resolution
                    org.sonatype.aether.artifact.Artifact art = dep.getArtifact();
                    art = art.setFile(null).setVersion(art.getBaseVersion());
                    dep = dep.setArtifact(art);
                }
                request.addDependency(dep);
            }
        }

        final DependencyManagement depMngt = project.getDependencyManagement();
        if (depMngt != null) {
            if (LOGGER.isDebugEnabled()) {
                LOGGER.debug("Adding managed dependencies to collection request...");
            }
            for (final Dependency dependency : depMngt.getDependencies()) {
                request.addManagedDependency(RepositoryUtils.toDependency(dependency, stereotypes));
            }
        }

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Collecting dependencies...");
        }
        CollectResult result;
        try {
            result = repositorySystem.collectDependencies(rss, request);
        } catch (final DependencyCollectionException e) {
            // TODO: Handle problem resolving POMs...
            result = e.getResult();

            // result.setDependencyGraph( e.getResult().getRoot() );
            // result.setCollectionErrors( e.getResult().getExceptions() );
            //
            // throw new DependencyResolutionException( result, "Could not resolve dependencies for project "
            // + project.getId() + ": " + e.getMessage(), e );
        }

        final DependencyNode root = result.getRoot();
        final DepGraphRootNode rootNode = depGraph.addRoot(root, project);

        accumulator.resetForNextRun(root, rootNode);

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Adding collected dependencies to consolidated dependency graph...");
        }
        result.getRoot().accept(accumulator);

    }

    return depGraph;
}

From source file:org.eclipse.m2e.core.embedder.MavenModelManager.java

License:Open Source License

DependencyNode readDependencyTree(RepositorySystemSession repositorySession, MavenProject mavenProject,
        String scope) throws CoreException {
    DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(repositorySession);

    DependencyGraphTransformer transformer = new ChainedDependencyGraphTransformer(
            new JavaEffectiveScopeCalculator(), new NearestVersionConflictResolver());
    session.setDependencyGraphTransformer(transformer);

    ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
    try {//from  w  w  w  .  j a v a2 s.  c o  m
        Thread.currentThread().setContextClassLoader(maven.getProjectRealm(mavenProject));

        ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();

        CollectRequest request = new CollectRequest();
        request.setRequestContext("project"); //$NON-NLS-1$
        request.setRepositories(mavenProject.getRemoteProjectRepositories());

        for (org.apache.maven.model.Dependency dependency : mavenProject.getDependencies()) {
            request.addDependency(RepositoryUtils.toDependency(dependency, stereotypes));
        }

        DependencyManagement depMngt = mavenProject.getDependencyManagement();
        if (depMngt != null) {
            for (org.apache.maven.model.Dependency dependency : depMngt.getDependencies()) {
                request.addManagedDependency(RepositoryUtils.toDependency(dependency, stereotypes));
            }
        }

        DependencyNode node;
        try {
            node = MavenPluginActivator.getDefault().getRepositorySystem().collectDependencies(session, request)
                    .getRoot();
        } catch (DependencyCollectionException ex) {
            String msg = Messages.MavenModelManager_error_read;
            log.error(msg, ex);
            throw new CoreException(new Status(IStatus.ERROR, IMavenConstants.PLUGIN_ID, -1, msg, ex));
        }

        Collection<String> scopes = new HashSet<String>();
        Collections.addAll(scopes, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_COMPILE, Artifact.SCOPE_PROVIDED,
                Artifact.SCOPE_RUNTIME, Artifact.SCOPE_TEST);
        if (Artifact.SCOPE_COMPILE.equals(scope)) {
            scopes.remove(Artifact.SCOPE_COMPILE);
            scopes.remove(Artifact.SCOPE_SYSTEM);
            scopes.remove(Artifact.SCOPE_PROVIDED);
        } else if (Artifact.SCOPE_RUNTIME.equals(scope)) {
            scopes.remove(Artifact.SCOPE_COMPILE);
            scopes.remove(Artifact.SCOPE_RUNTIME);
        } else if (Artifact.SCOPE_COMPILE_PLUS_RUNTIME.equals(scope)) {
            scopes.remove(Artifact.SCOPE_COMPILE);
            scopes.remove(Artifact.SCOPE_SYSTEM);
            scopes.remove(Artifact.SCOPE_PROVIDED);
            scopes.remove(Artifact.SCOPE_RUNTIME);
        } else {
            scopes.clear();
        }

        CloningDependencyVisitor cloner = new CloningDependencyVisitor();
        node.accept(new FilteringDependencyVisitor(cloner, new ScopeDependencyFilter(null, scopes)));
        node = cloner.getRootNode();

        return node;
    } finally {
        Thread.currentThread().setContextClassLoader(oldClassLoader);
    }
}

From source file:org.jboss.tools.maven.apt.internal.utils.PluginDependencyResolver.java

License:Open Source License

/**
 * Looks up a plugin's dependencies (including the transitive ones) and return them as a list of {@link File} 
 * <br/>/*from  w  w  w  .  j  av a  2s.c om*/
 * Some of {@link MavenModelManager#readDependencyTree(org.eclipse.m2e.core.project.IMavenProjectFacade, MavenProject, String, IProgressMonitor)}'s logic has been copied and reused in this implementation.
 */
public synchronized List<File> getResolvedPluginDependencies(MavenSession mavenSession,
        MavenProject mavenProject, Plugin plugin, IProgressMonitor monitor) throws CoreException {

    monitor.setTaskName("Resolve plugin dependency");

    IMaven maven = MavenPlugin.getMaven();

    DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(
            mavenSession.getRepositorySession());

    DependencyGraphTransformer transformer = new ConflictResolver(new NearestVersionSelector(),
            new JavaScopeSelector(), new SimpleOptionalitySelector(), new JavaScopeDeriver());
    session.setDependencyGraphTransformer(
            new ChainedDependencyGraphTransformer(transformer, new JavaDependencyContextRefiner()));

    ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
    List<File> files = new ArrayList<File>();
    try {
        Thread.currentThread().setContextClassLoader(maven.getProjectRealm(mavenProject));

        ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();

        CollectRequest request = new CollectRequest();
        request.setRequestContext("plugin"); //$NON-NLS-1$
        request.setRepositories(mavenProject.getRemoteProjectRepositories());

        for (org.apache.maven.model.Dependency dependency : plugin.getDependencies()) {
            request.addDependency(RepositoryUtils.toDependency(dependency, stereotypes));
        }

        DependencyFilter classpathFilter = DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE,
                JavaScopes.RUNTIME);

        DependencyRequest dependencyRequest = new DependencyRequest(request, classpathFilter);
        try {
            RepositorySystem system = MavenPluginActivator.getDefault().getRepositorySystem();
            List<ArtifactResult> artifactResults = system.resolveDependencies(session, dependencyRequest)
                    .getArtifactResults();

            for (ArtifactResult artifactResult : artifactResults) {
                files.add(artifactResult.getArtifact().getFile());
            }
        } catch (DependencyResolutionException e) {
            String msg = "Unable to collect dependencies for plugin";
            log.error(msg, e);
            throw new CoreException(new Status(IStatus.ERROR, MavenJdtAptPlugin.PLUGIN_ID, -1, msg, e));
        }

    } finally {
        Thread.currentThread().setContextClassLoader(oldClassLoader);
    }
    return files;
}

From source file:org.nuxeo.build.maven.graph.DependencyUtils.java

License:Open Source License

/**
 * Look for a version in the project dependencyManagement for the given artifact and set it.
 *
 * @return The new artifact if the version changed, else the original one
 *//*w  w w .ja va2  s . c  om*/
public static Artifact setManagedVersion(Artifact artifact) {
    AntBuildMojo mojo = AntBuildMojo.getInstance();
    List<org.apache.maven.model.Dependency> managedDeps = AntBuildMojo.getInstance().getProject()
            .getDependencyManagement().getDependencies();
    for (org.apache.maven.model.Dependency dependency : managedDeps) {
        Artifact managedArtifact = RepositoryUtils
                .toDependency(dependency, mojo.getSession().getArtifactTypeRegistry()).getArtifact();
        if (ArtifactIdUtils.equalsVersionlessId(managedArtifact, artifact)) {
            artifact = artifact.setVersion(managedArtifact.getVersion());
            AntClient.getInstance().log("Managed version set on " + artifact);
            break;
        }
    }
    return artifact;
}

From source file:org.springframework.ide.vscode.commons.maven.MavenCore.java

License:Open Source License

/**
 * Taken from M2E same named method from MavenModelManager
 *
 * @param repositorySystem//from  w ww.  j a  va 2  s .  c  o  m
 * @param repositorySession
 * @param mavenProject
 * @param scope
 * @return
 */
private DependencyNode readDependencyTree(org.eclipse.aether.RepositorySystem repositorySystem,
        RepositorySystemSession repositorySession, MavenProject mavenProject, String scope) {
    DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(repositorySession);

    ConflictResolver transformer = new ConflictResolver(new NearestVersionSelector(), new JavaScopeSelector(),
            new SimpleOptionalitySelector(), new JavaScopeDeriver());
    session.setDependencyGraphTransformer(transformer);
    session.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, Boolean.toString(true));
    session.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true);

    ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();

    CollectRequest request = new CollectRequest();
    request.setRequestContext("project"); //$NON-NLS-1$
    request.setRepositories(mavenProject.getRemoteProjectRepositories());

    for (org.apache.maven.model.Dependency dependency : mavenProject.getDependencies()) {
        request.addDependency(RepositoryUtils.toDependency(dependency, stereotypes));
    }

    DependencyManagement depMngt = mavenProject.getDependencyManagement();
    if (depMngt != null) {
        for (org.apache.maven.model.Dependency dependency : depMngt.getDependencies()) {
            request.addManagedDependency(RepositoryUtils.toDependency(dependency, stereotypes));
        }
    }

    DependencyNode node;
    try {
        node = repositorySystem.collectDependencies(session, request).getRoot();
    } catch (DependencyCollectionException ex) {
        node = ex.getResult().getRoot();
    }

    Collection<String> scopes = new HashSet<String>();
    Collections.addAll(scopes, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_COMPILE, Artifact.SCOPE_PROVIDED,
            Artifact.SCOPE_RUNTIME, Artifact.SCOPE_TEST);
    if (Artifact.SCOPE_COMPILE.equals(scope)) {
        scopes.remove(Artifact.SCOPE_COMPILE);
        scopes.remove(Artifact.SCOPE_SYSTEM);
        scopes.remove(Artifact.SCOPE_PROVIDED);
    } else if (Artifact.SCOPE_RUNTIME.equals(scope)) {
        scopes.remove(Artifact.SCOPE_COMPILE);
        scopes.remove(Artifact.SCOPE_RUNTIME);
    } else if (Artifact.SCOPE_COMPILE_PLUS_RUNTIME.equals(scope)) {
        scopes.remove(Artifact.SCOPE_COMPILE);
        scopes.remove(Artifact.SCOPE_SYSTEM);
        scopes.remove(Artifact.SCOPE_PROVIDED);
        scopes.remove(Artifact.SCOPE_RUNTIME);
    } else {
        scopes.clear();
    }

    CloningDependencyVisitor cloner = new CloningDependencyVisitor();
    node.accept(new FilteringDependencyVisitor(cloner, new ScopeDependencyFilter(null, scopes)));
    node = cloner.getRootNode();

    return node;
}