Example usage for org.apache.maven.project MavenProject getRemotePluginRepositories

List of usage examples for org.apache.maven.project MavenProject getRemotePluginRepositories

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getRemotePluginRepositories.

Prototype

public List<RemoteRepository> getRemotePluginRepositories() 

Source Link

Usage

From source file:io.fabric8.maven.docker.service.MojoExecutionService.java

License:Apache License

PluginDescriptor getPluginDescriptor(MavenProject project, Plugin plugin) throws PluginResolutionException,
        PluginDescriptorParsingException, InvalidPluginDescriptorException, PluginNotFoundException,
        NoSuchMethodException, InvocationTargetException, IllegalAccessException, MojoFailureException {

    try {/*from   w  ww .  j av  a2  s  . co  m*/
        Method loadPlugin = pluginManager.getClass().getMethod("loadPluginDescriptor", plugin.getClass(),
                project.getClass(), session.getClass());
        return (PluginDescriptor) loadPlugin.invoke(plugin, project, session);
    } catch (NoSuchMethodException exp) {
        try {
            // Fallback for older Maven versions
            Object repositorySession = session.getRepositorySession();
            Method loadPlugin = pluginManager.getClass().getMethod("loadPlugin", plugin.getClass(),
                    project.getRemotePluginRepositories().getClass(), repositorySession.getClass());
            return (PluginDescriptor) loadPlugin.invoke(pluginManager, plugin,
                    project.getRemotePluginRepositories(), repositorySession);
        } catch (NoSuchMethodException exp2) {
            throw new MojoFailureException("Cannot load plugin descriptor for plugin " + plugin.getGroupId()
                    + ":" + plugin.getArtifactId(), exp2);
        }
    }
}

From source file:org.eclipse.tycho.core.maven.utils.PluginRealmHelper.java

License:Open Source License

public void execute(MavenSession session, MavenProject project, Runnable runnable, PluginFilter filter)
        throws MavenExecutionException {
    for (Plugin plugin : project.getBuildPlugins()) {
        if (plugin.isExtensions()) {
            // due to maven classloading model limitations, build extensions plugins cannot share classes
            // since tycho core, i.e. this code, is loaded as a build extension, no other extensions plugin
            // can load classes from tycho core
            // https://cwiki.apache.org/MAVEN/maven-3x-class-loading.html
            continue;
        }//from www  . j av a  2s  . c om
        try {
            PluginDescriptor pluginDescriptor = pluginManager.getPluginDescriptor(plugin,
                    project.getRemotePluginRepositories(), session.getRepositorySession());

            if (pluginDescriptor != null) {
                if (pluginDescriptor.getArtifactMap().isEmpty()
                        && pluginDescriptor.getDependencies().isEmpty()) {
                    // force plugin descriptor reload to workaround http://jira.codehaus.org/browse/MNG-5212
                    // this branch won't be executed on 3.0.5+, where MNG-5212 is fixed already
                    PluginDescriptorCache.Key descriptorCacheKey = pluginDescriptorCache.createKey(plugin,
                            project.getRemotePluginRepositories(), session.getRepositorySession());
                    pluginDescriptorCache.put(descriptorCacheKey, null);
                    pluginDescriptor = pluginManager.getPluginDescriptor(plugin,
                            project.getRemotePluginRepositories(), session.getRepositorySession());
                }

                if (filter == null || filter.accept(pluginDescriptor)) {
                    ClassRealm pluginRealm;
                    MavenProject oldCurrentProject = session.getCurrentProject();
                    session.setCurrentProject(project);
                    try {
                        pluginRealm = buildPluginManager.getPluginRealm(session, pluginDescriptor);
                    } finally {
                        session.setCurrentProject(oldCurrentProject);
                    }
                    if (pluginRealm != null) {
                        ClassLoader origTCCL = Thread.currentThread().getContextClassLoader();
                        try {
                            Thread.currentThread().setContextClassLoader(pluginRealm);
                            runnable.run();
                        } finally {
                            Thread.currentThread().setContextClassLoader(origTCCL);
                        }
                    }
                }
            }
        } catch (PluginManagerException e) {
            throw newMavenExecutionException(e);
        } catch (PluginResolutionException e) {
            throw newMavenExecutionException(e);
        } catch (PluginDescriptorParsingException e) {
            throw newMavenExecutionException(e);
        } catch (InvalidPluginDescriptorException e) {
            throw newMavenExecutionException(e);
        }
    }

}

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 {/*ww  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  ww w. j a v  a  2s .c  o 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.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();
    }
}

From source file:org.jolokia.docker.maven.service.MojoExecutionService.java

License:Apache License

private PluginDescriptor getPluginDescriptor(MavenProject project, Plugin plugin)
        throws PluginResolutionException, PluginDescriptorParsingException, InvalidPluginDescriptorException,
        PluginNotFoundException {/*from   w w  w  .  ja  v a  2s  .co m*/

    RepositorySystemSession repositorySession = session.getRepositorySession();

    return pluginManager.loadPlugin(plugin, project.getRemotePluginRepositories(), repositorySession);

}

