1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.internal;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24
25 import org.apache.maven.plugin.PluginValidationManager;
26 import org.eclipse.aether.RepositorySystemSession;
27 import org.eclipse.aether.artifact.Artifact;
28 import org.eclipse.aether.resolution.ArtifactDescriptorResult;
29
30
31
32
33
34
35 @Singleton
36 @Named
37 class PlexusContainerDefaultDependenciesValidator extends AbstractMavenPluginDependenciesValidator {
38
39 @Inject
40 PlexusContainerDefaultDependenciesValidator(PluginValidationManager pluginValidationManager) {
41 super(pluginValidationManager);
42 }
43
44 protected void doValidate(
45 RepositorySystemSession session,
46 Artifact pluginArtifact,
47 ArtifactDescriptorResult artifactDescriptorResult) {
48 boolean pcdPresent = artifactDescriptorResult.getDependencies().stream()
49 .filter(d -> "org.codehaus.plexus".equals(d.getArtifact().getGroupId()))
50 .anyMatch(d -> "plexus-container-default".equals(d.getArtifact().getArtifactId()));
51
52 if (pcdPresent) {
53 pluginValidationManager.reportPluginValidationIssue(
54 PluginValidationManager.IssueLocality.EXTERNAL,
55 session,
56 pluginArtifact,
57 "Plugin depends on plexus-container-default, which is EOL");
58 }
59 }
60 }