You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2021/10/02 10:40:54 UTC

[maven] branch MNG-7276 updated (a8ff471 -> 42fd869)

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

khmarbaise pushed a change to branch MNG-7276
in repository https://gitbox.apache.org/repos/asf/maven.git.


 discard a8ff471  [MNG-7276] - Refactoring - Umbrella
     add 5c9512f  [MNG-7275] - fixing resource leak due to Files.list
     add edbf133  [MNG-7277] - Remove useless Test - testNonNumericVersionRepresentationReturnsANumberFormatException
     add e30c1bf  Add a unit test for MavenRepositorySystemUtils#newSession
     add 1ab49b3  Remove deprecated usage of ServiceLocator/Service
     add 35e5a4d  [MNG-5577] Use JSR 330 constructor injection
     new 42fd869  [MNG-7276] - Refactoring - Umbrella

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (a8ff471)
            \
             N -- N -- N   refs/heads/MNG-7276 (42fd869)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../versioning/DefaultArtifactVersionTest.java     |  10 -
 .../apache/maven/project/ProjectClasspathTest.java |   7 +-
 .../apache/maven/project/TestProjectBuilder.java   |  19 +-
 .../main/java/org/apache/maven/DefaultMaven.java   |  50 ++-
 .../maven/DefaultProjectDependenciesResolver.java  |  13 +-
 .../main/java/org/apache/maven/ReactorReader.java  |  11 +-
 .../artifact/factory/DefaultArtifactFactory.java   |   7 +-
 .../manager/DefaultArtifactHandlerManager.java     |  11 +-
 .../eventspy/internal/EventSpyDispatcher.java      |  13 +-
 .../DefaultRepositorySystemSessionFactory.java     |  47 +--
 .../maven/lifecycle/DefaultLifecycleExecutor.java  |  43 +--
 .../DefaultLifecycleExecutionPlanCalculator.java   |  45 +--
 .../DefaultLifecycleTaskSegmentCalculator.java     |  13 +-
 .../lifecycle/internal/LifecycleDebugLogger.java   |  10 +-
 .../internal/LifecycleDependencyResolver.java      |  32 +-
 .../lifecycle/internal/LifecycleModuleBuilder.java |  29 +-
 .../maven/lifecycle/internal/LifecycleStarter.java |  43 ++-
 .../lifecycle/internal/MojoDescriptorCreator.java  |  32 +-
 .../maven/lifecycle/internal/MojoExecutor.java     |  24 +-
 .../lifecycle/internal/builder/BuilderCommon.java  |  28 +-
 .../multithreaded/MultiThreadedBuilder.java        |  10 +-
 .../plugin/DefaultLifecycleBindingsInjector.java   |   9 +-
 .../maven/plugin/DefaultBuildPluginManager.java    |  25 +-
 .../plugin/internal/DefaultMavenPluginManager.java |  57 ++--
 .../DefaultPluginDependenciesResolver.java         |  10 +-
 .../plugin/internal/DefaultPluginManager.java      |  30 +-
 .../internal/DefaultPluginPrefixResolver.java      |  24 +-
 .../internal/DefaultPluginVersionResolver.java     |  24 +-
 .../maven/project/DefaultProjectBuilder.java       |  52 ++--
 .../project/DefaultProjectBuildingHelper.java      |  36 ++-
 .../DefaultProjectDependenciesResolver.java        |  18 +-
 .../project/artifact/DefaultMetadataSource.java    |  15 +-
 .../project/artifact/MavenMetadataSource.java      |  55 ++--
 .../rtinfo/internal/DefaultRuntimeInformation.java |   9 +-
 .../settings/DefaultMavenSettingsBuilder.java      |   7 +-
 .../maven/toolchain/DefaultToolchainManager.java   |  10 +-
 .../toolchain/DefaultToolchainManagerPrivate.java  |   8 +
 .../maven/toolchain/DefaultToolchainsBuilder.java  |   7 +-
 .../building/DefaultToolchainsBuilder.java         |  13 +-
 .../maven/toolchain/java/JavaToolchainFactory.java |   7 +-
 .../lifecycle/DelegatingMojoExecutionListener.java |   1 +
 .../lifecycle/internal/BuilderCommonTest.java      |   3 +-
 .../LifecycleExecutionPlanCalculatorTest.java      |   2 +-
 .../stub/LifecycleTaskSegmentCalculatorStub.java   |   8 +-
 .../lifecycle/internal/stub/MojoExecutorStub.java  |  15 +-
 .../apache/maven/project/TestMetadataSource.java   |  10 +
 .../DefaultToolchainManagerPrivateTest.java        |   8 +-
 .../toolchain/DefaultToolchainManagerTest.java     |   9 +-
 .../SettingsXmlConfigurationProcessor.java         |  12 +-
 .../maven/model/building/DefaultModelBuilder.java  | 345 +++++++++++++++------
 .../model/building/DefaultModelBuilderFactory.java | 213 ++++++++++---
 .../model/building/DefaultModelProcessor.java      |  14 +-
 .../AbstractStringBasedModelInterpolator.java      |  18 +-
 .../StringSearchModelInterpolator.java             |  15 +
 .../StringVisitorModelInterpolator.java            |   8 +
 .../apache/maven/model/io/DefaultModelReader.java  |   6 +-
 .../model/path/DefaultModelPathTranslator.java     |   7 +-
 .../model/path/DefaultModelUrlNormalizer.java      |   7 +-
 .../ProfileActivationFilePathInterpolator.java     |   7 +-
 .../model/profile/DefaultProfileSelector.java      |   7 +-
 .../profile/activation/FileProfileActivator.java   |   8 +-
 .../model/superpom/DefaultSuperPomProvider.java    |   7 +-
 .../DefaultInheritanceAssemblerTest.java           |   3 +-
 .../StringVisitorModelInterpolatorTest.java        |   2 +-
 .../activation/AbstractProfileActivatorTest.java   |  16 +-
 .../activation/FileProfileActivatorTest.java       |  12 +-
 .../activation/JdkVersionProfileActivatorTest.java |   9 +-
 .../activation/PropertyProfileActivatorTest.java   |   9 +-
 .../internal/DefaultArtifactDescriptorReader.java  |  98 ++----
 .../internal/DefaultVersionRangeResolver.java      |  50 +--
 .../internal/DefaultVersionResolver.java           |  46 +--
 .../internal/MavenRepositorySystemUtils.java       |  24 --
 .../DefaultArtifactDescriptorReaderTest.java       |   6 +-
 .../internal/MavenRepositorySystemUtilsTest.java   |  19 +-
 .../apache/maven/wrapper/BootstrapMainStarter.java |   7 +-
 75 files changed, 1109 insertions(+), 835 deletions(-)

