-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Fixes #13135, ensure completude of the reactor summary but priviledge failures to be last to stay human efficient #13136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -20,6 +20,7 @@ | |||||||
|
|
||||||||
| import java.io.File; | ||||||||
| import java.nio.file.Path; | ||||||||
| import java.util.ArrayList; | ||||||||
| import java.util.List; | ||||||||
| import java.util.Objects; | ||||||||
|
|
||||||||
|
|
@@ -199,44 +200,53 @@ private void logReactorSummary(MavenSession session) { | |||||||
|
|
||||||||
| List<MavenProject> projects = session.getProjects(); | ||||||||
|
|
||||||||
| StringBuilder buffer = new StringBuilder(128); | ||||||||
|
|
||||||||
| String skippedMessage = builder().warning("SKIPPED").build(); | ||||||||
| String successMessage = builder().success("SUCCESS").build(); | ||||||||
| String failureMessage = builder().failure("FAILURE").build(); | ||||||||
| String unknownMessage = builder().warning("UNKNOWN").build(); | ||||||||
|
|
||||||||
| boolean lastWasSkipped = false; | ||||||||
| List<ReactorSummaryEntry> entries = new ArrayList<>(projects.size()); | ||||||||
| for (MavenProject project : projects) { | ||||||||
| BuildSummary buildSummary = result.getBuildSummary(project); | ||||||||
|
|
||||||||
| String statusMessage; | ||||||||
| boolean shouldSkip = result.hasExceptions(); | ||||||||
| if (buildSummary == null) { | ||||||||
| statusMessage = skippedMessage; | ||||||||
| } else if (buildSummary instanceof BuildSuccess) { | ||||||||
| int group; | ||||||||
| if (buildSummary instanceof BuildSuccess) { | ||||||||
| statusMessage = successMessage; | ||||||||
| group = 1; | ||||||||
| } else if (buildSummary instanceof BuildFailure) { | ||||||||
| statusMessage = failureMessage; | ||||||||
| shouldSkip = false; | ||||||||
| group = 2; | ||||||||
| } else if (buildSummary == null) { | ||||||||
| statusMessage = skippedMessage; | ||||||||
| group = 0; | ||||||||
| } else { | ||||||||
| statusMessage = unknownMessage; | ||||||||
| group = 0; | ||||||||
|
rmannibucau marked this conversation as resolved.
|
||||||||
| } | ||||||||
| entries.add(new ReactorSummaryEntry(project, buildSummary, group, statusMessage)); | ||||||||
| } | ||||||||
|
|
||||||||
| ReactorSummaryRequest request = new ReactorSummaryRequest(entries, new StringBuilder(128), isSingleVersion); | ||||||||
|
|
||||||||
| if (shouldSkip) { | ||||||||
| lastWasSkipped = true; | ||||||||
| logReactorSummaryGroup(request, 0); | ||||||||
| logReactorSummaryGroup(request, 1); | ||||||||
| logReactorSummaryGroup(request, 2); | ||||||||
| } | ||||||||
|
|
||||||||
| private void logReactorSummaryGroup(ReactorSummaryRequest request, int group) { | ||||||||
| StringBuilder buffer = request.buffer(); | ||||||||
|
|
||||||||
| for (ReactorSummaryEntry entry : request.entries()) { | ||||||||
| if (entry.group() != group) { | ||||||||
| continue; | ||||||||
| } | ||||||||
| if (lastWasSkipped) { | ||||||||
| logger.info("..."); | ||||||||
| lastWasSkipped = false; | ||||||||
| } | ||||||||
|
|
||||||||
| buffer.append(project.getName()); | ||||||||
| buffer.append(entry.project().getName()); | ||||||||
| buffer.append(' '); | ||||||||
|
|
||||||||
| if (!isSingleVersion) { | ||||||||
| buffer.append(project.getVersion()); | ||||||||
| if (!request.isSingleVersion()) { | ||||||||
| buffer.append(entry.project().getVersion()); | ||||||||
| buffer.append(' '); | ||||||||
| } | ||||||||
|
|
||||||||
|
|
@@ -247,20 +257,26 @@ private void logReactorSummary(MavenSession session) { | |||||||
| buffer.append(' '); | ||||||||
| } | ||||||||
|
|
||||||||
| buffer.append(statusMessage); | ||||||||
| if (buildSummary != null) { | ||||||||
| formatBuildTime(buffer, buildSummary); | ||||||||
| buffer.append(entry.statusMessage()); | ||||||||
| if (entry.buildSummary() != null) { | ||||||||
| formatBuildTime(buffer, entry.buildSummary()); | ||||||||
| } | ||||||||
|
|
||||||||
| logger.info(buffer.toString()); | ||||||||
| if (entry.buildSummary() instanceof BuildFailure) { | ||||||||
| logger.error(buffer.toString()); | ||||||||
| } else { | ||||||||
| logger.info(buffer.toString()); | ||||||||
| } | ||||||||
| buffer.setLength(0); | ||||||||
| } | ||||||||
|
|
||||||||
| if (lastWasSkipped) { | ||||||||
| logger.info("..."); | ||||||||
| } | ||||||||
| } | ||||||||
|
|
||||||||
| private record ReactorSummaryRequest( | ||||||||
| List<ReactorSummaryEntry> entries, StringBuilder buffer, boolean isSingleVersion) {} | ||||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔧 Mutable The author previously responded that the The fix:
Suggested change
Then in ReactorSummaryRequest request = new ReactorSummaryRequest(entries, isSingleVersion);A |
||||||||
|
|
||||||||
| private record ReactorSummaryEntry( | ||||||||
| MavenProject project, BuildSummary buildSummary, int group, String statusMessage) {} | ||||||||
|
|
||||||||
| private void formatBuildTime(StringBuilder buffer, BuildSummary buildSummary) { | ||||||||
| buffer.append(" ["); | ||||||||
| String buildTimeDuration = formatDuration(buildSummary.getTime()); | ||||||||
|
|
@@ -276,12 +292,17 @@ private void logResult(MavenSession session) { | |||||||
| infoLine('-'); | ||||||||
| MessageBuilder buffer = builder(); | ||||||||
|
|
||||||||
| if (session.getResult().hasExceptions()) { | ||||||||
| boolean failure = session.getResult().hasExceptions(); | ||||||||
| if (failure) { | ||||||||
| buffer.failure("BUILD FAILURE"); | ||||||||
| } else { | ||||||||
| buffer.success("BUILD SUCCESS"); | ||||||||
| } | ||||||||
| logger.info(buffer.toString()); | ||||||||
| if (failure) { | ||||||||
| logger.error(buffer.toString()); | ||||||||
| } else { | ||||||||
| logger.info(buffer.toString()); | ||||||||
| } | ||||||||
| } | ||||||||
|
|
||||||||
| private MessageBuilder builder() { | ||||||||
|
|
||||||||
Uh oh!
There was an error while loading. Please reload this page.