michael-o commented on a change in pull request #530:
URL: https://github.com/apache/maven/pull/530#discussion_r716544057



##########
File path: 
maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java
##########
@@ -78,6 +95,16 @@ public DefaultProjectDependencyGraph( final 
List<MavenProject> allProjects,
         super();
         this.allProjects = Collections.unmodifiableList( new ArrayList<>( 
allProjects ) );
         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 );

Review comment:
       Same here...

##########
File path: 
maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java
##########
@@ -140,15 +167,13 @@ private void getUpstreamProjects( String projectId, 
Collection<String> projectId
     private List<MavenProject> getSortedProjects( Set<String> projectIds )
     {
         List<MavenProject> result = new ArrayList<>( projectIds.size() );
-
-        for ( MavenProject mavenProject : sorter.getSortedProjects() )
+        for ( String projectId : projectIds )
         {
-            if ( projectIds.contains( ProjectSorter.getId( mavenProject ) ) )
-            {
-                result.add( mavenProject );
-            }
+            result.add( projects.get( projectId ) );
         }
 
+        Collections.sort( result, new MavenProjectComparator() );

Review comment:
       Woud it be cheaper to have a `TreeSet` which a comparator which sorts on 
insertion directly?

##########
File path: 
maven-core/src/main/java/org/apache/maven/graph/DefaultProjectDependencyGraph.java
##########
@@ -140,15 +167,13 @@ private void getUpstreamProjects( String projectId, 
Collection<String> projectId
     private List<MavenProject> getSortedProjects( Set<String> projectIds )
     {
         List<MavenProject> result = new ArrayList<>( projectIds.size() );
-
-        for ( MavenProject mavenProject : sorter.getSortedProjects() )
+        for ( String projectId : projectIds )
         {
-            if ( projectIds.contains( ProjectSorter.getId( mavenProject ) ) )
-            {
-                result.add( mavenProject );
-            }
+            result.add( projects.get( projectId ) );
         }
 
+        Collections.sort( result, new MavenProjectComparator() );
+
         return result;

Review comment:
       So your optimization resolves around here to get `result` faster? (Means 
precomputing)




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to