in src/main/java/org/apache/maven/plugin/resources/remote/ModelUtils.java [121:163]
public static List<Plugin> orderAfterMerge(
List<Plugin> merged, List<Plugin> highPrioritySource, List<Plugin> lowPrioritySource) {
List<Plugin> results = new ArrayList<>();
if (!merged.isEmpty()) {
results.addAll(merged);
}
List<Plugin> missingFromResults = new ArrayList<>();
List<List<Plugin>> sources = new ArrayList<>();
sources.add(highPrioritySource);
sources.add(lowPrioritySource);
for (List<Plugin> source : sources) {
for (Plugin item : source) {
if (results.contains(item)) {
if (!missingFromResults.isEmpty()) {
int idx = results.indexOf(item);
if (idx < 0) {
idx = 0;
}
results.addAll(idx, missingFromResults);
missingFromResults.clear();
}
} else {
missingFromResults.add(item);
}
}
if (!missingFromResults.isEmpty()) {
results.addAll(missingFromResults);
missingFromResults.clear();
}
}
return results;
}