|
31 | 31 | import java.nio.file.Files;
|
32 | 32 | import java.nio.file.Path;
|
33 | 33 | import java.nio.file.Paths;
|
34 |
| -import java.text.DecimalFormat; |
35 |
| -import java.text.DecimalFormatSymbols; |
| 34 | +import java.text.MessageFormat; |
36 | 35 | import java.util.ArrayList;
|
37 | 36 | import java.util.Arrays;
|
38 | 37 | import java.util.Collection;
|
@@ -704,11 +703,6 @@ public abstract class AbstractInvokerMojo extends AbstractMojo {
|
704 | 703 | */
|
705 | 704 | private String filteredPomPrefix = "interpolated-";
|
706 | 705 |
|
707 |
| - /** |
708 |
| - * The format for elapsed build time. |
709 |
| - */ |
710 |
| - private final DecimalFormat secFormat = new DecimalFormat("(0.0 s)", new DecimalFormatSymbols(Locale.ENGLISH)); |
711 |
| - |
712 | 706 | /**
|
713 | 707 | * The version of Maven which is used to run the builds
|
714 | 708 | */
|
@@ -1560,13 +1554,15 @@ private void runBuild(
|
1560 | 1554 | buildJob.setResult(BuildJob.Result.SUCCESS);
|
1561 | 1555 |
|
1562 | 1556 | if (!suppressSummaries) {
|
1563 |
| - getLog().info(pad(buildJob).success("SUCCESS").a(' ') + formatTime(buildJob.getTime())); |
| 1557 | + getLog().info(pad(buildJob).success("SUCCESS").a(' ') + "(" |
| 1558 | + + formatElapsedTime(buildJob.getTime()) + ")"); |
1564 | 1559 | }
|
1565 | 1560 | } else {
|
1566 | 1561 | buildJob.setResult(BuildJob.Result.SKIPPED);
|
1567 | 1562 |
|
1568 | 1563 | if (!suppressSummaries) {
|
1569 |
| - getLog().info(pad(buildJob).warning("SKIPPED").a(' ') + formatTime(buildJob.getTime())); |
| 1564 | + getLog().info(pad(buildJob).warning("SKIPPED").a(' ') + "(" |
| 1565 | + + formatElapsedTime(buildJob.getTime()) + ")"); |
1570 | 1566 | }
|
1571 | 1567 | }
|
1572 | 1568 | } else {
|
@@ -1606,7 +1602,8 @@ private void runBuild(
|
1606 | 1602 |
|
1607 | 1603 | if (!suppressSummaries) {
|
1608 | 1604 | getLog().info(" " + e.getMessage());
|
1609 |
| - getLog().info(pad(buildJob).failure("FAILED").a(' ') + formatTime(buildJob.getTime())); |
| 1605 | + getLog().info(pad(buildJob).failure("FAILED").a(' ') + "(" + formatElapsedTime(buildJob.getTime()) |
| 1606 | + + ")"); |
1610 | 1607 | }
|
1611 | 1608 | } finally {
|
1612 | 1609 | deleteInterpolatedPomFile(interpolatedPomFile);
|
@@ -1762,8 +1759,15 @@ private void writeJunitReport(BuildJob buildJob, String safeFileName) throws Moj
|
1762 | 1759 | * @param time The eapsed time of the build.
|
1763 | 1760 | * @return The formatted time, never <code>null</code>.
|
1764 | 1761 | */
|
1765 |
| - private String formatTime(float time) { |
1766 |
| - return secFormat.format(time); |
| 1762 | + private String formatElapsedTime(float time) { |
| 1763 | + /* |
| 1764 | + * Rationale: The idea is to always display four digits for visually consistent output |
| 1765 | + * Important: Keep in sync with src/main/resources/invoker-report.properties |
| 1766 | + */ |
| 1767 | + final MessageFormat elapsedTimeFormat = new MessageFormat( |
| 1768 | + "{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", |
| 1769 | + Locale.ROOT); |
| 1770 | + return elapsedTimeFormat.format(new Object[] {time}); |
1767 | 1771 | }
|
1768 | 1772 |
|
1769 | 1773 | /**
|
|
0 commit comments