[MNG-8299] Fix ordering of phases from custom lifecycles (#1802)

---

https://issues.apache.org/jira/browse/MNG-8299
This commit is contained in:
Guillaume Nodet 2024-10-16 16:19:33 +02:00 committed by GitHub
parent eafb2fb8b1
commit 4e5c89c403
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 60 additions and 31 deletions

View File

@ -204,8 +204,12 @@ public class DefaultLifecycleRegistry implements LifecycleRegistry {
@Override @Override
public Collection<Phase> phases() { public Collection<Phase> phases() {
return lifecycle.getPhases().stream() List<String> names = lifecycle.getPhases();
.map(name -> (Phase) new Phase() { List<Phase> phases = new ArrayList<>();
for (int i = 0; i < names.size(); i++) {
String name = names.get(i);
String prev = i > 0 ? names.get(i - 1) : null;
phases.add(new Phase() {
@Override @Override
public String name() { public String name() {
return name; return name;
@ -236,10 +240,35 @@ public class DefaultLifecycleRegistry implements LifecycleRegistry {
@Override @Override
public Collection<Link> links() { public Collection<Link> links() {
if (prev == null) {
return List.of(); return List.of();
} else {
return List.of(new Link() {
@Override
public Kind kind() {
return Kind.AFTER;
} }
})
.toList(); @Override
public Pointer pointer() {
return new Pointer() {
@Override
public String phase() {
return prev;
}
@Override
public Type type() {
return Type.PROJECT;
}
};
}
});
}
}
});
}
return phases;
} }
@Override @Override