Example usage for org.apache.maven.plugin.internal PluginDependenciesResolver resolve

List of usage examples for org.apache.maven.plugin.internal PluginDependenciesResolver resolve

Introduction

In this page you can find the example usage for org.apache.maven.plugin.internal PluginDependenciesResolver resolve.

Prototype

Artifact resolve(Plugin plugin, List<RemoteRepository> repositories, RepositorySystemSession session)
        throws PluginResolutionException;

Source Link

Document

Resolves the main artifact of the specified plugin.

Usage

From source file:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java

License:Apache License

@Override
public Collection<MavenArtifact> resolvePlugin(@Nonnull final MavenPlugin plugin,
        @Nonnull final List<MavenRemoteRepository> repositories, int nativeMavenProjectId,
        final boolean transitive) throws RemoteException, MavenServerProcessCanceledException {
    try {/*w  w w . j  a  v  a2 s .co m*/
        Plugin mavenPlugin = new Plugin();
        mavenPlugin.setGroupId(plugin.getGroupId());
        mavenPlugin.setArtifactId(plugin.getArtifactId());
        mavenPlugin.setVersion(plugin.getVersion());
        MavenProject project = RemoteNativeMavenProjectHolder.findProjectById(nativeMavenProjectId);

        Plugin pluginFromProject = project.getBuild().getPluginsAsMap()
                .get(plugin.getGroupId() + ':' + plugin.getArtifactId());
        if (pluginFromProject != null) {
            mavenPlugin.setDependencies(pluginFromProject.getDependencies());
        }

        final MavenExecutionRequest request = createRequest(null, Collections.<String>emptyList(),
                Collections.<String>emptyList(), Collections.<String>emptyList());

        DefaultMaven maven = (DefaultMaven) getComponent(Maven.class);
        RepositorySystemSession repositorySystemSession = maven.newRepositorySession(request);

        PluginDependenciesResolver pluginDependenciesResolver = getComponent(PluginDependenciesResolver.class);

        org.sonatype.aether.artifact.Artifact pluginArtifact = pluginDependenciesResolver.resolve(mavenPlugin,
                project.getRemotePluginRepositories(), repositorySystemSession);

        org.sonatype.aether.graph.DependencyNode node = pluginDependenciesResolver.resolve(mavenPlugin,
                pluginArtifact, null, project.getRemotePluginRepositories(), repositorySystemSession);

        PreorderNodeListGenerator nlg = new PreorderNodeListGenerator();
        node.accept(nlg);

        List<MavenArtifact> res = new ArrayList<MavenArtifact>();

        for (org.sonatype.aether.artifact.Artifact artifact : nlg.getArtifacts(true)) {
            if (!MavenStringUtil.equal(artifact.getArtifactId(), plugin.getArtifactId())
                    || !MavenStringUtil.equal(artifact.getGroupId(), plugin.getGroupId())) {
                res.add(MavenModelConverter.convertArtifact(RepositoryUtils.toArtifact(artifact),
                        getLocalRepositoryFile()));
            }
        }

        return res;
    } catch (Exception e) {
        Maven3ServerGlobals.getLogger().info(e);
        return Collections.emptyList();
    }
}

From source file:org.jetbrains.idea.maven.server.Maven32ServerEmbedderImpl.java

License:Apache License

@Override
public Collection<MavenArtifact> resolvePlugin(@Nonnull final MavenPlugin plugin,
        @Nonnull final List<MavenRemoteRepository> repositories, int nativeMavenProjectId,
        final boolean transitive) throws RemoteException, MavenServerProcessCanceledException {
    try {//from  w ww. j av a2 s . c  om
        Plugin mavenPlugin = new Plugin();
        mavenPlugin.setGroupId(plugin.getGroupId());
        mavenPlugin.setArtifactId(plugin.getArtifactId());
        mavenPlugin.setVersion(plugin.getVersion());
        MavenProject project = RemoteNativeMavenProjectHolder.findProjectById(nativeMavenProjectId);

        Plugin pluginFromProject = project.getBuild().getPluginsAsMap()
                .get(plugin.getGroupId() + ':' + plugin.getArtifactId());
        if (pluginFromProject != null) {
            mavenPlugin.setDependencies(pluginFromProject.getDependencies());
        }

        final MavenExecutionRequest request = createRequest(null, Collections.<String>emptyList(),
                Collections.<String>emptyList(), Collections.<String>emptyList());

        DefaultMaven maven = (DefaultMaven) getComponent(Maven.class);
        RepositorySystemSession repositorySystemSession = maven.newRepositorySession(request);

        PluginDependenciesResolver pluginDependenciesResolver = getComponent(PluginDependenciesResolver.class);

        org.eclipse.aether.artifact.Artifact pluginArtifact = pluginDependenciesResolver.resolve(mavenPlugin,
                project.getRemotePluginRepositories(), repositorySystemSession);

        org.eclipse.aether.graph.DependencyNode node = pluginDependenciesResolver.resolve(mavenPlugin,
                pluginArtifact, null, project.getRemotePluginRepositories(), repositorySystemSession);

        PreorderNodeListGenerator nlg = new PreorderNodeListGenerator();
        node.accept(nlg);

        List<MavenArtifact> res = new ArrayList<MavenArtifact>();

        for (org.eclipse.aether.artifact.Artifact artifact : nlg.getArtifacts(true)) {
            if (!MavenStringUtil.equal(artifact.getArtifactId(), plugin.getArtifactId())
                    || !MavenStringUtil.equal(artifact.getGroupId(), plugin.getGroupId())) {
                res.add(MavenModelConverter.convertArtifact(RepositoryUtils.toArtifact(artifact),
                        getLocalRepositoryFile()));
            }
        }

        return res;
    } catch (Exception e) {
        Maven3ServerGlobals.getLogger().info(e);
        return Collections.emptyList();
    }
}