Align with maven PR

This commit is contained in:
Guillaume Nodet
2021-09-10 10:40:00 +02:00
parent 0ffa523952
commit 58db967056

View File

@@ -43,7 +43,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.apache.maven.execution.ProjectDependencyGraph; import org.apache.maven.execution.ProjectDependencyGraph;
import org.apache.maven.project.DuplicateProjectException; import org.apache.maven.project.DuplicateProjectException;
import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProject;
@@ -62,7 +61,7 @@ public class DefaultProjectDependencyGraph
private List<MavenProject> allProjects; private List<MavenProject> allProjects;
private Map<String, Integer> order; private Map<MavenProject, Integer> order;
private Map<String, MavenProject> projects; private Map<String, MavenProject> projects;
@@ -85,7 +84,7 @@ public class DefaultProjectDependencyGraph
MavenProject project = sorted.get(index); MavenProject project = sorted.get(index);
String id = ProjectSorter.getId(project); String id = ProjectSorter.getId(project);
this.projects.put(id, project); this.projects.put(id, project);
this.order.put(id, index); this.order.put(project, index);
} }
} }
@@ -112,7 +111,7 @@ public class DefaultProjectDependencyGraph
MavenProject project = sorted.get(index); MavenProject project = sorted.get(index);
String id = ProjectSorter.getId(project); String id = ProjectSorter.getId(project);
this.projects.put(id, project); this.projects.put(id, project);
this.order.put(id, index); this.order.put(project, index);
} }
} }
@@ -164,10 +163,12 @@ public class DefaultProjectDependencyGraph
} }
private List<MavenProject> getSortedProjects(Set<String> projectIds) { private List<MavenProject> getSortedProjects(Set<String> projectIds) {
return projectIds.stream() List<MavenProject> result = new ArrayList<>(projectIds.size());
.sorted(Comparator.comparing(order::get)) for (String projectId : projectIds) {
.map(projects::get) result.add(projects.get(projectId));
.collect(Collectors.toList()); }
result.sort(new MavenProjectComparator());
return result;
} }
@Override @Override
@@ -175,4 +176,11 @@ public class DefaultProjectDependencyGraph
return sorter.getSortedProjects().toString(); return sorter.getSortedProjects().toString();
} }
private class MavenProjectComparator implements Comparator<MavenProject> {
@Override
public int compare(MavenProject o1, MavenProject o2) {
return order.get(o1) - order.get(o2);
}
}
} }