From 958bb307e1451f939745f53c53efbd682e5ebbbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Boutemy?= Date: Sat, 23 Mar 2024 18:49:50 +0100 Subject: [PATCH] [MPLUGIN-510] group history per common requirements --- .../pom.xml | 7 +++-- .../verify.groovy | 6 ++--- .../plugin/report/PluginOverviewRenderer.java | 27 ++++++++++++++++--- .../plugin/plugin/report/PluginReport.java | 10 +++++-- .../plugin/report/RequirementsHistory.java | 5 ++++ 5 files changed, 44 insertions(+), 11 deletions(-) diff --git a/maven-plugin-report-plugin/src/it/plugin-report-detect-requirements-history/pom.xml b/maven-plugin-report-plugin/src/it/plugin-report-detect-requirements-history/pom.xml index 51b08ae9..e38c90b6 100644 --- a/maven-plugin-report-plugin/src/it/plugin-report-detect-requirements-history/pom.xml +++ b/maven-plugin-report-plugin/src/it/plugin-report-detect-requirements-history/pom.xml @@ -24,8 +24,8 @@ under the License. 4.0.0 org.apache.maven.plugins - maven-plugin-report-plugin - 1.0-SNAPSHOT + maven-assembly-plugin + 3.7.1-SNAPSHOT maven-plugin MPLUGIN-511 @@ -84,6 +84,9 @@ under the License. org.apache.maven.plugins maven-plugin-report-plugin @project.version@ + + [3,3.7.0] + diff --git a/maven-plugin-report-plugin/src/it/plugin-report-detect-requirements-history/verify.groovy b/maven-plugin-report-plugin/src/it/plugin-report-detect-requirements-history/verify.groovy index bdf7c032..f1ce27a1 100644 --- a/maven-plugin-report-plugin/src/it/plugin-report-detect-requirements-history/verify.groovy +++ b/maven-plugin-report-plugin/src/it/plugin-report-detect-requirements-history/verify.groovy @@ -22,8 +22,6 @@ assert new File( basedir, 'target/site/noop-mojo.html' ).isFile() def pluginInfo = new File( basedir, 'target/site/plugin-info.html' ) assert pluginInfo.isFile() -assert pluginInfo.text.contains('3.11.0') -assert pluginInfo.text.contains('3.10.2') -assert pluginInfo.text.contains('3.9.0') -assert pluginInfo.text.contains('3.7.0') +assert pluginInfo.text.contains('from 3.4.0 to 3.6.0') +assert pluginInfo.text.contains('>3.2.5<') assert pluginInfo.text.contains('>8<') diff --git a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginOverviewRenderer.java b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginOverviewRenderer.java index 0c45f0ae..d557ed7f 100644 --- a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginOverviewRenderer.java +++ b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginOverviewRenderer.java @@ -211,11 +211,32 @@ private void renderRequirementsHistoriesSection() { getI18nString("systemrequirements.history.jdk") }); + // group by same requirements + final List> requirementsVersions = new ArrayList<>(); requirementsHistories.forEach(requirementsHistory -> { + List current = + requirementsVersions.isEmpty() ? null : requirementsVersions.get(requirementsVersions.size() - 1); + if (current != null && current.get(0).hasSameRequirements(requirementsHistory)) { + current.add(requirementsHistory); + } else { + current = new ArrayList<>(); + current.add(requirementsHistory); + requirementsVersions.add(current); + } + }); + + // render by common requirements + requirementsVersions.forEach(requirementsHistories -> { sink.tableRow(); - tableCell(requirementsHistory.getVersion()); - tableCell(requirementsHistory.getMaven()); - tableCell(requirementsHistory.getJdk()); + RequirementsHistory current = requirementsHistories.get(0); + if (requirementsHistories.size() == 1) { + tableCell(current.getVersion()); + } else { + RequirementsHistory from = requirementsHistories.get(requirementsHistories.size() - 1); + tableCell("from " + from.getVersion() + " to " + current.getVersion()); + } + tableCell(current.getMaven()); + tableCell(current.getJdk()); sink.tableRow_(); }); endTable(); diff --git a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java index 9f1178ff..5979fe70 100644 --- a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java +++ b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java @@ -189,8 +189,14 @@ protected void executeReport(Locale locale) throws MavenReportException { String v = null; try { List versions = discoverVersions(requirementsHistoryDetectionRange); - getLog().info("Detecting requirements history for " + requirementsHistoryDetectionRange + ": " - + versions.size()); + if (versions.isEmpty()) { + getLog().info("No plugin history found for range " + requirementsHistoryDetectionRange); + } else { + getLog().info("Detecting plugin requirements history for range " + + requirementsHistoryDetectionRange + ": " + + versions.size() + " releases, from " + versions.get(0) + " to " + + versions.get(versions.size() - 1)); + } Collections.reverse(versions); for (Version version : versions) { diff --git a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/RequirementsHistory.java b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/RequirementsHistory.java index 53446d44..9d797168 100644 --- a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/RequirementsHistory.java +++ b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/RequirementsHistory.java @@ -20,6 +20,7 @@ import java.util.Arrays; import java.util.Map; +import java.util.Objects; import java.util.Optional; import org.apache.commons.lang3.StringUtils; @@ -173,4 +174,8 @@ private static String getPluginParameter(Plugin plugin, String parameter) { return null; } + + public boolean hasSameRequirements(RequirementsHistory other) { + return Objects.equals(this.maven, other.getMaven()) && Objects.equals(this.jdk, other.getJdk()); + } }