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/01 12:29:59 UTC

[maven] branch MNG-7272 updated (741d7bd -> 0f5768e)

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

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


    omit 741d7bd  Consistently changed to use Collection instead of List.
    omit a395514  Fixed missing.
    omit cc84b1d  Review comments.
    omit 6d16033  [MNG-7272] - Code Improvement - II
     add 038201e  [MNG-7274] - JUnit Jupiter via BOM
     add 5c9512f  [MNG-7275] - fixing resource leak due to Files.list
     add edbf133  [MNG-7277] - Remove useless Test - testNonNumericVersionRepresentationReturnsANumberFormatException
     new b06315a  [MNG-7272] - Code Improvement - II
     new ab2d3c5  Review comments.
     new b0994c4  Fixed missing.
     new 0f5768e  Consistently changed to use Collection instead of List.

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   (741d7bd)
            \
             N -- N -- N   refs/heads/MNG-7272 (0f5768e)

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 4 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:
 .../maven/artifact/versioning/DefaultArtifactVersionTest.java  | 10 ----------
 .../java/org/apache/maven/wrapper/BootstrapMainStarter.java    |  7 +++++--
 pom.xml                                                        | 10 +++++-----
 3 files changed, 10 insertions(+), 17 deletions(-)

[maven] 02/04: Review comments.

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

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

commit ab2d3c58dfbcefc7b1da115fc339f843532bf125
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Thu Sep 30 10:08:50 2021 +0200

    Review comments.
