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]