From source file:org.jvnet.hudson.plugins.mavendepsupdate.MavenUpdateChecker.java

License:Apache License

public MavenUpdateCheckerResult call() throws IOException {
    ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();

    try {/*  w w w. j a v a2s .  c o m*/

        PluginFirstClassLoader pluginFirstClassLoader = getPluginFirstClassLoader();
        Thread.currentThread().setContextClassLoader(pluginFirstClassLoader);
        String classLoaderName = getClass().getClassLoader().toString();

        mavenUpdateCheckerResult.addDebugLine(classLoaderName);
        PlexusContainer plexusContainer = getPlexusContainer(pluginFirstClassLoader);

        Thread.currentThread().setContextClassLoader(plexusContainer.getContainerRealm());
        mavenUpdateCheckerResult.addDebugLine("ok for new DefaultPlexusContainer( conf ) ");
        mavenUpdateCheckerResult.addDebugLine("Thread.currentThread().getContextClassLoader() "
                + Thread.currentThread().getContextClassLoader());
        mavenUpdateCheckerResult.addDebugLine("Thread.currentThread().getContextClassLoader().parent "
                + (Thread.currentThread().getContextClassLoader().getParent() == null ? "null"
                        : Thread.currentThread().getContextClassLoader().getParent().toString()));
        mavenUpdateCheckerResult.addDebugLine(
                "classLoader  urls " + Arrays.asList(plexusContainer.getContainerRealm().getURLs()));
        ProjectBuilder projectBuilder = plexusContainer.lookup(ProjectBuilder.class);

        // FIXME load userProperties from the job
        Properties userProperties = this.userProperties == null ? new Properties() : this.userProperties;

        userProperties.put("java.home", jdkHome);

        ProjectBuildingRequest projectBuildingRequest = getProjectBuildingRequest(userProperties,
                plexusContainer);

        // check plugins too
        projectBuildingRequest.setProcessPlugins(true);
        // force snapshots update

        projectBuildingRequest.setResolveDependencies(true);

        List<ProjectBuildingResult> projectBuildingResults = projectBuilder
                .build(Arrays.asList(new File(rootPomPath)), true, projectBuildingRequest);

        ProjectDependenciesResolver projectDependenciesResolver = plexusContainer
                .lookup(ProjectDependenciesResolver.class);

        List<MavenProject> mavenProjects = new ArrayList<MavenProject>(projectBuildingResults.size());

        for (ProjectBuildingResult projectBuildingResult : projectBuildingResults) {
            mavenProjects.add(projectBuildingResult.getProject());
        }

        ProjectSorter projectSorter = new ProjectSorter(mavenProjects);

        // use the projects reactor model as a workspaceReader
        // if reactors are not available remotely dependencies resolve will failed
        // due to artifact not found

        final Map<String, MavenProject> projectMap = getProjectMap(mavenProjects);
        WorkspaceReader reactorRepository = new ReactorReader(projectMap);

        MavenRepositorySystemSession mavenRepositorySystemSession = (MavenRepositorySystemSession) projectBuildingRequest
                .getRepositorySession();

        mavenRepositorySystemSession.setUpdatePolicy(RepositoryPolicy.UPDATE_POLICY_ALWAYS);

        mavenRepositorySystemSession.setWorkspaceReader(reactorRepository);

        MavenPluginManager mavenPluginManager = plexusContainer.lookup(MavenPluginManager.class);

        for (MavenProject mavenProject : projectSorter.getSortedProjects()) {
            LOGGER.info("resolve dependencies for project " + mavenProject.getId());

            DefaultDependencyResolutionRequest dependencyResolutionRequest = new DefaultDependencyResolutionRequest(
                    mavenProject, mavenRepositorySystemSession);

            try {
                DependencyResolutionResult dependencyResolutionResult = projectDependenciesResolver
                        .resolve(dependencyResolutionRequest);
            } catch (DependencyResolutionException e) {
                mavenUpdateCheckerResult.addDebugLine(e.getMessage());
                StringWriter sw = new StringWriter();
                PrintWriter pw = new PrintWriter(sw);
                e.printStackTrace(pw);
                mavenUpdateCheckerResult.addDebugLine("skip:" + sw.toString());
            }
            if (checkPlugins) {
                for (Plugin plugin : mavenProject.getBuildPlugins()) {
                    // only for SNAPSHOT
                    if (StringUtils.endsWith(plugin.getVersion(), "SNAPSHOT")) {
                        mavenPluginManager.getPluginDescriptor(plugin,
                                mavenProject.getRemotePluginRepositories(), mavenRepositorySystemSession);
                    }
                }
            }

        }
        SnapshotTransfertListener snapshotTransfertListener = (SnapshotTransfertListener) projectBuildingRequest
                .getRepositorySession().getTransferListener();

        if (snapshotTransfertListener.isSnapshotDownloaded()) {
            mavenUpdateCheckerResult.addFilesUpdatedNames(snapshotTransfertListener.getSnapshots());
        }

    } catch (Exception e) {
        mavenUpdateCheckerResult.addDebugLine(e.getMessage());
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        mavenUpdateCheckerResult.addDebugLine("skip:" + sw.toString());
    } finally {
        Thread.currentThread().setContextClassLoader(originalClassLoader);
    }
    return mavenUpdateCheckerResult;
}

