This is an automated email from the ASF dual-hosted git repository.

khmarbaise pushed a commit to branch code-enhancement-jdk17
in repository https://gitbox.apache.org/repos/asf/maven.git

commit df8c8d0e148cf6b7fb38530bcf06619d837d3e58
Author: Karl Heinz Marbaise <khmarba...@apache.org>
AuthorDate: Thu Mar 7 01:30:21 2024 +0100

    Enhancements JDK17
---
 .../org/apache/maven/api/feature/Features.java     |  4 ++--
 api/maven-api-model/src/main/mdo/maven.mdo         |  3 +--
 .../src/main/mdo/toolchains.mdo                    |  3 +--
 .../org/apache/maven/artifact/ArtifactUtils.java   | 25 +++++++++++-----------
 .../manager/DefaultArtifactHandlerManager.java     |  5 ++---
 .../manager/LegacyArtifactHandlerManager.java      |  5 ++---
 .../resolver/filter/AndArtifactFilter.java         |  4 +---
 .../filter/CumulativeScopeArtifactFilter.java      |  4 +---
 .../resolver/filter/ExclusionSetFilter.java        |  4 +---
 .../resolver/filter/IncludesArtifactFilter.java    |  2 +-
 .../resolver/filter/ScopeArtifactFilter.java       |  4 +---
 .../apache/maven/bridge/MavenRepositorySystem.java |  5 ++---
 .../maven/classrealm/DefaultClassRealmManager.java |  4 ++--
 .../internal/DefaultBeanConfigurator.java          | 12 +++++------
 .../internal/EnhancedConfigurationConverter.java   |  8 +++----
 .../maven/execution/BuildResumptionData.java       | 21 +++---------------
 .../execution/DefaultBuildResumptionAnalyzer.java  |  3 +--
 .../DefaultBuildResumptionDataRepository.java      |  2 +-
 .../org/apache/maven/execution/MavenSession.java   |  2 +-
 .../apache/maven/execution/ProjectActivation.java  | 21 +++++-------------
 .../scope/internal/MojoExecutionScope.java         |  4 ++--
 .../maven/extension/internal/CoreExports.java      |  3 +--
 .../maven/graph/DefaultProjectDependencyGraph.java |  3 +--
 .../org/apache/maven/graph/ProjectSelector.java    |  6 ++++--
 .../DefaultRepositorySystemSessionFactory.java     |  2 +-
 .../internal/aether/LoggingRepositoryListener.java |  4 ++--
 .../aether/ReverseTreeRepositoryListener.java      |  4 ++--
 .../maven/internal/aether/TypeRegistryAdapter.java |  4 ++--
 .../apache/maven/internal/impl/AbstractNode.java   |  4 ++--
 .../maven/internal/impl/AbstractSession.java       | 16 +++++++-------
 .../maven/internal/impl/DefaultArtifact.java       |  2 +-
 .../internal/impl/DefaultArtifactManager.java      |  4 ++--
 .../DefaultBuildResumptionAnalyzerTest.java        |  8 +++----
 .../src/main/java/org/apache/maven/di/Key.java     |  4 ++--
 .../org/apache/maven/di/impl/InjectorImplTest.java | 12 +++++------
 src/mdo/java/WrapperProperties.java                |  4 ++--
 36 files changed, 92 insertions(+), 133 deletions(-)

