diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/JavaToolchain.java b/api/maven-api-core/src/main/java/org/apache/maven/api/JavaToolchain.java index a4addddac79a..0ea8027fd2d6 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/JavaToolchain.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/JavaToolchain.java @@ -19,6 +19,7 @@ package org.apache.maven.api; import org.apache.maven.api.annotations.Experimental; +import org.apache.maven.api.annotations.Nonnull; /** * Represents a Java toolchain in the Maven build system. @@ -41,5 +42,6 @@ @Experimental public interface JavaToolchain extends Toolchain { + @Nonnull String getJavaHome(); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/Lifecycle.java b/api/maven-api-core/src/main/java/org/apache/maven/api/Lifecycle.java index 37b3fba04311..dd1e2ccf7ab5 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/Lifecycle.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Lifecycle.java @@ -62,6 +62,7 @@ public interface Lifecycle extends ExtensibleEnum { * @return the unique identifier for this lifecycle */ @Override + @Nonnull String id(); /** @@ -69,6 +70,7 @@ public interface Lifecycle extends ExtensibleEnum { * * @return the collection of top-level phases in this lifecycle */ + @Nonnull Collection phases(); /** @@ -78,6 +80,7 @@ public interface Lifecycle extends ExtensibleEnum { * * @return the collection of phases in Maven 3 compatible ordering */ + @Nonnull default Collection v3phases() { return phases(); } @@ -87,6 +90,7 @@ default Collection v3phases() { * * @return a stream of all phases in this lifecycle, including nested phases */ + @Nonnull default Stream allPhases() { return phases().stream().flatMap(Phase::allPhases); } @@ -97,11 +101,12 @@ default Stream allPhases() { * * @return the collection of phase aliases */ + @Nonnull Collection aliases(); /** * A phase in the lifecycle. - * + *

* A phase is identified by its name. It also contains a list of plugins bound to that phase, * a list of {@link Link links}, and a list of sub-phases. This forms a tree of phases. */ @@ -167,7 +172,9 @@ interface Phase { * @return a stream of all phases */ @Nonnull - Stream allPhases(); + default Stream allPhases() { + return Stream.concat(Stream.of(this), phases().stream().flatMap(Lifecycle.Phase::allPhases)); + } } /** @@ -180,6 +187,7 @@ interface Alias { * * @return the Maven 3 phase name */ + @Nonnull String v3Phase(); /** @@ -187,6 +195,7 @@ interface Alias { * * @return the Maven 4 phase name */ + @Nonnull String v4Phase(); } @@ -206,6 +215,7 @@ enum Kind { * * @return the link kind */ + @Nonnull Kind kind(); /** @@ -213,6 +223,7 @@ enum Kind { * * @return the phase pointer */ + @Nonnull Pointer pointer(); } @@ -228,6 +239,7 @@ enum Type { * * @return the phase name */ + @Nonnull String phase(); /** @@ -235,6 +247,7 @@ enum Type { * * @return the pointer type */ + @Nonnull Type type(); } @@ -244,6 +257,7 @@ interface PhasePointer extends Pointer { * * @return the PROJECT pointer type */ + @Nonnull default Type type() { return Type.PROJECT; } @@ -255,6 +269,7 @@ interface DependenciesPointer extends Pointer { * * @return the dependency scope, or "all" if not specified */ + @Nonnull String scope(); // default: all /** @@ -262,6 +277,7 @@ interface DependenciesPointer extends Pointer { * * @return the DEPENDENCIES pointer type */ + @Nonnull default Type type() { return Type.DEPENDENCIES; } @@ -273,6 +289,7 @@ interface ChildrenPointer extends Pointer { * * @return the CHILDREN pointer type */ + @Nonnull default Type type() { return Type.CHILDREN; } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/Toolchain.java b/api/maven-api-core/src/main/java/org/apache/maven/api/Toolchain.java index dcbe72ea4ade..91f835d9bdf2 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/Toolchain.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/Toolchain.java @@ -21,6 +21,8 @@ import java.util.Map; import org.apache.maven.api.annotations.Experimental; +import org.apache.maven.api.annotations.Nonnull; +import org.apache.maven.api.annotations.Nullable; import org.apache.maven.api.toolchain.ToolchainModel; /** @@ -69,6 +71,7 @@ public interface Toolchain { * * @return the toolchain type */ + @Nonnull String getType(); /** @@ -76,6 +79,7 @@ public interface Toolchain { * * @return the toolchain model */ + @Nonnull ToolchainModel getModel(); /** @@ -84,7 +88,8 @@ public interface Toolchain { * @param toolName the tool platform independent tool name * @return file representing the tool executable, or null if the tool cannot be found */ - String findTool(String toolName); + @Nullable + String findTool(@Nonnull String toolName); /** * Let the toolchain decide if it matches requirements defined @@ -93,5 +98,5 @@ public interface Toolchain { * @param requirements key value pair, may not be {@code null} * @return {@code true} if the requirements match, otherwise {@code false} */ - boolean matchesRequirements(Map requirements); + boolean matchesRequirements(@Nonnull Map requirements); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/LifecycleProvider.java b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/LifecycleProvider.java index 1f0d61b2c413..43d6a4b153bb 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/LifecycleProvider.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/LifecycleProvider.java @@ -22,6 +22,7 @@ import org.apache.maven.api.annotations.Consumer; import org.apache.maven.api.annotations.Experimental; +import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.plugin.descriptor.lifecycle.Lifecycle; /** @@ -37,5 +38,6 @@ @Consumer public interface LifecycleProvider { + @Nonnull List getLifecycles(); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/Log.java b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/Log.java index f2968295e456..ecc1af90c089 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/Log.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/plugin/Log.java @@ -21,6 +21,8 @@ import java.util.function.Supplier; import org.apache.maven.api.annotations.Experimental; +import org.apache.maven.api.annotations.Nonnull; +import org.apache.maven.api.annotations.Nullable; import org.apache.maven.api.annotations.Provider; /** @@ -46,7 +48,7 @@ public interface Log { * * @param content the message to log */ - void debug(CharSequence content); + void debug(@Nullable CharSequence content); /** * Sends a message (and accompanying exception) to the user in the debug error level. @@ -55,7 +57,7 @@ public interface Log { * @param content the message to log * @param error the error that caused this log */ - void debug(CharSequence content, Throwable error); + void debug(@Nullable CharSequence content, @Nullable Throwable error); /** * Sends an exception to the user in the debug error level. @@ -63,11 +65,11 @@ public interface Log { * * @param error the error that caused this log */ - void debug(Throwable error); + void debug(@Nullable Throwable error); - void debug(Supplier content); + void debug(@Nonnull Supplier content); - void debug(Supplier content, Throwable error); + void debug(@Nonnull Supplier content, @Nullable Throwable error); /** * {@return true if the info error level is enabled} @@ -79,7 +81,7 @@ public interface Log { * * @param content the message to log */ - void info(CharSequence content); + void info(@Nullable CharSequence content); /** * Sends a message (and accompanying exception) to the user in the info error level. @@ -88,7 +90,7 @@ public interface Log { * @param content the message to log * @param error the error that caused this log */ - void info(CharSequence content, Throwable error); + void info(@Nullable CharSequence content, @Nullable Throwable error); /** * Sends an exception to the user in the info error level. @@ -96,11 +98,11 @@ public interface Log { * * @param error the error that caused this log */ - void info(Throwable error); + void info(@Nullable Throwable error); - void info(Supplier content); + void info(@Nonnull Supplier content); - void info(Supplier content, Throwable error); + void info(@Nonnull Supplier content, @Nullable Throwable error); /** * {@return true if the warn error level is enabled} @@ -112,7 +114,7 @@ public interface Log { * * @param content the message to log */ - void warn(CharSequence content); + void warn(@Nullable CharSequence content); /** * Sends a message (and accompanying exception) to the user in the warn error level. @@ -121,7 +123,7 @@ public interface Log { * @param content the message to log * @param error the error that caused this log */ - void warn(CharSequence content, Throwable error); + void warn(@Nullable CharSequence content, @Nullable Throwable error); /** * Sends an exception to the user in the warn error level. @@ -129,11 +131,11 @@ public interface Log { * * @param error the error that caused this log */ - void warn(Throwable error); + void warn(@Nullable Throwable error); - void warn(Supplier content); + void warn(@Nonnull Supplier content); - void warn(Supplier content, Throwable error); + void warn(@Nonnull Supplier content, @Nullable Throwable error); /** * {@return true if the error error level is enabled} @@ -145,7 +147,7 @@ public interface Log { * * @param content the message to log */ - void error(CharSequence content); + void error(@Nullable CharSequence content); /** * Sends a message (and accompanying exception) to the user in the error error level. @@ -154,7 +156,7 @@ public interface Log { * @param content the message to log * @param error the error that caused this log */ - void error(CharSequence content, Throwable error); + void error(@Nullable CharSequence content, @Nullable Throwable error); /** * Sends an exception to the user in the error error level. @@ -162,9 +164,9 @@ public interface Log { * * @param error the error that caused this log */ - void error(Throwable error); + void error(@Nullable Throwable error); - void error(Supplier content); + void error(@Nonnull Supplier content); - void error(Supplier content, Throwable error); + void error(@Nonnull Supplier content, @Nullable Throwable error); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactInstaller.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactInstaller.java index f17daa76acee..8ed64944803b 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactInstaller.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactInstaller.java @@ -19,7 +19,7 @@ package org.apache.maven.api.services; import java.util.Collection; -import java.util.Collections; +import java.util.List; import org.apache.maven.api.ProducedArtifact; import org.apache.maven.api.Service; @@ -51,7 +51,7 @@ public interface ArtifactInstaller extends Service { * {@code artifact} is {@code null} */ default void install(Session session, ProducedArtifact artifact) { - install(session, Collections.singletonList(artifact)); + install(session, List.of(artifact)); } /** diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactInstallerRequest.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactInstallerRequest.java index 6f5a57e0ea2b..d708b3c73741 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactInstallerRequest.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactInstallerRequest.java @@ -19,7 +19,6 @@ package org.apache.maven.api.services; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -62,7 +61,7 @@ static ArtifactInstallerRequest build(Session session, Collection artifacts = Collections.emptyList(); + Collection artifacts = List.of(); ArtifactInstallerRequestBuilder() {} @@ -80,7 +79,7 @@ public ArtifactInstallerRequestBuilder trace(RequestTrace trace) { @Nonnull public ArtifactInstallerRequestBuilder artifacts(@Nullable Collection artifacts) { - this.artifacts = artifacts != null ? artifacts : Collections.emptyList(); + this.artifacts = artifacts != null ? artifacts : List.of(); return this; } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolver.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolver.java index c4c413c5470c..f9d55199a0e5 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolver.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolver.java @@ -26,6 +26,8 @@ import org.apache.maven.api.Service; import org.apache.maven.api.Session; import org.apache.maven.api.annotations.Experimental; +import org.apache.maven.api.annotations.Nonnull; +import org.apache.maven.api.annotations.Nullable; /** * Resolves the artifact, i.e. download the file when required and attach it to the artifact @@ -42,7 +44,8 @@ public interface ArtifactResolver extends Service { * @throws IllegalArgumentException in case of parameter {@code buildingRequest} is {@code null} or * parameter {@code mavenArtifact} is {@code null} or invalid */ - ArtifactResolverResult resolve(ArtifactResolverRequest request); + @Nonnull + ArtifactResolverResult resolve(@Nonnull ArtifactResolverRequest request); /** * Resolves several artifacts from their coordinates. @@ -54,7 +57,9 @@ public interface ArtifactResolver extends Service { * @throws IllegalArgumentException in case of parameter {@code buildingRequest} is {@code null} or * parameter {@code coordinates} is {@code null} or invalid */ - default ArtifactResolverResult resolve(Session session, Collection coordinates) { + @Nonnull + default ArtifactResolverResult resolve( + @Nonnull Session session, @Nonnull Collection coordinates) { return resolve(ArtifactResolverRequest.build(session, coordinates)); } @@ -69,10 +74,11 @@ default ArtifactResolverResult resolve(Session session, Collection coordinates, - List repositories) { + @Nonnull Session session, + @Nonnull Collection coordinates, + @Nullable List repositories) { return resolve(ArtifactResolverRequest.build(session, coordinates, repositories)); } } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolverResult.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolverResult.java index 5f76c2c7bffa..1a039537d17e 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolverResult.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ArtifactResolverResult.java @@ -88,6 +88,7 @@ interface ResultItem { * * @return The {@link ArtifactCoordinates} of the artifact. */ + @Nonnull ArtifactCoordinates getCoordinates(); /** @@ -95,6 +96,7 @@ interface ResultItem { * * @return The {@link DownloadedArtifact} instance. */ + @Nonnull DownloadedArtifact getArtifact(); /** @@ -102,6 +104,7 @@ interface ResultItem { * * @return A {@link Map} where keys are {@link Repository} instances and values are {@link Exception} instances. */ + @Nonnull Map> getExceptions(); /** @@ -109,6 +112,7 @@ interface ResultItem { * * @return The {@link Repository} instance. */ + @Nullable Repository getRepository(); /** @@ -116,6 +120,7 @@ interface ResultItem { * * @return The {@link Path} to the artifact. */ + @Nonnull Path getPath(); /** diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyCoordinatesFactoryRequest.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyCoordinatesFactoryRequest.java index 579e9a448c31..069b63d00adc 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyCoordinatesFactoryRequest.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyCoordinatesFactoryRequest.java @@ -20,7 +20,7 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; +import java.util.List; import java.util.Objects; import org.apache.maven.api.ArtifactCoordinates; @@ -117,7 +117,7 @@ class DependencyCoordinatesFactoryRequestBuilder { private String coordinateString; private String scope; private boolean optional; - private Collection exclusions = Collections.emptyList(); + private Collection exclusions = List.of(); DependencyCoordinatesFactoryRequestBuilder() {} diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyResolver.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyResolver.java index 0473cce53708..1e64e200ddbb 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyResolver.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyResolver.java @@ -200,6 +200,7 @@ default DependencyResolverResult resolve( * @see #flatten(Session, Node, PathScope) * @see ArtifactResolver#resolve(ArtifactResolverRequest) */ - DependencyResolverResult resolve(DependencyResolverRequest request) + @Nonnull + DependencyResolverResult resolve(@Nonnull DependencyResolverRequest request) throws DependencyResolverException, ArtifactResolverException; } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyResolverRequest.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyResolverRequest.java index f419d7ff60a7..5a92f4f7a9f8 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyResolverRequest.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/DependencyResolverRequest.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -176,8 +175,8 @@ class DependencyResolverRequestBuilder { Project project; Artifact rootArtifact; DependencyCoordinates root; - List dependencies = Collections.emptyList(); - List managedDependencies = Collections.emptyList(); + List dependencies = List.of(); + List managedDependencies = List.of(); boolean verbose; PathScope pathScope; Predicate pathTypeFilter; @@ -246,7 +245,7 @@ public DependencyResolverRequestBuilder root(@Nonnull DependencyCoordinates root */ @Nonnull public DependencyResolverRequestBuilder dependencies(@Nullable List dependencies) { - this.dependencies = (dependencies != null) ? dependencies : Collections.emptyList(); + this.dependencies = (dependencies != null) ? dependencies : List.of(); return this; } @@ -278,7 +277,7 @@ public DependencyResolverRequestBuilder dependency(@Nullable DependencyCoordinat @Nonnull public DependencyResolverRequestBuilder managedDependencies( @Nullable List managedDependencies) { - this.managedDependencies = (managedDependencies != null) ? managedDependencies : Collections.emptyList(); + this.managedDependencies = (managedDependencies != null) ? managedDependencies : List.of(); return this; } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/LifecycleRegistry.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/LifecycleRegistry.java index 55efc16ebcd2..19dc44f77af6 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/LifecycleRegistry.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/LifecycleRegistry.java @@ -23,12 +23,15 @@ import java.util.stream.StreamSupport; import org.apache.maven.api.Lifecycle; +import org.apache.maven.api.annotations.Nonnull; public interface LifecycleRegistry extends ExtensibleEnumRegistry, Iterable { + @Nonnull default Stream stream() { return StreamSupport.stream(spliterator(), false); } - List computePhases(Lifecycle lifecycle); + @Nonnull + List computePhases(@Nonnull Lifecycle lifecycle); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilder.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilder.java index ae0d249c334c..14129603c84e 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilder.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/MessageBuilder.java @@ -154,8 +154,10 @@ default MessageBuilder style(String style, Object message) { return style(style).a(message).resetStyle(); } - MessageBuilder style(String style); + @Nonnull + MessageBuilder style(@Nonnull String style); + @Nonnull MessageBuilder resetStyle(); // @@ -262,6 +264,7 @@ default MessageBuilder format(String pattern, Object... args) { * @param length the new length * @return the current builder */ + @Nonnull MessageBuilder setLength(int length); /** diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelBuilder.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelBuilder.java index 808eeb00780c..6306120f14ac 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelBuilder.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelBuilder.java @@ -21,6 +21,7 @@ import java.util.List; import org.apache.maven.api.Service; +import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.model.Model; public interface ModelBuilder extends Service { @@ -31,12 +32,15 @@ public interface ModelBuilder extends Service { List VALID_MODEL_VERSIONS = List.of(MODEL_VERSION_4_0_0, MODEL_VERSION_4_1_0); + @Nonnull ModelBuilderSession newSession(); interface ModelBuilderSession { - ModelBuilderResult build(ModelBuilderRequest request) throws ModelBuilderException; + @Nonnull + ModelBuilderResult build(@Nonnull ModelBuilderRequest request) throws ModelBuilderException; } - Model buildRawModel(ModelBuilderRequest request) throws ModelBuilderException; + @Nonnull + Model buildRawModel(@Nonnull ModelBuilderRequest request) throws ModelBuilderException; } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelProblemCollector.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelProblemCollector.java index 66c1fcc31ead..06fb3790e63e 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelProblemCollector.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ModelProblemCollector.java @@ -18,6 +18,8 @@ */ package org.apache.maven.api.services; +import org.apache.maven.api.annotations.Nonnull; +import org.apache.maven.api.annotations.Nullable; import org.apache.maven.api.model.InputLocation; import org.apache.maven.api.model.Model; @@ -31,6 +33,7 @@ */ public interface ModelProblemCollector { + @Nonnull ProblemCollector getProblemCollector(); default boolean hasErrors() { @@ -66,15 +69,18 @@ default void add(ModelProblem problem) { getProblemCollector().reportProblem(problem); } + @Nonnull ModelBuilderException newModelBuilderException(); - void setSource(String location); + void setSource(@Nullable String location); - void setSource(Model model); + void setSource(@Nullable Model model); + @Nullable String getSource(); - void setRootModel(Model model); + void setRootModel(@Nullable Model model); + @Nullable Model getRootModel(); } diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProblemCollector.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProblemCollector.java index 6e5a9d29f646..bde65c7dff4b 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProblemCollector.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ProblemCollector.java @@ -73,7 +73,7 @@ default boolean hasFatalProblems() { * Returns {@code true} if there is at least one problem collected with severity equal or more severe than * passed in severity. */ - default boolean hasProblemsFor(BuilderProblem.Severity severity) { + default boolean hasProblemsFor(@Nonnull BuilderProblem.Severity severity) { requireNonNull(severity, "severity"); for (BuilderProblem.Severity s : BuilderProblem.Severity.values()) { if (s.ordinal() <= severity.ordinal() && problemsReportedFor(s) > 0) { @@ -96,7 +96,7 @@ default int totalProblemsReported() { * @param severities the severity levels to count problems for * @return the total count of problems for the specified severities */ - int problemsReportedFor(BuilderProblem.Severity... severities); + int problemsReportedFor(@Nonnull BuilderProblem.Severity... severities); /** * Returns {@code true} if reported problem count exceeded allowed count, and issues were lost. When this @@ -114,7 +114,7 @@ default int totalProblemsReported() { * @param problem the problem to report * @return {@code true} if passed problem is preserved by this call. */ - boolean reportProblem(P problem); + boolean reportProblem(@Nonnull P problem); /** * Returns all reported and preserved problems ordered by severity in decreasing order. Note: counters and diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilder.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilder.java index f9bc989ee877..18bbb406e52c 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilder.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/ToolchainsBuilder.java @@ -38,7 +38,8 @@ public interface ToolchainsBuilder extends Service { * @return the result of the toolchains building, never {@code null} * @throws ToolchainsBuilderException if the effective toolchains could not be built */ - ToolchainsBuilderResult build(ToolchainsBuilderRequest request); + @Nonnull + ToolchainsBuilderResult build(@Nonnull ToolchainsBuilderRequest request); /** * Builds the effective toolchains for the specified toolchains sources. diff --git a/api/maven-api-core/src/main/java/org/apache/maven/api/services/xml/Location.java b/api/maven-api-core/src/main/java/org/apache/maven/api/services/xml/Location.java index a79d9fcb8d62..9f21e74bf953 100644 --- a/api/maven-api-core/src/main/java/org/apache/maven/api/services/xml/Location.java +++ b/api/maven-api-core/src/main/java/org/apache/maven/api/services/xml/Location.java @@ -18,6 +18,8 @@ */ package org.apache.maven.api.services.xml; +import org.apache.maven.api.annotations.Nullable; + public interface Location { /** @@ -48,11 +50,13 @@ public interface Location { * Returns the public ID of the XML * @return the public ID, or null if not available */ + @Nullable String getPublicId(); /** * Returns the system ID of the XML * @return the system ID, or null if not available */ + @Nullable String getSystemId(); } diff --git a/api/maven-api-core/src/test/java/org/apache/maven/api/services/SourcesTest.java b/api/maven-api-core/src/test/java/org/apache/maven/api/services/SourcesTest.java index f9abbe66d28b..f4a6e6ecba81 100644 --- a/api/maven-api-core/src/test/java/org/apache/maven/api/services/SourcesTest.java +++ b/api/maven-api-core/src/test/java/org/apache/maven/api/services/SourcesTest.java @@ -22,7 +22,6 @@ import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -44,7 +43,7 @@ class SourcesTest { @Test void testFromPath() { - Path path = Paths.get("/tmp"); + Path path = Path.of("/tmp"); Source source = Sources.fromPath(path); assertNotNull(source); @@ -54,7 +53,7 @@ void testFromPath() { @Test void testBuildSource() { - Path path = Paths.get("/tmp"); + Path path = Path.of("/tmp"); ModelSource source = Sources.buildSource(path); assertNotNull(source); @@ -64,7 +63,7 @@ void testBuildSource() { @Test void testResolvedSource() { - Path path = Paths.get("/tmp"); + Path path = Path.of("/tmp"); String location = "custom-location"; ModelSource source = Sources.resolvedSource(path, location); @@ -77,7 +76,7 @@ void testResolvedSource() { @Test void testPathSourceFunctionality() { // Test basic source functionality - Path path = Paths.get("/tmp"); + Path path = Path.of("/tmp"); Sources.PathSource source = (Sources.PathSource) Sources.fromPath(path); assertEquals(path.normalize(), source.getPath()); @@ -91,9 +90,9 @@ void testPathSourceFunctionality() { @Test void testBuildPathSourceFunctionality() { // Test build source functionality - Path basePath = Paths.get("/tmp"); + Path basePath = Path.of("/tmp"); ModelSource.ModelLocator locator = mock(ModelSource.ModelLocator.class); - Path resolvedPath = Paths.get("/tmp/subproject/pom.xml"); + Path resolvedPath = Path.of("/tmp/subproject/pom.xml"); when(locator.locateExistingPom(any(Path.class))).thenReturn(resolvedPath); Sources.BuildPathSource source = (Sources.BuildPathSource) Sources.buildSource(basePath); @@ -109,7 +108,7 @@ void testBuildPathSourceFunctionality() { @Test void testResolvedPathSourceFunctionality() { // Test resolved source functionality - Path path = Paths.get("/tmp"); + Path path = Path.of("/tmp"); String location = "custom-location"; Sources.ResolvedPathSource source = (Sources.ResolvedPathSource) Sources.resolvedSource(path, location); diff --git a/api/maven-api-model/src/main/java/org/apache/maven/api/model/InputLocation.java b/api/maven-api-model/src/main/java/org/apache/maven/api/model/InputLocation.java index 60f50addbe08..088a6703dfcf 100644 --- a/api/maven-api-model/src/main/java/org/apache/maven/api/model/InputLocation.java +++ b/api/maven-api-model/src/main/java/org/apache/maven/api/model/InputLocation.java @@ -20,7 +20,6 @@ import java.io.Serializable; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; @@ -44,7 +43,7 @@ public InputLocation(InputSource source) { this.lineNumber = -1; this.columnNumber = -1; this.source = source; - this.locations = Collections.singletonMap(0, this); + this.locations = Map.of(0, this); this.importedFrom = null; } @@ -60,8 +59,7 @@ public InputLocation(int lineNumber, int columnNumber, InputSource source, Objec this.lineNumber = lineNumber; this.columnNumber = columnNumber; this.source = source; - this.locations = - selfLocationKey != null ? Collections.singletonMap(selfLocationKey, this) : Collections.emptyMap(); + this.locations = selfLocationKey != null ? Map.of(selfLocationKey, this) : Map.of(); this.importedFrom = null; } diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LanguageProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LanguageProvider.java index 7a2f77068fe9..5a80620530fd 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LanguageProvider.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LanguageProvider.java @@ -35,7 +35,7 @@ *

  * public class CustomLanguageProvider implements LanguageProvider {
  *     public Collection<Language> provides() {
- *         return Collections.singleton(language("kotlin"));
+ *         return Set.of(language("kotlin"));
  *     }
  * }
  * 
diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LifecycleProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LifecycleProvider.java index d37a327e5288..dbbdb4ba424d 100644 --- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LifecycleProvider.java +++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/LifecycleProvider.java @@ -37,7 +37,7 @@ *
  * public class CustomLifecycleProvider implements LifecycleProvider {
  *     public Collection<Lifecycle> provides() {
- *         return Collections.singleton(
+ *         return Set.of(
  *             lifecycle("deploy-docker", Arrays.asList(
  *                 "build-image",
  *                 "tag-image",
diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PathScopeProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PathScopeProvider.java
index 7d618ae1108a..cf7b72e74645 100644
--- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PathScopeProvider.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/PathScopeProvider.java
@@ -37,7 +37,7 @@
  * 
  * public class CustomPathScopeProvider implements PathScopeProvider {
  *     public Collection<PathScope> provides() {
- *         return Collections.singleton(pathScope("integration-test",
+ *         return Set.of(pathScope("integration-test",
  *                 ProjectScope.TEST, DependencyScope.TEST));
  *     }
  * }
diff --git a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ProjectScopeProvider.java b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ProjectScopeProvider.java
index bcd071e9be48..b1fb523a3c94 100644
--- a/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ProjectScopeProvider.java
+++ b/api/maven-api-spi/src/main/java/org/apache/maven/api/spi/ProjectScopeProvider.java
@@ -35,7 +35,7 @@
  * 
  * public class CustomProjectScopeProvider implements ProjectScopeProvider {
  *     public Collection<ProjectScope> provides() {
- *         return Collections.singleton(projectScope("integration-test"));
+ *         return Set.of(projectScope("integration-test"));
  *     }
  * }
  * 
diff --git a/compat/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleBindingsInjector.java b/compat/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleBindingsInjector.java index a074bbf6c2e9..ff5a24484a8e 100644 --- a/compat/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleBindingsInjector.java +++ b/compat/maven-compat/src/test/java/org/apache/maven/project/EmptyLifecycleBindingsInjector.java @@ -23,6 +23,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import org.apache.maven.api.Lifecycle; @@ -54,26 +55,32 @@ public class EmptyLifecycleBindingsInjector extends DefaultLifecycleBindingsInje private static final LifecycleRegistry EMPTY_LIFECYCLE_REGISTRY = new LifecycleRegistry() { @Override + @Nonnull public Iterator iterator() { return Collections.emptyIterator(); } @Override - public Optional lookup(String id) { + @Nonnull + public Optional lookup(@Nonnull String id) { return Optional.empty(); } @Override - public List computePhases(Lifecycle lifecycle) { + @Nonnull + public List computePhases(@Nonnull Lifecycle lifecycle) { return List.of(); } }; private static final PackagingRegistry EMPTY_PACKAGING_REGISTRY = new PackagingRegistry() { @Override - public Optional lookup(String id) { + @Nonnull + public Optional lookup(@Nonnull String id) { + Objects.requireNonNull(id, "id cannot be null"); return Optional.of(new Packaging() { @Override + @Nonnull public String id() { return id; } @@ -84,6 +91,7 @@ public Type type() { } @Override + @Nonnull public Map plugins() { if ("JAR".equals(id)) { return Map.of( @@ -133,11 +141,12 @@ private static Plugin newPlugin(String artifactId, String... goals) { static class WrapperLifecycleRegistry implements LifecycleRegistry { @Override @Nonnull - public Optional lookup(String id) { + public Optional lookup(@Nonnull String id) { return getDelegate().lookup(id); } @Override + @Nonnull public Iterator iterator() { return getDelegate().iterator(); } @@ -147,7 +156,8 @@ protected LifecycleRegistry getDelegate() { } @Override - public List computePhases(Lifecycle lifecycle) { + @Nonnull + public List computePhases(@Nonnull Lifecycle lifecycle) { return List.of(); } } diff --git a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java index 068c697e79b3..cf012e3c06f1 100644 --- a/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java +++ b/compat/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java @@ -19,7 +19,6 @@ package org.apache.maven.repository.internal; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -104,7 +103,7 @@ private Dependency convert(org.apache.maven.model.Dependency dependency, Artifac Map props = null; if (system) { - props = Collections.singletonMap(MavenArtifactProperties.LOCAL_PATH, dependency.getSystemPath()); + props = Map.of(MavenArtifactProperties.LOCAL_PATH, dependency.getSystemPath()); } Artifact artifact = new DefaultArtifact( diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java index 89dd0e0c0e3f..279db6cf3dc9 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/extensions/BootstrapCoreExtensionManager.java @@ -25,7 +25,6 @@ import java.util.NoSuchElementException; import java.util.Set; import java.util.function.UnaryOperator; -import java.util.stream.Collectors; import org.apache.maven.RepositoryUtils; import org.apache.maven.api.Service; @@ -203,7 +202,7 @@ private CoreExtensionEntry createExtension(CoreExtension extension, List resolveExtension( return result.getArtifactResults().stream() .filter(ArtifactResult::isResolved) .map(ArtifactResult::getArtifact) - .collect(Collectors.toList()); + .toList(); } catch (PluginResolutionException | InterpolatorException e) { throw new ExtensionResolutionException(extension, e); } diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/EncryptParser.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/EncryptParser.java index 378f81f38326..2b311f0067a5 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/EncryptParser.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnenc/EncryptParser.java @@ -18,7 +18,6 @@ */ package org.apache.maven.cling.invoker.mvnenc; -import java.util.Collections; import java.util.List; import org.apache.commons.cli.ParseException; @@ -56,7 +55,7 @@ protected EncryptInvokerRequest getInvokerRequest(LocalContext context) { @Override protected List parseCliOptions(LocalContext context) { - return Collections.singletonList(parseEncryptCliOptions(context.parserRequest.args())); + return List.of(parseEncryptCliOptions(context.parserRequest.args())); } protected CommonsCliEncryptOptions parseEncryptCliOptions(List args) { diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/ShellParser.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/ShellParser.java index 31c87e2f9056..e9da19d1e9e0 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/ShellParser.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/mvnsh/ShellParser.java @@ -18,7 +18,6 @@ */ package org.apache.maven.cling.invoker.mvnsh; -import java.util.Collections; import java.util.List; import org.apache.commons.cli.ParseException; @@ -55,7 +54,7 @@ protected ShellInvokerRequest getInvokerRequest(LocalContext context) { @Override protected List parseCliOptions(LocalContext context) { - return Collections.singletonList(parseShellCliOptions(context.parserRequest.args())); + return List.of(parseShellCliOptions(context.parserRequest.args())); } protected CommonsCliShellOptions parseShellCliOptions(List args) { diff --git a/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenProperties.java b/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenProperties.java index da01bf6a9650..80339399dc67 100644 --- a/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenProperties.java +++ b/impl/maven-cli/src/main/java/org/apache/maven/cling/props/MavenProperties.java @@ -311,7 +311,7 @@ public String put(String key, List commentLines, String value) { } public String put(String key, String comment, String value) { - return put(key, Collections.singletonList(comment), value); + return put(key, List.of(comment), value); } public boolean update(Map props) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/impl/maven-core/src/main/java/org/apache/maven/DefaultMaven.java index 368827853a35..3b5fccdd74e7 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/DefaultMaven.java +++ b/impl/maven-core/src/main/java/org/apache/maven/DefaultMaven.java @@ -27,7 +27,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; @@ -439,7 +438,7 @@ private Collection getExtensionComponents(Collection projec protected Collection getProjectScopedExtensionComponents(Collection projects, Class role) { if (projects == null) { - return Collections.emptyList(); + return List.of(); } Collection foundComponents = new LinkedHashSet<>(); diff --git a/impl/maven-core/src/main/java/org/apache/maven/ReactorReader.java b/impl/maven-core/src/main/java/org/apache/maven/ReactorReader.java index 1c242712ba49..909305c2c569 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/ReactorReader.java +++ b/impl/maven-core/src/main/java/org/apache/maven/ReactorReader.java @@ -124,8 +124,8 @@ public File findArtifact(Artifact artifact) { public List findVersions(Artifact artifact) { List versions = getProjects() - .getOrDefault(artifact.getGroupId(), Collections.emptyMap()) - .getOrDefault(artifact.getArtifactId(), Collections.emptyMap()) + .getOrDefault(artifact.getGroupId(), Map.of()) + .getOrDefault(artifact.getArtifactId(), Map.of()) .values() .stream() .map(MavenProject::getVersion) @@ -134,8 +134,8 @@ public List findVersions(Artifact artifact) { return versions; } return getAllProjects() - .getOrDefault(artifact.getGroupId(), Collections.emptyMap()) - .getOrDefault(artifact.getArtifactId(), Collections.emptyMap()) + .getOrDefault(artifact.getGroupId(), Map.of()) + .getOrDefault(artifact.getArtifactId(), Map.of()) .values() .stream() .filter(p -> Objects.nonNull(findArtifact(p, artifact, false))) @@ -484,8 +484,8 @@ private MavenProject getProject(Artifact artifact) { } private MavenProject getProject(Artifact artifact, Map>> projects) { - return projects.getOrDefault(artifact.getGroupId(), Collections.emptyMap()) - .getOrDefault(artifact.getArtifactId(), Collections.emptyMap()) + return projects.getOrDefault(artifact.getGroupId(), Map.of()) + .getOrDefault(artifact.getArtifactId(), Map.of()) .getOrDefault(artifact.getBaseVersion(), null); } @@ -501,7 +501,7 @@ private Map>> getAllProjects() { .put(project.getVersion(), project)); this.allProjects = map; } else { - return Collections.emptyMap(); + return Map.of(); } } return allProjects; @@ -518,7 +518,7 @@ private Map>> getProjects() { .put(project.getVersion(), project)); this.projects = map; } else { - return Collections.emptyMap(); + return Map.of(); } } return projects; diff --git a/impl/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java b/impl/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java index a093e4d90933..7e47788edb4a 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java +++ b/impl/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java @@ -21,13 +21,11 @@ import java.io.File; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.stream.Collectors; import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.handler.DefaultArtifactHandler; @@ -123,7 +121,7 @@ public static void toArtifacts( nodeTrail.addAll(trail); nodeTrail.add(artifact.getId()); - if (filter == null || filter.accept(node, Collections.emptyList())) { + if (filter == null || filter.accept(node, List.of())) { artifact.setDependencyTrail(nodeTrail); artifacts.add(artifact); } @@ -145,7 +143,7 @@ public static Artifact toArtifact(org.apache.maven.artifact.Artifact artifact) { Map props = null; if (org.apache.maven.artifact.Artifact.SCOPE_SYSTEM.equals(artifact.getScope())) { String localPath = (artifact.getFile() != null) ? artifact.getFile().getPath() : ""; - props = Collections.singletonMap(MavenArtifactProperties.LOCAL_PATH, localPath); + props = Map.of(MavenArtifactProperties.LOCAL_PATH, localPath); } Artifact result = new DefaultArtifact( @@ -169,16 +167,16 @@ public static Dependency toDependency( Artifact result = toArtifact(artifact); - List excl = Optional.ofNullable(exclusions).orElse(Collections.emptyList()).stream() + List excl = Optional.ofNullable(exclusions).orElse(List.of()).stream() .map(RepositoryUtils::toExclusion) - .collect(Collectors.toList()); + .toList(); return new Dependency(result, artifact.getScope(), artifact.isOptional(), excl); } public static List toRepos(List repos) { - return Optional.ofNullable(repos).orElse(Collections.emptyList()).stream() + return Optional.ofNullable(repos).orElse(List.of()).stream() .map(RepositoryUtils::toRepo) - .collect(Collectors.toList()); + .toList(); } public static RemoteRepository toRepo(ArtifactRepository repo) { @@ -280,7 +278,7 @@ public static Dependency toDependency( Map props = null; if (system) { - props = Collections.singletonMap(MavenArtifactProperties.LOCAL_PATH, dependency.getSystemPath()); + props = Map.of(MavenArtifactProperties.LOCAL_PATH, dependency.getSystemPath()); } Artifact artifact = new DefaultArtifact( @@ -294,7 +292,7 @@ public static Dependency toDependency( List exclusions = dependency.getExclusions().stream() .map(RepositoryUtils::toExclusion) - .collect(Collectors.toList()); + .toList(); return new Dependency( artifact, @@ -326,7 +324,7 @@ public ArtifactType get(String stereotypeId) { } public static Collection toArtifacts(Collection artifactsToConvert) { - return artifactsToConvert.stream().map(RepositoryUtils::toArtifact).collect(Collectors.toList()); + return artifactsToConvert.stream().map(RepositoryUtils::toArtifact).toList(); } public static WorkspaceRepository getWorkspace(RepositorySystemSession session) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java b/impl/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java index a1a587cc1194..23078b9239c8 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java +++ b/impl/maven-core/src/main/java/org/apache/maven/artifact/repository/MavenArtifactRepository.java @@ -57,7 +57,7 @@ public class MavenArtifactRepository implements ArtifactRepository { private Proxy proxy; - private List mirroredRepositories = Collections.emptyList(); + private List mirroredRepositories = List.of(); private boolean blocked; @@ -190,7 +190,7 @@ public Artifact find(Artifact artifact) { } public List findVersions(Artifact artifact) { - return Collections.emptyList(); + return List.of(); } public String getId() { @@ -386,7 +386,7 @@ public void setMirroredRepositories(List mirroredRepositorie if (mirroredRepositories != null) { this.mirroredRepositories = Collections.unmodifiableList(mirroredRepositories); } else { - this.mirroredRepositories = Collections.emptyList(); + this.mirroredRepositories = List.of(); } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilter.java b/impl/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilter.java index 1defc485567f..7c92b057ce12 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilter.java +++ b/impl/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilter.java @@ -24,7 +24,6 @@ import java.nio.file.PathMatcher; import java.util.List; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.apache.maven.artifact.Artifact; import org.apache.maven.model.Exclusion; @@ -40,7 +39,7 @@ public class ExclusionArtifactFilter implements ArtifactFilter { public ExclusionArtifactFilter(List exclusions) { this.exclusions = exclusions; this.predicates = - exclusions.stream().map(ExclusionArtifactFilter::toPredicate).collect(Collectors.toList()); + exclusions.stream().map(ExclusionArtifactFilter::toPredicate).toList(); } @Override diff --git a/impl/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java b/impl/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java index 1617b19c3714..e2a5eaa7f545 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java +++ b/impl/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java @@ -28,7 +28,6 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; @@ -207,7 +206,7 @@ private void injectMirror(ArtifactRepository repository, Mirror mirror) { repository.getSnapshots(), repository.getReleases()); - repository.setMirroredRepositories(Collections.singletonList(original)); + repository.setMirroredRepositories(List.of(original)); repository.setId(mirror.getId()); repository.setUrl(mirror.getUrl()); diff --git a/impl/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java b/impl/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java index 4da7b14c7e5e..f1fbbe04b528 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java +++ b/impl/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java @@ -25,7 +25,6 @@ import java.io.File; import java.net.MalformedURLException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -228,7 +227,7 @@ private static String getKey(Model model) { public ClassRealm createExtensionRealm(Plugin plugin, List artifacts) { Objects.requireNonNull(plugin, "plugin cannot be null"); - Map foreignImports = Collections.singletonMap("", getMavenApiRealm()); + Map foreignImports = Map.of("", getMavenApiRealm()); return createRealm( getKey(plugin, true), RealmType.Extension, PARENT_CLASSLOADER, null, foreignImports, artifacts); diff --git a/impl/maven-core/src/main/java/org/apache/maven/exception/ExceptionSummary.java b/impl/maven-core/src/main/java/org/apache/maven/exception/ExceptionSummary.java index 7473e380a2fb..7fc3ce13a7bc 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/exception/ExceptionSummary.java +++ b/impl/maven-core/src/main/java/org/apache/maven/exception/ExceptionSummary.java @@ -49,7 +49,7 @@ public ExceptionSummary(Throwable exception, String message, String reference, L this.exception = exception; this.message = (message != null) ? message : ""; this.reference = (reference != null) ? reference : ""; - this.children = (children != null) ? Collections.unmodifiableList(children) : Collections.emptyList(); + this.children = (children != null) ? Collections.unmodifiableList(children) : List.of(); } public Throwable getException() { diff --git a/impl/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzer.java b/impl/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzer.java index 0bc99bdb78dd..47a87e1cd101 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzer.java +++ b/impl/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzer.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import org.apache.maven.project.MavenProject; import org.slf4j.Logger; @@ -56,7 +55,7 @@ public Optional determineBuildResumptionData(final MavenExe .filter(project -> result.getBuildSummary(project) == null || result.getBuildSummary(project) instanceof BuildFailure) .map(project -> project.getGroupId() + ":" + project.getArtifactId()) - .collect(Collectors.toList()); + .toList(); if (remainingProjects.isEmpty()) { LOGGER.info("No remaining projects found, resuming the build would not make sense."); diff --git a/impl/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java b/impl/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java index 580dddeea516..b7d078c5986d 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java +++ b/impl/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionResult.java @@ -30,7 +30,7 @@ public class DefaultMavenExecutionResult implements MavenExecutionResult { private MavenProject project; - private List topologicallySortedProjects = Collections.emptyList(); + private List topologicallySortedProjects = List.of(); private DependencyResolutionResult dependencyResolutionResult; @@ -58,7 +58,7 @@ public MavenExecutionResult setTopologicallySortedProjects(List to public List getTopologicallySortedProjects() { return null == topologicallySortedProjects - ? Collections.emptyList() + ? List.of() : Collections.unmodifiableList(topologicallySortedProjects); } diff --git a/impl/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java b/impl/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java index 400e1653cc31..0ff0476c28fa 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java +++ b/impl/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java @@ -28,7 +28,6 @@ import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import java.util.stream.Collectors; import org.apache.maven.api.Session; import org.apache.maven.artifact.repository.ArtifactRepository; @@ -423,13 +422,13 @@ private static Settings adaptSettings(MavenExecutionRequest request) { .localRepository(localRepo != null ? localRepo.getAbsolutePath() : null) .interactiveMode(request.isInteractiveMode()) .offline(request.isOffline()) - .proxies(request.getProxies().stream().map(Proxy::getDelegate).collect(Collectors.toList())) - .servers(request.getServers().stream().map(Server::getDelegate).collect(Collectors.toList())) - .mirrors(request.getMirrors().stream().map(Mirror::getDelegate).collect(Collectors.toList())) + .proxies(request.getProxies().stream().map(Proxy::getDelegate).toList()) + .servers(request.getServers().stream().map(Server::getDelegate).toList()) + .mirrors(request.getMirrors().stream().map(Mirror::getDelegate).toList()) .profiles(request.getProfiles().stream() .map(Profile::getDelegate) .map(SettingsUtilsV4::convertToSettingsProfile) - .collect(Collectors.toList())) + .toList()) .activeProfiles(request.getActiveProfiles()) .pluginGroups(request.getPluginGroups()) .build()); diff --git a/impl/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java b/impl/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java index 5f20f38e594c..aca447c3635a 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java +++ b/impl/maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java @@ -24,7 +24,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -106,12 +105,11 @@ public Result build(MavenSession session) { return result; } catch (final ProjectBuildingException | DuplicateProjectException | MavenExecutionException e) { - return Result.error(Collections.singletonList(new DefaultModelProblem(null, null, null, null, 0, 0, e))); + return Result.error(List.of(new DefaultModelProblem(null, null, null, null, 0, 0, e))); } catch (final CycleDetectedException e) { String message = "The projects in the reactor contain a cyclic reference: " + e.getMessage(); ProjectCycleException error = new ProjectCycleException(message, e); - return Result.error( - Collections.singletonList(new DefaultModelProblem(null, null, null, null, 0, 0, error))); + return Result.error(List.of(new DefaultModelProblem(null, null, null, null, 0, 0, error))); } } @@ -318,9 +316,8 @@ private List getProjectsInRequestScope(MavenExecutionRequest reque .orElseThrow(() -> new MavenExecutionException( "Could not find a project in reactor matching the request POM", request.getPom())); - List modules = requestPomProject.getCollectedProjects() != null - ? requestPomProject.getCollectedProjects() - : Collections.emptyList(); + List modules = + requestPomProject.getCollectedProjects() != null ? requestPomProject.getCollectedProjects() : List.of(); List result = new ArrayList<>(modules); result.add(requestPomProject); diff --git a/impl/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java b/impl/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java index d49670b438b3..323787e7d2ea 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java +++ b/impl/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java @@ -28,7 +28,6 @@ import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.stream.Collectors; import org.apache.maven.execution.ProjectDependencyGraph; import org.apache.maven.project.CycleDetectedException; @@ -153,7 +152,7 @@ private List getSortedProjects(Set projectIds) { return projectIds.stream() .map(projects::get) .sorted(Comparator.comparingInt(order::get)) - .collect(Collectors.toList()); + .toList(); } @Override diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java index 9d1a3441e7bf..2a42287f5b15 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java @@ -231,7 +231,7 @@ public SessionBuilder newRepositorySessionBuilder(MavenExecutionRequest request) XmlNode dom = server.getDelegate().getConfiguration(); List children = dom.children().stream() .filter(c -> !"wagonProvider".equals(c.name())) - .collect(Collectors.toList()); + .toList(); dom = XmlNode.newInstance(dom.name(), children); PlexusConfiguration config = XmlPlexusConfiguration.toPlexusConfiguration(dom); configProps.put("aether.transport.wagon.config." + server.getId(), config); diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/aether/LegacyRepositorySystemSessionExtender.java b/impl/maven-core/src/main/java/org/apache/maven/internal/aether/LegacyRepositorySystemSessionExtender.java index ee7129246d64..5b0424eec69d 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/aether/LegacyRepositorySystemSessionExtender.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/aether/LegacyRepositorySystemSessionExtender.java @@ -18,7 +18,6 @@ */ package org.apache.maven.internal.aether; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -78,7 +77,7 @@ private void injectMirror(ArtifactRepository repository, Mirror mirror) { repository.getSnapshots(), repository.getReleases()); - repository.setMirroredRepositories(Collections.singletonList(original)); + repository.setMirroredRepositories(List.of(original)); repository.setId(mirror.getId()); repository.setUrl(mirror.getUrl()); diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/CoreUtils.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/CoreUtils.java index b5c62658ec3e..6d5ec127382a 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/CoreUtils.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/CoreUtils.java @@ -22,21 +22,36 @@ import java.util.List; import java.util.Objects; import java.util.function.Function; -import java.util.stream.Collectors; + +import org.apache.maven.api.annotations.Nonnull; +import org.apache.maven.api.annotations.Nullable; class CoreUtils { - public static T cast(Class clazz, Object o, String name) { + /** + * Casts an object to the specified type, with validation and error handling. + * + * @param the target type + * @param clazz the class representing the target type + * @param o the object to cast + * @param name the name of the parameter for error messages + * @return the cast object + * @throws NullPointerException if the object is null + * @throws ClassCastException if the object is not an instance of the target type + */ + @Nonnull + public static T cast(@Nonnull Class clazz, @Nullable Object o, @Nonnull String name) { if (!clazz.isInstance(o)) { if (o == null) { - throw new IllegalArgumentException(name + " is null"); + throw new NullPointerException(name + " is null"); } - throw new IllegalArgumentException(name + " is not an instance of " + clazz.getName()); + throw new ClassCastException(name + " is not an instance of " + clazz.getName()); } return clazz.cast(o); } - public static List map(Collection list, Function mapper) { - return list.stream().map(mapper).filter(Objects::nonNull).collect(Collectors.toList()); + @Nonnull + public static List map(@Nonnull Collection list, @Nonnull Function mapper) { + return list.stream().map(mapper).filter(Objects::nonNull).toList(); } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLifecycleRegistry.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLifecycleRegistry.java index 60a6c0b32a0b..573e56209de0 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLifecycleRegistry.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLifecycleRegistry.java @@ -28,17 +28,16 @@ import java.util.Collections; import java.util.HashSet; import java.util.Iterator; -import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.maven.api.DependencyScope; import org.apache.maven.api.Lifecycle; +import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.model.InputLocation; import org.apache.maven.api.model.InputSource; import org.apache.maven.api.model.Plugin; @@ -102,7 +101,7 @@ public class DefaultLifecycleRegistry implements LifecycleRegistry { private final List providers; public DefaultLifecycleRegistry() { - this(Collections.emptyList()); + this(List.of()); } @Inject @@ -123,28 +122,30 @@ public DefaultLifecycleRegistry(List providers) { } @Override + @Nonnull public Iterator iterator() { return stream().toList().iterator(); } @Override + @Nonnull public Stream stream() { return providers.stream().map(ExtensibleEnumProvider::provides).flatMap(Collection::stream); } @Override - public Optional lookup(String id) { + @Nonnull + public Optional lookup(@Nonnull String id) { return stream().filter(lf -> Objects.equals(id, lf.id())).findAny(); } - public List computePhases(Lifecycle lifecycle) { + @Nonnull + public List computePhases(@Nonnull Lifecycle lifecycle) { Graph graph = new Graph(); addPhases(graph, null, null, lifecycle.v3phases()); List allPhases = graph.visitAll(); Collections.reverse(allPhases); - List computed = - allPhases.stream().filter(s -> !s.startsWith("$")).collect(Collectors.toList()); - return computed; + return allPhases.stream().filter(s -> !s.startsWith("$")).toList(); } private static void addPhase( @@ -202,6 +203,7 @@ public LifecycleWrapperProvider(PlexusContainer container) { } @Override + @Nonnull public Collection provides() { try { Map all = @@ -210,100 +212,95 @@ public Collection provides() { .filter(id -> !Lifecycle.CLEAN.equals(id) && !Lifecycle.DEFAULT.equals(id) && !Lifecycle.SITE.equals(id)) - .map(id -> wrap(all.get(id))) - .collect(Collectors.toList()); + .map(id -> (Lifecycle) new WrappedLifecycle(all.get(id))) + .toList(); } catch (ComponentLookupException e) { throw new LookupException(e); } } + } - private Lifecycle wrap(org.apache.maven.lifecycle.Lifecycle lifecycle) { - return new Lifecycle() { - @Override - public String id() { - return lifecycle.getId(); - } + /** + * Record implementation of Lifecycle.Phase for wrapped phases. + * + * @param name The name of the phase + * @param prev The name of the previous phase (may be null) + * @param lifecycle The original Maven 3 lifecycle + */ + record WrappedPhase(String name, String prev, org.apache.maven.lifecycle.Lifecycle lifecycle) + implements Lifecycle.Phase { + /** + * Compact constructor with null validation. + */ + WrappedPhase { + Objects.requireNonNull(name, "name cannot be null"); + Objects.requireNonNull(lifecycle, "lifecycle cannot be null"); + // prev can be null for the first phase + } - @Override - public Collection phases() { - List names = lifecycle.getPhases(); - List phases = new ArrayList<>(); - for (int i = 0; i < names.size(); i++) { - String name = names.get(i); - String prev = i > 0 ? names.get(i - 1) : null; - phases.add(new Phase() { - @Override - public String name() { - return name; - } - - @Override - public List phases() { - return List.of(); - } - - @Override - public Stream allPhases() { - return Stream.concat( - Stream.of(this), phases().stream().flatMap(Lifecycle.Phase::allPhases)); - } - - @Override - public List plugins() { - Map lfPhases = lifecycle.getDefaultLifecyclePhases(); - LifecyclePhase phase = lfPhases != null ? lfPhases.get(name) : null; - if (phase != null) { - Map plugins = new LinkedHashMap<>(); - DefaultPackagingRegistry.parseLifecyclePhaseDefinitions(plugins, name, phase); - return plugins.values().stream().toList(); - } - return List.of(); - } - - @Override - public Collection links() { - if (prev == null) { - return List.of(); - } else { - return List.of(new Link() { - @Override - public Kind kind() { - return Kind.AFTER; - } - - @Override - public Pointer pointer() { - return new Pointer() { - @Override - public String phase() { - return prev; - } - - @Override - public Type type() { - return Type.PROJECT; - } - }; - } - }); - } - } - }); - } - return phases; - } + @Override + @Nonnull + public List phases() { + return List.of(); + } - @Override - public Collection aliases() { - return Collections.emptyList(); - } - }; + @Override + @Nonnull + public List plugins() { + Map lfPhases = lifecycle.getDefaultLifecyclePhases(); + return lfPhases != null + ? List.copyOf(DefaultPackagingRegistry.parseLifecyclePhaseDefinitions(lfPhases)) + : List.of(); + } + + @Override + @Nonnull + public Collection links() { + if (prev == null) { + return List.of(); + } else { + return List.of(new Lifecycles.DefaultLink( + Lifecycle.Link.Kind.AFTER, new Lifecycles.DefaultPhasePointer(prev))); + } } } - static class WrappedLifecycle extends org.apache.maven.lifecycle.Lifecycle { - WrappedLifecycle(LifecycleRegistry registry, Lifecycle lifecycle) { - super(registry, lifecycle); + /** + * Record implementation of Lifecycle for wrapped lifecycles. + * + * @param lifecycle The original Maven 3 lifecycle + */ + record WrappedLifecycle(org.apache.maven.lifecycle.Lifecycle lifecycle) implements Lifecycle { + /** + * Compact constructor with null validation. + */ + WrappedLifecycle { + Objects.requireNonNull(lifecycle, "lifecycle cannot be null"); + } + + @Override + @Nonnull + public String id() { + return lifecycle.getId(); + } + + @Override + @Nonnull + public Collection phases() { + List names = lifecycle.getPhases(); + List phases = new ArrayList<>(); + for (int i = 0; i < names.size(); i++) { + String name = names.get(i); + String prev = i > 0 ? names.get(i - 1) : null; + phases.add(new WrappedPhase(name, prev, lifecycle)); + } + return phases; + } + + @Override + @Nonnull + public Collection aliases() { + return List.of(); } } @@ -321,7 +318,7 @@ abstract static class BaseLifecycleProvider implements Provider phases() { // START SNIPPET: clean return List.of(phase( @@ -376,6 +375,7 @@ public Collection phases() { } @Override + @Nonnull public Collection aliases() { return List.of(alias("pre-clean", BEFORE + Phase.CLEAN), alias("post-clean", AFTER + Phase.CLEAN)); } @@ -383,11 +383,13 @@ public Collection aliases() { static class DefaultLifecycle implements Lifecycle { @Override + @Nonnull public String id() { return Lifecycle.DEFAULT; } @Override + @Nonnull public Collection phases() { // START SNIPPET: default return List.of(phase( @@ -428,6 +430,7 @@ public Collection phases() { } @Override + @Nonnull public Collection v3phases() { return List.of(phase( ALL, @@ -450,6 +453,7 @@ public Collection v3phases() { } @Override + @Nonnull public Collection aliases() { return List.of( alias("generate-sources", SOURCES), @@ -477,11 +481,13 @@ static class SiteLifecycle implements Lifecycle { private static final String PHASE_SITE_DEPLOY = "site-deploy"; @Override + @Nonnull public String id() { return Lifecycle.SITE; } @Override + @Nonnull public Collection phases() { // START SNIPPET: site return List.of( @@ -494,6 +500,7 @@ public Collection phases() { } @Override + @Nonnull public Collection aliases() { return List.of(alias("pre-site", BEFORE + PHASE_SITE), alias("post-site", AFTER + PHASE_SITE)); } diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLog.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLog.java index fa26a100835c..37a88a365461 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLog.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultLog.java @@ -152,14 +152,14 @@ public void error(Throwable error) { @Override public void error(Supplier content) { if (isErrorEnabled()) { - logger.error(content.get()); + logger.error(toString(content.get())); } } @Override public void error(Supplier content, Throwable error) { if (isErrorEnabled()) { - logger.error(content.get(), error); + logger.error(toString(content.get()), error); } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultPackagingRegistry.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultPackagingRegistry.java index d865d12b4a96..1837cdbee3ea 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultPackagingRegistry.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultPackagingRegistry.java @@ -23,7 +23,8 @@ import javax.inject.Singleton; import java.util.ArrayList; -import java.util.HashMap; +import java.util.Collection; +import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -73,41 +74,34 @@ public DefaultPackagingRegistry(Lookup lookup, TypeRegistry typeRegistry, List

lookup(String id) { - id = id.toLowerCase(Locale.ROOT); + String lid = id.toLowerCase(Locale.ROOT); // TODO: we should be able to inject a Map directly, // however, SISU visibility filtering can only happen when an explicit // lookup is performed. The whole problem here is caused by "project extensions" // which are bound to a project's classloader, without any clear definition // of a "project scope" - LifecycleMapping lifecycleMapping = - lookup.lookupOptional(LifecycleMapping.class, id).orElse(null); - if (lifecycleMapping == null) { - return Optional.empty(); - } - Type type = typeRegistry.lookup(id).orElse(null); - if (type == null) { - return Optional.empty(); - } - return Optional.of(new DefaultPackaging(id, type, getPlugins(lifecycleMapping))); + return lookup.lookupOptional(LifecycleMapping.class, lid).flatMap(lifecycleMapping -> typeRegistry + .lookup(lid) + .map(type -> new DefaultPackaging(lid, type, getPlugins(lifecycleMapping)))); } private Map getPlugins(LifecycleMapping lifecycleMapping) { - Map lfs = new HashMap<>(); - lifecycleMapping.getLifecycles().forEach((id, lifecycle) -> { - Map plugins = new HashMap<>(); - lifecycle - .getLifecyclePhases() - .forEach((phase, lifecyclePhase) -> parseLifecyclePhaseDefinitions(plugins, phase, lifecyclePhase)); - lfs.put(id, PluginContainer.newBuilder().plugins(plugins.values()).build()); - }); - return lfs; + return lifecycleMapping.getLifecycles().entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, e -> PluginContainer.newBuilder() + .plugins(parseLifecyclePhaseDefinitions(e.getValue().getLifecyclePhases())) + .build())); } - static void parseLifecyclePhaseDefinitions(Map plugins, String phase, LifecyclePhase goals) { + static Collection parseLifecyclePhaseDefinitions(Map phases) { InputLocation location = DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION; + Map plugins = new LinkedHashMap<>(); + + phases.forEach((phase, goals) -> { + List mojos = goals.getMojos(); + if (mojos == null) { + return; + } - List mojos = goals.getMojos(); - if (mojos != null) { for (int i = 0; i < mojos.size(); i++) { LifecycleMojo mojo = mojos.get(i); @@ -181,7 +175,9 @@ static void parseLifecyclePhaseDefinitions(Map plugins, String p plugins.put(key, plugin); } - } + }); + + return plugins.values(); } private static String getExecutionId(Plugin plugin, String goal) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java index 5c53a246a5c5..4f72f023a524 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultProject.java @@ -144,7 +144,7 @@ public List getManagedDependencies() { if (dependencyManagement != null) { return new MappedList<>(dependencyManagement.getDependencies(), this::toDependency); } - return Collections.emptyList(); + return List.of(); } @Override @@ -158,11 +158,13 @@ public boolean isRootProject() { } @Override + @Nonnull public Path getRootDirectory() { return project.getRootDirectory(); } @Override + @Nonnull public Optional getParent() { MavenProject parent = project.getParent(); return Optional.ofNullable(session.getProject(parent)); diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/Graph.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/Graph.java index 1f6cef3f0b13..5bebd31d01ba 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/Graph.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/Graph.java @@ -20,12 +20,12 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; class Graph { private enum DfsState { @@ -69,7 +69,7 @@ List visitAll() { } List findCycle(Vertex vertex) { - return visitCycle(Collections.singleton(vertex), new HashMap<>(), new LinkedList<>()); + return visitCycle(Set.of(vertex), new HashMap<>(), new LinkedList<>()); } private static List visitAll( diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/Lifecycles.java b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/Lifecycles.java index d7ddeeba3d3f..5bf12fbdbd0f 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/impl/Lifecycles.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/impl/Lifecycles.java @@ -19,51 +19,47 @@ package org.apache.maven.internal.impl; import java.util.Collection; -import java.util.Collections; import java.util.List; -import java.util.stream.Stream; +import java.util.Objects; import org.apache.maven.api.Lifecycle; +import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.model.Plugin; import org.apache.maven.api.model.PluginExecution; -import static java.util.Arrays.asList; - public class Lifecycles { static Lifecycle.Phase phase(String name) { - return new DefaultPhase(name, Collections.emptyList(), Collections.emptyList(), Collections.emptyList()); + return new DefaultPhase(name, List.of(), List.of(), List.of()); } static Lifecycle.Phase phase(String name, Lifecycle.Phase... phases) { - return new DefaultPhase(name, Collections.emptyList(), Collections.emptyList(), asList(phases)); + return new DefaultPhase(name, List.of(), List.of(), List.of(phases)); } static Lifecycle.Phase phase(String name, Lifecycle.Link link, Lifecycle.Phase... phases) { - return new DefaultPhase(name, Collections.emptyList(), Collections.singletonList(link), asList(phases)); + return new DefaultPhase(name, List.of(), List.of(link), List.of(phases)); } static Lifecycle.Phase phase(String name, Plugin plugin) { - return new DefaultPhase( - name, Collections.singletonList(plugin), Collections.emptyList(), Collections.emptyList()); + return new DefaultPhase(name, List.of(plugin), List.of(), List.of()); } static Lifecycle.Phase phase(String name, Lifecycle.Link link, Plugin plugin) { - return new DefaultPhase( - name, Collections.singletonList(plugin), Collections.singletonList(link), Collections.emptyList()); + return new DefaultPhase(name, List.of(plugin), List.of(link), List.of()); } static Lifecycle.Phase phase(String name, Lifecycle.Link link1, Lifecycle.Link link2, Lifecycle.Phase... phases) { - return new DefaultPhase(name, Collections.emptyList(), asList(link1, link2), asList(phases)); + return new DefaultPhase(name, List.of(), List.of(link1, link2), List.of(phases)); } static Lifecycle.Phase phase( String name, Lifecycle.Link link1, Lifecycle.Link link2, Lifecycle.Link link3, Lifecycle.Phase... phases) { - return new DefaultPhase(name, Collections.emptyList(), asList(link1, link2, link3), asList(phases)); + return new DefaultPhase(name, List.of(), List.of(link1, link2, link3), List.of(phases)); } static Lifecycle.Phase phase(String name, Collection links, Lifecycle.Phase... phases) { - return new DefaultPhase(name, Collections.emptyList(), links, asList(phases)); + return new DefaultPhase(name, List.of(), links, List.of(phases)); } static Plugin plugin(String coords, String phase) { @@ -72,10 +68,10 @@ static Plugin plugin(String coords, String phase) { .groupId(c[0]) .artifactId(c[1]) .version(c[2]) - .executions(Collections.singletonList(PluginExecution.newBuilder() + .executions(List.of(PluginExecution.newBuilder() .id("default-" + c[3]) .phase(phase) - .goals(Collections.singletonList(c[3])) + .goals(List.of(c[3])) .location("", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION) .location("id", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION) .location("phase", DefaultLifecycleRegistry.DEFAULT_LIFECYCLE_INPUT_LOCATION) @@ -90,159 +86,148 @@ static Plugin plugin(String coords, String phase) { /** Indicates the phase is after the phases given in arguments */ static Lifecycle.Link after(String phase) { - return new Lifecycle.Link() { - @Override - public Kind kind() { - return Kind.AFTER; - } - - @Override - public Lifecycle.Pointer pointer() { - return new Lifecycle.PhasePointer() { - @Override - public String phase() { - return phase; - } - - @Override - public String toString() { - return "phase(" + phase + ")"; - } - }; - } - - @Override - public String toString() { - return "after(" + pointer() + ")"; - } - }; + return new DefaultLink(Lifecycle.Link.Kind.AFTER, new DefaultPhasePointer(phase)); } /** Indicates the phase is after the phases for the dependencies in the given scope */ static Lifecycle.Link dependencies(String scope, String phase) { - return new Lifecycle.Link() { - @Override - public Kind kind() { - return Kind.AFTER; - } - - @Override - public Lifecycle.Pointer pointer() { - return new Lifecycle.DependenciesPointer() { - @Override - public String phase() { - return phase; - } - - @Override - public String scope() { - return scope; - } - - @Override - public String toString() { - return "dependencies(" + scope + ", " + phase + ")"; - } - }; - } - - @Override - public String toString() { - return "after(" + pointer() + ")"; - } - }; + return new DefaultLink(Lifecycle.Link.Kind.AFTER, new DefaultDependenciesPointer(phase, scope)); } static Lifecycle.Link children(String phase) { - return new Lifecycle.Link() { - @Override - public Kind kind() { - return Kind.AFTER; - } - - @Override - public Lifecycle.Pointer pointer() { - return new Lifecycle.ChildrenPointer() { - @Override - public String phase() { - return phase; - } - - @Override - public String toString() { - return "children(" + phase + ")"; - } - }; - } - - @Override - public String toString() { - return "after(" + pointer() + ")"; - } - }; + return new DefaultLink(Lifecycle.Link.Kind.AFTER, new DefaultChildrenPointer(phase)); } static Lifecycle.Alias alias(String v3Phase, String v4Phase) { return new DefaultAlias(v3Phase, v4Phase); } - static class DefaultPhase implements Lifecycle.Phase { - private final String name; - private final List plugins; - private final Collection links; - private final List phases; - - DefaultPhase( - String name, List plugins, Collection links, List phases) { - this.name = name; - this.plugins = plugins; - this.links = links; - this.phases = phases; + /** + * Record implementation of Link. + * + * @param kind The kind of link (BEFORE or AFTER) + * @param pointer The pointer to the target phase + */ + record DefaultLink(Lifecycle.Link.Kind kind, Lifecycle.Pointer pointer) implements Lifecycle.Link { + /** + * Compact constructor with null validation. + */ + DefaultLink { + Objects.requireNonNull(kind, "kind cannot be null"); + Objects.requireNonNull(pointer, "pointer cannot be null"); } @Override - public String name() { - return name; + @Nonnull + public String toString() { + return kind.name().toLowerCase() + "(" + pointer + ")"; } + } - @Override - public List plugins() { - return plugins; + /** + * Record implementation of PhasePointer. + * + * @param phase The name of the target phase + */ + record DefaultPhasePointer(String phase) implements Lifecycle.PhasePointer { + /** + * Compact constructor with null validation. + */ + DefaultPhasePointer { + Objects.requireNonNull(phase, "phase cannot be null"); } @Override - public Collection links() { - return links; + @Nonnull + public String toString() { + return "phase(" + phase + ")"; } + } - @Override - public List phases() { - return phases; + /** + * Record implementation of DependenciesPointer. + * + * @param phase The name of the target phase + * @param scope The dependency scope + */ + record DefaultDependenciesPointer(String phase, String scope) implements Lifecycle.DependenciesPointer { + /** + * Compact constructor with null validation. + */ + DefaultDependenciesPointer { + Objects.requireNonNull(phase, "phase cannot be null"); + Objects.requireNonNull(scope, "scope cannot be null"); } @Override - public Stream allPhases() { - return Stream.concat(Stream.of(this), phases().stream().flatMap(Lifecycle.Phase::allPhases)); + @Nonnull + public String toString() { + return "dependencies(" + scope + ", " + phase + ")"; } } - static class DefaultAlias implements Lifecycle.Alias { - private final String v3Phase; - private final String v4Phase; - - DefaultAlias(String v3Phase, String v4Phase) { - this.v3Phase = v3Phase; - this.v4Phase = v4Phase; + /** + * Record implementation of ChildrenPointer. + * + * @param phase The name of the target phase + */ + record DefaultChildrenPointer(String phase) implements Lifecycle.ChildrenPointer { + /** + * Compact constructor with null validation. + */ + DefaultChildrenPointer { + Objects.requireNonNull(phase, "phase cannot be null"); } @Override - public String v3Phase() { - return v3Phase; + @Nonnull + public String toString() { + return "children(" + phase + ")"; } + } - @Override - public String v4Phase() { - return v4Phase; + /** + * Record implementation of Lifecycle.Phase. + * + * @param name The name of the phase + * @param plugins The list of plugins bound to this phase + * @param links The collection of links from this phase to other phases + * @param phases The list of sub-phases + */ + record DefaultPhase( + String name, List plugins, Collection links, List phases) + implements Lifecycle.Phase { + + /** + * Canonical constructor with null validation and defensive copying. + * + * @param name The name of the phase + * @param plugins The list of plugins bound to this phase + * @param links The collection of links from this phase to other phases + * @param phases The list of sub-phases + */ + DefaultPhase( + String name, List plugins, Collection links, List phases) { + this.name = Objects.requireNonNull(name, "name cannot be null"); + this.plugins = List.copyOf(Objects.requireNonNull(plugins, "plugins cannot be null")); + this.links = List.copyOf(Objects.requireNonNull(links, "links cannot be null")); + this.phases = List.copyOf(Objects.requireNonNull(phases, "phases cannot be null")); + } + } + + /** + * Record implementation of Lifecycle.Alias. + * + * @param v3Phase The Maven 3 phase name + * @param v4Phase The Maven 4 phase name + */ + record DefaultAlias(String v3Phase, String v4Phase) implements Lifecycle.Alias { + /** + * Compact constructor with null validation. + */ + DefaultAlias { + Objects.requireNonNull(v3Phase, "v3Phase cannot be null"); + Objects.requireNonNull(v4Phase, "v4Phase cannot be null"); } } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomBuilder.java b/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomBuilder.java index 9d74419c989e..5de4b1ab5cbf 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomBuilder.java +++ b/impl/maven-core/src/main/java/org/apache/maven/internal/transformation/impl/DefaultConsumerPomBuilder.java @@ -288,7 +288,7 @@ private static List prune(List profiles) { return builder.build(null).build(); }) .filter(p -> !isEmpty(p)) - .collect(Collectors.toList()); + .toList(); } private static boolean isEmpty(Profile profile) { @@ -324,6 +324,6 @@ private static T prune(T builder, ModelBase model) private static List pruneRepositories(List repositories) { return repositories.stream() .filter(r -> !org.apache.maven.api.Repository.CENTRAL_ID.equals(r.getId())) - .collect(Collectors.toList()); + .toList(); } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java index f85a9bc51d05..039064b2f160 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycles.java @@ -161,7 +161,7 @@ public List getLifeCycles() { return lifecyclesMap.values().stream() .peek(l -> Objects.requireNonNull(l.getId(), "A lifecycle must have an id.")) .sorted(Comparator.comparing(Lifecycle::getId, comparator)) - .collect(Collectors.toList()); + .toList(); } private Map lookupLifecycles() { diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java index 7a86e6284d65..fcee5140169d 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/BuildListCalculator.java @@ -22,7 +22,6 @@ import javax.inject.Singleton; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.apache.maven.execution.MavenSession; @@ -46,7 +45,7 @@ public ProjectBuildList calculateProjectBuilds(MavenSession session, List projects; if (taskSegment.isAggregating()) { - projects = Collections.singletonList(rootProject); + projects = List.of(rootProject); } else { projects = session.getProjects(); } diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java index e35bd8df1ca3..9fb6c73226d8 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java @@ -26,7 +26,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -113,7 +112,7 @@ public DefaultLifecycleExecutionPlanCalculator( this.lifecyclePluginResolver = lifecyclePluginResolver; this.standardDelegate = null; this.delegates = null; - this.mojoExecutionConfigurators = Collections.singletonMap("default", new DefaultMojoExecutionConfigurator()); + this.mojoExecutionConfigurators = Map.of("default", new DefaultMojoExecutionConfigurator()); } @Override @@ -551,7 +550,7 @@ private List calculateForkedGoal( } if (alreadyPlannedExecutions.contains(forkedMojoDescriptor)) { - return Collections.emptyList(); + return List.of(); } MojoExecution forkedExecution = new MojoExecution(forkedMojoDescriptor, forkedGoal); @@ -562,7 +561,7 @@ private List calculateForkedGoal( calculateForkedExecutions(forkedExecution, session, project, alreadyPlannedExecutions); - return Collections.singletonList(forkedExecution); + return List.of(forkedExecution); } private MojoExecutionConfigurator mojoExecutionConfigurator(MojoExecution mojoExecution) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java index 6d17a835db70..5081b707f2c3 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleTaskSegmentCalculator.java @@ -24,7 +24,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.maven.api.Lifecycle; @@ -84,7 +83,7 @@ public List calculateTaskSegments(MavenSession session) && !rootProject.getDefaultGoal().isEmpty())) { tasks = Stream.of(rootProject.getDefaultGoal().split("\\s+")) .filter(g -> !g.isEmpty()) - .collect(Collectors.toList()); + .toList(); } return calculateTaskSegments(session, tasks); diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java index 8edda3ea3008..8a61d20824bc 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/DependencyContext.java @@ -20,6 +20,7 @@ import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.TreeSet; import org.apache.maven.project.MavenProject; @@ -45,7 +46,7 @@ public class DependencyContext { private final Collection scopesToResolveForAggregatedProjects; - private volatile Collection lastDependencyArtifacts = Collections.emptyList(); + private volatile Collection lastDependencyArtifacts = List.of(); private volatile int lastDependencyArtifactCount = -1; diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java index 96b3ff0b8fbd..47f159706807 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolver.java @@ -30,7 +30,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; import org.apache.maven.RepositoryUtils; import org.apache.maven.api.services.MessageBuilderFactory; @@ -96,9 +95,9 @@ public static List getProjects(MavenProject project, MavenSession projectAndSubmodules.add(project); return session.getProjects().stream() // sorted all .filter(projectAndSubmodules::contains) - .collect(Collectors.toList()); // sorted and filtered to what we need + .toList(); // sorted and filtered to what we need } else { - return Collections.singletonList(project); + return List.of(project); } } @@ -288,7 +287,7 @@ private Set getDependencies( RepositoryUtils.toArtifacts( artifacts, result.getDependencyGraph().getChildren(), - Collections.singletonList(project.getArtifact().getId()), + List.of(project.getArtifact().getId()), collectionFilter); } return new SetWithResolutionResult(result, artifacts); diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java index 009e3712cdc9..b3e52ecdead5 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoDescriptorCreator.java @@ -24,9 +24,8 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; +import java.util.Map; import org.apache.maven.api.xml.XmlNode; import org.apache.maven.execution.MavenSession; @@ -97,12 +96,10 @@ public static XmlNode convert(org.apache.maven.api.plugin.descriptor.MojoDescrip .map(p -> XmlNode.newInstance( p.getName(), p.getExpression(), - p.getDefaultValue() != null - ? Collections.singletonMap("default-value", p.getDefaultValue()) - : null, + p.getDefaultValue() != null ? Map.of("default-value", p.getDefaultValue()) : null, null, null)) - .collect(Collectors.toList()); + .toList(); return XmlNode.newInstance("configuration", children); } @@ -119,7 +116,7 @@ public static org.codehaus.plexus.util.xml.Xpp3Dom convert(MojoDescriptor mojoDe XmlNode e = XmlNode.newInstance( ce.getName(), value, - defaultValue != null ? Collections.singletonMap("default-value", defaultValue) : null, + defaultValue != null ? Map.of("default-value", defaultValue) : null, null, null); children.add(e); diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java index 7a479d4d2f96..bae43231ad4b 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java @@ -131,7 +131,7 @@ private void collectDependencyRequirements( } private Collection toScopes(String classpath) { - Collection scopes = Collections.emptyList(); + Collection scopes = List.of(); if (classpath != null && !classpath.isEmpty()) { if (Artifact.SCOPE_COMPILE.equals(classpath)) { @@ -419,7 +419,7 @@ private ArtifactFilter getArtifactFilter(MojoDescriptor mojoDescriptor) { public List executeForkedExecutions(MojoExecution mojoExecution, MavenSession session) throws LifecycleExecutionException { - List forkedProjects = Collections.emptyList(); + List forkedProjects = List.of(); Map> forkedExecutions = mojoExecution.getForkedExecutions(); diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java index 1e1719eda05c..3f3899cdc2ee 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/ProjectBuildList.java @@ -55,7 +55,7 @@ public ProjectBuildList(List items) { */ public ProjectBuildList getByTaskSegment(TaskSegment taskSegment) { return new ProjectBuildList( - items.stream().filter(pb -> taskSegment == pb.getTaskSegment()).collect(Collectors.toList())); + items.stream().filter(pb -> taskSegment == pb.getTaskSegment()).toList()); } public Map selectSegment(TaskSegment taskSegment) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/Task.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/Task.java index 3b5587c00db9..493beac37abb 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/Task.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/Task.java @@ -32,7 +32,7 @@ public abstract class Task { private final String value; public Task(String value) { - this.value = Objects.requireNonNull(value, "value"); + this.value = Objects.requireNonNull(value, "value cannot be null"); } public String getValue() { diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlan.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlan.java index f87b9fb72009..bbc7138b2e85 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlan.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlan.java @@ -76,9 +76,7 @@ public Stream allSteps() { } public Stream steps(MavenProject project) { - return Optional.ofNullable(plan.get(project)) - .map(m -> m.values().stream()) - .orElse(Stream.empty()); + return Optional.ofNullable(plan.get(project)).stream().flatMap(m -> m.values().stream()); } public Optional step(MavenProject project, String name) { @@ -103,7 +101,7 @@ private Map merge(Map org, Map b.predecessors.isEmpty()).toList(); firsts.stream() .filter(addNode -> !org.containsKey(addNode.name)) - .forEach(addNode -> lasts.forEach(orgNode -> addNode.executeAfter(orgNode))); + .forEach(addNode -> lasts.forEach(addNode::executeAfter)); add.forEach((name, node) -> org.merge(name, node, this::merge)); return org; } diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanExecutor.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanExecutor.java index 3bca5cf6b3f3..50e9c775a305 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanExecutor.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanExecutor.java @@ -26,7 +26,6 @@ import java.time.Duration; import java.time.Instant; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -242,9 +241,8 @@ public BuildPlan buildInitialPlan(List taskSegments) { BuildPlan plan = new BuildPlan(allProjects); for (TaskSegment taskSegment : taskSegments) { - Map> projects = taskSegment.isAggregating() - ? Collections.singletonMap(rootProject, allProjects.get(rootProject)) - : allProjects; + Map> projects = + taskSegment.isAggregating() ? Map.of(rootProject, allProjects.get(rootProject)) : allProjects; BuildPlan segment = calculateMojoExecutions(projects, taskSegment.getTasks()); plan.then(segment); @@ -253,7 +251,7 @@ public BuildPlan buildInitialPlan(List taskSegments) { // Create plan, setup and teardown for (MavenProject project : plan.getAllProjects().keySet()) { BuildStep pplan = new BuildStep(PLAN, project, null); - pplan.status.set(PLANNING); // the plan step always need planning + pplan.status.set(PLANNING); // the plan step always needs planning BuildStep setup = new BuildStep(SETUP, project, null); BuildStep teardown = new BuildStep(TEARDOWN, project, null); teardown.executeAfter(setup); @@ -535,7 +533,7 @@ private void executeStep(BuildStep step) throws IOException, LifecycleExecutionE } else if (allStepsExecuted) { // If there were no failures, report success projectExecutionListener.afterProjectExecutionSuccess( - new ProjectExecutionEvent(session, step.project, Collections.emptyList())); + new ProjectExecutionEvent(session, step.project, List.of())); reactorContext .getResult() .addBuildSummary(new BuildSuccess(step.project, clock.wallTime(), clock.execTime())); @@ -713,8 +711,8 @@ protected BuildPlan computeForkPlan(BuildStep step, MojoExecution execution, Bui String resolvedPhase = getResolvedPhase(lifecycle, phase); - Map> map = Collections.singletonMap( - step.project, plan.getAllProjects().get(step.project)); + Map> map = + Map.of(step.project, plan.getAllProjects().get(step.project)); BuildPlan forkedPlan = calculateLifecycleMappings(map, lifecycle, resolvedPhase); forkedPlan.then(buildPlan); return forkedPlan; @@ -787,7 +785,7 @@ protected void handleBuildError( } else if (MavenExecutionRequest.REACTOR_FAIL_FAST.equals(session.getReactorFailureBehavior())) { buildContext.getReactorBuildStatus().halt(); } else { - logger.error("invalid reactor failure behavior " + session.getReactorFailureBehavior()); + logger.error("invalid reactor failure behavior {}", session.getReactorFailureBehavior()); buildContext.getReactorBuildStatus().halt(); } } @@ -941,11 +939,11 @@ public BuildPlan calculateLifecycleMappings( plan.addProject(project, steps); } - // Create inter project dependencies + // Create inter-project dependencies plan.allSteps().filter(step -> step.phase != null).forEach(step -> { Lifecycle.Phase phase = step.phase; MavenProject project = step.project; - phase.links().stream().forEach(link -> { + phase.links().forEach(link -> { BuildStep before = plan.requiredStep(project, BEFORE + phase.name()); BuildStep after = plan.requiredStep(project, AFTER + phase.name()); Lifecycle.Pointer pointer = link.pointer(); diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/ConcurrentLifecycleStarter.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/ConcurrentLifecycleStarter.java index 3ba6c99499b6..07c1b61d20cb 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/ConcurrentLifecycleStarter.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/ConcurrentLifecycleStarter.java @@ -24,7 +24,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.maven.api.Lifecycle; @@ -128,7 +127,7 @@ public List calculateTaskSegments(MavenSession session) throws Exce && !rootProject.getDefaultGoal().isEmpty())) { tasks = Stream.of(rootProject.getDefaultGoal().split("\\s+")) .filter(g -> !g.isEmpty()) - .collect(Collectors.toList()); + .toList(); } return calculateTaskSegments(session, tasks); diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/PluginLifecycle.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/PluginLifecycle.java index 81a319b7aea6..016f0d6dc254 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/PluginLifecycle.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/internal/concurrent/PluginLifecycle.java @@ -19,12 +19,10 @@ package org.apache.maven.lifecycle.internal.concurrent; import java.util.Collection; -import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; -import java.util.stream.Stream; import org.apache.maven.api.Lifecycle; +import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.model.Plugin; import org.apache.maven.plugin.descriptor.PluginDescriptor; @@ -40,22 +38,26 @@ class PluginLifecycle implements Lifecycle { } @Override + @Nonnull public String id() { return lifecycleOverlay.getId(); } @Override + @Nonnull public Collection phases() { return lifecycleOverlay.getPhases().stream() - .map(phase -> new Phase() { + .map(phase -> (Phase) new Phase() { @Override + @Nonnull public String name() { return phase.getId(); } @Override + @Nonnull public List plugins() { - return Collections.singletonList(Plugin.newBuilder() + return List.of(Plugin.newBuilder() .groupId(pluginDescriptor.getGroupId()) .artifactId(pluginDescriptor.getArtifactId()) .version(pluginDescriptor.getVersion()) @@ -65,30 +67,28 @@ public List plugins() { .goals(exec.getGoals()) .configuration(exec.getConfiguration()) .build()) - .collect(Collectors.toList())) + .toList()) .build()); } @Override + @Nonnull public Collection links() { - return Collections.emptyList(); + return List.of(); } @Override + @Nonnull public List phases() { - return Collections.emptyList(); - } - - @Override - public Stream allPhases() { - return Stream.concat(Stream.of(this), phases().stream().flatMap(Phase::allPhases)); + return List.of(); } }) - .collect(Collectors.toList()); + .toList(); } @Override + @Nonnull public Collection aliases() { - return Collections.emptyList(); + return List.of(); } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/Lifecycle.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/Lifecycle.java index 8b6387f4f69b..cef887f67afe 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/Lifecycle.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/Lifecycle.java @@ -18,7 +18,6 @@ */ package org.apache.maven.lifecycle.mapping; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; @@ -76,7 +75,7 @@ public Map getPhases() { } if (lphases.isEmpty()) { - return Collections.emptyMap(); + return Map.of(); } Map phases = new LinkedHashMap<>(); diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java index 7cc65939b074..60c8dad373e4 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecyclePhase.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -56,7 +55,7 @@ public void set(String goals) { if (goals != null && !goals.isEmpty()) { String[] mojoGoals = goals.split(","); - mojos = Arrays.stream(mojoGoals).map(fromGoalIntoLifecycleMojo).collect(Collectors.toList()); + mojos = Arrays.stream(mojoGoals).map(fromGoalIntoLifecycleMojo).toList(); } } @@ -68,7 +67,7 @@ public void set(String goals) { @Override public String toString() { - return Optional.ofNullable(getMojos()).orElse(Collections.emptyList()).stream() + return Optional.ofNullable(getMojos()).orElse(List.of()).stream() .map(LifecycleMojo::getGoal) .collect(Collectors.joining(",")); } @@ -80,7 +79,7 @@ public static Map toLegacyMap(Map lifecy } if (lifecyclePhases.isEmpty()) { - return Collections.emptyMap(); + return Map.of(); } Map phases = new LinkedHashMap<>(); diff --git a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/providers/packaging/AbstractLifecycleMappingProvider.java b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/providers/packaging/AbstractLifecycleMappingProvider.java index ed841bcccdd9..72a5ca472b9d 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/lifecycle/providers/packaging/AbstractLifecycleMappingProvider.java +++ b/impl/maven-core/src/main/java/org/apache/maven/lifecycle/providers/packaging/AbstractLifecycleMappingProvider.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.HashMap; +import java.util.List; import org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping; import org.apache.maven.lifecycle.mapping.Lifecycle; @@ -78,7 +79,7 @@ protected AbstractLifecycleMappingProvider(String[] pluginBindings) { lifecycle.setId("default"); lifecycle.setLifecyclePhases(Collections.unmodifiableMap(lifecyclePhaseBindings)); - this.lifecycleMapping = new DefaultLifecycleMapping(Collections.singletonList(lifecycle)); + this.lifecycleMapping = new DefaultLifecycleMapping(List.of(lifecycle)); } @Override diff --git a/impl/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java b/impl/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java index 48b3d9763c88..2952e9664a8e 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java +++ b/impl/maven-core/src/main/java/org/apache/maven/model/plugin/DefaultLifecycleBindingsInjector.java @@ -24,7 +24,6 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -90,8 +89,8 @@ public void merge(Model target, Model source) { target.setBuild(new Build()); } - Map context = Collections.singletonMap( - PLUGIN_MANAGEMENT, target.getBuild().getPluginManagement()); + Map context = + Map.of(PLUGIN_MANAGEMENT, target.getBuild().getPluginManagement()); mergePluginContainer_Plugins(target.getBuild(), source.getBuild(), false, context); } @@ -132,7 +131,7 @@ protected void mergePluginContainer_Plugins( Plugin addedPlugin = added.get(key); if (addedPlugin != null) { Plugin plugin = managedPlugin.clone(); - mergePlugin(plugin, addedPlugin, sourceDominant, Collections.emptyMap()); + mergePlugin(plugin, addedPlugin, sourceDominant, Map.of()); merged.put(key, plugin); } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java b/impl/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java index 62fd05332413..6fa131fb29b9 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java +++ b/impl/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java @@ -22,7 +22,6 @@ import javax.inject.Singleton; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -87,7 +86,7 @@ public CacheKey( } } this.parentRealm = parentRealm; - this.foreignImports = (foreignImports != null) ? foreignImports : Collections.emptyMap(); + this.foreignImports = (foreignImports != null) ? foreignImports : Map.of(); this.filter = dependencyFilter; int hash = 17; diff --git a/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java b/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java index 16aee3db3130..09a77f9a9c28 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java +++ b/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java @@ -25,7 +25,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.maven.RepositoryUtils; @@ -240,7 +239,7 @@ private DependencyResult resolveInternal( e.getResult().getArtifactResults().stream() .filter(r -> !r.isResolved()) .flatMap(r -> r.getExceptions().stream())) - .collect(Collectors.toList()); + .toList(); throw new PluginResolutionException(plugin, exceptions, e); } finally { RequestTraceHelper.exit(trace); diff --git a/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java b/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java index 0bd14d1635d1..8810f774e0e9 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java +++ b/impl/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginValidationManager.java @@ -36,7 +36,6 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import org.apache.maven.api.Constants; import org.apache.maven.eventspy.AbstractEventSpy; @@ -104,12 +103,12 @@ private List validationPluginExcludes(RepositorySystemSession session) { private List parsePluginExcludes(RepositorySystemSession session) { String excludes = ConfigUtils.getString(session, null, Constants.MAVEN_PLUGIN_VALIDATION_EXCLUDES); if (excludes == null || excludes.isEmpty()) { - return Collections.emptyList(); + return List.of(); } return Arrays.stream(excludes.split(",")) .map(String::trim) .filter(s -> !s.isEmpty()) - .collect(Collectors.toList()); + .toList(); } private ValidationReportLevel validationReportLevel(RepositorySystemSession session) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java b/impl/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java index 9b1e68a77db3..b3289fa647f0 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java +++ b/impl/maven-core/src/main/java/org/apache/maven/plugin/prefix/DefaultPluginPrefixRequest.java @@ -36,11 +36,11 @@ public class DefaultPluginPrefixRequest implements PluginPrefixRequest { private String prefix; - private List pluginGroups = Collections.emptyList(); + private List pluginGroups = List.of(); private Model pom; - private List repositories = Collections.emptyList(); + private List repositories = List.of(); private RepositorySystemSession session; @@ -89,7 +89,7 @@ public DefaultPluginPrefixRequest setPluginGroups(List pluginGroups) { if (pluginGroups != null) { this.pluginGroups = Collections.unmodifiableList(pluginGroups); } else { - this.pluginGroups = Collections.emptyList(); + this.pluginGroups = List.of(); } return this; @@ -113,7 +113,7 @@ public DefaultPluginPrefixRequest setRepositories(List reposit if (repositories != null) { this.repositories = Collections.unmodifiableList(repositories); } else { - this.repositories = Collections.emptyList(); + this.repositories = List.of(); } return this; diff --git a/impl/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java b/impl/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java index c616533cea25..ae2c021dece1 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java +++ b/impl/maven-core/src/main/java/org/apache/maven/plugin/prefix/internal/DefaultPluginPrefixResolver.java @@ -24,7 +24,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -227,7 +226,7 @@ private PluginPrefixResult resolveFromRepository( ArtifactRepository repository) { if (metadata != null && metadata.getFile() != null && metadata.getFile().isFile()) { try { - Map options = Collections.singletonMap(MetadataReader.IS_STRICT, Boolean.FALSE); + Map options = Map.of(MetadataReader.IS_STRICT, Boolean.FALSE); Metadata pluginGroupMetadata = metadataReader.read(metadata.getFile(), options); diff --git a/impl/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java b/impl/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java index bd88b69342bd..fdcc5cb1cdc2 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java +++ b/impl/maven-core/src/main/java/org/apache/maven/plugin/version/DefaultPluginVersionRequest.java @@ -41,7 +41,7 @@ public class DefaultPluginVersionRequest implements PluginVersionRequest { private Model pom; - private List repositories = Collections.emptyList(); + private List repositories = List.of(); private RepositorySystemSession session; @@ -124,7 +124,7 @@ public DefaultPluginVersionRequest setRepositories(List reposi if (repositories != null) { this.repositories = Collections.unmodifiableList(repositories); } else { - this.repositories = Collections.emptyList(); + this.repositories = List.of(); } return this; diff --git a/impl/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java b/impl/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java index b2afbb073efb..d8d882848a92 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java +++ b/impl/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java @@ -311,7 +311,7 @@ private void mergeMetadata( ArtifactRepository repository) { if (metadata != null && metadata.getFile() != null && metadata.getFile().isFile()) { try { - Map options = Collections.singletonMap(MetadataReader.IS_STRICT, Boolean.FALSE); + Map options = Map.of(MetadataReader.IS_STRICT, Boolean.FALSE); Metadata repoMetadata = metadataReader.read(metadata.getFile(), options); diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultDependencyResolutionResult.java b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultDependencyResolutionResult.java index 30d72e1e283a..ec5254b19b6a 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultDependencyResolutionResult.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultDependencyResolutionResult.java @@ -82,7 +82,7 @@ public void setCollectionErrors(List exceptions) { public List getResolutionErrors(Dependency dependency) { List errors = resolutionErrors.get(dependency); - return (errors != null) ? Collections.unmodifiableList(errors) : Collections.emptyList(); + return (errors != null) ? Collections.unmodifiableList(errors) : List.of(); } public void setResolutionErrors(Dependency dependency, List errors) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java index a14dfaabe158..e1ca54de849d 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java @@ -505,7 +505,7 @@ List doBuild(List pomFiles, boolean recursive) { return pomFiles.stream() .map(pomFile -> build(pomFile, recursive)) .flatMap(List::stream) - .collect(Collectors.toList()); + .toList(); } finally { Thread.currentThread().setContextClassLoader(oldContextClassLoader); } @@ -551,7 +551,7 @@ private List build(File pomFile, boolean recursive) { project.setCollectedProjects(results(r) .filter(cr -> cr != r && cr.getEffectiveModel() != null) .map(cr -> projectIndex.get(cr.getEffectiveModel().getId())) - .collect(Collectors.toList())); + .toList()); DependencyResolutionResult resolutionResult = null; if (request.isResolveDependencies()) { @@ -740,7 +740,7 @@ private void initProject(MavenProject project, ModelBuilderResult result) { project.setExtensionArtifacts(extensionArtifacts); // managedVersionMap - Map map = Collections.emptyMap(); + Map map = Map.of(); final DependencyManagement dependencyManagement = project.getModel().getDelegate().getDependencyManagement(); if (dependencyManagement != null @@ -924,7 +924,7 @@ private DependencyResolutionResult resolveDependencies(MavenProject project) { RepositoryUtils.toArtifacts( artifacts, resolutionResult.getDependencyGraph().getChildren(), - Collections.singletonList(project.getArtifact().getId()), + List.of(project.getArtifact().getId()), null); // Maven 2.x quirk: an artifact always points at the local repo, regardless whether resolved or not @@ -944,7 +944,7 @@ private DependencyResolutionResult resolveDependencies(MavenProject project) { } private List getProfileIds(List profiles) { - return profiles.stream().map(Profile::getId).collect(Collectors.toList()); + return profiles.stream().map(Profile::getId).toList(); } private static ModelSource createStubModelSource(Artifact artifact) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingResult.java b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingResult.java index 65bc41bda525..795ba00ae8ff 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingResult.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingResult.java @@ -19,7 +19,6 @@ package org.apache.maven.project; import java.io.File; -import java.util.Collections; import java.util.List; import org.apache.maven.model.building.ModelProblem; @@ -54,7 +53,7 @@ class DefaultProjectBuildingResult implements ProjectBuildingResult { : ""; this.pomFile = (project != null) ? project.getFile() : null; this.project = project; - this.problems = problems != null ? problems : Collections.emptyList(); + this.problems = problems != null ? problems : List.of(); this.dependencyResolutionResult = dependencyResolutionResult; } @@ -69,7 +68,7 @@ class DefaultProjectBuildingResult implements ProjectBuildingResult { this.projectId = (projectId != null) ? projectId : ""; this.pomFile = pomFile; this.project = null; - this.problems = problems != null ? problems : Collections.emptyList(); + this.problems = problems != null ? problems : List.of(); this.dependencyResolutionResult = null; } diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java index 613367bc26b7..845bbd72eed0 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectRealmCache.java @@ -49,7 +49,7 @@ protected static class CacheKey implements Key { public CacheKey(List extensionRealms) { this.extensionRealms = - (extensionRealms != null) ? Collections.unmodifiableList(extensionRealms) : Collections.emptyList(); + (extensionRealms != null) ? Collections.unmodifiableList(extensionRealms) : List.of(); this.hashCode = this.extensionRealms.hashCode(); } diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/Graph.java b/impl/maven-core/src/main/java/org/apache/maven/project/Graph.java index 6baae1e00c98..921d807e45d6 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/Graph.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/Graph.java @@ -20,12 +20,12 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; class Graph { private enum DfsState { @@ -69,7 +69,7 @@ List visitAll() { } List findCycle(Vertex vertex) { - return visitCycle(Collections.singleton(vertex), new HashMap<>(), new LinkedList<>()); + return visitCycle(Set.of(vertex), new HashMap<>(), new LinkedList<>()); } private static List visitAll( diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/MavenProject.java b/impl/maven-core/src/main/java/org/apache/maven/project/MavenProject.java index 758b9936e8c0..51239ac03177 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/MavenProject.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/MavenProject.java @@ -934,7 +934,7 @@ public List getRepositories() { public List getBuildPlugins() { if (getModel().getBuild() == null) { - return Collections.emptyList(); + return List.of(); } return Collections.unmodifiableList(getModel().getBuild().getPlugins()); } @@ -1204,7 +1204,7 @@ public int hashCode() { public List getBuildExtensions() { Build build = getBuild(); if ((build == null) || (build.getExtensions() == null)) { - return Collections.emptyList(); + return List.of(); } else { return Collections.unmodifiableList(build.getExtensions()); } @@ -1637,7 +1637,7 @@ public List getCompileDependencies() { Set artifacts = getArtifacts(); if ((artifacts == null) || artifacts.isEmpty()) { - return Collections.emptyList(); + return List.of(); } List list = new ArrayList<>(artifacts.size()); @@ -1678,7 +1678,7 @@ public List getTestDependencies() { Set artifacts = getArtifacts(); if ((artifacts == null) || artifacts.isEmpty()) { - return Collections.emptyList(); + return List.of(); } List list = new ArrayList<>(artifacts.size()); @@ -1703,7 +1703,7 @@ public List getRuntimeDependencies() { Set artifacts = getArtifacts(); if ((artifacts == null) || artifacts.isEmpty()) { - return Collections.emptyList(); + return List.of(); } List list = new ArrayList<>(artifacts.size()); @@ -1783,7 +1783,7 @@ public List getSystemDependencies() { Set artifacts = getArtifacts(); if ((artifacts == null) || artifacts.isEmpty()) { - return Collections.emptyList(); + return List.of(); } List list = new ArrayList<>(artifacts.size()); @@ -1860,7 +1860,7 @@ public Map getExtensionArtifactMap() { @Deprecated public List getReportPlugins() { if (getModel().getReporting() == null) { - return Collections.emptyList(); + return List.of(); } return Collections.unmodifiableList(getModel().getReporting().getPlugins()); } @@ -1962,6 +1962,7 @@ public void setProjectBuildingRequest(ProjectBuildingRequest projectBuildingRequ * @return the rootDirectory for this project * @throws IllegalStateException if the rootDirectory cannot be found */ + @Nonnull public Path getRootDirectory() { if (rootDirectory == null) { throw new IllegalStateException(RootLocator.UNABLE_TO_FIND_ROOT_PROJECT_MESSAGE); diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java b/impl/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java index f8605c4cda77..617463d9f53b 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/ProjectModelResolver.java @@ -127,7 +127,7 @@ public void addRepository(final Repository repository, boolean replace) throws I } List newRepositories = - Collections.singletonList(ArtifactDescriptorUtils.toRemoteRepository(repository.getDelegate())); + List.of(ArtifactDescriptorUtils.toRemoteRepository(repository.getDelegate())); if (ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT.equals(repositoryMerging)) { repositories = remoteRepositoryManager.aggregateRepositories(session, repositories, newRepositories, true); diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java b/impl/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java index 32be1fee5988..57c352a8784a 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java @@ -262,11 +262,11 @@ public boolean hasMultipleProjects() { } public List getDependents(String id) { - return graph.getVertex(id).getParents().stream().map(Vertex::getLabel).collect(Collectors.toList()); + return graph.getVertex(id).getParents().stream().map(Vertex::getLabel).toList(); } public List getDependencies(String id) { - return graph.getVertex(id).getChildren().stream().map(Vertex::getLabel).collect(Collectors.toList()); + return graph.getVertex(id).getChildren().stream().map(Vertex::getLabel).toList(); } public static String getId(MavenProject project) { diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java b/impl/maven-core/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java index aa6a36c2529e..bac60314944b 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/artifact/AttachedArtifact.java @@ -19,7 +19,6 @@ package org.apache.maven.project.artifact; import java.util.Collection; -import java.util.Collections; import java.util.List; import org.apache.maven.artifact.Artifact; @@ -52,7 +51,7 @@ public AttachedArtifact(Artifact parent, String type, String classifier, Artifac artifactHandler, parent.isOptional()); - setDependencyTrail(Collections.singletonList(parent.getId())); + setDependencyTrail(List.of(parent.getId())); this.parent = parent; @@ -162,6 +161,6 @@ public void addMetadata(ArtifactMetadata metadata) { } public Collection getMetadataList() { - return Collections.emptyList(); + return List.of(); } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java b/impl/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java index 18c3442d0635..8b772d1f79b0 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/artifact/PluginArtifact.java @@ -18,7 +18,6 @@ */ package org.apache.maven.project.artifact; -import java.util.Collections; import java.util.List; import org.apache.maven.artifact.Artifact; @@ -52,7 +51,7 @@ public List getDependencies() { } public List getManagedDependencies() { - return Collections.emptyList(); + return List.of(); } // TODO: this is duplicate of MavenPluginArtifactHandlerProvider provided one diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java b/impl/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java index c040fc93446e..20a3bdf573ef 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/artifact/ProjectArtifact.java @@ -57,7 +57,7 @@ public List getDependencies() { public List getManagedDependencies() { DependencyManagement depMngt = project.getModel().getDependencyManagement(); - return (depMngt != null) ? Collections.unmodifiableList(depMngt.getDependencies()) : Collections.emptyList(); + return (depMngt != null) ? Collections.unmodifiableList(depMngt.getDependencies()) : List.of(); } // TODO: this is duplicate of PomArtifactHandlerProvider provided one diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/collector/MultiModuleCollectionStrategy.java b/impl/maven-core/src/main/java/org/apache/maven/project/collector/MultiModuleCollectionStrategy.java index 3e6616a80cd4..73641d3119d8 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/collector/MultiModuleCollectionStrategy.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/collector/MultiModuleCollectionStrategy.java @@ -25,7 +25,6 @@ import java.io.File; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.function.Predicate; @@ -63,7 +62,7 @@ public MultiModuleCollectionStrategy(ModelProcessor modelProcessor, ProjectsSele @Override public List collectProjects(MavenExecutionRequest request) throws ProjectBuildingException { File moduleProjectPomFile = getRootProject(request); - List files = Collections.singletonList(moduleProjectPomFile.getAbsoluteFile()); + List files = List.of(moduleProjectPomFile.getAbsoluteFile()); try { List projects = projectsSelector.selectProjects(files, request); boolean isRequestedProjectCollected = isRequestedProjectCollected(request, projects); @@ -78,7 +77,7 @@ public List collectProjects(MavenExecutionRequest request) throws System.lineSeparator(), moduleProjectPomFile.getAbsolutePath(), request.getPom().getAbsolutePath()); - return Collections.emptyList(); + return List.of(); } } catch (ProjectBuildingException e) { boolean fallThrough = isModuleOutsideRequestScopeDependingOnPluginModule(request, e); @@ -90,7 +89,7 @@ public List collectProjects(MavenExecutionRequest request) throws + "plugin extension which still needed to be built. This is not possible within the same " + "reactor build. Another project collection strategy will be executed as result.", System.lineSeparator()); - return Collections.emptyList(); + return List.of(); } throw e; @@ -153,7 +152,7 @@ private boolean isModuleOutsideRequestScopeDependingOnPluginModule( .map(requestPomProject -> { List modules = requestPomProject.getCollectedProjects() != null ? requestPomProject.getCollectedProjects() - : Collections.emptyList(); + : List.of(); List projectsInRequestScope = new ArrayList<>(modules); projectsInRequestScope.add(requestPomProject); diff --git a/impl/maven-core/src/main/java/org/apache/maven/project/collector/RequestPomCollectionStrategy.java b/impl/maven-core/src/main/java/org/apache/maven/project/collector/RequestPomCollectionStrategy.java index 8ba724e8f123..4232beeb4a1f 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/project/collector/RequestPomCollectionStrategy.java +++ b/impl/maven-core/src/main/java/org/apache/maven/project/collector/RequestPomCollectionStrategy.java @@ -23,7 +23,6 @@ import javax.inject.Singleton; import java.io.File; -import java.util.Collections; import java.util.List; import org.apache.maven.execution.MavenExecutionRequest; @@ -45,7 +44,7 @@ public RequestPomCollectionStrategy(ProjectsSelector projectsSelector) { @Override public List collectProjects(MavenExecutionRequest request) throws ProjectBuildingException { - List files = Collections.singletonList(request.getPom().getAbsoluteFile()); + List files = List.of(request.getPom().getAbsoluteFile()); return projectsSelector.selectProjects(files, request); } } diff --git a/impl/maven-core/src/main/java/org/apache/maven/resolver/MavenChainedWorkspaceReader.java b/impl/maven-core/src/main/java/org/apache/maven/resolver/MavenChainedWorkspaceReader.java index 06ac4b0a0cf1..8417bc88ba86 100644 --- a/impl/maven-core/src/main/java/org/apache/maven/resolver/MavenChainedWorkspaceReader.java +++ b/impl/maven-core/src/main/java/org/apache/maven/resolver/MavenChainedWorkspaceReader.java @@ -109,7 +109,7 @@ public void setReaders(Collection readers) { requireNonNull(readers, "readers"); // skip possible null entries this.readers = Collections.unmodifiableList( - new ArrayList<>(readers.stream().filter(Objects::nonNull).collect(Collectors.toList()))); + new ArrayList<>(readers.stream().filter(Objects::nonNull).toList())); Key key = new Key(this.readers); this.repository = new WorkspaceRepository(key.getContentType(), key); } @@ -130,7 +130,7 @@ private static class Key { private final String type; Key(Collection readers) { - keys = readers.stream().map(r -> r.getRepository().getKey()).collect(Collectors.toList()); + keys = readers.stream().map(r -> r.getRepository().getKey()).toList(); type = readers.stream().map(r -> r.getRepository().getContentType()).collect(Collectors.joining("+")); } diff --git a/impl/maven-core/src/test/java/org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilterTest.java b/impl/maven-core/src/test/java/org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilterTest.java index 4347e1a8dcc1..8556d27aed9c 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilterTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/artifact/resolver/filter/ExclusionArtifactFilterTest.java @@ -19,7 +19,7 @@ package org.apache.maven.artifact.resolver.filter; import java.util.Arrays; -import java.util.Collections; +import java.util.List; import org.apache.maven.artifact.Artifact; import org.apache.maven.model.Exclusion; @@ -51,7 +51,7 @@ void testExcludeExact() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("org.apache.maven"); exclusion.setArtifactId("maven-core"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(false)); } @@ -61,7 +61,7 @@ void testExcludeNoMatch() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("org.apache.maven"); exclusion.setArtifactId("maven-model"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(true)); } @@ -71,7 +71,7 @@ void testExcludeGroupIdWildcard() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("*"); exclusion.setArtifactId("maven-core"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(false)); } @@ -81,7 +81,7 @@ void testExcludeGroupIdWildcardNoMatch() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("*"); exclusion.setArtifactId("maven-compat"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(true)); } @@ -91,7 +91,7 @@ void testExcludeArtifactIdWildcard() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("org.apache.maven"); exclusion.setArtifactId("*"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(false)); } @@ -101,7 +101,7 @@ void testExcludeArtifactIdWildcardNoMatch() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("org.apache.groovy"); exclusion.setArtifactId("*"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(true)); } @@ -111,7 +111,7 @@ void testExcludeAllWildcard() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("*"); exclusion.setArtifactId("*"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(false)); } @@ -151,7 +151,7 @@ void testExcludeWithGlob() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("*"); exclusion.setArtifactId("maven-*"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(false)); assertThat(filter.include(artifact2), is(true)); @@ -162,7 +162,7 @@ void testExcludeWithGlobStar() { Exclusion exclusion = new Exclusion(); exclusion.setGroupId("**"); exclusion.setArtifactId("maven-**"); - ExclusionArtifactFilter filter = new ExclusionArtifactFilter(Collections.singletonList(exclusion)); + ExclusionArtifactFilter filter = new ExclusionArtifactFilter(List.of(exclusion)); assertThat(filter.include(artifact), is(false)); assertThat(filter.include(artifact2), is(true)); diff --git a/impl/maven-core/src/test/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzerTest.java b/impl/maven-core/src/test/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzerTest.java index 6ed0ecfb8b44..8095b766aaee 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzerTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzerTest.java @@ -18,6 +18,7 @@ */ package org.apache.maven.execution; +import java.util.List; import java.util.Optional; import org.apache.maven.lifecycle.LifecycleExecutionException; @@ -27,7 +28,6 @@ import org.junit.jupiter.api.Test; import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; @@ -82,7 +82,7 @@ void projectsDependingOnFailedProjectsAreNotExcluded() { MavenProject projectA = createSucceededMavenProject("A"); MavenProject projectB = createFailedMavenProject("B"); MavenProject projectC = createSkippedMavenProject("C"); - projectC.setDependencies(singletonList(toDependency(projectB))); + projectC.setDependencies(List.of(toDependency(projectB))); executionResult.setTopologicallySortedProjects(asList(projectA, projectB, projectC)); Optional result = analyzer.determineBuildResumptionData(executionResult); diff --git a/impl/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java b/impl/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java index cabbf41e1857..ad3c56a4aa68 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java @@ -57,7 +57,6 @@ import static java.util.Arrays.asList; import static java.util.Collections.emptyList; -import static java.util.Collections.singletonList; import static java.util.function.Function.identity; import static java.util.stream.Collectors.toList; import static org.apache.maven.execution.MavenExecutionRequest.REACTOR_MAKE_DOWNSTREAM; @@ -348,7 +347,7 @@ void testProcessPackagingAttribute() throws ProjectBuildingException { MavenProject projectParent = getMavenProject(PARENT_MODULE); MavenProject projectModuleD = getMavenProject(MODULE_D, projectParent, "bom"); - projectParent.setCollectedProjects(singletonList(projectModuleD)); + projectParent.setCollectedProjects(List.of(projectModuleD)); // Set up needed mocks when(session.getRequest()).thenReturn(mavenExecutionRequest); @@ -404,8 +403,8 @@ void before() throws Exception { .collect(Collectors.toMap(MavenProject::getArtifactId, identity())); // Set dependencies and modules - projectModuleB.setDependencies(singletonList(toDependency(projectModuleA))); - projectModuleC2.setDependencies(singletonList(toDependency(projectModuleB))); + projectModuleB.setDependencies(List.of(toDependency(projectModuleA))); + projectModuleC2.setDependencies(List.of(toDependency(projectModuleB))); projectParent.setCollectedProjects(asList( projectIndependentModule, projectModuleA, diff --git a/impl/maven-core/src/test/java/org/apache/maven/graph/ProjectSelectorTest.java b/impl/maven-core/src/test/java/org/apache/maven/graph/ProjectSelectorTest.java index 2cdeac39b84b..47ee512b9bd3 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/graph/ProjectSelectorTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/graph/ProjectSelectorTest.java @@ -21,7 +21,6 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -117,7 +116,7 @@ void getOptionalProjectsBySelectorsReturnsMatches() { selectors.add(":optional"); final MavenProject mavenProject = createMavenProject("maven-core"); - final List listOfProjects = Collections.singletonList(mavenProject); + final List listOfProjects = List.of(mavenProject); final Set optionalProjectsBySelectors = sut.getOptionalProjectsBySelectors(mavenExecutionRequest, listOfProjects, selectors); @@ -133,7 +132,7 @@ void getRequiredProjectsBySelectorsThrowsMavenExecutionException() { selectors.add(":required"); final MavenProject mavenProject = createMavenProject("maven-core"); - final List listOfProjects = Collections.singletonList(mavenProject); + final List listOfProjects = List.of(mavenProject); final MavenExecutionException exception = assertThrows( MavenExecutionException.class, @@ -148,7 +147,7 @@ void getRequiredProjectsBySelectorsReturnsProject() throws MavenExecutionExcepti selectors.add(":maven-core"); final MavenProject mavenProject = createMavenProject("maven-core"); - final List listOfProjects = Collections.singletonList(mavenProject); + final List listOfProjects = List.of(mavenProject); final Set requiredProjectsBySelectors = sut.getRequiredProjectsBySelectors(mavenExecutionRequest, listOfProjects, selectors); @@ -166,8 +165,8 @@ void getRequiredProjectsBySelectorsReturnsProjectWithChildProjects() throws Mave final MavenProject mavenProject = createMavenProject("maven-core"); final MavenProject child = createMavenProject("maven-core-child"); - mavenProject.setCollectedProjects(Collections.singletonList(child)); - final List listOfProjects = Collections.singletonList(mavenProject); + mavenProject.setCollectedProjects(List.of(child)); + final List listOfProjects = List.of(mavenProject); final Set requiredProjectsBySelectors = sut.getRequiredProjectsBySelectors(mavenExecutionRequest, listOfProjects, selectors); @@ -185,8 +184,8 @@ void getOptionalProjectsBySelectorsReturnsProjectWithChildProjects() { final MavenProject mavenProject = createMavenProject("maven-core"); final MavenProject child = createMavenProject("maven-core-child"); - mavenProject.setCollectedProjects(Collections.singletonList(child)); - final List listOfProjects = Collections.singletonList(mavenProject); + mavenProject.setCollectedProjects(List.of(child)); + final List listOfProjects = List.of(mavenProject); final Set optionalProjectsBySelectors = sut.getOptionalProjectsBySelectors(mavenExecutionRequest, listOfProjects, selectors); diff --git a/impl/maven-core/src/test/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactoryTest.java b/impl/maven-core/src/test/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactoryTest.java index 8b80dc0efd60..7227f8a3b98c 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactoryTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactoryTest.java @@ -22,7 +22,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Properties; @@ -83,12 +82,7 @@ public class DefaultRepositorySystemSessionFactoryTest { @Test void isNoSnapshotUpdatesTest() throws InvalidRepositoryException { DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); MavenExecutionRequest request = new DefaultMavenExecutionRequest(); request.setLocalRepository(getLocalRepository()); @@ -105,12 +99,7 @@ void isNoSnapshotUpdatesTest() throws InvalidRepositoryException { @Test void isSnapshotUpdatesTest() throws InvalidRepositoryException { DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); MavenExecutionRequest request = new DefaultMavenExecutionRequest(); request.setLocalRepository(getLocalRepository()); @@ -139,12 +128,7 @@ void wagonProviderConfigurationTest() throws InvalidRepositoryException { request.setServers(servers); DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); PlexusConfiguration plexusConfiguration = (PlexusConfiguration) systemSessionFactory .newRepositorySession(request) @@ -181,12 +165,7 @@ void httpConfigurationWithHttpHeadersTest() throws InvalidRepositoryException { request.setServers(servers); DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); Map headers = (Map) systemSessionFactory .newRepositorySession(request) @@ -217,12 +196,7 @@ void connectTimeoutConfigurationTest() throws InvalidRepositoryException { request.setServers(servers); DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); int connectionTimeout = (Integer) systemSessionFactory .newRepositorySession(request) @@ -257,12 +231,7 @@ void connectionTimeoutFromHttpConfigurationTest() throws InvalidRepositoryExcept request.setServers(servers); DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); int connectionTimeout = (Integer) systemSessionFactory .newRepositorySession(request) @@ -291,12 +260,7 @@ void requestTimeoutConfigurationTest() throws InvalidRepositoryException { request.setServers(servers); DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); int requestTimeout = (Integer) systemSessionFactory .newRepositorySession(request) @@ -331,12 +295,7 @@ void readTimeoutFromHttpConfigurationTest() throws InvalidRepositoryException { request.setServers(servers); DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); int requestTimeout = (Integer) systemSessionFactory .newRepositorySession(request) @@ -348,12 +307,7 @@ void readTimeoutFromHttpConfigurationTest() throws InvalidRepositoryException { @Test void transportConfigurationTest() throws InvalidRepositoryException { DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); MavenExecutionRequest request = new DefaultMavenExecutionRequest(); request.setLocalRepository(getLocalRepository()); @@ -393,12 +347,7 @@ void transportConfigurationTest() throws InvalidRepositoryException { @Test void versionFilteringTest() throws InvalidRepositoryException { DefaultRepositorySystemSessionFactory systemSessionFactory = new DefaultRepositorySystemSessionFactory( - aetherRepositorySystem, - eventSpyDispatcher, - information, - defaultTypeRegistry, - versionScheme, - Collections.emptyMap()); + aetherRepositorySystem, eventSpyDispatcher, information, defaultTypeRegistry, versionScheme, Map.of()); MavenExecutionRequest request = new DefaultMavenExecutionRequest(); request.setLocalRepository(getLocalRepository()); diff --git a/impl/maven-core/src/test/java/org/apache/maven/internal/impl/DefaultSessionTest.java b/impl/maven-core/src/test/java/org/apache/maven/internal/impl/DefaultSessionTest.java index a25276b22ec3..385ad5f7759d 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/internal/impl/DefaultSessionTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/internal/impl/DefaultSessionTest.java @@ -19,7 +19,7 @@ package org.apache.maven.internal.impl; import java.nio.file.Paths; -import java.util.Collections; +import java.util.List; import org.apache.maven.execution.DefaultMavenExecutionRequest; import org.apache.maven.execution.MavenSession; @@ -40,8 +40,7 @@ void testRootDirectoryWithNull() { RepositorySystemSession rss = new DefaultRepositorySystemSession(h -> false); DefaultMavenExecutionRequest mer = new DefaultMavenExecutionRequest(); MavenSession ms = new MavenSession(null, rss, mer, null); - DefaultSession session = - new DefaultSession(ms, mock(RepositorySystem.class), Collections.emptyList(), null, null, null); + DefaultSession session = new DefaultSession(ms, mock(RepositorySystem.class), List.of(), null, null, null); assertEquals( RootLocator.UNABLE_TO_FIND_ROOT_PROJECT_MESSAGE, @@ -55,8 +54,7 @@ void testRootDirectory() { DefaultMavenExecutionRequest mer = new DefaultMavenExecutionRequest(); MavenSession ms = new MavenSession(null, rss, mer, null); ms.getRequest().setRootDirectory(Paths.get("myRootDirectory")); - DefaultSession session = - new DefaultSession(ms, mock(RepositorySystem.class), Collections.emptyList(), null, null, null); + DefaultSession session = new DefaultSession(ms, mock(RepositorySystem.class), List.of(), null, null, null); assertEquals(Paths.get("myRootDirectory"), session.getRootDirectory()); } diff --git a/impl/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java b/impl/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java index 7bb328744c18..a8210392d1ca 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java +++ b/impl/maven-core/src/test/java/org/apache/maven/internal/impl/TestApi.java @@ -24,12 +24,10 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.stream.Collectors; import org.apache.maven.api.Artifact; import org.apache.maven.api.ArtifactCoordinates; @@ -125,13 +123,13 @@ void setup() { DefaultSession session = new DefaultSession( ms, repositorySystem, - Collections.emptyList(), + List.of(), mavenRepositorySystem, new DefaultLookup(plexusContainer), runtimeInformation); org.apache.maven.api.RemoteRepository remoteRepository = session.getRemoteRepository( new RemoteRepository.Builder("mirror", "default", "file:target/test-classes/repo").build()); - this.session = session.withRemoteRepositories(Collections.singletonList(remoteRepository)); + this.session = session.withRemoteRepositories(List.of(remoteRepository)); InternalSession.associate(rss, this.session); sessionScope.enter(); sessionScope.seed(InternalMavenSession.class, InternalMavenSession.from(this.session)); @@ -243,7 +241,7 @@ void testProjectDependencies() { List deps2 = result.getNodes().stream() .map(Node::getDependency) .filter(Objects::nonNull) - .collect(Collectors.toList()); + .toList(); assertEquals(deps, deps2); for (Dependency dep : deps2) { dep.getVersion(); diff --git a/impl/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java b/impl/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java index 0856e5ce6e52..0dbc789e7e9c 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/lifecycle/DefaultLifecyclesTest.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -79,8 +78,7 @@ void testSiteLifecycle() { @Test void testCustomLifecycle() throws ComponentLookupException { List myLifecycles = new ArrayList<>(); - Lifecycle myLifecycle = - new Lifecycle("etl", Arrays.asList("extract", "transform", "load"), Collections.emptyMap()); + Lifecycle myLifecycle = new Lifecycle("etl", Arrays.asList("extract", "transform", "load"), Map.of()); myLifecycles.add(myLifecycle); myLifecycles.addAll(defaultLifeCycles.getLifeCycles()); diff --git a/impl/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java b/impl/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java index ca7a81f0bff0..528f7251c874 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/lifecycle/LifecycleExecutorTest.java @@ -23,7 +23,6 @@ import java.io.File; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -381,7 +380,7 @@ void testExecutionListeners() throws Exception { session.setProjectDependencyGraph(new ProjectDependencyGraph() { @Override public List getUpstreamProjects(MavenProject project, boolean transitive) { - return Collections.emptyList(); + return List.of(); } @Override @@ -391,12 +390,12 @@ public List getAllProjects() { @Override public List getSortedProjects() { - return Collections.singletonList(session.getCurrentProject()); + return List.of(session.getCurrentProject()); } @Override public List getDownstreamProjects(MavenProject project, boolean transitive) { - return Collections.emptyList(); + return List.of(); } }); diff --git a/impl/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolverTest.java b/impl/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolverTest.java index 3ff43bc2d2e6..c859890a332d 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolverTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/lifecycle/internal/LifecycleDependencyResolverTest.java @@ -22,8 +22,8 @@ import java.io.File; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; +import java.util.List; import java.util.Properties; import java.util.Set; @@ -50,7 +50,7 @@ void testCachedReactorProjectDependencies() throws Exception { MavenSession session = createMavenSession( new File("src/test/projects/lifecycle-dependency-resolver/pom.xml"), new Properties(), true); Collection scopesToCollect = null; - Collection scopesToResolve = Collections.singletonList("compile"); + Collection scopesToResolve = List.of("compile"); boolean aggregating = false; Set reactorArtifacts = new HashSet<>(3); diff --git a/impl/maven-core/src/test/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanCreatorTest.java b/impl/maven-core/src/test/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanCreatorTest.java index 1881f2dcbda1..3073bb6486f7 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanCreatorTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/lifecycle/internal/concurrent/BuildPlanCreatorTest.java @@ -18,7 +18,6 @@ */ package org.apache.maven.lifecycle.internal.concurrent; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -39,7 +38,7 @@ class BuildPlanCreatorTest { void testMulti() { MavenProject project = new MavenProject(); project.setCollectedProjects(List.of()); - Map> projects = Collections.singletonMap(project, Collections.emptyList()); + Map> projects = Map.of(project, List.of()); BuildPlan plan = calculateLifecycleMappings(projects, "package"); @@ -55,8 +54,8 @@ void testCondense() { p2.setCollectedProjects(List.of()); p2.setArtifactId("p2"); Map> projects = new HashMap<>(); - projects.put(p1, Collections.emptyList()); - projects.put(p2, Collections.singletonList(p1)); + projects.put(p1, List.of()); + projects.put(p2, List.of(p1)); BuildPlan plan = calculateLifecycleMappings(projects, "verify"); plan.then(calculateLifecycleMappings(projects, "install")); @@ -87,7 +86,7 @@ void testAlias() { MavenProject p1 = new MavenProject(); p1.setArtifactId("p1"); p1.setCollectedProjects(List.of()); - Map> projects = Collections.singletonMap(p1, Collections.emptyList()); + Map> projects = Map.of(p1, List.of()); BuildPlan plan = calculateLifecycleMappings(projects, "generate-resources"); assertNotNull(plan); @@ -123,7 +122,7 @@ private void assertIsSuccessor(BuildStep predecessor, BuildStep successor) { @SuppressWarnings("checkstyle:UnusedLocalVariable") private BuildPlan calculateLifecycleMappings(Map> projects, String phase) { - DefaultLifecycleRegistry lifecycles = new DefaultLifecycleRegistry(Collections.emptyList()); + DefaultLifecycleRegistry lifecycles = new DefaultLifecycleRegistry(List.of()); BuildPlanExecutor builder = new BuildPlanExecutor(null, null, null, null, null, null, null, null, lifecycles); BuildPlanExecutor.BuildContext context = builder.new BuildContext(); return context.calculateLifecycleMappings(projects, phase); @@ -133,7 +132,7 @@ private BuildPlan calculateLifecycleMappings(Map> projects = new HashMap<>(); - projects.put(p1, Collections.emptyList()); - projects.put(p2, Collections.singletonList(p1)); + projects.put(p1, List.of()); + projects.put(p2, List.of(p1)); Lifecycle lifecycle = lifecycles.require("default"); BuildPlan plan = builder.calculateLifecycleMappings(null, projects, lifecycle, "verify"); plan.then(builder.calculateLifecycleMappings(null, projects, lifecycle, "install")); diff --git a/impl/maven-core/src/test/java/org/apache/maven/model/ModelBuilderTest.java b/impl/maven-core/src/test/java/org/apache/maven/model/ModelBuilderTest.java index 7b6ff839f27d..be2d125065cc 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/model/ModelBuilderTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/model/ModelBuilderTest.java @@ -22,7 +22,6 @@ import java.io.File; import java.nio.file.Paths; -import java.util.Collections; import java.util.List; import org.apache.maven.SimpleLookup; @@ -88,8 +87,8 @@ void testModelBuilder() throws Exception { null); InternalSession.associate(rsession, session); - List results = projectBuilder.build( - Collections.singletonList(new File("src/test/resources/projects/tree/pom.xml")), true, request); + List results = + projectBuilder.build(List.of(new File("src/test/resources/projects/tree/pom.xml")), true, request); assertEquals(3, results.size()); } diff --git a/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExceptionTest.java b/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExceptionTest.java index 4dc715891b6a..aef79681d469 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExceptionTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExceptionTest.java @@ -18,7 +18,7 @@ */ package org.apache.maven.plugin; -import java.util.Collections; +import java.util.List; import org.apache.maven.plugin.descriptor.MojoDescriptor; import org.apache.maven.plugin.descriptor.Parameter; @@ -51,8 +51,7 @@ void testMissingRequiredStringArrayTypeParameter() { parameter.setRequired(true); - PluginParameterException exception = - new PluginParameterException(mojoDescriptor, Collections.singletonList(parameter)); + PluginParameterException exception = new PluginParameterException(mojoDescriptor, List.of(parameter)); assertEquals( "One or more required plugin parameters are invalid/missing for 'goalPrefix:goal'" + LS @@ -83,8 +82,7 @@ void testMissingRequiredCollectionTypeParameter() { parameter.setRequired(true); - PluginParameterException exception = - new PluginParameterException(mojoDescriptor, Collections.singletonList(parameter)); + PluginParameterException exception = new PluginParameterException(mojoDescriptor, List.of(parameter)); assertEquals( "One or more required plugin parameters are invalid/missing for 'goalPrefix:goal'" + LS @@ -115,8 +113,7 @@ void testMissingRequiredMapTypeParameter() { parameter.setRequired(true); - PluginParameterException exception = - new PluginParameterException(mojoDescriptor, Collections.singletonList(parameter)); + PluginParameterException exception = new PluginParameterException(mojoDescriptor, List.of(parameter)); assertEquals( "One or more required plugin parameters are invalid/missing for 'goalPrefix:goal'" + LS @@ -147,8 +144,7 @@ void testMissingRequiredPropertiesTypeParameter() { parameter.setRequired(true); - PluginParameterException exception = - new PluginParameterException(mojoDescriptor, Collections.singletonList(parameter)); + PluginParameterException exception = new PluginParameterException(mojoDescriptor, List.of(parameter)); assertEquals( "One or more required plugin parameters are invalid/missing for 'goalPrefix:goal'" + LS diff --git a/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java b/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java index 0aa04debdf3c..b73da3313ac7 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java @@ -25,7 +25,6 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Objects; @@ -341,11 +340,11 @@ private static MavenSession createSession(PlexusContainer container, ArtifactRep throws CycleDetectedException, DuplicateProjectException { MavenExecutionRequest request = new DefaultMavenExecutionRequest() .setSystemProperties(properties) - .setGoals(Collections.emptyList()) + .setGoals(List.of()) .setBaseDirectory(new File("")) .setLocalRepository(repo); - return new MavenSession(container, request, new DefaultMavenExecutionResult(), Collections.emptyList()); + return new MavenSession(container, request, new DefaultMavenExecutionResult(), List.of()); } @Test @@ -380,7 +379,7 @@ void testShouldExtractPluginArtifacts() throws Exception { Artifact artifact = createArtifact("testGroup", "testArtifact", "1.0"); - pd.setArtifacts(Collections.singletonList(artifact)); + pd.setArtifacts(List.of(artifact)); ExpressionEvaluator ee = createExpressionEvaluator(createDefaultProject(), pd, new Properties()); diff --git a/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java b/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java index 4b25cf559bcc..57cf8cdb7f0d 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java +++ b/impl/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorV4Test.java @@ -25,7 +25,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collection; -import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Properties; @@ -296,7 +296,7 @@ private static MavenSession createSession(PlexusContainer container, ArtifactRep throws CycleDetectedException, DuplicateProjectException, NoLocalRepositoryManagerException { MavenExecutionRequest request = new DefaultMavenExecutionRequest() .setSystemProperties(properties) - .setGoals(Collections.emptyList()) + .setGoals(List.of()) .setBaseDirectory(new File("")) .setLocalRepository(repo); @@ -306,7 +306,7 @@ private static MavenSession createSession(PlexusContainer container, ArtifactRep .newInstance(repositorySession, new LocalRepository(repo.getUrl()))); MavenSession session = new MavenSession(container, repositorySession, request, new DefaultMavenExecutionResult()); - session.setProjects(Collections.emptyList()); + session.setProjects(List.of()); return session; } @@ -405,7 +405,7 @@ private MojoExecution newMojoExecution(Session session) { new DefaultArtifactHandler("maven-plugin")); pd.setPluginArtifact(artifact); - pd.setArtifacts(Collections.singletonList(artifact)); + pd.setArtifacts(List.of(artifact)); DefaultDependencyNode node = new DefaultDependencyNode( new org.eclipse.aether.graph.Dependency(RepositoryUtils.toArtifact(artifact), "compile")); pd.setDependencyNode(node); diff --git a/impl/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleBindingsInjector.java b/impl/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleBindingsInjector.java index 38331d7c0ae2..99e3bf75ccfe 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleBindingsInjector.java +++ b/impl/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleBindingsInjector.java @@ -53,26 +53,31 @@ public class EmptyLifecycleBindingsInjector extends DefaultLifecycleBindingsInje private static final LifecycleRegistry EMPTY_LIFECYCLE_REGISTRY = new LifecycleRegistry() { @Override + @Nonnull public Iterator iterator() { return Collections.emptyIterator(); } @Override - public Optional lookup(String id) { + @Nonnull + public Optional lookup(@Nonnull String id) { return Optional.empty(); } @Override - public List computePhases(Lifecycle lifecycle) { + @Nonnull + public List computePhases(@Nonnull Lifecycle lifecycle) { return List.of(); } }; private static final PackagingRegistry EMPTY_PACKAGING_REGISTRY = new PackagingRegistry() { @Override - public Optional lookup(String id) { + @Nonnull + public Optional lookup(@Nonnull String id) { return Optional.of(new Packaging() { @Override + @Nonnull public String id() { return id; } @@ -83,6 +88,7 @@ public Type type() { } @Override + @Nonnull public Map plugins() { if ("JAR".equals(id)) { return Map.of( @@ -137,6 +143,7 @@ public Optional lookup(String id) { } @Override + @Nonnull public Iterator iterator() { return getDelegate().iterator(); } @@ -146,14 +153,16 @@ protected LifecycleRegistry getDelegate() { } @Override - public List computePhases(Lifecycle lifecycle) { + @Nonnull + public List computePhases(@Nonnull Lifecycle lifecycle) { return List.of(); } } static class WrapperPackagingRegistry implements PackagingRegistry { @Override - public Optional lookup(String id) { + @Nonnull + public Optional lookup(@Nonnull String id) { return getDelegate().lookup(id); } diff --git a/impl/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java b/impl/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java index d4559703912e..a204569c82fe 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java +++ b/impl/maven-core/src/test/java/org/apache/maven/project/EmptyLifecycleExecutor.java @@ -76,7 +76,7 @@ private Plugin newPlugin(String artifactId, String... goals) { for (String goal : goals) { PluginExecution pluginExecution = new PluginExecution(); pluginExecution.setId("default-" + goal); - pluginExecution.setGoals(Collections.singletonList(goal)); + pluginExecution.setGoals(List.of(goal)); plugin.addExecution(pluginExecution); } @@ -86,6 +86,6 @@ private Plugin newPlugin(String artifactId, String... goals) { public void calculateForkedExecutions(MojoExecution mojoExecution, MavenSession session) {} public List executeForkedExecutions(MojoExecution mojoExecution, MavenSession session) { - return Collections.emptyList(); + return List.of(); } } diff --git a/impl/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java b/impl/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java index 541ac8063c60..7ff64efe7640 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/project/ProjectBuilderTest.java @@ -122,7 +122,7 @@ void testResolveDependencies() throws Exception { // multi projects build entry point List results = getContainer() .lookup(org.apache.maven.project.ProjectBuilder.class) - .build(Collections.singletonList(pomFile), false, configuration); + .build(List.of(pomFile), false, configuration); assertEquals(1, results.size()); MavenProject mavenProject = results.get(0).getProject(); assertEquals(1, mavenProject.getArtifacts().size()); @@ -156,7 +156,7 @@ void testDontResolveDependencies() throws Exception { // multi projects build entry point List results = getContainer() .lookup(org.apache.maven.project.ProjectBuilder.class) - .build(Collections.singletonList(pomFile), false, configuration); + .build(List.of(pomFile), false, configuration); assertEquals(1, results.size()); MavenProject mavenProject = results.get(0).getProject(); assertEquals(0, mavenProject.getArtifacts().size()); @@ -213,8 +213,7 @@ void testReadErroneousMavenProjectContainsReference() throws Exception { // multi projects build entry point ProjectBuildingException ex2 = assertThrows( - ProjectBuildingException.class, - () -> projectBuilder.build(Collections.singletonList(pomFile), true, configuration)); + ProjectBuildingException.class, () -> projectBuilder.build(List.of(pomFile), true, configuration)); assertEquals(1, ex2.getResults().size()); MavenProject project2 = ex2.getResults().get(0).getProject(); @@ -239,8 +238,7 @@ void testReadInvalidPom() throws Exception { // multi projects build entry point ProjectBuildingException pex = assertThrows( - ProjectBuildingException.class, - () -> projectBuilder.build(Collections.singletonList(pomFile), false, configuration)); + ProjectBuildingException.class, () -> projectBuilder.build(List.of(pomFile), false, configuration)); assertEquals(1, pex.getResults().size()); assertNotNull(pex.getResults().get(0).getPomFile()); assertThat(pex.getResults().get(0).getProblems().size(), greaterThan(0)); @@ -266,8 +264,7 @@ void testReadParentAndChildWithRegularVersionSetParentFile() throws Exception { // read poms separately boolean parentFileWasFoundOnChild = false; for (File file : toRead) { - List results = - projectBuilder.build(Collections.singletonList(file), false, configuration); + List results = projectBuilder.build(List.of(file), false, configuration); assertResultShowNoError(results); MavenProject project = findChildProject(results); if (project != null) { @@ -310,8 +307,7 @@ void testBuildProperties() throws Exception { ProjectBuildingRequest configuration = new DefaultProjectBuildingRequest(); configuration.setRepositorySession(mavenSession.getRepositorySession()); configuration.setResolveDependencies(true); - List result = - projectBuilder.build(Collections.singletonList(file), false, configuration); + List result = projectBuilder.build(List.of(file), false, configuration); MavenProject project = result.get(0).getProject(); // verify a few typical parameters are not duplicated assertEquals(1, project.getTestCompileSourceRoots().size()); diff --git a/impl/maven-core/src/test/java/org/apache/maven/project/ProjectModelResolverTest.java b/impl/maven-core/src/test/java/org/apache/maven/project/ProjectModelResolverTest.java index 522fc58e0326..2c2bda20485d 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/project/ProjectModelResolverTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/project/ProjectModelResolverTest.java @@ -19,7 +19,6 @@ package org.apache.maven.project; import java.io.File; -import java.util.Collections; import java.util.List; import org.apache.maven.artifact.InvalidRepositoryException; @@ -208,6 +207,6 @@ private List getRemoteRepositories() throws InvalidRepositoryE repoDir.toURI().toASCIIString()) .build(); - return Collections.singletonList(remoteRepository); + return List.of(remoteRepository); } } diff --git a/impl/maven-core/src/test/java/org/apache/maven/project/ProjectSorterTest.java b/impl/maven-core/src/test/java/org/apache/maven/project/ProjectSorterTest.java index ada0b514b43c..f48a82dcc6c4 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/project/ProjectSorterTest.java +++ b/impl/maven-core/src/test/java/org/apache/maven/project/ProjectSorterTest.java @@ -19,7 +19,6 @@ package org.apache.maven.project; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import org.apache.maven.model.Build; @@ -108,7 +107,7 @@ void testShouldNotFailWhenPluginDepReferencesCurrentProject() throws Exception { build.addPlugin(plugin); - new ProjectSorter(Collections.singletonList(project)); + new ProjectSorter(List.of(project)); } @Test @@ -129,7 +128,7 @@ void testShouldNotFailWhenManagedPluginDepReferencesCurrentProject() throws Exce build.setPluginManagement(pMgmt); - new ProjectSorter(Collections.singletonList(project)); + new ProjectSorter(List.of(project)); } @Test @@ -142,7 +141,7 @@ void testShouldNotFailWhenProjectReferencesNonExistentProject() throws Exception build.addExtension(extension); - new ProjectSorter(Collections.singletonList(project)); + new ProjectSorter(List.of(project)); } @Test diff --git a/impl/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomAttributeIterator.java b/impl/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomAttributeIterator.java index 90790c929db2..35119df05ce4 100644 --- a/impl/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomAttributeIterator.java +++ b/impl/maven-core/src/test/java/org/apache/maven/project/harness/Xpp3DomAttributeIterator.java @@ -20,7 +20,6 @@ import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.apache.commons.jxpath.ri.QName; import org.apache.commons.jxpath.ri.model.NodeIterator; @@ -49,7 +48,7 @@ class Xpp3DomAttributeIterator implements NodeIterator { this.attributes = this.node.attributes().entrySet().stream() .filter(a -> a.getKey().equals(qname.getName()) || "*".equals(qname.getName())) - .collect(Collectors.toList()); + .toList(); } public NodePointer getNodePointer() { diff --git a/impl/maven-di/src/main/java/org/apache/maven/di/impl/InjectorImpl.java b/impl/maven-di/src/main/java/org/apache/maven/di/impl/InjectorImpl.java index 266122ef3155..ec4ee10d679c 100644 --- a/impl/maven-di/src/main/java/org/apache/maven/di/impl/InjectorImpl.java +++ b/impl/maven-di/src/main/java/org/apache/maven/di/impl/InjectorImpl.java @@ -220,7 +220,7 @@ public Supplier doGetCompiledBinding(Dependency dep) { if (key.getRawType() == List.class) { Set> res2 = getBindings(key.getTypeParameter(0)); if (res2 != null) { - List> list = res2.stream().map(this::compile).collect(Collectors.toList()); + List> list = res2.stream().map(this::compile).toList(); //noinspection unchecked return () -> (Q) list(list, Supplier::get); } diff --git a/impl/maven-di/src/main/java/org/apache/maven/di/impl/ReflectionUtils.java b/impl/maven-di/src/main/java/org/apache/maven/di/impl/ReflectionUtils.java index 809e39e9552e..531b88aebd12 100644 --- a/impl/maven-di/src/main/java/org/apache/maven/di/impl/ReflectionUtils.java +++ b/impl/maven-di/src/main/java/org/apache/maven/di/impl/ReflectionUtils.java @@ -31,9 +31,9 @@ import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Set; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -227,7 +227,7 @@ public static BindingInitializer fieldInjector(Key container, Field fi Key key = keyOf(container.getType(), field.getGenericType(), field); boolean optional = field.isAnnotationPresent(Nullable.class); Dependency dep = new Dependency<>(key, optional); - return new BindingInitializer(Collections.singleton(dep)) { + return new BindingInitializer(Set.of(dep)) { @Override public Consumer compile(Function, Supplier> compiler) { Supplier binding = compiler.apply(dep); diff --git a/impl/maven-di/src/main/java/org/apache/maven/di/impl/Types.java b/impl/maven-di/src/main/java/org/apache/maven/di/impl/Types.java index abf37b07332a..1a2bb32b78a2 100644 --- a/impl/maven-di/src/main/java/org/apache/maven/di/impl/Types.java +++ b/impl/maven-di/src/main/java/org/apache/maven/di/impl/Types.java @@ -25,7 +25,6 @@ import java.lang.reflect.WildcardType; import java.util.ArrayDeque; import java.util.Arrays; -import java.util.Collections; import java.util.Deque; import java.util.HashMap; import java.util.HashSet; @@ -116,7 +115,7 @@ public static Type[] getActualTypeArguments(Type type) { public static Map, Type> getTypeBindings(Type type) { Type[] typeArguments = getActualTypeArguments(type); if (typeArguments.length == 0) { - return Collections.emptyMap(); + return Map.of(); } TypeVariable[] typeVariables = getRawType(type).getTypeParameters(); Map, Type> map = new HashMap<>(); diff --git a/impl/maven-di/src/test/java/org/apache/maven/di/impl/TypeUtilsTest.java b/impl/maven-di/src/test/java/org/apache/maven/di/impl/TypeUtilsTest.java index 581b92f43e9b..2cc236e11d4e 100644 --- a/impl/maven-di/src/test/java/org/apache/maven/di/impl/TypeUtilsTest.java +++ b/impl/maven-di/src/test/java/org/apache/maven/di/impl/TypeUtilsTest.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Set; import java.util.TreeSet; -import java.util.stream.Collectors; import org.apache.maven.di.Key; import org.junit.jupiter.api.Test; @@ -41,9 +40,12 @@ void testGetSuperTypes() { Type type = new Key>() {}.getType(); Set types = Types.getAllSuperTypes(type); assertNotNull(types); - List typesStr = types.stream().map(Type::toString).sorted().collect(Collectors.toList()); - typesStr.remove("java.util.SequencedSet"); - typesStr.remove("java.util.SequencedCollection"); + List typesStr = types.stream() + .map(Type::toString) + .sorted() + .filter(s -> !"java.util.SequencedSet".equals(s) + && !"java.util.SequencedCollection".equals(s)) + .toList(); assertEquals( Arrays.asList( "class java.lang.Object", diff --git a/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/embedded/EmbeddedMavenExecutor.java b/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/embedded/EmbeddedMavenExecutor.java index 07194c279811..bd35e990ba3f 100644 --- a/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/embedded/EmbeddedMavenExecutor.java +++ b/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/embedded/EmbeddedMavenExecutor.java @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -233,7 +232,7 @@ protected Context doCreate(Path mavenHome, ExecutorRequest executorRequest) { properties.setProperty( "maven.mainClass", requireNonNull(MVN4_MAIN_CLASSES.get(ExecutorRequest.MVN), "mainClass")); System.setProperties(properties); - URLClassLoader bootClassLoader = createMavenBootClassLoader(boot, Collections.emptyList()); + URLClassLoader bootClassLoader = createMavenBootClassLoader(boot, List.of()); Thread.currentThread().setContextClassLoader(bootClassLoader); try { Class launcherClass = bootClassLoader.loadClass("org.codehaus.plexus.classworlds.launcher.Launcher"); diff --git a/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/HelperImpl.java b/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/HelperImpl.java index 9a94ddc2ddfd..2decc55a54a3 100644 --- a/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/HelperImpl.java +++ b/impl/maven-executor/src/main/java/org/apache/maven/cling/executor/internal/HelperImpl.java @@ -19,8 +19,9 @@ package org.apache.maven.cling.executor.internal; import java.nio.file.Path; -import java.util.Collections; import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.apache.maven.api.annotations.Nullable; @@ -94,8 +95,8 @@ protected Executor getExecutor(Mode mode, ExecutorRequest request) throws Execut } private Executor getExecutorByRequest(ExecutorRequest request) { - if (request.environmentVariables().orElse(Collections.emptyMap()).isEmpty() - && request.jvmArguments().orElse(Collections.emptyList()).isEmpty()) { + if (request.environmentVariables().orElse(Map.of()).isEmpty() + && request.jvmArguments().orElse(List.of()).isEmpty()) { return getExecutor(Mode.EMBEDDED, request); } else { return getExecutor(Mode.FORKED, request); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractNode.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractNode.java index ad0dea065f5c..6f0bd086f920 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractNode.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractNode.java @@ -18,10 +18,8 @@ */ package org.apache.maven.impl; -import java.util.Collections; import java.util.List; import java.util.function.Predicate; -import java.util.stream.Collectors; import org.apache.maven.api.Node; import org.apache.maven.api.NodeVisitor; @@ -45,8 +43,8 @@ public boolean accept(NodeVisitor visitor) { @Override public Node filter(Predicate filter) { List children = - getChildren().stream().filter(filter).map(n -> n.filter(filter)).collect(Collectors.toList()); - return new WrapperNode(this, Collections.unmodifiableList(children)); + getChildren().stream().filter(filter).map(n -> n.filter(filter)).toList(); + return new WrapperNode(this, children); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractSession.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractSession.java index e81a217a8e28..a8b9e07d120e 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractSession.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/AbstractSession.java @@ -33,7 +33,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Function; import java.util.function.Supplier; -import java.util.stream.Collectors; import org.apache.maven.api.Artifact; import org.apache.maven.api.ArtifactCoordinates; @@ -104,7 +103,6 @@ import org.eclipse.aether.transfer.TransferResource; import static org.apache.maven.impl.ImplUtils.map; -import static org.apache.maven.impl.ImplUtils.nonNull; public abstract class AbstractSession implements InternalSession { @@ -134,7 +132,7 @@ public AbstractSession( List repositories, List resolverRepositories, Lookup lookup) { - this.session = nonNull(session, "session"); + this.session = Objects.requireNonNull(session, "session cannot be null"); this.repositorySystem = repositorySystem; this.repositories = getRepositories(repositories, resolverRepositories); this.lookup = lookup; @@ -337,7 +335,7 @@ public LocalRepository getLocalRepository() { @Nonnull @Override public Session withLocalRepository(@Nonnull LocalRepository localRepository) { - nonNull(localRepository, "localRepository"); + Objects.requireNonNull(localRepository, "localRepository cannot be null"); if (session.getLocalRepository() != null && Objects.equals(session.getLocalRepository().getBasePath(), localRepository.getPath())) { return this; @@ -461,12 +459,12 @@ public org.eclipse.aether.artifact.Artifact toArtifact(ArtifactCoordinates coord @Override public void registerListener(@Nonnull Listener listener) { - listeners.add(nonNull(listener)); + listeners.add(Objects.requireNonNull(listener)); } @Override public void unregisterListener(@Nonnull Listener listener) { - listeners.remove(nonNull(listener)); + listeners.remove(Objects.requireNonNull(listener)); } @Nonnull @@ -616,7 +614,7 @@ public ProducedArtifact createProducedArtifact( @Override public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinates) { return getService(ArtifactResolver.class) - .resolve(this, Collections.singletonList(coordinates)) + .resolve(this, List.of(coordinates)) .getResults() .values() .iterator() @@ -633,7 +631,7 @@ public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinates) { @Override public DownloadedArtifact resolveArtifact(ArtifactCoordinates coordinates, List repositories) { return getService(ArtifactResolver.class) - .resolve(this, Collections.singletonList(coordinates), repositories) + .resolve(this, List.of(coordinates), repositories) .getResults() .values() .iterator() @@ -707,7 +705,7 @@ public DownloadedArtifact resolveArtifact(Artifact artifact, List resolveArtifacts(Artifact... artifacts) { ArtifactCoordinatesFactory acf = getService(ArtifactCoordinatesFactory.class); List coords = - Arrays.stream(artifacts).map(a -> acf.create(this, a)).collect(Collectors.toList()); + Arrays.stream(artifacts).map(a -> acf.create(this, a)).toList(); return resolveArtifacts(coords); } @@ -967,7 +965,7 @@ public ProjectScope requireProjectScope(String id) { @Override public DependencyScope requireDependencyScope(String id) { - DependencyScope scope = DependencyScope.forId(nonNull(id, "id")); + DependencyScope scope = DependencyScope.forId(Objects.requireNonNull(id, "id cannot be null")); if (scope == null) { throw new IllegalArgumentException("Invalid dependency scope: " + id); } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/AetherDependencyWrapper.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/AetherDependencyWrapper.java index a9721290c267..7a7ba5946597 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/AetherDependencyWrapper.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/AetherDependencyWrapper.java @@ -40,11 +40,13 @@ abstract class AetherDependencyWrapper { /** * The session to install / deploy / resolve artifacts and dependencies. */ + @Nonnull final InternalSession session; /** * The wrapped Eclipse Aether dependency. */ + @Nonnull final Dependency dependency; /** @@ -53,8 +55,8 @@ abstract class AetherDependencyWrapper { * @param dependency the Eclipse Aether dependency to wrap */ AetherDependencyWrapper(@Nonnull InternalSession session, @Nonnull Dependency dependency) { - this.session = Objects.requireNonNull(session, "session"); - this.dependency = Objects.requireNonNull(dependency, "dependency"); + this.session = Objects.requireNonNull(session, "session cannot be null"); + this.dependency = Objects.requireNonNull(dependency, "dependency cannot be null"); } /** diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java index c757d930ac15..6d4c5e2cc0ad 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifact.java @@ -25,19 +25,32 @@ import org.apache.maven.api.Version; import org.apache.maven.api.annotations.Nonnull; -import static org.apache.maven.impl.ImplUtils.nonNull; - /** - * A wrapper class around a maven resolver artifact. + * Default implementation of the Artifact interface. + * Wraps an Aether artifact and provides access to its properties. */ public class DefaultArtifact implements Artifact { - protected final @Nonnull InternalSession session; - protected final @Nonnull org.eclipse.aether.artifact.Artifact artifact; + /** + * The session used for artifact operations. + */ + @Nonnull + protected final InternalSession session; + + /** + * The wrapped Aether artifact. + */ + @Nonnull + protected final org.eclipse.aether.artifact.Artifact artifact; + + /** + * The unique key for this artifact. + */ + @Nonnull protected final String key; public DefaultArtifact(@Nonnull InternalSession session, @Nonnull org.eclipse.aether.artifact.Artifact artifact) { - this.session = nonNull(session, "session"); - this.artifact = nonNull(artifact, "artifact"); + this.session = Objects.requireNonNull(session, "session cannot be null"); + this.artifact = Objects.requireNonNull(artifact, "artifact cannot be null"); this.key = getGroupId() + ':' + getArtifactId() diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinates.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinates.java index 3abf27729d60..7305093bd83c 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinates.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinates.java @@ -24,8 +24,6 @@ import org.apache.maven.api.VersionConstraint; import org.apache.maven.api.annotations.Nonnull; -import static org.apache.maven.impl.ImplUtils.nonNull; - /** * A wrapper class around a maven resolver artifact. */ @@ -35,8 +33,8 @@ public class DefaultArtifactCoordinates implements ArtifactCoordinates { public DefaultArtifactCoordinates( @Nonnull InternalSession session, @Nonnull org.eclipse.aether.artifact.Artifact coordinates) { - this.session = nonNull(session, "session"); - this.coordinates = nonNull(coordinates, "coordinates"); + this.session = Objects.requireNonNull(session, "session cannot be null"); + this.coordinates = Objects.requireNonNull(coordinates, "coordinates cannot be null"); } public org.eclipse.aether.artifact.Artifact getCoordinates() { diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinatesFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinatesFactory.java index 6832ae6f164b..ac7dd2071374 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinatesFactory.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactCoordinatesFactory.java @@ -18,6 +18,8 @@ */ package org.apache.maven.impl; +import java.util.Objects; + import org.apache.maven.api.ArtifactCoordinates; import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.di.Named; @@ -26,14 +28,12 @@ import org.apache.maven.api.services.ArtifactCoordinatesFactoryRequest; import org.eclipse.aether.artifact.ArtifactType; -import static org.apache.maven.impl.ImplUtils.nonNull; - @Named @Singleton public class DefaultArtifactCoordinatesFactory implements ArtifactCoordinatesFactory { @Override public ArtifactCoordinates create(@Nonnull ArtifactCoordinatesFactoryRequest request) { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); if (request.getCoordinatesString() != null) { return new DefaultArtifactCoordinates( diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java index 572522b646b8..da29a0cff637 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactDeployer.java @@ -19,6 +19,7 @@ package org.apache.maven.impl; import java.util.Collection; +import java.util.Objects; import org.apache.maven.api.ProducedArtifact; import org.apache.maven.api.RemoteRepository; @@ -31,8 +32,6 @@ import org.eclipse.aether.deployment.DeployRequest; import org.eclipse.aether.deployment.DeploymentException; -import static org.apache.maven.impl.ImplUtils.nonNull; - /** * Implementation of {@link ArtifactDeployer} service. */ @@ -42,10 +41,12 @@ public class DefaultArtifactDeployer implements ArtifactDeployer { @Override public void deploy(@Nonnull ArtifactDeployerRequest request) { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); - Collection artifacts = nonNull(request.getArtifacts(), "request.artifacts"); - RemoteRepository repository = nonNull(request.getRepository(), "request.repository"); + Collection artifacts = + Objects.requireNonNull(request.getArtifacts(), "request.artifacts cannot be null"); + RemoteRepository repository = + Objects.requireNonNull(request.getRepository(), "request.repository cannot be null"); try { DeployRequest deployRequest = new DeployRequest() .setRepository(session.toRepository(repository)) diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java index 40af9412c7c1..67e4a4e16f3a 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactFactory.java @@ -18,6 +18,8 @@ */ package org.apache.maven.impl; +import java.util.Objects; + import org.apache.maven.api.Artifact; import org.apache.maven.api.ProducedArtifact; import org.apache.maven.api.annotations.Nonnull; @@ -27,14 +29,12 @@ import org.apache.maven.api.services.ArtifactFactoryRequest; import org.eclipse.aether.artifact.ArtifactType; -import static org.apache.maven.impl.ImplUtils.nonNull; - @Named @Singleton public class DefaultArtifactFactory implements ArtifactFactory { @Override public Artifact create(@Nonnull ArtifactFactoryRequest request) { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); ArtifactType type = null; if (request.getType() != null) { @@ -59,7 +59,7 @@ public Artifact create(@Nonnull ArtifactFactoryRequest request) { @Override public ProducedArtifact createProduced(@Nonnull ArtifactFactoryRequest request) { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); ArtifactType type = null; if (request.getType() != null) { diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java index e3b1936f30fd..dde05d39d44e 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactInstaller.java @@ -18,6 +18,8 @@ */ package org.apache.maven.impl; +import java.util.Objects; + import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.di.Inject; import org.apache.maven.api.di.Named; @@ -29,8 +31,6 @@ import org.eclipse.aether.installation.InstallRequest; import org.eclipse.aether.installation.InstallationException; -import static org.apache.maven.impl.ImplUtils.nonNull; - @Named @Singleton public class DefaultArtifactInstaller implements ArtifactInstaller { @@ -39,12 +39,12 @@ public class DefaultArtifactInstaller implements ArtifactInstaller { @Inject DefaultArtifactInstaller(@Nonnull RepositorySystem repositorySystem) { - this.repositorySystem = nonNull(repositorySystem); + this.repositorySystem = Objects.requireNonNull(repositorySystem); } @Override public void install(ArtifactInstallerRequest request) throws ArtifactInstallerException, IllegalArgumentException { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); try { InstallRequest installRequest = diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java index acc0b23be5e2..9a486aa52a19 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultArtifactResolver.java @@ -23,6 +23,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -51,8 +52,6 @@ import org.eclipse.aether.resolution.ArtifactResult; import org.eclipse.aether.transfer.ArtifactNotFoundException; -import static org.apache.maven.impl.ImplUtils.nonNull; - @Named @Singleton public class DefaultArtifactResolver implements ArtifactResolver { @@ -60,7 +59,7 @@ public class DefaultArtifactResolver implements ArtifactResolver { @Override public ArtifactResolverResult resolve(ArtifactResolverRequest request) throws ArtifactResolverException, IllegalArgumentException { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); return session.request(request, this::doResolve); } @@ -240,7 +239,7 @@ public ArtifactResolverRequest getRequest() { @Nonnull @Override public Collection getArtifacts() { - return results.values().stream().map(ResultItem::getArtifact).collect(Collectors.toList()); + return results.values().stream().map(ResultItem::getArtifact).toList(); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultChecksumAlgorithmService.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultChecksumAlgorithmService.java index ef062acdc7ba..afdc0ac0e2b0 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultChecksumAlgorithmService.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultChecksumAlgorithmService.java @@ -31,7 +31,6 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; -import java.util.stream.Collectors; import org.apache.maven.api.di.Inject; import org.apache.maven.api.di.Named; @@ -41,8 +40,6 @@ import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactory; import org.eclipse.aether.spi.connector.checksum.ChecksumAlgorithmFactorySelector; -import static org.apache.maven.impl.ImplUtils.nonNull; - @Named @Singleton public class DefaultChecksumAlgorithmService implements ChecksumAlgorithmService { @@ -50,20 +47,20 @@ public class DefaultChecksumAlgorithmService implements ChecksumAlgorithmService @Inject public DefaultChecksumAlgorithmService(ChecksumAlgorithmFactorySelector checksumAlgorithmFactorySelector) { - this.checksumAlgorithmFactorySelector = - nonNull(checksumAlgorithmFactorySelector, "checksumAlgorithmFactorySelector"); + this.checksumAlgorithmFactorySelector = Objects.requireNonNull( + checksumAlgorithmFactorySelector, "checksumAlgorithmFactorySelector cannot be null"); } @Override public Collection getChecksumAlgorithmNames() { return checksumAlgorithmFactorySelector.getChecksumAlgorithmFactories().stream() .map(ChecksumAlgorithmFactory::getName) - .collect(Collectors.toList()); + .toList(); } @Override public ChecksumAlgorithm select(String algorithmName) { - nonNull(algorithmName, "algorithmName"); + Objects.requireNonNull(algorithmName, "algorithmName cannot be null"); try { return new DefaultChecksumAlgorithm(checksumAlgorithmFactorySelector.select(algorithmName)); } catch (IllegalArgumentException e) { @@ -73,11 +70,11 @@ public ChecksumAlgorithm select(String algorithmName) { @Override public Collection select(Collection algorithmNames) { - nonNull(algorithmNames, "algorithmNames"); + Objects.requireNonNull(algorithmNames, "algorithmNames cannot be null"); try { return checksumAlgorithmFactorySelector.selectList(new ArrayList<>(algorithmNames)).stream() - .map(DefaultChecksumAlgorithm::new) - .collect(Collectors.toList()); + .map(a -> (ChecksumAlgorithm) new DefaultChecksumAlgorithm(a)) + .toList(); } catch (IllegalArgumentException e) { throw new ChecksumAlgorithmServiceException("unsupported algorithm", e); } @@ -85,8 +82,8 @@ public Collection select(Collection algorithmNames) { @Override public Map calculate(byte[] data, Collection algorithms) { - nonNull(data, "data"); - nonNull(algorithms, "algorithms"); + Objects.requireNonNull(data, "data cannot be null"); + Objects.requireNonNull(algorithms, "algorithms cannot be null"); try { return calculate(new ByteArrayInputStream(data), algorithms); } catch (IOException e) { @@ -96,8 +93,8 @@ public Map calculate(byte[] data, Collection calculate(ByteBuffer data, Collection algorithms) { - nonNull(data, "data"); - nonNull(algorithms, "algorithms"); + Objects.requireNonNull(data, "data cannot be null"); + Objects.requireNonNull(algorithms, "algorithms cannot be null"); LinkedHashMap algMap = new LinkedHashMap<>(); algorithms.forEach(f -> algMap.put(f, f.getCalculator())); data.mark(); @@ -113,8 +110,8 @@ public Map calculate(ByteBuffer data, Collection calculate(Path file, Collection algorithms) throws IOException { - nonNull(file, "file"); - nonNull(algorithms, "algorithms"); + Objects.requireNonNull(file, "file cannot be null"); + Objects.requireNonNull(algorithms, "algorithms cannot be null"); try (InputStream inputStream = new BufferedInputStream(Files.newInputStream(file))) { return calculate(inputStream, algorithms); } @@ -123,8 +120,8 @@ public Map calculate(Path file, Collection calculate(InputStream stream, Collection algorithms) throws IOException { - nonNull(stream, "stream"); - nonNull(algorithms, "algorithms"); + Objects.requireNonNull(stream, "stream cannot be null"); + Objects.requireNonNull(algorithms, "algorithms cannot be null"); LinkedHashMap algMap = new LinkedHashMap<>(); algorithms.forEach(f -> algMap.put(f, f.getCalculator())); final byte[] buffer = new byte[1024 * 32]; diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java index 8bf6333e25f2..b75e4409ad3d 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependency.java @@ -26,8 +26,16 @@ import org.apache.maven.api.Version; import org.apache.maven.api.annotations.Nonnull; +/** + * Default implementation of the Dependency interface. + * Extends AetherDependencyWrapper to provide dependency-specific functionality. + */ public class DefaultDependency extends AetherDependencyWrapper implements Dependency { + /** + * The unique key for this dependency. + */ + @Nonnull private final String key; public DefaultDependency( diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCoordinatesFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCoordinatesFactory.java index 9ebb084cb363..0857e2dde0bb 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCoordinatesFactory.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyCoordinatesFactory.java @@ -18,6 +18,8 @@ */ package org.apache.maven.impl; +import java.util.Objects; + import org.apache.maven.api.DependencyCoordinates; import org.apache.maven.api.Exclusion; import org.apache.maven.api.annotations.Nonnull; @@ -28,7 +30,6 @@ import org.eclipse.aether.artifact.ArtifactType; import static org.apache.maven.impl.ImplUtils.map; -import static org.apache.maven.impl.ImplUtils.nonNull; @Named @Singleton @@ -37,7 +38,7 @@ public class DefaultDependencyCoordinatesFactory implements DependencyCoordinate @Nonnull @Override public DependencyCoordinates create(@Nonnull DependencyCoordinatesFactoryRequest request) { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); ArtifactType type = null; diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java index 7bab2446c6f0..9588a22ca979 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolver.java @@ -62,7 +62,6 @@ import static org.apache.maven.impl.ImplUtils.cast; import static org.apache.maven.impl.ImplUtils.map; -import static org.apache.maven.impl.ImplUtils.nonNull; @Named @Singleton @@ -72,7 +71,7 @@ public class DefaultDependencyResolver implements DependencyResolver { @Override public DependencyResolverResult collect(@Nonnull DependencyResolverRequest request) throws DependencyResolverException, IllegalArgumentException { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); RequestTraceHelper.ResolverTrace trace = RequestTraceHelper.enter(session, request); try { @@ -168,8 +167,8 @@ private static DependencyFilter getScopeDependencyFilter(PathScope scope) { @Override public DependencyResolverResult resolve(DependencyResolverRequest request) throws DependencyResolverException, ArtifactResolverException { - InternalSession session = - InternalSession.from(nonNull(request, "request").getSession()); + InternalSession session = InternalSession.from( + Objects.requireNonNull(request, "request cannot be null").getSession()); RequestTraceHelper.ResolverTrace trace = RequestTraceHelper.enter(session, request); try { DependencyResolverResult result; @@ -189,7 +188,7 @@ public DependencyResolverResult resolve(DependencyResolverRequest request) .map(Node::getDependency) .filter(Objects::nonNull) .map(Artifact::toCoordinates) - .collect(Collectors.toList()); + .toList(); Predicate filter = request.getPathTypeFilter(); if (request.getRequestType() == DependencyResolverRequest.RequestType.FLATTEN) { DefaultDependencyResolverResult flattenResult = new DefaultDependencyResolverResult( diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolverResult.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolverResult.java index fa7ace6e0d05..60428dbb9ebb 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolverResult.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultDependencyResolverResult.java @@ -23,7 +23,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -318,7 +317,7 @@ private boolean containsPatches(Set types) { * @param moduleName name of the module to search */ private boolean containsModule(String moduleName) throws IOException { - for (Path path : dispatchedPaths.getOrDefault(JavaPathType.MODULES, Collections.emptyList())) { + for (Path path : dispatchedPaths.getOrDefault(JavaPathType.MODULES, List.of())) { if (cache.getModuleInfo(path).containsModule(moduleName)) { return true; } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultJavaToolchainFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultJavaToolchainFactory.java index 2032e0ef631d..4e0f1f1b6777 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultJavaToolchainFactory.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultJavaToolchainFactory.java @@ -31,6 +31,7 @@ import org.apache.maven.api.Version; import org.apache.maven.api.VersionConstraint; import org.apache.maven.api.annotations.Nonnull; +import org.apache.maven.api.annotations.Nullable; import org.apache.maven.api.di.Inject; import org.apache.maven.api.di.Named; import org.apache.maven.api.di.Singleton; @@ -109,22 +110,26 @@ static class DefaultJavaToolchain implements JavaToolchain { } @Override + @Nonnull public String getJavaHome() { return javaHome; } @Override + @Nonnull public String getType() { return "jdk"; } @Override + @Nonnull public ToolchainModel getModel() { return model; } @Override - public String findTool(String toolName) { + @Nullable + public String findTool(@Nonnull String toolName) { Path toRet = findTool(toolName, Paths.get(getJavaHome()).normalize()); if (toRet != null) { return toRet.toAbsolutePath().toString(); @@ -132,7 +137,8 @@ public String findTool(String toolName) { return null; } - private static Path findTool(String toolName, Path installDir) { + @Nullable + private static Path findTool(@Nonnull String toolName, @Nonnull Path installDir) { Path bin = installDir.resolve("bin"); // NOI18N if (Files.isDirectory(bin)) { if (Os.IS_WINDOWS) { @@ -150,7 +156,7 @@ private static Path findTool(String toolName, Path installDir) { } @Override - public boolean matchesRequirements(Map requirements) { + public boolean matchesRequirements(@Nonnull Map requirements) { for (Map.Entry requirement : requirements.entrySet()) { String key = requirement.getKey(); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java index af657a403ee0..7b731764910c 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultLocalRepository.java @@ -19,18 +19,17 @@ package org.apache.maven.impl; import java.nio.file.Path; +import java.util.Objects; import org.apache.maven.api.LocalRepository; import org.apache.maven.api.annotations.Nonnull; -import static org.apache.maven.impl.ImplUtils.nonNull; - public class DefaultLocalRepository implements LocalRepository { private final @Nonnull org.eclipse.aether.repository.LocalRepository repository; public DefaultLocalRepository(@Nonnull org.eclipse.aether.repository.LocalRepository repository) { - this.repository = nonNull(repository, "repository"); + this.repository = Objects.requireNonNull(repository, "repository cannot be null"); } @Nonnull diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultModelXmlFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultModelXmlFactory.java index 7a5abd7d8235..96e534ac978c 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultModelXmlFactory.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultModelXmlFactory.java @@ -25,6 +25,7 @@ import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Objects; import java.util.function.Function; import org.apache.maven.api.annotations.Nonnull; @@ -40,7 +41,6 @@ import org.apache.maven.model.v4.MavenStaxReader; import org.apache.maven.model.v4.MavenStaxWriter; -import static org.apache.maven.impl.ImplUtils.nonNull; import static org.apache.maven.impl.StaxLocation.getLocation; import static org.apache.maven.impl.StaxLocation.getMessage; @@ -50,7 +50,7 @@ public class DefaultModelXmlFactory implements ModelXmlFactory { @Override @Nonnull public Model read(@Nonnull XmlReaderRequest request) throws XmlReaderException { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); Model model = doRead(request); if (isModelVersionGreaterThan400(model) && !model.getNamespaceUri().startsWith("http://maven.apache.org/POM/")) { @@ -114,8 +114,8 @@ private Model doRead(XmlReaderRequest request) throws XmlReaderException { @Override public void write(XmlWriterRequest request) throws XmlWriterException { - nonNull(request, "request"); - Model content = nonNull(request.getContent(), "content"); + Objects.requireNonNull(request, "request cannot be null"); + Model content = Objects.requireNonNull(request.getContent(), "content"); Path path = request.getPath(); OutputStream outputStream = request.getOutputStream(); Writer writer = request.getWriter(); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultPluginXmlFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultPluginXmlFactory.java index dec67b0257b9..7deacbeb05fe 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultPluginXmlFactory.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultPluginXmlFactory.java @@ -25,6 +25,7 @@ import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Objects; import org.apache.maven.api.annotations.Nonnull; import org.apache.maven.api.di.Named; @@ -38,7 +39,6 @@ import org.apache.maven.plugin.descriptor.io.PluginDescriptorStaxReader; import org.apache.maven.plugin.descriptor.io.PluginDescriptorStaxWriter; -import static org.apache.maven.impl.ImplUtils.nonNull; import static org.apache.maven.impl.StaxLocation.getLocation; import static org.apache.maven.impl.StaxLocation.getMessage; @@ -47,7 +47,7 @@ public class DefaultPluginXmlFactory implements PluginXmlFactory { @Override public PluginDescriptor read(@Nonnull XmlReaderRequest request) throws XmlReaderException { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); Path path = request.getPath(); URL url = request.getURL(); Reader reader = request.getReader(); @@ -78,8 +78,8 @@ public PluginDescriptor read(@Nonnull XmlReaderRequest request) throws XmlReader @Override public void write(XmlWriterRequest request) throws XmlWriterException { - nonNull(request, "request"); - PluginDescriptor content = nonNull(request.getContent(), "content"); + Objects.requireNonNull(request, "request cannot be null"); + PluginDescriptor content = Objects.requireNonNull(request.getContent(), "content"); Path path = request.getPath(); OutputStream outputStream = request.getOutputStream(); Writer writer = request.getWriter(); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRemoteRepository.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRemoteRepository.java index 85de3f664a94..398680a9b18a 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRemoteRepository.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRemoteRepository.java @@ -23,11 +23,24 @@ import org.apache.maven.api.RemoteRepository; import org.apache.maven.api.annotations.Nonnull; +/** + * Default implementation of the RemoteRepository interface. + * Wraps an Aether remote repository and provides access to its properties. + */ public class DefaultRemoteRepository implements RemoteRepository { + /** + * The wrapped Aether remote repository. + */ + @Nonnull private final org.eclipse.aether.repository.RemoteRepository repository; - public DefaultRemoteRepository(org.eclipse.aether.repository.RemoteRepository repository) { - this.repository = repository; + /** + * Creates a new wrapper for the given remote repository. + * + * @param repository the Aether remote repository to wrap + */ + public DefaultRemoteRepository(@Nonnull org.eclipse.aether.repository.RemoteRepository repository) { + this.repository = Objects.requireNonNull(repository, "repository cannot be null"); } public org.eclipse.aether.repository.RemoteRepository getRepository() { diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java index ec6edf462712..9349a6df04a4 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultRepositoryFactory.java @@ -20,6 +20,7 @@ import java.nio.file.Path; import java.util.List; +import java.util.Objects; import org.apache.maven.api.LocalRepository; import org.apache.maven.api.RemoteRepository; @@ -32,8 +33,6 @@ import org.eclipse.aether.impl.RemoteRepositoryManager; import org.eclipse.aether.repository.RepositoryPolicy; -import static org.apache.maven.impl.ImplUtils.nonNull; - @Named @Singleton public class DefaultRepositoryFactory implements RepositoryFactory { @@ -71,11 +70,12 @@ public List aggregate( List dominant, List recessive, boolean processRecessive) { - InternalSession internalSession = InternalSession.from(nonNull(session, "session")); + InternalSession internalSession = + InternalSession.from(Objects.requireNonNull(session, "session cannot be null")); List repos = remoteRepositoryManager.aggregateRepositories( internalSession.getSession(), - internalSession.toRepositories(nonNull(dominant, "dominant")), - internalSession.toRepositories(nonNull(recessive, "recessive")), + internalSession.toRepositories(Objects.requireNonNull(dominant, "dominant cannot be null")), + internalSession.toRepositories(Objects.requireNonNull(recessive, "recessive cannot be null")), processRecessive); return repos.stream() .map(DefaultRemoteRepository::new) diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java index cc2cb0360bc3..d2fe51587907 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainManager.java @@ -68,7 +68,7 @@ protected DefaultToolchainManager(Map factories, Logge public List getToolchains( @Nonnull Session session, @Nonnull String type, @Nullable Map requirements) throws ToolchainManagerException { - ToolchainFactory factory = factories.get(Objects.requireNonNull(type, "type")); + ToolchainFactory factory = factories.get(Objects.requireNonNull(type, "type cannot be null")); if (factory == null) { logger.error("Missing toolchain factory for type: " + type + ". Possibly caused by misconfigured project."); return List.of(); @@ -99,7 +99,7 @@ public void storeToolchainToBuildContext(@Nonnull Session session, @Nonnull Tool } private Optional createToolchain(ToolchainModel model) { - String type = Objects.requireNonNull(model.getType(), "model.getType()"); + String type = Objects.requireNonNull(model.getType(), "model.getType() cannot be null"); ToolchainFactory factory = factories.get(type); if (factory != null) { try { diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsXmlFactory.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsXmlFactory.java index 5037f7696b0d..7bdc1579b003 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsXmlFactory.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultToolchainsXmlFactory.java @@ -37,7 +37,6 @@ import org.apache.maven.toolchain.v4.MavenToolchainsStaxReader; import org.apache.maven.toolchain.v4.MavenToolchainsStaxWriter; -import static org.apache.maven.impl.ImplUtils.nonNull; import static org.apache.maven.impl.StaxLocation.getLocation; import static org.apache.maven.impl.StaxLocation.getMessage; @@ -46,7 +45,7 @@ public class DefaultToolchainsXmlFactory implements ToolchainsXmlFactory { @Override public PersistedToolchains read(@Nonnull XmlReaderRequest request) throws XmlReaderException { - Objects.requireNonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); Reader reader = request.getReader(); InputStream inputStream = request.getInputStream(); if (reader == null && inputStream == null) { @@ -71,7 +70,7 @@ public PersistedToolchains read(@Nonnull XmlReaderRequest request) throws XmlRea @Override public void write(XmlWriterRequest request) throws XmlWriterException { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); PersistedToolchains content = Objects.requireNonNull(request.getContent(), "content"); OutputStream outputStream = request.getOutputStream(); Writer writer = request.getWriter(); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionParser.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionParser.java index d84ebcddc3a3..54a937ac0f5d 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionParser.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionParser.java @@ -18,6 +18,8 @@ */ package org.apache.maven.impl; +import java.util.Objects; + import org.apache.maven.api.Version; import org.apache.maven.api.VersionConstraint; import org.apache.maven.api.VersionRange; @@ -27,8 +29,6 @@ import org.apache.maven.api.services.VersionParser; import org.apache.maven.api.services.model.ModelVersionParser; -import static org.apache.maven.impl.ImplUtils.nonNull; - /** * A wrapper class around a resolver version that works as model version parser as well. */ @@ -39,7 +39,7 @@ public class DefaultVersionParser implements VersionParser { @Inject public DefaultVersionParser(ModelVersionParser modelVersionParser) { - this.modelVersionParser = nonNull(modelVersionParser, "modelVersionParser"); + this.modelVersionParser = Objects.requireNonNull(modelVersionParser, "modelVersionParser cannot be null"); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionResolver.java index cc140caf92d6..e04727e5fb0b 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionResolver.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/DefaultVersionResolver.java @@ -19,6 +19,7 @@ package org.apache.maven.impl; import java.util.List; +import java.util.Objects; import java.util.Optional; import org.apache.maven.api.Repository; @@ -35,8 +36,6 @@ import org.eclipse.aether.resolution.VersionResolutionException; import org.eclipse.aether.resolution.VersionResult; -import static org.apache.maven.impl.ImplUtils.nonNull; - @Named @Singleton public class DefaultVersionResolver implements VersionResolver { @@ -50,7 +49,7 @@ public DefaultVersionResolver(RepositorySystem repositorySystem) { @Override public VersionResolverResult resolve(VersionResolverRequest request) throws VersionResolverException { - nonNull(request, "request"); + Objects.requireNonNull(request, "request cannot be null"); InternalSession session = InternalSession.from(request.getSession()); return session.request(request, this::doResolve); } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/ExtensibleEnumRegistries.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/ExtensibleEnumRegistries.java index f252605c14b9..d35d8b5056d4 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/ExtensibleEnumRegistries.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/ExtensibleEnumRegistries.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -42,8 +43,6 @@ import org.apache.maven.api.spi.PathScopeProvider; import org.apache.maven.api.spi.ProjectScopeProvider; -import static org.apache.maven.impl.ImplUtils.nonNull; - public class ExtensibleEnumRegistries { @Named @@ -97,7 +96,8 @@ public DefaultExtensibleEnumRegistry(List

providers, T... builtinValues) { @Override public Optional lookup(String id) { - return Optional.ofNullable(values.get(nonNull(id, "id").toLowerCase(Locale.ROOT))); + return Optional.ofNullable( + values.get(Objects.requireNonNull(id, "id cannot be null").toLowerCase(Locale.ROOT))); } } } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/ImplUtils.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/ImplUtils.java index 37e0f36e1bee..2023dda6b614 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/ImplUtils.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/ImplUtils.java @@ -22,34 +22,50 @@ import java.util.List; import java.util.Objects; import java.util.function.Function; -import java.util.stream.Collectors; -class ImplUtils { - public static T nonNull(T t) { - if (t == null) { - throw new IllegalArgumentException(); - } - return t; - } +import org.apache.maven.api.annotations.Nonnull; +import org.apache.maven.api.annotations.Nullable; - public static T nonNull(T t, String name) { - if (t == null) { - throw new IllegalArgumentException(name + " cannot be null"); - } - return t; - } +/** + * Utility methods for Maven implementations. + * Provides standardized null checking and type casting functionality. + */ +class ImplUtils { - public static T cast(Class clazz, Object o, String name) { + /** + * Casts an object to the specified type, with validation and error handling. + * + * @param the target type + * @param clazz the class representing the target type + * @param o the object to cast + * @param name the name of the parameter for error messages + * @return the cast object + * @throws NullPointerException if the object is null + * @throws ClassCastException if the object is not an instance of the target type + */ + @Nonnull + public static T cast(@Nonnull Class clazz, @Nullable Object o, @Nonnull String name) { if (!clazz.isInstance(o)) { if (o == null) { - throw new IllegalArgumentException(name + " is null"); + throw new NullPointerException(name + " is null"); } - throw new IllegalArgumentException(name + " is not an instance of " + clazz.getName()); + throw new ClassCastException(name + " is not an instance of " + clazz.getName()); } return clazz.cast(o); } - public static List map(Collection list, Function mapper) { - return list.stream().map(mapper).filter(Objects::nonNull).collect(Collectors.toList()); + /** + * Maps a collection of elements to a new list using the provided mapping function. + * Null values in the resulting list are filtered out. + * + * @param the input type + * @param the output type + * @param list the collection to map + * @param mapper the mapping function + * @return a new list containing the mapped elements, with null values filtered out + */ + @Nonnull + public static List map(@Nonnull Collection list, @Nonnull Function mapper) { + return list.stream().map(mapper).filter(Objects::nonNull).toList(); } } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/PathModularization.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/PathModularization.java index db0c95099578..7fd2035d2c72 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/PathModularization.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/PathModularization.java @@ -96,7 +96,7 @@ class PathModularization { */ private PathModularization() { filename = "(none)"; - descriptors = Collections.emptyMap(); + descriptors = Map.of(); isModuleHierarchy = false; } @@ -151,7 +151,7 @@ private PathModularization() { descriptor = ModuleDescriptor.read(in); } } - descriptors = Collections.singletonMap(file, descriptor); + descriptors = Map.of(file, descriptor); isModuleHierarchy = false; return; } @@ -201,7 +201,7 @@ private PathModularization() { descriptor = ModuleDescriptor.read(in); } } - descriptors = Collections.singletonMap(path, descriptor); + descriptors = Map.of(path, descriptor); isModuleHierarchy = false; return; } @@ -210,14 +210,14 @@ private PathModularization() { if (mf != null) { Object name = mf.getMainAttributes().get(AUTO_MODULE_NAME); if (name instanceof String) { - descriptors = Collections.singletonMap(path, name); + descriptors = Map.of(path, name); isModuleHierarchy = false; return; } } } } - descriptors = Collections.emptyMap(); + descriptors = Map.of(); isModuleHierarchy = false; } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/SettingsUtilsV4.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/SettingsUtilsV4.java index 8a5d1e81a2bb..66e45f149a16 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/SettingsUtilsV4.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/SettingsUtilsV4.java @@ -38,7 +38,6 @@ */ import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -69,7 +68,7 @@ private SettingsUtilsV4() { * @param recessive */ public static Settings merge(Settings dominant, Settings recessive) { - return new SettingsMerger().merge(dominant, recessive, true, Collections.emptyMap()); + return new SettingsMerger().merge(dominant, recessive, true, Map.of()); } /** @@ -257,14 +256,14 @@ public static org.apache.maven.api.model.Profile convertFromSettingsProfile(Prof if (repos != null) { profile.repositories(repos.stream() .map(SettingsUtilsV4::convertFromSettingsRepository) - .collect(Collectors.toList())); + .toList()); } List pluginRepos = settingsProfile.getPluginRepositories(); if (pluginRepos != null) { profile.pluginRepositories(pluginRepos.stream() .map(SettingsUtilsV4::convertFromSettingsRepository) - .collect(Collectors.toList())); + .toList()); } org.apache.maven.api.model.Profile value = profile.build(); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultDependencyManagementInjector.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultDependencyManagementInjector.java index d5c7d5d3e1b1..501976136652 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultDependencyManagementInjector.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultDependencyManagementInjector.java @@ -19,7 +19,6 @@ package org.apache.maven.impl.model; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -59,7 +58,7 @@ public Model mergeManagedDependencies(Model model) { DependencyManagement dependencyManagement = model.getDependencyManagement(); if (dependencyManagement != null) { Map dependencies = new HashMap<>(); - Map context = Collections.emptyMap(); + Map context = Map.of(); for (Dependency dependency : model.getDependencies()) { Object key = getDependencyKey().apply(dependency); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultLifecycleBindingsInjector.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultLifecycleBindingsInjector.java index 1435892a9aa9..51eeac5f123d 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultLifecycleBindingsInjector.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultLifecycleBindingsInjector.java @@ -19,7 +19,6 @@ package org.apache.maven.impl.model; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -133,8 +132,9 @@ public Model merge(Model target, Model source) { targetBuild = Build.newInstance(); } + PluginManagement pluginManagement = targetBuild.getPluginManagement(); Map context = - Collections.singletonMap(PLUGIN_MANAGEMENT, targetBuild.getPluginManagement()); + pluginManagement != null ? Map.of(PLUGIN_MANAGEMENT, pluginManagement) : Map.of(); Build.Builder builder = Build.newBuilder(targetBuild); mergePluginContainer_Plugins(builder, targetBuild, source.getBuild(), false, context); @@ -181,8 +181,7 @@ protected void mergePluginContainer_Plugins( Object key = getPluginKey().apply(managedPlugin); Plugin addedPlugin = added.get(key); if (addedPlugin != null) { - Plugin plugin = - mergePlugin(managedPlugin, addedPlugin, sourceDominant, Collections.emptyMap()); + Plugin plugin = mergePlugin(managedPlugin, addedPlugin, sourceDominant, Map.of()); merged.put(key, plugin); } } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java index 82ebd5a770f1..2c4c0963a6d4 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelBuilder.java @@ -1672,7 +1672,7 @@ private DependencyManagement loadDependencyManagement(Dependency dependency, Col List dependencies = importMgmt.getDependencies().stream() .filter(candidate -> exclusions.stream().noneMatch(exclusion -> match(exclusion, candidate))) .map(candidate -> addExclusions(candidate, exclusions)) - .collect(Collectors.toList()); + .toList(); importMgmt = importMgmt.withDependencies(dependencies); } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelInterpolator.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelInterpolator.java index 6194c1289f61..ed1e18c81db5 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelInterpolator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelInterpolator.java @@ -20,7 +20,6 @@ import java.nio.file.Path; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -54,7 +53,7 @@ public class DefaultModelInterpolator implements ModelInterpolator { private static final String PREFIX_PROJECT = "project."; private static final String PREFIX_POM = "pom."; private static final List PROJECT_PREFIXES_3_1 = Arrays.asList(PREFIX_POM, PREFIX_PROJECT); - private static final List PROJECT_PREFIXES_4_0 = Collections.singletonList(PREFIX_PROJECT); + private static final List PROJECT_PREFIXES_4_0 = List.of(PREFIX_PROJECT); // MNG-1927, MNG-2124, MNG-3355: // If the build section is present and the project directory is non-null, we should make diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelNormalizer.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelNormalizer.java index f36918f770aa..5bcace519174 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelNormalizer.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelNormalizer.java @@ -19,7 +19,6 @@ package org.apache.maven.impl.model; import java.util.ArrayList; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -96,7 +95,7 @@ public Model mergeDuplicates(Model model, ModelBuilderRequest request, ModelProb protected static class DuplicateMerger extends MavenModelMerger { public Plugin mergePlugin(Plugin target, Plugin source) { - return super.mergePlugin(target, source, false, Collections.emptyMap()); + return super.mergePlugin(target, source, false, Map.of()); } } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultPluginManagementInjector.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultPluginManagementInjector.java index 4f10a4ca1f26..a6937d369a69 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultPluginManagementInjector.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultPluginManagementInjector.java @@ -19,7 +19,6 @@ package org.apache.maven.impl.model; import java.util.ArrayList; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -73,7 +72,7 @@ private Build mergePluginContainerPlugins(Build target, PluginContainer source) if (!src.isEmpty()) { Map managedPlugins = new LinkedHashMap<>(src.size() * 2); - Map context = Collections.emptyMap(); + Map context = Map.of(); for (Plugin element : src) { Object key = getPluginKey().apply(element); diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultProfileActivationContext.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultProfileActivationContext.java index cba06096048e..0447fd1fef56 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultProfileActivationContext.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultProfileActivationContext.java @@ -142,10 +142,10 @@ private boolean matchesExists(Map exists, DefaultProfileA private final RootLocator rootLocator; private final Interpolator interpolator; - private List activeProfileIds = Collections.emptyList(); - private List inactiveProfileIds = Collections.emptyList(); - private Map systemProperties = Collections.emptyMap(); - private Map userProperties = Collections.emptyMap(); + private List activeProfileIds = List.of(); + private List inactiveProfileIds = List.of(); + private Map systemProperties = Map.of(); + private Map userProperties = Map.of(); private Model model; private final ThreadLocal records = new ThreadLocal<>(); @@ -419,10 +419,10 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { } private static List unmodifiable(List list) { - return list != null ? Collections.unmodifiableList(list) : Collections.emptyList(); + return list != null ? Collections.unmodifiableList(list) : List.of(); } private static Map unmodifiable(Map map) { - return map != null ? Collections.unmodifiableMap(map) : Collections.emptyMap(); + return map != null ? Collections.unmodifiableMap(map) : Map.of(); } } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultProfileInjector.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultProfileInjector.java index 206e8d4834c8..d7557bd11f59 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultProfileInjector.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultProfileInjector.java @@ -96,11 +96,11 @@ private Model doInjectProfiles(Model model, List profiles) { protected static class ProfileModelMerger extends MavenModelMerger { public void mergeModelBase(ModelBase.Builder builder, ModelBase target, ModelBase source) { - mergeModelBase(builder, target, source, true, Collections.emptyMap()); + mergeModelBase(builder, target, source, true, Map.of()); } public void mergeBuildBase(BuildBase.Builder builder, BuildBase target, BuildBase source) { - mergeBuildBase(builder, target, source, true, Collections.emptyMap()); + mergeBuildBase(builder, target, source, true, Map.of()); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/FileToRawModelMerger.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/FileToRawModelMerger.java index b98d057b30ba..9b2ab8e8ec43 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/FileToRawModelMerger.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/FileToRawModelMerger.java @@ -20,7 +20,6 @@ import java.util.Iterator; import java.util.Map; -import java.util.stream.Collectors; import org.apache.maven.api.model.Build; import org.apache.maven.api.model.BuildBase; @@ -90,7 +89,7 @@ protected void mergeDependencyManagement_Dependencies( Iterator sourceIterator = source.getDependencies().iterator(); builder.dependencies(target.getDependencies().stream() .map(d -> mergeDependency(d, sourceIterator.next(), sourceDominant, context)) - .collect(Collectors.toList())); + .toList()); } @Override @@ -133,7 +132,7 @@ protected void mergeModel_Profiles( Iterator sourceIterator = source.getProfiles().iterator(); builder.profiles(target.getProfiles().stream() .map(d -> mergeProfile(d, sourceIterator.next(), sourceDominant, context)) - .collect(Collectors.toList())); + .toList()); } @Override @@ -146,7 +145,7 @@ protected void mergeModelBase_Dependencies( Iterator sourceIterator = source.getDependencies().iterator(); builder.dependencies(target.getDependencies().stream() .map(d -> mergeDependency(d, sourceIterator.next(), sourceDominant, context)) - .collect(Collectors.toList())); + .toList()); } @Override @@ -175,7 +174,7 @@ protected void mergePlugin_Dependencies( Iterator sourceIterator = source.getDependencies().iterator(); builder.dependencies(target.getDependencies().stream() .map(d -> mergeDependency(d, sourceIterator.next(), sourceDominant, context)) - .collect(Collectors.toList())); + .toList()); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/Graph.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/Graph.java index 80291db4b376..1d6f71effadb 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/Graph.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/Graph.java @@ -19,7 +19,6 @@ package org.apache.maven.impl.model; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; @@ -34,7 +33,7 @@ class Graph { synchronized void addEdge(String from, String to) throws CycleDetectedException { if (graph.computeIfAbsent(from, l -> new HashSet<>()).add(to)) { - List cycle = visitCycle(graph, Collections.singleton(to), new HashMap<>(), new LinkedList<>()); + List cycle = visitCycle(graph, Set.of(to), new HashMap<>(), new LinkedList<>()); if (cycle != null) { // remove edge which introduced cycle throw new CycleDetectedException( diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/ArtifactDescriptorReaderDelegate.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/ArtifactDescriptorReaderDelegate.java index fc105b0dfdc3..f2d27e38cfd4 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/ArtifactDescriptorReaderDelegate.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/ArtifactDescriptorReaderDelegate.java @@ -19,7 +19,6 @@ package org.apache.maven.impl.resolver; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; @@ -105,7 +104,7 @@ private Dependency convert(org.apache.maven.api.model.Dependency dependency, Art Map props = null; if (system) { - props = Collections.singletonMap(MavenArtifactProperties.LOCAL_PATH, dependency.getSystemPath()); + props = Map.of(MavenArtifactProperties.LOCAL_PATH, dependency.getSystemPath()); } Artifact artifact = new DefaultArtifact( diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultVersionRangeResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultVersionRangeResolver.java index 2adbff982646..2b6bd3654451 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultVersionRangeResolver.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultVersionRangeResolver.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import org.apache.maven.api.di.Inject; import org.apache.maven.api.di.Named; @@ -198,7 +199,7 @@ private Versioning readVersions( try { if (metadata != null) { try (SyncContext syncContext = syncContextFactory.newInstance(session, true)) { - syncContext.acquire(null, Collections.singleton(metadata)); + syncContext.acquire(null, Set.of(metadata)); if (metadata.getPath() != null && Files.exists(metadata.getPath())) { try (InputStream in = Files.newInputStream(metadata.getPath())) { diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultVersionResolver.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultVersionResolver.java index 05a756cc2016..e053c29ade5c 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultVersionResolver.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/DefaultVersionResolver.java @@ -23,11 +23,11 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import org.apache.maven.api.Constants; import org.apache.maven.api.di.Inject; @@ -189,7 +189,7 @@ public VersionResult resolveVersion(RepositorySystemSession session, VersionRequ VersionRequest subRequest = new VersionRequest(); subRequest.setArtifact(artifact.setVersion(result.getVersion())); if (result.getRepository() instanceof RemoteRepository r) { - subRequest.setRepositories(Collections.singletonList(r)); + subRequest.setRepositories(List.of(r)); } else { subRequest.setRepositories(request.getRepositories()); } @@ -239,7 +239,7 @@ private Versioning readVersions( try { if (metadata != null) { try (SyncContext syncContext = syncContextFactory.newInstance(session, true)) { - syncContext.acquire(null, Collections.singleton(metadata)); + syncContext.acquire(null, Set.of(metadata)); if (metadata.getPath() != null && Files.exists(metadata.getPath())) { try (InputStream in = Files.newInputStream(metadata.getPath())) { diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/LocalSnapshotMetadataGenerator.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/LocalSnapshotMetadataGenerator.java index 50c97507608b..3abf19290377 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/LocalSnapshotMetadataGenerator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/LocalSnapshotMetadataGenerator.java @@ -20,8 +20,8 @@ import java.time.Instant; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import org.apache.maven.api.Constants; @@ -64,7 +64,7 @@ public Collection prepare(Collection art } } - return Collections.emptyList(); + return List.of(); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/MavenMetadata.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/MavenMetadata.java index 386983012351..d1f272f9482b 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/MavenMetadata.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/MavenMetadata.java @@ -29,7 +29,6 @@ import java.time.Instant; import java.time.ZoneOffset; import java.time.format.DateTimeFormatter; -import java.util.Collections; import java.util.Map; import org.apache.maven.api.metadata.Metadata; @@ -134,7 +133,7 @@ private void write(Path metadataPath, Metadata metadata) throws RepositoryExcept @Override public Map getProperties() { - return Collections.emptyMap(); + return Map.of(); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/PluginsMetadataGenerator.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/PluginsMetadataGenerator.java index 9c690f0049e9..c1398e0e52a8 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/PluginsMetadataGenerator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/PluginsMetadataGenerator.java @@ -23,9 +23,9 @@ import java.nio.file.Path; import java.time.Instant; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.jar.JarFile; @@ -89,7 +89,7 @@ private PluginsMetadataGenerator(RepositorySystemSession session, Collection prepare(Collection artifacts) { - return Collections.emptyList(); + return List.of(); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/RemoteSnapshotMetadataGenerator.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/RemoteSnapshotMetadataGenerator.java index be1996f4aaea..d67a61559ef0 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/RemoteSnapshotMetadataGenerator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/RemoteSnapshotMetadataGenerator.java @@ -20,8 +20,8 @@ import java.time.Instant; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import org.apache.maven.api.Constants; @@ -104,6 +104,6 @@ public Artifact transformArtifact(Artifact artifact) { @Override public Collection finish(Collection artifacts) { - return Collections.emptyList(); + return List.of(); } } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/VersionsMetadataGenerator.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/VersionsMetadataGenerator.java index a60554093222..ec97d6148fd0 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/VersionsMetadataGenerator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/VersionsMetadataGenerator.java @@ -20,9 +20,9 @@ import java.time.Instant; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import org.apache.maven.api.Constants; @@ -78,7 +78,7 @@ private VersionsMetadataGenerator(RepositorySystemSession session, Collection prepare(Collection artifacts) { - return Collections.emptyList(); + return List.of(); } @Override diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/relocation/UserPropertiesArtifactRelocationSource.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/relocation/UserPropertiesArtifactRelocationSource.java index 966ceaa06fe5..363350459dc6 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/relocation/UserPropertiesArtifactRelocationSource.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/relocation/UserPropertiesArtifactRelocationSource.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Objects; import java.util.function.Predicate; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.maven.api.Constants; @@ -185,7 +184,7 @@ private Relocations parseRelocations(RepositorySystemSession session) { } return new Relocation(global, s, t); }) - .collect(Collectors.toList()); + .toList(); LOGGER.info("Parsed {} user relocations", relocationList.size()); return new Relocations(relocationList); } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/scopes/Maven3ScopeManagerConfiguration.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/scopes/Maven3ScopeManagerConfiguration.java index 8b702bad0e4d..03402e39ff0e 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/scopes/Maven3ScopeManagerConfiguration.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/scopes/Maven3ScopeManagerConfiguration.java @@ -22,6 +22,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.stream.Collectors; import org.eclipse.aether.artifact.ArtifactProperties; @@ -83,7 +84,7 @@ public boolean isStrictResolutionScopes() { @Override public BuildScopeSource getBuildScopeSource() { return new BuildScopeMatrixSource( - Collections.singletonList(CommonBuilds.PROJECT_PATH_MAIN), + List.of(CommonBuilds.PROJECT_PATH_MAIN), Arrays.asList(CommonBuilds.BUILD_PATH_COMPILE, CommonBuilds.BUILD_PATH_RUNTIME), CommonBuilds.MAVEN_TEST_BUILD_SCOPE); } @@ -126,13 +127,13 @@ public Collection buildResolutionScopes(InternalScopeManager in RS_MAIN_COMPILE, InternalScopeManager.Mode.ELIMINATE, singleton(CommonBuilds.PROJECT_PATH_MAIN, CommonBuilds.BUILD_PATH_COMPILE), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); result.add(internalScopeManager.createResolutionScope( RS_MAIN_COMPILE_PLUS_RUNTIME, InternalScopeManager.Mode.ELIMINATE, byProjectPath(CommonBuilds.PROJECT_PATH_MAIN), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); result.add(internalScopeManager.createResolutionScope( RS_MAIN_RUNTIME, @@ -144,19 +145,19 @@ public Collection buildResolutionScopes(InternalScopeManager in RS_MAIN_RUNTIME_PLUS_SYSTEM, InternalScopeManager.Mode.ELIMINATE, singleton(CommonBuilds.PROJECT_PATH_MAIN, CommonBuilds.BUILD_PATH_RUNTIME), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); result.add(internalScopeManager.createResolutionScope( RS_TEST_COMPILE, InternalScopeManager.Mode.ELIMINATE, select(CommonBuilds.PROJECT_PATH_TEST, CommonBuilds.BUILD_PATH_COMPILE), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); result.add(internalScopeManager.createResolutionScope( RS_TEST_RUNTIME, InternalScopeManager.Mode.ELIMINATE, select(CommonBuilds.PROJECT_PATH_TEST, CommonBuilds.BUILD_PATH_RUNTIME), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); return result; } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/scopes/Maven4ScopeManagerConfiguration.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/scopes/Maven4ScopeManagerConfiguration.java index 896b240053f6..cd58e7bd1f05 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/scopes/Maven4ScopeManagerConfiguration.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/resolver/scopes/Maven4ScopeManagerConfiguration.java @@ -22,6 +22,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.List; import java.util.stream.Collectors; import org.apache.maven.api.DependencyScope; @@ -154,13 +155,13 @@ public Collection buildResolutionScope RS_MAIN_COMPILE, InternalScopeManager.Mode.ELIMINATE, singleton(CommonBuilds.PROJECT_PATH_MAIN, CommonBuilds.BUILD_PATH_COMPILE), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); result.add(internalScopeManager.createResolutionScope( RS_MAIN_COMPILE_PLUS_RUNTIME, InternalScopeManager.Mode.ELIMINATE, byProjectPath(CommonBuilds.PROJECT_PATH_MAIN), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); result.add(internalScopeManager.createResolutionScope( RS_MAIN_RUNTIME, @@ -172,19 +173,19 @@ public Collection buildResolutionScope RS_MAIN_RUNTIME_PLUS_SYSTEM, InternalScopeManager.Mode.REMOVE, singleton(CommonBuilds.PROJECT_PATH_MAIN, CommonBuilds.BUILD_PATH_RUNTIME), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); result.add(internalScopeManager.createResolutionScope( RS_TEST_COMPILE, InternalScopeManager.Mode.ELIMINATE, select(CommonBuilds.PROJECT_PATH_TEST, CommonBuilds.BUILD_PATH_COMPILE), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); result.add(internalScopeManager.createResolutionScope( RS_TEST_RUNTIME, InternalScopeManager.Mode.ELIMINATE, select(CommonBuilds.PROJECT_PATH_TEST, CommonBuilds.BUILD_PATH_RUNTIME), - Collections.singletonList(system), + List.of(system), nonTransitiveDependencyScopes)); return result; } diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/ApiRunner.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/ApiRunner.java index d8d1ac3f8577..01479117f9b2 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/ApiRunner.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/standalone/ApiRunner.java @@ -164,7 +164,7 @@ static class DefaultSession extends AbstractSession { private final Instant startTime = MonotonicClock.now(); DefaultSession(RepositorySystemSession session, RepositorySystem repositorySystem, Lookup lookup) { - this(session, repositorySystem, Collections.emptyList(), null, lookup); + this(session, repositorySystem, List.of(), null, lookup); } protected DefaultSession( @@ -347,17 +347,20 @@ static LifecycleRegistry newLifecycleRegistry() { return new LifecycleRegistry() { @Override + @Nonnull public Iterator iterator() { return Collections.emptyIterator(); } @Override - public Optional lookup(String id) { + @Nonnull + public Optional lookup(@Nonnull String id) { return Optional.empty(); } @Override - public List computePhases(Lifecycle lifecycle) { + @Nonnull + public List computePhases(@Nonnull Lifecycle lifecycle) { return List.of(); } }; diff --git a/impl/maven-impl/src/test/java/org/apache/maven/impl/DefaultModelXmlFactoryTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/DefaultModelXmlFactoryTest.java index f10d46fdd852..436d7b979876 100644 --- a/impl/maven-impl/src/test/java/org/apache/maven/impl/DefaultModelXmlFactoryTest.java +++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/DefaultModelXmlFactoryTest.java @@ -105,7 +105,7 @@ void testNoNamespaceWithModelVersion400() throws Exception { @Test void testNullRequest() { - assertThrows(IllegalArgumentException.class, () -> factory.read((XmlReaderRequest) null)); + assertThrows(NullPointerException.class, () -> factory.read((XmlReaderRequest) null)); } @Test diff --git a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelInterpolatorTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelInterpolatorTest.java index 7afe7a82e2de..bd09ac10b863 100644 --- a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelInterpolatorTest.java +++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelInterpolatorTest.java @@ -25,7 +25,6 @@ import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Calendar; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -224,7 +223,7 @@ void shouldInterpolateOrganizationNameCorrectly() throws Exception { public void shouldInterpolateDependencyVersionToSetSameAsProjectVersion() throws Exception { Model model = Model.newBuilder() .version("3.8.1") - .dependencies(Collections.singletonList( + .dependencies(List.of( Dependency.newBuilder().version("${project.version}").build())) .build(); @@ -240,8 +239,8 @@ public void shouldInterpolateDependencyVersionToSetSameAsProjectVersion() throws public void testShouldNotInterpolateDependencyVersionWithInvalidReference() throws Exception { Model model = Model.newBuilder() .version("3.8.1") - .dependencies(Collections.singletonList( - Dependency.newBuilder().version("${something}").build())) + .dependencies( + List.of(Dependency.newBuilder().version("${something}").build())) .build(); final SimpleProblemCollector collector = new SimpleProblemCollector(); @@ -257,7 +256,7 @@ public void testTwoReferences() throws Exception { Model model = Model.newBuilder() .version("3.8.1") .artifactId("foo") - .dependencies(Collections.singletonList(Dependency.newBuilder() + .dependencies(List.of(Dependency.newBuilder() .version("${project.artifactId}-${project.version}") .build())) .build(); @@ -275,7 +274,7 @@ public void testProperty() throws Exception { Model model = Model.newBuilder() .version("3.8.1") .artifactId("foo") - .repositories(Collections.singletonList(Repository.newBuilder() + .repositories(List.of(Repository.newBuilder() .url("file://localhost/${anotherdir}/temp-repo") .build())) .build(); @@ -301,7 +300,7 @@ public void testBasedirUnx() throws Exception { Model model = Model.newBuilder() .version("3.8.1") .artifactId("foo") - .repositories(Collections.singletonList( + .repositories(List.of( Repository.newBuilder().url("${basedir}/temp-repo").build())) .build(); @@ -323,7 +322,7 @@ public void testBasedirWin() throws Exception { Model model = Model.newBuilder() .version("3.8.1") .artifactId("foo") - .repositories(Collections.singletonList( + .repositories(List.of( Repository.newBuilder().url("${basedir}/temp-repo").build())) .build(); @@ -344,7 +343,7 @@ public void testBaseUri() throws Exception { Model model = Model.newBuilder() .version("3.8.1") .artifactId("foo") - .repositories(Collections.singletonList(Repository.newBuilder() + .repositories(List.of(Repository.newBuilder() .url("${project.baseUri}/temp-repo") .build())) .build(); @@ -366,7 +365,7 @@ void testRootDirectory() throws Exception { Model model = Model.newBuilder() .version("3.8.1") .artifactId("foo") - .repositories(Collections.singletonList(Repository.newBuilder() + .repositories(List.of(Repository.newBuilder() .url("file:${project.rootDirectory}/temp-repo") .build())) .build(); @@ -386,7 +385,7 @@ void testRootDirectoryWithUri() throws Exception { Model model = Model.newBuilder() .version("3.8.1") .artifactId("foo") - .repositories(Collections.singletonList(Repository.newBuilder() + .repositories(List.of(Repository.newBuilder() .url("${project.rootDirectory.uri}/temp-repo") .build())) .build(); @@ -409,7 +408,7 @@ void testRootDirectoryWithNull() throws Exception { Model model = Model.newBuilder() .version("3.8.1") .artifactId("foo") - .repositories(Collections.singletonList(Repository.newBuilder() + .repositories(List.of(Repository.newBuilder() .url("file:///${project.rootDirectory}/temp-repo") .build())) .build(); @@ -500,7 +499,7 @@ public void shouldInterpolateSourceDirectoryReferencedFromResourceDirectoryCorre public void shouldInterpolateUnprefixedBasedirExpression() throws Exception { Path basedir = Paths.get("/test/path"); Model model = Model.newBuilder() - .dependencies(Collections.singletonList(Dependency.newBuilder() + .dependencies(List.of(Dependency.newBuilder() .systemPath("${basedir}/artifact.jar") .build())) .build(); diff --git a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/MavenModelMergerTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/MavenModelMergerTest.java index 22227f2da9f3..50760c5b3e52 100644 --- a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/MavenModelMergerTest.java +++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/MavenModelMergerTest.java @@ -18,7 +18,7 @@ */ package org.apache.maven.impl.model; -import java.util.Collections; +import java.util.List; import org.apache.maven.api.model.Model; import org.apache.maven.api.model.Prerequisites; @@ -82,20 +82,17 @@ void testMergeModelPrerequisites() { // Profiles are neither inherited nor injected @Test void testMergeModelProfiles() { - Model parent = Model.newBuilder() - .profiles(Collections.singletonList(Profile.newInstance())) - .build(); + Model parent = + Model.newBuilder().profiles(List.of(Profile.newInstance())).build(); Model model = Model.newInstance(); Model.Builder builder = Model.newBuilder(model); modelMerger.mergeModel_Profiles(builder, model, parent, false, null); assertEquals(0, builder.build().getProfiles().size()); Profile modelProfile = Profile.newBuilder().id("MODEL").build(); - model = Model.newBuilder() - .profiles(Collections.singletonList(modelProfile)) - .build(); + model = Model.newBuilder().profiles(List.of(modelProfile)).build(); builder = Model.newBuilder(model); modelMerger.mergeModel_Prerequisites(builder, model, parent, false, null); - assertEquals(Collections.singletonList(modelProfile), builder.build().getProfiles()); + assertEquals(List.of(modelProfile), builder.build().getProfiles()); } } diff --git a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java index e06ea7c58e7d..4f04a2354b62 100644 --- a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java +++ b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java @@ -40,7 +40,6 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.maven.api.MojoExecution; @@ -270,7 +269,7 @@ public Object resolveParameter(ParameterContext parameterContext, ExtensionConte .orElseGet(() -> XmlNode.newInstance("config")); List children = mojoParameters.stream() .map(mp -> XmlNode.newInstance(mp.name(), mp.value())) - .collect(Collectors.toList()); + .toList(); XmlNode config = XmlNode.newInstance("configuration", null, null, children, null); pluginConfiguration = XmlService.merge(config, pluginConfiguration); diff --git a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/PluginStub.java b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/PluginStub.java index fb5bb4603806..36a212f5b713 100644 --- a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/PluginStub.java +++ b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/PluginStub.java @@ -18,7 +18,6 @@ */ package org.apache.maven.api.plugin.testing.stubs; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -51,11 +50,11 @@ public class PluginStub implements Plugin { org.apache.maven.api.model.Plugin model; PluginDescriptor descriptor; - List lifecycles = Collections.emptyList(); + List lifecycles = List.of(); ClassLoader classLoader; Artifact artifact; - List dependencies = Collections.emptyList(); - Map dependenciesMap = Collections.emptyMap(); + List dependencies = List.of(); + Map dependenciesMap = Map.of(); @Override public org.apache.maven.api.model.Plugin getModel() { diff --git a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java index 7968bb10fa36..cae0465240d0 100644 --- a/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java +++ b/impl/maven-testing/src/main/java/org/apache/maven/api/plugin/testing/stubs/ProjectStub.java @@ -88,6 +88,7 @@ public String getName() { public Packaging getPackaging() { return new Packaging() { @Override + @Nonnull public String id() { return model.getPackaging(); } @@ -128,6 +129,7 @@ public Set getPathTypes() { } @Override + @Nonnull public Map plugins() { return Map.of(); } @@ -135,6 +137,7 @@ public Map plugins() { } @Override + @Nonnull public List getArtifacts() { ProducedArtifact pomArtifact = new ProducedArtifactStub(getGroupId(), getArtifactId(), "", getVersion(), "pom"); return mainArtifact != null ? Arrays.asList(pomArtifact, mainArtifact) : Arrays.asList(pomArtifact); diff --git a/impl/maven-xml/src/main/java/org/apache/maven/internal/xml/DefaultXmlService.java b/impl/maven-xml/src/main/java/org/apache/maven/internal/xml/DefaultXmlService.java index bb99243ccf9d..2f6fbf18752d 100644 --- a/impl/maven-xml/src/main/java/org/apache/maven/internal/xml/DefaultXmlService.java +++ b/impl/maven-xml/src/main/java/org/apache/maven/internal/xml/DefaultXmlService.java @@ -312,7 +312,7 @@ public XmlNode doMerge(XmlNode dominant, XmlNode recessive, Boolean childMergeOv Iterator it = commonChildren.computeIfAbsent(name, n1 -> Stream.of(dominant.children().stream() .filter(n2 -> n2.name().equals(n1)) - .collect(Collectors.toList())) + .toList()) .filter(l -> !l.isEmpty()) .map(List::iterator) .findFirst() diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java b/its/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java index 085e48c50fcd..e2d625318782 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/HttpServer.java @@ -28,7 +28,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URL; -import java.util.Collections; +import java.util.List; import org.eclipse.jetty.security.ConstraintMapping; import org.eclipse.jetty.security.ConstraintSecurityHandler; @@ -133,7 +133,7 @@ private Server server(int port) { mapping.setPathSpec("/*"); mapping.setConstraint(constraint); - security.setConstraintMappings(Collections.singletonList(mapping)); + security.setConstraintMappings(List.of(mapping)); security.setAuthenticator(new BasicAuthenticator()); security.setLoginService(loginService); security.setHandler(handler); diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0818WarDepsNotTransitiveTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0818WarDepsNotTransitiveTest.java index 75ad6788b872..f2f9944e93b4 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0818WarDepsNotTransitiveTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng0818WarDepsNotTransitiveTest.java @@ -20,7 +20,7 @@ import java.io.File; import java.util.Collection; -import java.util.Collections; +import java.util.List; import org.junit.jupiter.api.Test; @@ -58,6 +58,6 @@ public void testitMNG0818() throws Exception { verifier.verifyErrorFreeLog(); Collection artifacts = verifier.loadLines("target/artifacts.txt"); - assertEquals(Collections.singletonList("org.apache.maven.its.it0080:war:war:0.1"), artifacts); + assertEquals(List.of("org.apache.maven.its.it0080:war:war:0.1"), artifacts); } } diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3769ExclusionRelocatedTransdepsTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3769ExclusionRelocatedTransdepsTest.java index 2c07da0d4ab7..d1c32812b0c6 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3769ExclusionRelocatedTransdepsTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3769ExclusionRelocatedTransdepsTest.java @@ -19,7 +19,6 @@ package org.apache.maven.it; import java.io.File; -import java.util.Collections; import java.util.List; import org.junit.jupiter.api.Test; @@ -59,7 +58,7 @@ public void testitMNG3769() throws Exception { verifier.verifyErrorFreeLog(); List artifacts = verifier.loadLines("target/artifacts.txt"); - assertEquals(Collections.singletonList("org.apache.maven.its.mng3769:dependency:jar:1.0"), artifacts); + assertEquals(List.of("org.apache.maven.its.mng3769:dependency:jar:1.0"), artifacts); List paths = verifier.loadLines("target/test.txt"); assertEquals(3, paths.size()); diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4034ManagedProfileDependencyTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4034ManagedProfileDependencyTest.java index b2c7a0c0177c..02b06de2f27b 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4034ManagedProfileDependencyTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4034ManagedProfileDependencyTest.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.Arrays; -import java.util.Collections; import java.util.List; import org.junit.jupiter.api.Test; @@ -60,6 +59,6 @@ public void testitMNG4034() throws Exception { assertEquals(Arrays.asList(new String[0]), artifacts); artifacts = verifier.loadLines("target/runtime.txt"); - assertEquals(Collections.singletonList("org.apache.maven.its:maven-core-it-support:jar:1.3"), artifacts); + assertEquals(List.of("org.apache.maven.its:maven-core-it-support:jar:1.3"), artifacts); } } diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4070WhitespaceTrimmingTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4070WhitespaceTrimmingTest.java index 8c3741ba3a86..f2f9ae11ff72 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4070WhitespaceTrimmingTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4070WhitespaceTrimmingTest.java @@ -19,7 +19,6 @@ package org.apache.maven.it; import java.io.File; -import java.util.Collections; import java.util.List; import org.junit.jupiter.api.Test; @@ -58,6 +57,6 @@ public void testit() throws Exception { verifier.verifyErrorFreeLog(); List artifacts = verifier.loadLines("target/artifacts.txt"); - assertEquals(Collections.singletonList("org.apache.maven.its.mng4070:a:jar:0.1"), artifacts); + assertEquals(List.of("org.apache.maven.its.mng4070:a:jar:0.1"), artifacts); } } diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4129PluginExecutionInheritanceTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4129PluginExecutionInheritanceTest.java index cf655b02e87d..69a814082a4c 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4129PluginExecutionInheritanceTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng4129PluginExecutionInheritanceTest.java @@ -62,9 +62,9 @@ public void testit() throws Exception { assertEquals(Arrays.asList(new String[] {"inherited-execution", "non-inherited-execution"}), executions); List executions1 = verifier.loadLines("child-1/target/executions.txt"); - assertEquals(Collections.singletonList("inherited-execution"), executions1); + assertEquals(List.of("inherited-execution"), executions1); List executions2 = verifier.loadLines("child-2/target/executions.txt"); - assertEquals(Collections.singletonList("inherited-execution"), executions2); + assertEquals(List.of("inherited-execution"), executions2); } } diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java index e020d3ff8f44..540f04c09fe4 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5669ReadPomsOnce.java @@ -73,7 +73,7 @@ public void testWithoutBuildConsumer() throws Exception { List duplicates = sourceMap.entrySet().stream() .filter(entry -> entry.getValue() > 1) .map(Map.Entry::getKey) - .collect(Collectors.toList()); + .toList(); assertTrue(duplicates.isEmpty(), "Duplicate items: " + String.join(System.lineSeparator(), duplicates)); } @@ -109,7 +109,7 @@ public void testWithBuildConsumer() throws Exception { List duplicates = sourceMap.entrySet().stream() .filter(entry -> entry.getValue() > 1) .map(Map.Entry::getKey) - .collect(Collectors.toList()); + .toList(); assertTrue(duplicates.isEmpty(), "Duplicate items: " + String.join(System.lineSeparator(), duplicates)); } diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7740ConsumerBuildShouldCleanUpOldFilesTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7740ConsumerBuildShouldCleanUpOldFilesTest.java index 694c68fdc773..3f0a475bcc3c 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7740ConsumerBuildShouldCleanUpOldFilesTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7740ConsumerBuildShouldCleanUpOldFilesTest.java @@ -22,7 +22,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; import org.junit.jupiter.api.Test; @@ -50,7 +49,7 @@ void testConsumerBuildShouldCleanUpOldConsumerFiles() throws Exception { final List consumerFiles = stream.filter( path -> path.getFileName().toString().contains("consumer") && path.getFileName().toString().contains("pom")) - .collect(Collectors.toList()); + .toList(); assertTrue(consumerFiles.size() == 0, "Expected no consumer pom file."); } } diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7804PluginExecutionOrderTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7804PluginExecutionOrderTest.java index f5110095796c..a501e8d4529d 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7804PluginExecutionOrderTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng7804PluginExecutionOrderTest.java @@ -20,7 +20,6 @@ import java.io.File; import java.util.List; -import java.util.stream.Collectors; import org.junit.jupiter.api.Test; @@ -54,7 +53,7 @@ void testOrder() throws Exception { List executions = verifier.loadLogLines().stream() .filter(l -> l.contains(" This should be ")) - .collect(Collectors.toList()); + .toList(); assertEquals(4, executions.size()); assertTrue(executions.get(0).contains("100")); assertTrue(executions.get(1).contains("200")); diff --git a/its/core-it-support/core-it-plugins/maven-it-plugin-expression/src/test/java/org/apache/maven/plugin/coreit/PropertyUtilTest.java b/its/core-it-support/core-it-plugins/maven-it-plugin-expression/src/test/java/org/apache/maven/plugin/coreit/PropertyUtilTest.java index d54358882370..eb23d3d71484 100644 --- a/its/core-it-support/core-it-plugins/maven-it-plugin-expression/src/test/java/org/apache/maven/plugin/coreit/PropertyUtilTest.java +++ b/its/core-it-support/core-it-plugins/maven-it-plugin-expression/src/test/java/org/apache/maven/plugin/coreit/PropertyUtilTest.java @@ -22,6 +22,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.Properties; +import java.util.Set; import org.junit.jupiter.api.Test; @@ -97,7 +98,7 @@ public void testStoreBean() { @Test public void testStoreCycle() { Object[] arr = {null}; - arr[0] = Collections.singleton(Collections.singletonMap("key", arr)); + arr[0] = Set.of(Collections.singletonMap("key", arr)); Properties props = new Properties(); PropertyUtil.store(props, "cycle", arr); diff --git a/its/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/Verifier.java b/its/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/Verifier.java index 0b0dd2a1edb9..c0f51dca8c34 100644 --- a/its/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/Verifier.java +++ b/its/core-it-support/maven-it-helper/src/main/java/org/apache/maven/it/Verifier.java @@ -193,6 +193,7 @@ public void execute() throws VerificationException { // remove it args = args.stream() .filter(s -> !s.startsWith("-Dmaven.repo.local.tail=")) + // do not use toList() here, as we need mutability .collect(Collectors.toList()); } @@ -585,7 +586,7 @@ private List replaceArtifacts(String line, boolean hasCommand) { return l; } else { - return Collections.singletonList(line); + return List.of(line); } } diff --git a/src/mdo/java/InputLocation.java b/src/mdo/java/InputLocation.java index 2685b813bac4..448a3edc586e 100644 --- a/src/mdo/java/InputLocation.java +++ b/src/mdo/java/InputLocation.java @@ -20,7 +20,6 @@ import java.io.Serializable; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; @@ -37,7 +36,7 @@ public InputLocation(InputSource source) { this.lineNumber = -1; this.columnNumber = -1; this.source = source; - this.locations = Collections.singletonMap(0, this); + this.locations = Map.of(0, this); } public InputLocation(int lineNumber, int columnNumber) { @@ -53,7 +52,7 @@ public InputLocation(int lineNumber, int columnNumber, InputSource source, Objec this.columnNumber = columnNumber; this.source = source; this.locations = - selfLocationKey != null ? Collections.singletonMap(selfLocationKey, this) : Collections.emptyMap(); + selfLocationKey != null ? Map.of(selfLocationKey, this) : Map.of(); } public InputLocation(int lineNumber, int columnNumber, InputSource source, Map locations) { diff --git a/src/mdo/model-v3.vm b/src/mdo/model-v3.vm index b2a21f7473df..a9d4edfd35a9 100644 --- a/src/mdo/model-v3.vm +++ b/src/mdo/model-v3.vm @@ -209,11 +209,11 @@ public class ${class.name} } #elseif ( $field.to != "String" && $field.type == "java.util.List" && $field.multiplicity == "*" ) if (${field.name} == null) { - ${field.name} = Collections.emptyList(); + ${field.name} = List.of(); } if (!Objects.equals(${field.name}, ${pfx}${cap}())) { update(getDelegate().with${cap}( - ${field.name}.stream().map(c -> c.getDelegate()).collect(Collectors.toList()))); + ${field.name}.stream().map(c -> c.getDelegate()).toList())); ${field.name}.forEach(e -> e.childrenTracking = this::replace); } #elseif ( $field.to && $field.to != "String" ) @@ -239,11 +239,11 @@ public class ${class.name} #if ( $field.to == "String" ) update(getDelegate().with${cap}( Stream.concat(getDelegate().get${cap}().stream(), Stream.of(${v})) - .collect(Collectors.toList()))); + .toList())); #else update(getDelegate().with${cap}( Stream.concat(getDelegate().get${cap}().stream(), Stream.of(${v}.getDelegate())) - .collect(Collectors.toList()))); + .toList())); ${v}.childrenTracking = this::replace; #end } @@ -253,12 +253,12 @@ public class ${class.name} update(getDelegate().with${cap}( getDelegate().get${cap}().stream() .filter(e -> !Objects.equals(e, ${v})) - .collect(Collectors.toList()))); + .toList())); #else update(getDelegate().with${cap}( getDelegate().get${cap}().stream() .filter(e -> !Objects.equals(e, ${v})) - .collect(Collectors.toList()))); + .toList())); ${v}.childrenTracking = null; #end }