Skip to content

Commit

Permalink
[MNG-8299] Fix ordering of phases from custom lifecycles (#1802)
Browse files Browse the repository at this point in the history
  • Loading branch information
gnodet authored Oct 16, 2024
1 parent eafb2fb commit 4e5c89c
Showing 1 changed file with 61 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -204,42 +204,71 @@ public String id() {

@Override
public Collection<Phase> phases() {
return lifecycle.getPhases().stream()
.map(name -> (Phase) new Phase() {
@Override
public String name() {
return name;
List<String> names = lifecycle.getPhases();
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
public String name() {
return name;
}

@Override
public List<Phase> phases() {
return List.of();
}

@Override
public Stream<Phase> allPhases() {
return Stream.concat(
Stream.of(this), phases().stream().flatMap(Lifecycle.Phase::allPhases));
}

@Override
public List<Plugin> plugins() {
Map<String, LifecyclePhase> lfPhases = lifecycle.getDefaultLifecyclePhases();
LifecyclePhase phase = lfPhases != null ? lfPhases.get(name) : null;
if (phase != null) {
Map<String, Plugin> plugins = new LinkedHashMap<>();
DefaultPackagingRegistry.parseLifecyclePhaseDefinitions(plugins, name, phase);
return plugins.values().stream().toList();
}
return List.of();
}

@Override
public List<Phase> phases() {
@Override
public Collection<Link> links() {
if (prev == null) {
return List.of();
} else {
return List.of(new Link() {
@Override
public Kind kind() {
return Kind.AFTER;
}

@Override
public Pointer pointer() {
return new Pointer() {
@Override
public String phase() {
return prev;
}

@Override
public Type type() {
return Type.PROJECT;
}
};
}
});
}

@Override
public Stream<Phase> allPhases() {
return Stream.concat(
Stream.of(this), phases().stream().flatMap(Lifecycle.Phase::allPhases));
}

@Override
public List<Plugin> plugins() {
Map<String, LifecyclePhase> lfPhases = lifecycle.getDefaultLifecyclePhases();
LifecyclePhase phase = lfPhases != null ? lfPhases.get(name) : null;
if (phase != null) {
Map<String, Plugin> plugins = new LinkedHashMap<>();
DefaultPackagingRegistry.parseLifecyclePhaseDefinitions(plugins, name, phase);
return plugins.values().stream().toList();
}
return List.of();
}

@Override
public Collection<Link> links() {
return List.of();
}
})
.toList();
}
});
}
return phases;
}

@Override
Expand Down

0 comments on commit 4e5c89c

Please sign in to comment.