---
 .../maven/graph/DefaultProjectDependencyGraph.java   | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

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 910b610..84f552a 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
@@ -46,13 +46,13 @@ public class DefaultProjectDependencyGraph
         implements ProjectDependencyGraph
 {
 
-    private ProjectSorter sorter;
+    private final ProjectSorter sorter;
 
-    private List<MavenProject> allProjects;
+    private final List<MavenProject> allProjects;
 
-    private Map<MavenProject, Integer> order;
+    private final Map<MavenProject, Integer> order;
 
-    private Map<String, MavenProject> projects;
+    private final Map<String, MavenProject> projects;
 
     /**
      * Creates a new project dependency graph based on the specified projects.
@@ -61,10 +61,10 @@ public class DefaultProjectDependencyGraph
      * @throws DuplicateProjectException
      * @throws CycleDetectedException
      */
-    public DefaultProjectDependencyGraph( Collection<MavenProject> projects )
+    public DefaultProjectDependencyGraph( List<MavenProject> projects )
             throws CycleDetectedException, DuplicateProjectException
     {
-        init( projects, projects );
+        this( projects, projects );
     }
 
     /**
@@ -80,13 +80,7 @@ public class DefaultProjectDependencyGraph
                                           final Collection<MavenProject> projects )
             throws CycleDetectedException, DuplicateProjectException
     {
-        init( allProjects, projects );
-    }
-
-    private void init( Collection<MavenProject> allProjects, final Collection<MavenProject> projects )
-            throws CycleDetectedException, DuplicateProjectException
-    {
-        this.allProjects = Collections.unmodifiableList( new ArrayList<>( allProjects ) );
+        this.allProjects = Collections.unmodifiableList( allProjects );
         this.sorter = new ProjectSorter( projects );
         this.order = new HashMap<>();
         this.projects = new HashMap<>();

[maven] 03/04: Fixed missing.

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

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

commit b0994c44fbe50c2355fb7c2245961be064c20500
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Thu Sep 30 10:20:13 2021 +0200

    Fixed missing.
---
 .../main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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 84f552a..6d173aa 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
@@ -80,7 +80,7 @@ public class DefaultProjectDependencyGraph
                                           final Collection<MavenProject> projects )
             throws CycleDetectedException, DuplicateProjectException
     {
-        this.allProjects = Collections.unmodifiableList( allProjects );
+        this.allProjects = Collections.unmodifiableList( new ArrayList<>( allProjects ) );
         this.sorter = new ProjectSorter( projects );
         this.order = new HashMap<>();
         this.projects = new HashMap<>();

[maven] 04/04: Consistently changed to use Collection instead of List.

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

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

commit 0f5768e05d8cf9977d88d8b6c7205b194ec6a696
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Thu Sep 30 13:58:24 2021 +0200

    Consistently changed to use Collection instead of List.
---
 .../java/org/apache/maven/graph/DefaultProjectDependencyGraph.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

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 6d173aa..ec8c2ab 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
@@ -61,7 +61,7 @@ public class DefaultProjectDependencyGraph
      * @throws DuplicateProjectException
      * @throws CycleDetectedException
      */
-    public DefaultProjectDependencyGraph( List<MavenProject> projects )
+    public DefaultProjectDependencyGraph( final Collection<MavenProject> projects )
             throws CycleDetectedException, DuplicateProjectException
     {
         this( projects, projects );
@@ -76,7 +76,7 @@ public class DefaultProjectDependencyGraph
      * @throws CycleDetectedException
      * @since 3.5.0
      */
-    public DefaultProjectDependencyGraph( final List<MavenProject> allProjects,
+    public DefaultProjectDependencyGraph( final Collection<MavenProject> allProjects,
                                           final Collection<MavenProject> projects )
             throws CycleDetectedException, DuplicateProjectException
     {

[maven] 01/04: [MNG-7272] - Code Improvement - II

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

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

commit b06315a54304a4943dd3667f4cc05b0c05967e5f
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Thu Sep 30 00:46:08 2021 +0200

    [MNG-7272] - Code Improvement - II
---
 .../maven/graph/DefaultProjectDependencyGraph.java | 38 ++++++--------
 .../org/apache/maven/project/ProjectSorter.java    | 58 ++++++----------------
 2 files changed, 30 insertions(+), 66 deletions(-)

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 de4ea73..910b610 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
@@ -43,16 +43,16 @@ import org.codehaus.plexus.util.dag.CycleDetectedException;
  * @author Benjamin Bentmann
  */
 public class DefaultProjectDependencyGraph
-    implements ProjectDependencyGraph
+        implements ProjectDependencyGraph
 {
 
-    private final ProjectSorter sorter;
+    private ProjectSorter sorter;
 
-    private final List<MavenProject> allProjects;
+    private List<MavenProject> allProjects;
 
-    private final Map<MavenProject, Integer> order;
+    private Map<MavenProject, Integer> order;
 
-    private final Map<String, MavenProject> projects;
+    private Map<String, MavenProject> projects;
 
     /**
      * Creates a new project dependency graph based on the specified projects.
@@ -62,38 +62,30 @@ public class DefaultProjectDependencyGraph
      * @throws CycleDetectedException
      */
     public DefaultProjectDependencyGraph( Collection<MavenProject> projects )
-        throws CycleDetectedException, DuplicateProjectException
+            throws CycleDetectedException, DuplicateProjectException
     {
-        super();
-        this.allProjects = Collections.unmodifiableList( new ArrayList<>( projects ) );
-        this.sorter = new ProjectSorter( projects );
-        this.order = new HashMap<>();
-        this.projects = new HashMap<>();
-        List<MavenProject> sorted = this.sorter.getSortedProjects();
-        for ( int index = 0; index < sorted.size(); index++ )
-        {
-            MavenProject project = sorted.get( index );
-            String id = ProjectSorter.getId( project );
-            this.projects.put( id, project );
-            this.order.put( project, index );
-        }
+        init( projects, projects );
     }
 
     /**
      * Creates a new project dependency graph based on the specified projects.
      *
      * @param allProjects All collected projects.
-     * @param projects The projects to create the dependency graph with.
-     *
+     * @param projects    The projects to create the dependency graph with.
      * @throws DuplicateProjectException
      * @throws CycleDetectedException
      * @since 3.5.0
      */
     public DefaultProjectDependencyGraph( final List<MavenProject> allProjects,
                                           final Collection<MavenProject> projects )
-        throws CycleDetectedException, DuplicateProjectException
+            throws CycleDetectedException, DuplicateProjectException
+    {
+        init( allProjects, projects );
+    }
+
+    private void init( Collection<MavenProject> allProjects, final Collection<MavenProject> projects )
+            throws CycleDetectedException, DuplicateProjectException
     {
-        super();
         this.allProjects = Collections.unmodifiableList( new ArrayList<>( allProjects ) );
         this.sorter = new ProjectSorter( projects );
         this.order = new HashMap<>();
diff --git a/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java b/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java
index 40cdf1b..a736410 100644
--- a/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java
+++ b/maven-core/src/main/java/org/apache/maven/project/ProjectSorter.java
@@ -19,13 +19,12 @@ package org.apache.maven.project;
  * under the License.
  */
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import org.apache.maven.artifact.ArtifactUtils;
 import org.apache.maven.model.Dependency;
@@ -49,8 +48,6 @@ public class ProjectSorter
 
     private Map<String, MavenProject> projectMap;
 
-    private MavenProject topLevelProject;
-
     /**
      * Sort a list of projects.
      * <ul>
@@ -126,43 +123,29 @@ public class ProjectSorter
                          parent.getVersion(), true, false );
             }
 
-            List<Plugin> buildPlugins = project.getBuildPlugins();
-            if ( buildPlugins != null )
+            for ( Plugin plugin : project.getBuildPlugins() )
             {
-                for ( Plugin plugin : buildPlugins )
+                addEdge( projectMap, vertexMap, project, projectVertex, plugin.getGroupId(),
+                         plugin.getArtifactId(), plugin.getVersion(), false, true );
+
+                for ( Dependency dependency : plugin.getDependencies() )
                 {
-                    addEdge( projectMap, vertexMap, project, projectVertex, plugin.getGroupId(),
-                             plugin.getArtifactId(), plugin.getVersion(), false, true );
-
-                    for ( Dependency dependency : plugin.getDependencies() )
-                    {
-                        addEdge( projectMap, vertexMap, project, projectVertex, dependency.getGroupId(),
-                                 dependency.getArtifactId(), dependency.getVersion(), false, true );
-                    }
+                    addEdge( projectMap, vertexMap, project, projectVertex, dependency.getGroupId(),
+                             dependency.getArtifactId(), dependency.getVersion(), false, true );
                 }
             }
 
-            List<Extension> buildExtensions = project.getBuildExtensions();
-            if ( buildExtensions != null )
+            for ( Extension extension : project.getBuildExtensions() )
             {
-                for ( Extension extension : buildExtensions )
-                {
-                    addEdge( projectMap, vertexMap, project, projectVertex, extension.getGroupId(),
-                             extension.getArtifactId(), extension.getVersion(), false, true );
-                }
+                addEdge( projectMap, vertexMap, project, projectVertex, extension.getGroupId(),
+                         extension.getArtifactId(), extension.getVersion(), false, true );
             }
         }
 
-        List<MavenProject> sortedProjects = new ArrayList<>( projects.size() );
-
         List<String> sortedProjectLabels = TopologicalSorter.sort( dag );
 
-        for ( String id : sortedProjectLabels )
-        {
-            sortedProjects.add( projectMap.get( id ) );
-        }
-
-        this.sortedProjects = Collections.unmodifiableList( sortedProjects );
+        this.sortedProjects = sortedProjectLabels.stream().map( id -> projectMap.get( id ) )
+                .collect( Collectors.collectingAndThen( Collectors.toList(), Collections::unmodifiableList ) );
     }
     @SuppressWarnings( "checkstyle:parameternumber" )
     private void addEdge( Map<String, MavenProject> projectMap, Map<String, Map<String, Vertex>> vertexMap,
@@ -235,19 +218,8 @@ public class ProjectSorter
     // TODO !![jc; 28-jul-2005] check this; if we're using '-r' and there are aggregator tasks, this will result in weirdness.
     public MavenProject getTopLevelProject()
     {
-        if ( topLevelProject == null )
-        {
-            for ( Iterator<MavenProject> i = sortedProjects.iterator(); i.hasNext() && ( topLevelProject == null ); )
-            {
-                MavenProject project = i.next();
-                if ( project.isExecutionRoot() )
-                {
-                    topLevelProject = project;
-                }
-            }
-        }
-
-        return topLevelProject;
+        return sortedProjects.stream().filter( MavenProject::isExecutionRoot ).findFirst()
+                .orElse( null );
     }
 
     public List<MavenProject> getSortedProjects()