[maven] 01/01: [MNG-7276] - Refactoring - Umbrella

Posted by kh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 42fd8694ad99a374b0f6127d55aa0b8ca5e9e5fb
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Thu Sep 30 19:10:44 2021 +0200

    [MNG-7276] - Refactoring - Umbrella
---
 .../main/java/org/apache/maven/ReactorReader.java  | 74 ++++++++--------------
 .../java/org/apache/maven/RepositoryUtils.java     | 62 +++++++-----------
 .../org/apache/maven/execution/MavenSession.java   | 12 +---
 3 files changed, 53 insertions(+), 95 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/ReactorReader.java b/maven-core/src/main/java/org/apache/maven/ReactorReader.java
index 247632a..b5277cd 100644
--- a/maven-core/src/main/java/org/apache/maven/ReactorReader.java
+++ b/maven-core/src/main/java/org/apache/maven/ReactorReader.java
@@ -24,20 +24,19 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
-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.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.inject.Inject;
-import javax.inject.Named;
-
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.model.Model;
@@ -49,6 +48,9 @@ import org.eclipse.aether.util.artifact.ArtifactIdUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.inject.Inject;
+import javax.inject.Named;
+
 /**
  * An implementation of a workspace reader that knows how to search the Maven reactor for artifacts, either as packaged
  * jar if it has been built, or only compile output directory if packaging hasn't happened yet.
@@ -72,26 +74,23 @@ class ReactorReader
     private final Map<String, List<MavenProject>> projectsByGA;
     private final WorkspaceRepository repository;
 
+    private Function<MavenProject, String> projectIntoKey =
+            s -> ArtifactUtils.key( s.getGroupId(), s.getArtifactId(), s.getVersion() );
+
+    private Function<MavenProject, String> projectIntoVersionlessKey =
+            s -> ArtifactUtils.versionlessKey( s.getGroupId(), s.getArtifactId() );
+
     @Inject
     ReactorReader( MavenSession session )
     {
         this.session = session;
-        this.projectsByGAV = new HashMap<>( session.getAllProjects().size() * 2 );
-        session.getAllProjects().forEach( project ->
-        {
-            String projectId = ArtifactUtils.key( project.getGroupId(), project.getArtifactId(), project.getVersion() );
-            this.projectsByGAV.put( projectId, project );
-        } );
-
-        projectsByGA = new HashMap<>( projectsByGAV.size() * 2 );
-        for ( MavenProject project : projectsByGAV.values() )
-        {
-            String key = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+        this.projectsByGAV =
+                session.getAllProjects().stream()
+                        .collect( Collectors.toMap( mavenProject -> projectIntoKey.apply( mavenProject ),
+                                Function.identity() ) );
 
-            List<MavenProject> projects = projectsByGA.computeIfAbsent( key, k -> new ArrayList<>( 1 ) );
-
-            projects.add( project );
-        }
+        this.projectsByGA = projectsByGAV.values().stream()
+                .collect( Collectors.groupingBy( projectIntoVersionlessKey ) );
 
         repository = new WorkspaceRepository( "reactor", new HashSet<>( projectsByGAV.keySet() ) );
     }
@@ -128,23 +127,11 @@ class ReactorReader
     {
         String key = ArtifactUtils.versionlessKey( artifact.getGroupId(), artifact.getArtifactId() );
 
-        List<MavenProject> projects = projectsByGA.get( key );
-        if ( projects == null || projects.isEmpty() )
-        {
-            return Collections.emptyList();
-        }
-
-        List<String> versions = new ArrayList<>();
-
-        for ( MavenProject project : projects )
-        {
-            if ( find( project, artifact ) != null )
-            {
-                versions.add( project.getVersion() );
-            }
-        }
-
-        return Collections.unmodifiableList( versions );
+        return Optional.ofNullable( projectsByGA.get( key ) )
+                .orElse( Collections.emptyList() ).stream()
+                .filter( s -> Objects.nonNull( find( s, artifact ) ) )
+                .map( s -> s.getVersion() )
+                .collect( Collectors.collectingAndThen( Collectors.toList(), Collections::unmodifiableList ) );
     }
 
     @Override
@@ -334,15 +321,10 @@ class ReactorReader
             return mainArtifact;
         }
 
-        for ( Artifact attachedArtifact : RepositoryUtils.toArtifacts( project.getAttachedArtifacts() ) )
-        {
-            if ( attachedArtifactComparison( requestedArtifact, attachedArtifact ) )
-            {
-                return attachedArtifact;
-            }
-        }
-
-        return null;
+        return RepositoryUtils.toArtifacts( project.getAttachedArtifacts() ).stream()
+                .filter( artifact -> attachedArtifactComparison( requestedArtifact, artifact ) )
+                .findFirst()
+                .orElse( null );
     }
 
     private boolean attachedArtifactComparison( Artifact requested, Artifact attached )
diff --git a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
index a49b670..b8c8837 100644
--- a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
+++ b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
@@ -26,6 +26,8 @@ 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;
@@ -121,7 +123,7 @@ public class RepositoryUtils
             nodeTrail.addAll( trail );
             nodeTrail.add( artifact.getId() );
 
-            if ( filter == null || filter.accept( node, Collections.<DependencyNode>emptyList() ) )
+            if ( filter == null || filter.accept( node, Collections.emptyList() ) )
             {
                 artifact.setDependencyTrail( nodeTrail );
                 artifacts.add( artifact );
@@ -170,32 +172,21 @@ public class RepositoryUtils
 
         Artifact result = toArtifact( artifact );
 
-        List<Exclusion> excl = null;
-        if ( exclusions != null )
-        {
-            excl = new ArrayList<>( exclusions.size() );
-            for ( org.apache.maven.model.Exclusion exclusion : exclusions )
-            {
-                excl.add( toExclusion( exclusion ) );
-            }
-        }
-
+        List<Exclusion> excl = Optional.ofNullable( exclusions )
+                .orElse( Collections.emptyList() )
+                .stream()
+                .map( RepositoryUtils::toExclusion )
+                .collect( Collectors.toList() );
         return new Dependency( result, artifact.getScope(), artifact.isOptional(), excl );
     }
 
     public static List<RemoteRepository> toRepos( List<ArtifactRepository> repos )
     {
-        if ( repos == null )
-        {
-            return null;
-        }
-
-        List<RemoteRepository> results = new ArrayList<>( repos.size() );
-        for ( ArtifactRepository repo : repos )
-        {
-            results.add( toRepo( repo ) );
-        }
-        return results;
+        return Optional.ofNullable( repos )
+                .orElse( Collections.emptyList() )
+                .stream()
+                .map( RepositoryUtils::toRepo )
+                .collect( Collectors.toList() );
     }
 
     public static RemoteRepository toRepo( ArtifactRepository repo )
@@ -318,20 +309,16 @@ public class RepositoryUtils
             new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getClassifier(), null,
                                  dependency.getVersion(), props, stereotype );
 
-        List<Exclusion> exclusions = new ArrayList<>( dependency.getExclusions().size() );
-        for ( org.apache.maven.model.Exclusion exclusion : dependency.getExclusions() )
-        {
-            exclusions.add( toExclusion( exclusion ) );
-        }
+        List<Exclusion> exclusions =
+                dependency.getExclusions().stream().map( RepositoryUtils::toExclusion ).collect( Collectors.toList() );
 
-        Dependency result = new Dependency( artifact,
-                                            dependency.getScope(),
-                                            dependency.getOptional() != null
-                                                ? dependency.isOptional()
-                                                : null,
-                                            exclusions );
+        return new Dependency( artifact,
+                dependency.getScope(),
+                dependency.getOptional() != null
+                        ? dependency.isOptional()
+                        : null,
+                exclusions );
 
-        return result;
     }
 
     private static Exclusion toExclusion( org.apache.maven.model.Exclusion exclusion )
@@ -365,12 +352,7 @@ public class RepositoryUtils
 
     public static Collection<Artifact> toArtifacts( Collection<org.apache.maven.artifact.Artifact> artifactsToConvert )
     {
-        List<Artifact> artifacts = new ArrayList<>();
-        for ( org.apache.maven.artifact.Artifact a : artifactsToConvert )
-        {
-            artifacts.add( toArtifact( a ) );
-        }
-        return artifacts;
+        return artifactsToConvert.stream().map( RepositoryUtils::toArtifact ).collect( Collectors.toList() );
     }
 
     public static WorkspaceRepository getWorkspace( RepositorySystemSession session )
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 f8dbb03..adde001 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
@@ -84,15 +84,9 @@ public class MavenSession
         if ( !projects.isEmpty() )
         {
             this.currentProject = projects.get( 0 );
-            this.topLevelProject = currentProject;
-            for ( MavenProject project : projects )
-            {
-                if ( project.isExecutionRoot() )
-                {
-                    topLevelProject = project;
-                    break;
-                }
-            }
+            this.topLevelProject =
+                    projects.stream().filter( project -> project.isExecutionRoot() ).findFirst()
+                            .orElse( currentProject );
         }
         else
         {