List of usage examples for org.apache.maven.project MavenProject getRemotePluginRepositories
public List<RemoteRepository> getRemotePluginRepositories()
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); }