1 package org.apache.maven.reporting.exec;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.List;
23
24 import org.apache.maven.execution.MavenSession;
25 import org.apache.maven.model.Plugin;
26 import org.apache.maven.plugin.InvalidPluginDescriptorException;
27 import org.apache.maven.plugin.MavenPluginManager;
28 import org.apache.maven.plugin.PluginContainerException;
29 import org.apache.maven.plugin.PluginDescriptorParsingException;
30 import org.apache.maven.plugin.PluginResolutionException;
31 import org.apache.maven.plugin.descriptor.PluginDescriptor;
32 import org.codehaus.plexus.component.annotations.Component;
33 import org.codehaus.plexus.component.annotations.Requirement;
34 import org.eclipse.aether.RepositorySystemSession;
35 import org.eclipse.aether.graph.DependencyFilter;
36 import org.eclipse.aether.repository.RemoteRepository;
37 import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
38
39
40
41
42 @Component( role = MavenPluginManagerHelper.class )
43 public class DefaultMavenPluginManagerHelper
44 implements MavenPluginManagerHelper
45 {
46 @Requirement
47 protected MavenPluginManager mavenPluginManager;
48
49 private DependencyFilter createExclusionsDependencyFilter( List<String> artifactIdsList )
50 {
51 return new ExclusionsDependencyFilter( artifactIdsList );
52 }
53
54
55 @Override
56 public PluginDescriptor getPluginDescriptor( Plugin plugin, MavenSession session )
57 throws PluginResolutionException, PluginDescriptorParsingException, InvalidPluginDescriptorException
58 {
59 RepositorySystemSession repositorySystemSession = session.getRepositorySession();
60 List<RemoteRepository> remoteRepositories = session.getCurrentProject().getRemotePluginRepositories();
61
62 return mavenPluginManager.getPluginDescriptor( plugin, remoteRepositories, repositorySystemSession );
63 }
64
65
66 @Override
67 public void setupPluginRealm( PluginDescriptor pluginDescriptor, MavenSession session, ClassLoader parent,
68 List<String> imports, List<String> excludeArtifactIds )
69 throws PluginResolutionException, PluginContainerException
70 {
71 mavenPluginManager.setupPluginRealm(
72 pluginDescriptor, session, parent, imports, createExclusionsDependencyFilter( excludeArtifactIds ) );
73 }
74 }