diff --git 
a/api/maven-api-core/src/main/java/org/apache/maven/api/feature/Features.java 
b/api/maven-api-core/src/main/java/org/apache/maven/api/feature/Features.java
index 2f49928e62..71c2abc7bb 100644
--- 
a/api/maven-api-core/src/main/java/org/apache/maven/api/feature/Features.java
+++ 
b/api/maven-api-core/src/main/java/org/apache/maven/api/feature/Features.java
@@ -69,8 +69,8 @@ public final class Features {
     }
 
     private static boolean doGet(Object val, boolean def) {
-        if (val instanceof Boolean) {
-            return (Boolean) val;
+        if (val instanceof Boolean value) {
+            return value;
         } else if (val != null) {
             return Boolean.parseBoolean(val.toString());
         } else {
diff --git a/api/maven-api-model/src/main/mdo/maven.mdo 
b/api/maven-api-model/src/main/mdo/maven.mdo
index 319341d31d..7594f7618b 100644
--- a/api/maven-api-model/src/main/mdo/maven.mdo
+++ b/api/maven-api-model/src/main/mdo/maven.mdo
@@ -2465,8 +2465,7 @@
      * @see java.lang.Object#equals(java.lang.Object)
      */
     public boolean equals(Object other) {
-        if (other instanceof Plugin) {
-            Plugin otherPlugin = (Plugin) other;
+        if (other instanceof Plugin otherPlugin) {
             return getKey().equals(otherPlugin.getKey());
         }
         return false;
diff --git a/api/maven-api-toolchain/src/main/mdo/toolchains.mdo 
b/api/maven-api-toolchain/src/main/mdo/toolchains.mdo
index 6a9bd87860..a2c8abcb1e 100644
--- a/api/maven-api-toolchain/src/main/mdo/toolchains.mdo
+++ b/api/maven-api-toolchain/src/main/mdo/toolchains.mdo
@@ -186,10 +186,9 @@
     public boolean equals(Object other) {
         if (this == other) {
             return true;
-        } else if (!(other instanceof ToolchainModel)) {
+        } else if (!(other instanceof ToolchainModel that)) {
             return false;
         } else {
-            ToolchainModel that = (ToolchainModel) other;
             return java.util.Objects.equals(this.getType(), that.getType())
                 && java.util.Objects.equals(this.getProvides(), 
that.getProvides());
         }
diff --git 
a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java 
b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
index 8ea6710a56..a563b2972e 100644
--- a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
+++ b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
@@ -33,19 +33,20 @@ import org.apache.maven.artifact.versioning.VersionRange;
 public final class ArtifactUtils {
 
     public static boolean isSnapshot(String version) {
-        if (version != null) {
-            if (version.regionMatches(
-                    true,
-                    version.length() - Artifact.SNAPSHOT_VERSION.length(),
-                    Artifact.SNAPSHOT_VERSION,
-                    0,
-                    Artifact.SNAPSHOT_VERSION.length())) {
-                return true;
-            } else {
-                return 
Artifact.VERSION_FILE_PATTERN.matcher(version).matches();
-            }
+        if (version == null) {
+            return false;
+        }
+
+        if (version.regionMatches(
+                true,
+                version.length() - Artifact.SNAPSHOT_VERSION.length(),
+                Artifact.SNAPSHOT_VERSION,
+                0,
+                Artifact.SNAPSHOT_VERSION.length())) {
+            return true;
+        } else {
+            return Artifact.VERSION_FILE_PATTERN.matcher(version).matches();
         }
-        return false;
     }
 
     public static String toSnapshotVersion(String version) {
diff --git 
a/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/DefaultArtifactHandlerManager.java
 
b/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/DefaultArtifactHandlerManager.java
index 2ad0541914..1dd2f50b0d 100644
--- 
a/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/DefaultArtifactHandlerManager.java
+++ 
b/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/DefaultArtifactHandlerManager.java
@@ -53,9 +53,8 @@ public class DefaultArtifactHandlerManager extends 
AbstractEventSpy implements A
 
     @Override
     public void onEvent(Object event) {
-        if (event instanceof ExecutionEvent) {
-            ExecutionEvent executionEvent = (ExecutionEvent) event;
-            if (executionEvent.getType() == ExecutionEvent.Type.SessionEnded) {
+        if (event instanceof ExecutionEvent executionEvent) {
+            if (requireNonNull(executionEvent.getType()) == 
ExecutionEvent.Type.SessionEnded) {
                 allHandlers.clear();
             }
         }
diff --git 
a/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/LegacyArtifactHandlerManager.java
 
b/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/LegacyArtifactHandlerManager.java
index 46e480fae5..6b85a2c626 100644
--- 
a/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/LegacyArtifactHandlerManager.java
+++ 
b/maven-core/src/main/java/org/apache/maven/artifact/handler/manager/LegacyArtifactHandlerManager.java
@@ -48,8 +48,7 @@ public class LegacyArtifactHandlerManager extends 
AbstractEventSpy {
 
     @Override
     public void onEvent(Object event) {
-        if (event instanceof ExecutionEvent) {
-            ExecutionEvent executionEvent = (ExecutionEvent) event;
+        if (event instanceof ExecutionEvent executionEvent) {
             if (executionEvent.getType() == ExecutionEvent.Type.SessionEnded) {
                 allHandlers.clear();
             }
@@ -58,7 +57,7 @@ public class LegacyArtifactHandlerManager extends 
AbstractEventSpy {
 
     public ArtifactHandler getArtifactHandler(String type) {
         requireNonNull(type, "null type");
-        ArtifactHandler handler = allHandlers.get(type);
+        var handler = allHandlers.get(type);
         if (handler == null) {
             handler = artifactHandlers.get(type);
             if (handler == null) {
diff --git 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/AndArtifactFilter.java
 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/AndArtifactFilter.java
index 13928c4b59..8f5bed511d 100644
--- 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/AndArtifactFilter.java
+++ 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/AndArtifactFilter.java
@@ -73,12 +73,10 @@ public class AndArtifactFilter implements ArtifactFilter {
             return true;
         }
 
-        if (!(obj instanceof AndArtifactFilter)) {
+        if (!(obj instanceof AndArtifactFilter other)) {
             return false;
         }
 
-        AndArtifactFilter other = (AndArtifactFilter) obj;
-
         return filters.equals(other.filters);
     }
 }
diff --git 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java
 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java
index 5f7235b1b4..e7cf7eefa9 100644
--- 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java
+++ 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/CumulativeScopeArtifactFilter.java
@@ -92,12 +92,10 @@ public class CumulativeScopeArtifactFilter extends 
AbstractScopeArtifactFilter {
             return true;
         }
 
-        if (!(obj instanceof CumulativeScopeArtifactFilter)) {
+        if (!(obj instanceof CumulativeScopeArtifactFilter that)) {
             return false;
         }
 
-        CumulativeScopeArtifactFilter that = (CumulativeScopeArtifactFilter) 
obj;
-
         return scopes.equals(that.scopes);
     }
 }
diff --git 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionSetFilter.java
 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionSetFilter.java
index 7e57e940b9..55cd616724 100644
--- 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionSetFilter.java
+++ 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ExclusionSetFilter.java
@@ -62,12 +62,10 @@ public class ExclusionSetFilter implements ArtifactFilter {
             return true;
         }
 
-        if (!(obj instanceof ExclusionSetFilter)) {
+        if (!(obj instanceof ExclusionSetFilter other)) {
             return false;
         }
 
-        ExclusionSetFilter other = (ExclusionSetFilter) obj;
-
         return excludes.equals(other.excludes);
     }
 }
diff --git 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/IncludesArtifactFilter.java
 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/IncludesArtifactFilter.java
index 8ee8ce48d2..a243b79358 100644
--- 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/IncludesArtifactFilter.java
+++ 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/IncludesArtifactFilter.java
@@ -41,7 +41,7 @@ public class IncludesArtifactFilter implements ArtifactFilter 
{
         String id = artifact.getGroupId() + ":" + artifact.getArtifactId();
 
         boolean matched = false;
-        for (Iterator<String> i = patterns.iterator(); i.hasNext() & !matched; 
) {
+        for (Iterator<String> i = patterns.iterator(); i.hasNext() && 
!matched; ) {
             // TODO what about wildcards? Just specifying groups? versions?
             if (id.equals(i.next())) {
                 matched = true;
diff --git 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
index 28ca6e7efe..c5ac90728e 100644
--- 
a/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
+++ 
b/maven-core/src/main/java/org/apache/maven/artifact/resolver/filter/ScopeArtifactFilter.java
@@ -53,12 +53,10 @@ public class ScopeArtifactFilter extends 
AbstractScopeArtifactFilter {
             return true;
         }
 
-        if (!(obj instanceof ScopeArtifactFilter)) {
+        if (!(obj instanceof ScopeArtifactFilter other)) {
             return false;
         }
 
-        ScopeArtifactFilter other = (ScopeArtifactFilter) obj;
-
         return Objects.equals(scope, other.scope);
     }
 }
diff --git 
a/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java 
b/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
index 1810c50a90..ab4e48f14f 100644
--- 
a/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
+++ 
b/maven-core/src/main/java/org/apache/maven/bridge/MavenRepositorySystem.java
@@ -410,9 +410,8 @@ public class MavenRepositorySystem {
         }
 
         ArtifactRepository repository;
-        if (repositoryLayout instanceof ArtifactRepositoryLayout2) {
-            repository = ((ArtifactRepositoryLayout2) repositoryLayout)
-                    .newMavenArtifactRepository(id, url, snapshots, releases);
+        if (repositoryLayout instanceof ArtifactRepositoryLayout2 
repositoryLayout2) {
+            repository = repositoryLayout2.newMavenArtifactRepository(id, url, 
snapshots, releases);
         } else {
             repository = new MavenArtifactRepository(id, url, 
repositoryLayout, snapshots, releases);
         }
diff --git 
a/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
 
b/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
index 14bec0c1c0..91e0ec0fb3 100644
--- 
a/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
+++ 
b/maven-core/src/main/java/org/apache/maven/classrealm/DefaultClassRealmManager.java
@@ -330,8 +330,8 @@ public class DefaultClassRealmManager implements 
ClassRealmManager {
     }
 
     private static Object getId(ClassLoader classLoader) {
-        if (classLoader instanceof ClassRealm) {
-            return ((ClassRealm) classLoader).getId();
+        if (classLoader instanceof ClassRealm classRealm) {
+            return classRealm.getId();
         }
         return classLoader;
     }
diff --git 
a/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
 
b/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
index 42e9848cd6..52f4a55bc1 100644
--- 
a/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
+++ 
b/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
@@ -73,10 +73,10 @@ public class DefaultBeanConfigurator implements 
BeanConfigurator {
         }
 
         PlexusConfiguration plexusConfig;
-        if (configuration instanceof PlexusConfiguration) {
-            plexusConfig = (PlexusConfiguration) configuration;
-        } else if (configuration instanceof Xpp3Dom) {
-            plexusConfig = new XmlPlexusConfiguration((Xpp3Dom) configuration);
+        if (configuration instanceof PlexusConfiguration config) {
+            plexusConfig = config;
+        } else if (configuration instanceof Xpp3Dom config) {
+            plexusConfig = new XmlPlexusConfiguration(config);
         } else {
             throw new BeanConfigurationException("unsupported bean 
configuration source ("
                     + configuration.getClass().getName() + ")");
@@ -196,8 +196,8 @@ public class DefaultBeanConfigurator implements 
BeanConfigurator {
             final Object result =
                     super.fromConfiguration(lookup, configuration, type, 
enclosingType, loader, evaluator, listener);
 
-            return result instanceof Path
-                    ? evaluator.alignToBaseDirectory(((Path) 
result).toFile()).toPath()
+            return result instanceof Path newpath
+                    ? 
evaluator.alignToBaseDirectory((newpath).toFile()).toPath()
                     : result;
         }
     }
diff --git 
a/maven-core/src/main/java/org/apache/maven/configuration/internal/EnhancedConfigurationConverter.java
 
b/maven-core/src/main/java/org/apache/maven/configuration/internal/EnhancedConfigurationConverter.java
index 3207e7b120..a54af73223 100644
--- 
a/maven-core/src/main/java/org/apache/maven/configuration/internal/EnhancedConfigurationConverter.java
+++ 
b/maven-core/src/main/java/org/apache/maven/configuration/internal/EnhancedConfigurationConverter.java
@@ -40,8 +40,8 @@ class EnhancedConfigurationConverter extends 
ObjectWithFieldsConverter {
         try {
             Object result = null;
             if (null != value && !value.isEmpty()) {
-                if (evaluator instanceof TypeAwareExpressionEvaluator) {
-                    result = ((TypeAwareExpressionEvaluator) 
evaluator).evaluate(value, type);
+                if (evaluator instanceof TypeAwareExpressionEvaluator eval) {
+                    result = eval.evaluate(value, type);
                 } else {
                     result = evaluator.evaluate(value);
                 }
@@ -49,8 +49,8 @@ class EnhancedConfigurationConverter extends 
ObjectWithFieldsConverter {
             if (null == result && configuration.getChildCount() == 0) {
                 value = configuration.getAttribute("default-value");
                 if (null != value && !value.isEmpty()) {
-                    if (evaluator instanceof TypeAwareExpressionEvaluator) {
-                        result = ((TypeAwareExpressionEvaluator) 
evaluator).evaluate(value, type);
+                    if (evaluator instanceof TypeAwareExpressionEvaluator 
eval) {
+                        result = eval.evaluate(value, type);
                     } else {
                         result = evaluator.evaluate(value);
                     }
diff --git 
a/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionData.java 
b/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionData.java
index d46adf2a7d..202df472a9 100644
--- 
a/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionData.java
+++ 
b/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionData.java
@@ -22,22 +22,7 @@ import java.util.List;
 
 /**
  * This class holds the information required to enable resuming a Maven build 
with {@code --resume}.
+ *
+ * @param remainingProjects The list of projects that remain to be built.
  */
-public class BuildResumptionData {
-    /**
-     * The list of projects that remain to be built.
-     */
-    private final List<String> remainingProjects;
-
-    public BuildResumptionData(final List<String> remainingProjects) {
-        this.remainingProjects = remainingProjects;
-    }
-
-    /**
-     * Returns the projects that still need to be built when resuming.
-     * @return A list containing the group and artifact id of the projects.
-     */
-    public List<String> getRemainingProjects() {
-        return this.remainingProjects;
-    }
-}
+public record BuildResumptionData(List<String> remainingProjects) {}
diff --git 
a/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzer.java
 
b/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzer.java
index 0bc99bdb78..47a87e1cd1 100644
--- 
a/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzer.java
+++ 
b/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzer.java
@@ -23,7 +23,6 @@ import javax.inject.Singleton;
 
 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 class DefaultBuildResumptionAnalyzer implements 
BuildResumptionAnalyzer {
                 .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/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionDataRepository.java
 
b/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionDataRepository.java
index 8a4ded84fb..3cab13d12f 100644
--- 
a/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionDataRepository.java
+++ 
b/maven-core/src/main/java/org/apache/maven/execution/DefaultBuildResumptionDataRepository.java
@@ -66,7 +66,7 @@ public class DefaultBuildResumptionDataRepository implements 
BuildResumptionData
     private Properties convertToProperties(final BuildResumptionData 
buildResumptionData) {
         Properties properties = new Properties();
 
-        String value = String.join(PROPERTY_DELIMITER, 
buildResumptionData.getRemainingProjects());
+        String value = String.join(PROPERTY_DELIMITER, 
buildResumptionData.remainingProjects());
         properties.setProperty(REMAINING_PROJECTS, value);
 
         return properties;
diff --git 
a/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java 
b/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
index ac6c1eddbc..f9f68d379a 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
@@ -96,7 +96,7 @@ public class MavenSession implements Cloneable {
             MavenProject first = projects.get(0);
             this.currentProject = ThreadLocal.withInitial(() -> first);
             this.topLevelProject = projects.stream()
-                    .filter(project -> project.isExecutionRoot())
+                    .filter(MavenProject::isExecutionRoot)
                     .findFirst()
                     .orElse(first);
         } else {
diff --git 
a/maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java 
b/maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java
index f5f91a4e43..6cc400e7df 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/ProjectActivation.java
@@ -33,22 +33,11 @@ import static java.util.stream.Collectors.toSet;
  * build if those projects do not exist.
  */
 public class ProjectActivation {
-    private static class ProjectActivationSettings {
-        /**
-         * The selector of a project. This can be the project directory, 
[groupId]:[artifactId] or :[artifactId].
-         */
-        final String selector;
-
-        /**
-         * This describes how/when to active or deactivate the project.
-         */
-        final ActivationSettings activationSettings;
-
-        ProjectActivationSettings(String selector, ActivationSettings 
activationSettings) {
-            this.selector = selector;
-            this.activationSettings = activationSettings;
-        }
-    }
+    /**
+     * @param selector The selector of a project. This can be the project 
directory, [groupId]:[artifactId] or :[artifactId].
+     * @param activationSettings This describes how/when to active or 
deactivate the project.
+     */
+    private record ProjectActivationSettings(String selector, 
ActivationSettings activationSettings) {}
 
     /**
      * List of activated and deactivated projects.
diff --git 
a/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
 
b/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
index b650912f25..75f755c369 100644
--- 
a/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
+++ 
b/maven-core/src/main/java/org/apache/maven/execution/scope/internal/MojoExecutionScope.java
@@ -141,8 +141,8 @@ public class MojoExecutionScope implements Scope, 
MojoExecutionListener {
         // deduplicate instances to avoid redundant beforeXXX/afterXXX 
callbacks
         IdentityHashMap<WeakMojoExecutionListener, Object> listeners = new 
IdentityHashMap<>();
         for (Object provided : getScopeState().provided.values()) {
-            if (provided instanceof WeakMojoExecutionListener) {
-                listeners.put((WeakMojoExecutionListener) provided, null);
+            if (provided instanceof WeakMojoExecutionListener 
weakMojoExecutionListener) {
+                listeners.put(weakMojoExecutionListener, null);
             }
         }
         return listeners.keySet();
diff --git 
a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java 
b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java
index aec37e7041..4d78b80bbf 100644
--- 
a/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java
+++ 
b/maven-core/src/main/java/org/apache/maven/extension/internal/CoreExports.java
@@ -19,7 +19,6 @@
 package org.apache.maven.extension.internal;
 
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
@@ -45,7 +44,7 @@ public class CoreExports {
     }
 
     public CoreExports(ClassRealm realm, Set<String> exportedArtifacts, 
Set<String> exportedPackages) {
-        this.artifacts = Collections.unmodifiableSet(new 
HashSet<>(exportedArtifacts));
+        this.artifacts = Set.copyOf(exportedArtifacts);
         this.packages = exportedPackages.stream()
                 .collect(collectingAndThen(toMap(identity(), v -> realm), 
Collections::unmodifiableMap));
     }
diff --git 
a/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java
 
b/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java
index d49670b438..323787e7d2 100644
--- 
a/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java
+++ 
b/maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java
@@ -28,7 +28,6 @@ import java.util.List;
 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 @@ public class DefaultProjectDependencyGraph implements 
ProjectDependencyGraph {
         return projectIds.stream()
                 .map(projects::get)
                 .sorted(Comparator.comparingInt(order::get))
-                .collect(Collectors.toList());
+                .toList();
     }
 
     @Override
diff --git 
a/maven-core/src/main/java/org/apache/maven/graph/ProjectSelector.java 
b/maven-core/src/main/java/org/apache/maven/graph/ProjectSelector.java
index f2ee85f738..0fc136766d 100644
--- a/maven-core/src/main/java/org/apache/maven/graph/ProjectSelector.java
+++ b/maven-core/src/main/java/org/apache/maven/graph/ProjectSelector.java
@@ -47,7 +47,7 @@ public final class ProjectSelector {
         for (String selector : projectSelectors) {
             Optional<MavenProject> optSelectedProject =
                     findOptionalProjectBySelector(projects, baseDirectory, 
selector);
-            if (!optSelectedProject.isPresent()) {
+            if (optSelectedProject.isEmpty()) {
                 String message = "Could not find the selected project in the 
reactor: " + selector;
                 throw new MavenExecutionException(message, request.getPom());
             }
@@ -101,7 +101,9 @@ public final class ProjectSelector {
     }
 
     File getBaseDirectoryFromRequest(MavenExecutionRequest request) {
-        return request.getBaseDirectory() != null ? new 
File(request.getBaseDirectory()) : null;
+        return request.getTopDirectory() != null
+                ? new File(request.getTopDirectory().toString())
+                : null;
     }
 
     boolean isMatchingProject(MavenProject project, String selector, File 
reactorDirectory) {
diff --git 
a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
 
b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index d587541eec..adb3f950bb 100644
--- 
a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ 
b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -471,7 +471,7 @@ class DefaultRepositorySystemSessionFactory implements 
RepositorySystemSessionFa
         if (filterExpression != null) {
             List<String> expressions = 
Arrays.stream(filterExpression.split(";"))
                     .filter(s -> s != null && !s.trim().isEmpty())
-                    .collect(Collectors.toList());
+                    .toList();
             for (String expression : expressions) {
                 if ("h".equals(expression)) {
                     filters.add(new HighestVersionFilter());
diff --git 
a/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java
 
b/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java
index fe9c074b33..acb1cc0c70 100644
--- 
a/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java
+++ 
b/maven-core/src/main/java/org/apache/maven/internal/aether/LoggingRepositoryListener.java
@@ -64,8 +64,8 @@ class LoggingRepositoryListener extends 
AbstractRepositoryListener {
         Exception exception = event.getException();
 
         Object metadata;
-        if (event.getMetadata().getFile() != null) {
-            metadata = event.getMetadata().getFile();
+        if (event.getMetadata().getPath() != null) {
+            metadata = event.getMetadata().getPath();
         } else {
             metadata = event.getMetadata();
         }
diff --git 
a/maven-core/src/main/java/org/apache/maven/internal/aether/ReverseTreeRepositoryListener.java
 
b/maven-core/src/main/java/org/apache/maven/internal/aether/ReverseTreeRepositoryListener.java
index 14f7378703..e5b5b43512 100644
--- 
a/maven-core/src/main/java/org/apache/maven/internal/aether/ReverseTreeRepositoryListener.java
+++ 
b/maven-core/src/main/java/org/apache/maven/internal/aether/ReverseTreeRepositoryListener.java
@@ -209,8 +209,8 @@ class ReverseTreeRepositoryListener extends 
AbstractRepositoryListener {
     static CollectStepData lookupCollectStepData(RequestTrace trace) {
         CollectStepData collectStepTrace = null;
         while (trace != null) {
-            if (trace.getData() instanceof CollectStepData) {
-                collectStepTrace = (CollectStepData) trace.getData();
+            if (trace.getData() instanceof CollectStepData collectStepData) {
+                collectStepTrace = collectStepData;
                 break;
             }
             trace = trace.getParent();
diff --git 
a/maven-core/src/main/java/org/apache/maven/internal/aether/TypeRegistryAdapter.java
 
b/maven-core/src/main/java/org/apache/maven/internal/aether/TypeRegistryAdapter.java
index 2f10720eb9..ac2127c2f2 100644
--- 
a/maven-core/src/main/java/org/apache/maven/internal/aether/TypeRegistryAdapter.java
+++ 
b/maven-core/src/main/java/org/apache/maven/internal/aether/TypeRegistryAdapter.java
@@ -37,8 +37,8 @@ class TypeRegistryAdapter implements ArtifactTypeRegistry {
     @Override
     public ArtifactType get(String typeId) {
         Type type = typeRegistry.require(typeId);
-        if (type instanceof ArtifactType) {
-            return (ArtifactType) type;
+        if (type instanceof ArtifactType artifactType) {
+            return artifactType;
         }
         if (type != null) {
             return new DefaultType(
diff --git 
a/maven-core/src/main/java/org/apache/maven/internal/impl/AbstractNode.java 
b/maven-core/src/main/java/org/apache/maven/internal/impl/AbstractNode.java
index f3e8987f17..9b3cfeb86b 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/impl/AbstractNode.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/impl/AbstractNode.java
@@ -48,8 +48,8 @@ public abstract class AbstractNode implements Node {
     @Override
     public Node filter(Predicate<Node> filter) {
         List<Node> 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/maven-core/src/main/java/org/apache/maven/internal/impl/AbstractSession.java 
b/maven-core/src/main/java/org/apache/maven/internal/impl/AbstractSession.java
index b85b5b816f..ac7a9c96d3 100644
--- 
a/maven-core/src/main/java/org/apache/maven/internal/impl/AbstractSession.java
+++ 
b/maven-core/src/main/java/org/apache/maven/internal/impl/AbstractSession.java
@@ -98,8 +98,8 @@ public abstract class AbstractSession implements 
InternalSession {
 
     @Override
     public org.eclipse.aether.repository.RemoteRepository 
toRepository(RemoteRepository repository) {
-        if (repository instanceof DefaultRemoteRepository) {
-            return ((DefaultRemoteRepository) repository).getRepository();
+        if (repository instanceof DefaultRemoteRepository 
defaultRemoteRepository) {
+            return defaultRemoteRepository.getRepository();
         } else {
             // TODO
             throw new UnsupportedOperationException("Not implemented yet");
@@ -108,8 +108,8 @@ public abstract class AbstractSession implements 
InternalSession {
 
     @Override
     public org.eclipse.aether.repository.LocalRepository 
toRepository(LocalRepository repository) {
-        if (repository instanceof DefaultLocalRepository) {
-            return ((DefaultLocalRepository) repository).getRepository();
+        if (repository instanceof DefaultLocalRepository 
defaultLocalRepository) {
+            return defaultLocalRepository.getRepository();
         } else {
             // TODO
             throw new UnsupportedOperationException("Not implemented yet");
@@ -144,8 +144,8 @@ public abstract class AbstractSession implements 
InternalSession {
                 .getPath(artifact)
                 .map(Path::toFile)
                 .orElse(null);
-        if (artifact instanceof DefaultArtifact) {
-            org.eclipse.aether.artifact.Artifact a = ((DefaultArtifact) 
artifact).getArtifact();
+        if (artifact instanceof DefaultArtifact defaultArtifact) {
+            org.eclipse.aether.artifact.Artifact a = 
defaultArtifact.getArtifact();
             if (Objects.equals(file, a.getFile())) {
                 return a;
             }
@@ -162,8 +162,8 @@ public abstract class AbstractSession implements 
InternalSession {
 
     @Override
     public org.eclipse.aether.artifact.Artifact toArtifact(ArtifactCoordinate 
coord) {
-        if (coord instanceof DefaultArtifactCoordinate) {
-            return ((DefaultArtifactCoordinate) coord).getCoordinate();
+        if (coord instanceof DefaultArtifactCoordinate 
defaultArtifactCoordinate) {
+            return defaultArtifactCoordinate.getCoordinate();
         }
         return new org.eclipse.aether.artifact.DefaultArtifact(
                 coord.getGroupId(),
diff --git 
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java 
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
index 563797f05c..ae8b166b97 100644
--- 
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
+++ 
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifact.java
@@ -106,7 +106,7 @@ public class DefaultArtifact implements Artifact {
 
     @Override
     public boolean equals(Object o) {
-        return o instanceof Artifact && Objects.equals(key(), ((Artifact) 
o).key());
+        return o instanceof Artifact artifact && Objects.equals(key(), 
artifact.key());
     }
 
     @Override
diff --git 
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
 
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
index 1ac100076d..a53b820b8f 100644
--- 
a/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
+++ 
b/maven-core/src/main/java/org/apache/maven/internal/impl/DefaultArtifactManager.java
@@ -66,8 +66,8 @@ public class DefaultArtifactManager implements 
ArtifactManager {
             }
         }
         Path path = paths.get(id);
-        if (path == null && artifact instanceof DefaultArtifact) {
-            File file = ((DefaultArtifact) artifact).getArtifact().getFile();
+        if (path == null && artifact instanceof DefaultArtifact 
defaultArtifact) {
+            File file = defaultArtifact.getArtifact().getFile();
             if (file != null) {
                 path = file.toPath();
             }
diff --git 
a/maven-core/src/test/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzerTest.java
 
b/maven-core/src/test/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzerTest.java
index 6ed0ecfb8b..2cbd91b80f 100644
--- 
a/maven-core/src/test/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzerTest.java
+++ 
b/maven-core/src/test/java/org/apache/maven/execution/DefaultBuildResumptionAnalyzerTest.java
@@ -50,7 +50,7 @@ class DefaultBuildResumptionAnalyzerTest {
         Optional<BuildResumptionData> result = 
analyzer.determineBuildResumptionData(executionResult);
 
         assertThat(result.isPresent(), is(true));
-        assertThat(result.get().getRemainingProjects(), is(asList("test:B")));
+        assertThat(result.get().remainingProjects(), is(asList("test:B")));
     }
 
     @Test
@@ -74,7 +74,7 @@ class DefaultBuildResumptionAnalyzerTest {
         Optional<BuildResumptionData> result = 
analyzer.determineBuildResumptionData(executionResult);
 
         assertThat(result.isPresent(), is(true));
-        assertThat(result.get().getRemainingProjects(), is(asList("test:B")));
+        assertThat(result.get().remainingProjects(), is(asList("test:B")));
     }
 
     @Test
@@ -88,7 +88,7 @@ class DefaultBuildResumptionAnalyzerTest {
         Optional<BuildResumptionData> result = 
analyzer.determineBuildResumptionData(executionResult);
 
         assertThat(result.isPresent(), is(true));
-        assertThat(result.get().getRemainingProjects(), is(asList("test:B", 
"test:C")));
+        assertThat(result.get().remainingProjects(), is(asList("test:B", 
"test:C")));
     }
 
     @Test
@@ -102,7 +102,7 @@ class DefaultBuildResumptionAnalyzerTest {
         Optional<BuildResumptionData> result = 
analyzer.determineBuildResumptionData(executionResult);
 
         assertThat(result.isPresent(), is(true));
-        assertThat(result.get().getRemainingProjects(), is(asList("test:B", 
"test:D")));
+        assertThat(result.get().remainingProjects(), is(asList("test:B", 
"test:D")));
     }
 
     private MavenProject createMavenProject(String artifactId) {
diff --git a/maven-di/src/main/java/org/apache/maven/di/Key.java 
b/maven-di/src/main/java/org/apache/maven/di/Key.java
index d27882ae76..c2f07d7642 100644
--- a/maven-di/src/main/java/org/apache/maven/di/Key.java
+++ b/maven-di/src/main/java/org/apache/maven/di/Key.java
@@ -113,8 +113,8 @@ public abstract class Key<T> {
      * @throws IllegalStateException when underlying type is not a 
parameterized one.
      */
     public <U> Key<U> getTypeParameter(int index) {
-        if (type instanceof ParameterizedType) {
-            return new KeyImpl<>(((ParameterizedType) 
type).getActualTypeArguments()[index], null);
+        if (type instanceof ParameterizedType parameterizedType) {
+            return new 
KeyImpl<>(parameterizedType.getActualTypeArguments()[index], null);
         }
         throw new IllegalStateException("Expected type from key " + 
getDisplayString() + " to be parameterized");
     }
diff --git 
a/maven-di/src/test/java/org/apache/maven/di/impl/InjectorImplTest.java 
b/maven-di/src/test/java/org/apache/maven/di/impl/InjectorImplTest.java
index 4611154065..8731fe89c8 100644
--- a/maven-di/src/test/java/org/apache/maven/di/impl/InjectorImplTest.java
+++ b/maven-di/src/test/java/org/apache/maven/di/impl/InjectorImplTest.java
@@ -34,7 +34,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
 import static org.junit.jupiter.api.Assertions.*;
 
 @SuppressWarnings("unused")
-public class InjectorImplTest {
+class InjectorImplTest {
 
     @Test
     void markerQualifierTest() {
@@ -143,10 +143,9 @@ public class InjectorImplTest {
     }
 
     @Test
-    public void bindInterfacesTest() {
+    void bindInterfacesTest() {
         Injector injector = 
Injector.create().bindImplicit(BindInterfaces.class);
-        BindInterfaces.TestInterface<String> inst =
-                injector.getInstance(new 
Key<BindInterfaces.TestInterface<String>>() {});
+        BindInterfaces.TestInterface<String> inst = injector.getInstance(new 
Key<>() {});
         assertNotNull(inst);
     }
 
@@ -177,7 +176,7 @@ public class InjectorImplTest {
     @Test
     void injectListTest() {
         Injector injector = Injector.create().bindImplicit(InjectList.class);
-        List<InjectList.MyService> services = injector.getInstance(new 
Key<List<InjectList.MyService>>() {});
+        List<InjectList.MyService> services = injector.getInstance(new Key<>() 
{});
         assertNotNull(services);
         assertEquals(2, services.size());
 
@@ -202,8 +201,7 @@ public class InjectorImplTest {
     @Test
     void injectMapTest() {
         Injector injector = Injector.create().bindImplicit(InjectMap.class);
-        Map<String, InjectMap.MyService> services =
-                injector.getInstance(new Key<Map<String, 
InjectMap.MyService>>() {});
+        Map<String, InjectMap.MyService> services = injector.getInstance(new 
Key<>() {});
         assertNotNull(services);
         assertEquals(2, services.size());
 
diff --git a/src/mdo/java/WrapperProperties.java 
b/src/mdo/java/WrapperProperties.java
index 851459c4a6..8070f626f8 100644
--- a/src/mdo/java/WrapperProperties.java
+++ b/src/mdo/java/WrapperProperties.java
@@ -141,8 +141,8 @@ class WrapperProperties extends Properties {
 
     @Override
     public synchronized boolean equals(Object o) {
-        if (o instanceof WrapperProperties) {
-            o = ((WrapperProperties) o).getter.get();
+        if (o instanceof WrapperProperties prop) {
+            o = prop.getter.get();
         }
         return getter.get().equals(o);
     }


Reply via email to