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.codehaus.plexus.logging.Logger;
35 import org.eclipse.aether.RepositorySystemSession;
36 import org.eclipse.aether.graph.DependencyFilter;
37 import org.eclipse.aether.repository.RemoteRepository;
38 import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
39
40
41
42
43 @Component( role = MavenPluginManagerHelper.class )
44 public class DefaultMavenPluginManagerHelper
45 implements MavenPluginManagerHelper
46 {
47 @Requirement
48 private Logger logger;
49
50 @Requirement
51 protected MavenPluginManager mavenPluginManager;
52
53 private DependencyFilter createExclusionsDependencyFilter( List<String> artifactIdsList )
54 {
55 return new ExclusionsDependencyFilter( artifactIdsList );
56 }
57
58
59 @Override
60 public PluginDescriptor getPluginDescriptor( Plugin plugin, MavenSession session )
61 throws PluginResolutionException, PluginDescriptorParsingException, InvalidPluginDescriptorException
62 {
63 RepositorySystemSession repositorySystemSession = session.getRepositorySession();
64 List<RemoteRepository> remoteRepositories = session.getCurrentProject().getRemotePluginRepositories();
65
66 return mavenPluginManager.getPluginDescriptor( plugin, remoteRepositories, repositorySystemSession );
67 }
68
69
70 @Override
71 public void setupPluginRealm( PluginDescriptor pluginDescriptor, MavenSession session, ClassLoader parent,
72 List<String> imports, List<String> excludeArtifactIds )
73 throws PluginResolutionException, PluginContainerException
74 {
75 mavenPluginManager.setupPluginRealm(
76 pluginDescriptor, session, parent, imports, createExclusionsDependencyFilter( excludeArtifactIds ) );
77 }
78 }