This is an automated email from the ASF dual-hosted git repository. michaelo pushed a commit to branch fixes in repository https://gitbox.apache.org/repos/asf/maven-invoker-plugin.git
commit c10367569bdfe7e1746d1e0095411dc15e1b4df5 Author: Michael Osipov <[email protected]> AuthorDate: Sun Jun 11 13:49:58 2023 +0200 [MINVOKER-342] Use ChoiceFormat to selectively render elapsed time in AbstractInvokerMojo --- .../maven/plugins/invoker/AbstractInvokerMojo.java | 28 ++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java b/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java index bb51e1b..2632020 100644 --- a/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java +++ b/src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java @@ -31,8 +31,7 @@ import java.io.Writer; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -704,11 +703,6 @@ public abstract class AbstractInvokerMojo extends AbstractMojo { */ private String filteredPomPrefix = "interpolated-"; - /** - * The format for elapsed build time. - */ - private final DecimalFormat secFormat = new DecimalFormat("(0.0 s)", new DecimalFormatSymbols(Locale.ENGLISH)); - /** * The version of Maven which is used to run the builds */ @@ -1560,13 +1554,15 @@ public abstract class AbstractInvokerMojo extends AbstractMojo { buildJob.setResult(BuildJob.Result.SUCCESS); if (!suppressSummaries) { - getLog().info(pad(buildJob).success("SUCCESS").a(' ') + formatTime(buildJob.getTime())); + getLog().info(pad(buildJob).success("SUCCESS").a(' ') + "(" + + formatElapsedTime(buildJob.getTime()) + ")"); } } else { buildJob.setResult(BuildJob.Result.SKIPPED); if (!suppressSummaries) { - getLog().info(pad(buildJob).warning("SKIPPED").a(' ') + formatTime(buildJob.getTime())); + getLog().info(pad(buildJob).warning("SKIPPED").a(' ') + "(" + + formatElapsedTime(buildJob.getTime()) + ")"); } } } else { @@ -1606,7 +1602,8 @@ public abstract class AbstractInvokerMojo extends AbstractMojo { if (!suppressSummaries) { getLog().info(" " + e.getMessage()); - getLog().info(pad(buildJob).failure("FAILED").a(' ') + formatTime(buildJob.getTime())); + getLog().info(pad(buildJob).failure("FAILED").a(' ') + "(" + formatElapsedTime(buildJob.getTime()) + + ")"); } } finally { deleteInterpolatedPomFile(interpolatedPomFile); @@ -1762,8 +1759,15 @@ public abstract class AbstractInvokerMojo extends AbstractMojo { * @param time The eapsed time of the build. * @return The formatted time, never <code>null</code>. */ - private String formatTime(float time) { - return secFormat.format(time); + private String formatElapsedTime(float time) { + /* + * Rationale: The idea is to always display four digits for visually consistent output + * Important: Keep in sync with src/main/resources/invoker-report.properties + */ + final MessageFormat elapsedTimeFormat = new MessageFormat( + "{0,choice,0#0|0.0<{0,number,0.000}|10#{0,number,0.00}|100#{0,number,0.0}|1000#{0,number,0}} s", + Locale.ROOT); + return elapsedTimeFormat.format(new Object[] {time}); } /**