From source file:org.wildfly.swarm.plugin.maven.MultiStartMojo.java

License:Apache License

@SuppressWarnings("unchecked")
protected void startProject(MavenProject project, String executionId, XmlPlexusConfiguration process)
        throws InvalidPluginDescriptorException, PluginResolutionException, PluginDescriptorParsingException,
        PluginNotFoundException, PluginConfigurationException, MojoFailureException, MojoExecutionException,
        PluginManagerException {/*w w  w. j  a v  a2 s  .c o  m*/
    Plugin plugin = this.project.getPlugin("org.wildfly.swarm:wildfly-swarm-plugin");

    Xpp3Dom config = getConfiguration(project, executionId);
    Xpp3Dom processConfig = getProcessConfiguration(process);

    Xpp3Dom globalConfig = getGlobalConfig();
    Xpp3Dom mergedConfig = Xpp3DomUtils.mergeXpp3Dom(processConfig, config);
    mergedConfig = Xpp3DomUtils.mergeXpp3Dom(mergedConfig, globalConfig);

    PluginDescriptor pluginDescriptor = this.pluginManager.loadPlugin(plugin,
            project.getRemotePluginRepositories(), this.repositorySystemSession);
    MojoDescriptor mojoDescriptor = pluginDescriptor.getMojo("start");
    MojoExecution mojoExecution = new MojoExecution(mojoDescriptor, mergedConfig);
    mavenSession.setCurrentProject(project);
    this.pluginManager.executeMojo(mavenSession, mojoExecution);

    List<SwarmProcess> launched = (List<SwarmProcess>) mavenSession.getPluginContext(pluginDescriptor, project)
            .get(SWARM_PROCESS);

    List<SwarmProcess> procs = (List<SwarmProcess>) getPluginContext().get(SWARM_PROCESS);

    if (procs == null) {
        procs = new ArrayList<>();
        getPluginContext().put(SWARM_PROCESS, procs);
    }

    procs.addAll(launched);

    mavenSession.setCurrentProject(this.project);
}