Skip to content

Commit 4407e98

Browse files
authored
[MNG-8189] Warn about plugin versions not pinned for all lifecycles (#1846)
Also move the default location into DefaultLifecycleRegistry as the DefaultLifecyclePluginAnalizer is not used anymore
1 parent 9f2ef34 commit 4407e98

File tree

7 files changed

+27
-17
lines changed

7 files changed

+27
-17
lines changed

Diff for: maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLifecycleRegistry.java

+9
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
import java.util.stream.Stream;
4040

4141
import org.apache.maven.api.Lifecycle;
42+
import org.apache.maven.api.model.InputLocation;
43+
import org.apache.maven.api.model.InputSource;
4244
import org.apache.maven.api.model.Plugin;
4345
import org.apache.maven.api.services.LifecycleRegistry;
4446
import org.apache.maven.api.services.LookupException;
@@ -80,6 +82,13 @@ public class DefaultLifecycleRegistry implements LifecycleRegistry {
8082

8183
private static final String MAVEN_PLUGINS = "org.apache.maven.plugins:";
8284

85+
public static final String DEFAULT_LIFECYCLE_MODELID = "org.apache.maven:maven-core:"
86+
+ DefaultLifecycleRegistry.class.getPackage().getImplementationVersion()
87+
+ ":default-lifecycle-bindings";
88+
89+
public static final InputLocation DEFAULT_LIFECYCLE_INPUT_LOCATION =
90+
new InputLocation(new InputSource(DEFAULT_LIFECYCLE_MODELID, null));
91+
8392
private final List<LifecycleProvider> providers;
8493

8594
public DefaultLifecycleRegistry() {

Diff for: maven-core/src/main/java/org/apache/maven/internal/impl/DefaultPackagingRegistry.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,13 @@
3535
import org.apache.maven.api.Type;
3636
import org.apache.maven.api.model.Dependency;
3737
import org.apache.maven.api.model.InputLocation;
38-
import org.apache.maven.api.model.InputSource;
3938
import org.apache.maven.api.model.Plugin;
4039
import org.apache.maven.api.model.PluginContainer;
4140
import org.apache.maven.api.model.PluginExecution;
4241
import org.apache.maven.api.services.Lookup;
4342
import org.apache.maven.api.services.PackagingRegistry;
4443
import org.apache.maven.api.services.TypeRegistry;
4544
import org.apache.maven.api.spi.PackagingProvider;
46-
import org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer;
4745
import org.apache.maven.lifecycle.mapping.LifecycleMapping;
4846
import org.apache.maven.lifecycle.mapping.LifecycleMojo;
4947
import org.apache.maven.lifecycle.mapping.LifecyclePhase;
@@ -105,9 +103,7 @@ private Map<String, PluginContainer> getPlugins(LifecycleMapping lifecycleMappin
105103
}
106104

107105
static void parseLifecyclePhaseDefinitions(Map<String, Plugin> plugins, String phase, LifecyclePhase goals) {
108-
InputSource inputSource =
109-
new InputSource(DefaultLifecyclePluginAnalyzer.DEFAULTLIFECYCLEBINDINGS_MODELID, null);
110-
InputLocation location = new InputLocation(-1, -1, inputSource, 0);
106+
InputLocation location = DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION;
111107

112108
List<LifecycleMojo> mojos = goals.getMojos();
113109
if (mojos != null) {

Diff for: maven-core/src/main/java/org/apache/maven/internal/impl/Lifecycles.java

+8
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,15 @@ static Plugin plugin(String coords, String phase) {
7676
.id("default-" + c[3])
7777
.phase(phase)
7878
.goals(Collections.singletonList(c[3]))
79+
.location("", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION)
80+
.location("id", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION)
81+
.location("phase", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION)
82+
.location("goals", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION)
7983
.build()))
84+
.location("", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION)
85+
.location("groupId", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION)
86+
.location("artifactId", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION)
87+
.location("version", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION)
8088
.build();
8189
}
8290

Diff for: maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecyclePluginAnalyzer.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
import org.apache.maven.api.services.Lookup;
3232
import org.apache.maven.api.xml.XmlNode;
33+
import org.apache.maven.internal.impl.DefaultLifecycleRegistry;
3334
import org.apache.maven.lifecycle.DefaultLifecycles;
3435
import org.apache.maven.lifecycle.LifeCyclePluginAnalyzer;
3536
import org.apache.maven.lifecycle.Lifecycle;
@@ -54,9 +55,6 @@
5455
@Singleton
5556
@Named
5657
public class DefaultLifecyclePluginAnalyzer implements LifeCyclePluginAnalyzer {
57-
public static final String DEFAULTLIFECYCLEBINDINGS_MODELID = "org.apache.maven:maven-core:"
58-
+ DefaultLifecyclePluginAnalyzer.class.getPackage().getImplementationVersion()
59-
+ ":default-lifecycle-bindings";
6058

6159
private final Logger logger = LoggerFactory.getLogger(getClass());
6260

@@ -131,7 +129,7 @@ private LifecycleMapping lookupLifecycleMapping(final String packaging) {
131129

132130
private void parseLifecyclePhaseDefinitions(Map<Plugin, Plugin> plugins, String phase, LifecyclePhase goals) {
133131
InputSource inputSource = new InputSource();
134-
inputSource.setModelId(DEFAULTLIFECYCLEBINDINGS_MODELID);
132+
inputSource.setModelId(DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_MODELID);
135133
InputLocation location = new InputLocation(-1, -1, inputSource);
136134
location.setLocation(0, location);
137135

Diff for: maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/BuilderCommon.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,18 @@
2424

2525
import java.util.List;
2626
import java.util.Set;
27-
import java.util.stream.Collectors;
2827

2928
import org.apache.maven.artifact.Artifact;
3029
import org.apache.maven.execution.BuildFailure;
3130
import org.apache.maven.execution.ExecutionEvent;
3231
import org.apache.maven.execution.MavenExecutionRequest;
3332
import org.apache.maven.execution.MavenSession;
3433
import org.apache.maven.internal.MultilineMessageHelper;
34+
import org.apache.maven.internal.impl.DefaultLifecycleRegistry;
3535
import org.apache.maven.lifecycle.LifecycleExecutionException;
3636
import org.apache.maven.lifecycle.LifecycleNotFoundException;
3737
import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException;
3838
import org.apache.maven.lifecycle.MavenExecutionPlan;
39-
import org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer;
4039
import org.apache.maven.lifecycle.internal.ExecutionEventCatapult;
4140
import org.apache.maven.lifecycle.internal.LifecycleDebugLogger;
4241
import org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator;
@@ -139,7 +138,7 @@ public MavenExecutionPlan resolveBuildPlan(
139138
}
140139
}
141140

142-
final String defaulModelId = DefaultLifecyclePluginAnalyzer.DEFAULTLIFECYCLEBINDINGS_MODELID;
141+
final String defaulModelId = DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_MODELID;
143142

144143
List<String> unversionedPlugins = executionPlan.getMojoExecutions().stream()
145144
.map(MojoExecution::getPlugin)
@@ -149,7 +148,7 @@ public MavenExecutionPlan resolveBuildPlan(
149148
p.getLocation("version").getSource().getModelId()))
150149
.distinct()
151150
.map(Plugin::getArtifactId) // managed by us, groupId is always o.a.m.plugins
152-
.collect(Collectors.toList());
151+
.toList();
153152

154153
if (!unversionedPlugins.isEmpty()) {
155154
logger.warn("Version not locked for default bindings plugins " + unversionedPlugins

Diff for: maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanExecutor.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import org.apache.maven.execution.ProjectExecutionEvent;
5454
import org.apache.maven.execution.ProjectExecutionListener;
5555
import org.apache.maven.internal.MultilineMessageHelper;
56+
import org.apache.maven.internal.impl.DefaultLifecycleRegistry;
5657
import org.apache.maven.internal.impl.util.PhasingExecutor;
5758
import org.apache.maven.internal.transformation.ConsumerPomArtifactTransformer;
5859
import org.apache.maven.internal.xml.XmlNodeImpl;
@@ -62,7 +63,6 @@
6263
import org.apache.maven.lifecycle.MojoExecutionConfigurator;
6364
import org.apache.maven.lifecycle.internal.BuildThreadFactory;
6465
import org.apache.maven.lifecycle.internal.CompoundProjectExecutionListener;
65-
import org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer;
6666
import org.apache.maven.lifecycle.internal.ExecutionEventCatapult;
6767
import org.apache.maven.lifecycle.internal.GoalTask;
6868
import org.apache.maven.lifecycle.internal.LifecycleTask;
@@ -238,7 +238,7 @@ public BuildPlan buildInitialPlan(List<TaskSegment> taskSegments) {
238238
}
239239

240240
private void checkUnboundVersions(BuildPlan buildPlan) {
241-
String defaulModelId = DefaultLifecyclePluginAnalyzer.DEFAULTLIFECYCLEBINDINGS_MODELID;
241+
String defaulModelId = DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_MODELID;
242242
List<String> unversionedPlugins = buildPlan
243243
.allSteps()
244244
.flatMap(step -> step.mojos.values().stream().flatMap(map -> map.values().stream()))

Diff for: maven-core/src/test/java/org/apache/maven/lifecycle/internal/stub/LifecycleExecutionPlanCalculatorStub.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
import java.util.Set;
2626

2727
import org.apache.maven.execution.MavenSession;
28+
import org.apache.maven.internal.impl.DefaultLifecycleRegistry;
2829
import org.apache.maven.internal.xml.XmlNodeImpl;
2930
import org.apache.maven.lifecycle.DefaultLifecycles;
3031
import org.apache.maven.lifecycle.LifecycleNotFoundException;
3132
import org.apache.maven.lifecycle.LifecyclePhaseNotFoundException;
3233
import org.apache.maven.lifecycle.MavenExecutionPlan;
33-
import org.apache.maven.lifecycle.internal.DefaultLifecyclePluginAnalyzer;
3434
import org.apache.maven.lifecycle.internal.ExecutionPlanItem;
3535
import org.apache.maven.lifecycle.internal.LifecycleExecutionPlanCalculator;
3636
import org.apache.maven.lifecycle.internal.ProjectBuildList;
@@ -210,7 +210,7 @@ private static DefaultLifecycles getDefaultLifecycles() {
210210

211211
private static MojoExecution createMojoExecution(String goal, String executionId, MojoDescriptor mojoDescriptor) {
212212
InputSource defaultBindings = new InputSource();
213-
defaultBindings.setModelId(DefaultLifecyclePluginAnalyzer.DEFAULTLIFECYCLEBINDINGS_MODELID);
213+
defaultBindings.setModelId(DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_MODELID);
214214

215215
final Plugin plugin = mojoDescriptor.getPluginDescriptor().getPlugin();
216216
plugin.setLocation("version", new InputLocation(12, 34, defaultBindings));

0 commit comments

Comments
 (0)