This is an automated email from the ASF dual-hosted git repository.
hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dist-tool.git
The following commit(s) were added to refs/heads/master by this push:
new 70c45e9 add requirements history
70c45e9 is described below
commit 70c45e936607e67677856f3ac8e40b15cb9c2fe1
Author: Hervé Boutemy <[email protected]>
AuthorDate: Wed Jun 7 08:09:48 2023 +0200
add requirements history
---
.../dist/tools/prerequisites/GetPrerequisites.java | 36 +++++++++++++++++++---
.../ListPluginsPrerequisitesReport.java | 28 +++++++++++++++--
.../tools/prerequisites/PluginPrerequisites.java | 32 ++++++++++++++++++-
3 files changed, 87 insertions(+), 9 deletions(-)
diff --git
a/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java
b/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java
index eea9255..147dbbc 100644
---
a/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java
+++
b/src/main/java/org/apache/maven/dist/tools/prerequisites/GetPrerequisites.java
@@ -134,6 +134,10 @@ public class GetPrerequisites {
releaseDate = text.substring(index + 16).substring(0, 10);
}
+ // select table(s):
+ // - first one is the goals table
+ // - second one is system requirements
+ // - (optional) third one is system requirements history
Elements select = doc.select("table.bodyTable"); // Stylus skin
if (select.size() < 1) {
@@ -142,12 +146,13 @@ public class GetPrerequisites {
if (select.size() < 1) {
System.err.println("Could not find expected plugin info for " +
url);
- return new PluginPrerequisites(pluginName, "?", "?", "?", "?");
+ return new PluginPrerequisites(pluginName, "?", "?", "?", "?", 0,
null);
}
- Element tableInfo = select.get(1);
- Elements elementsByAttributeA =
tableInfo.getElementsByAttributeValue("class", "a");
- Elements elementsByAttributeB =
tableInfo.getElementsByAttributeValue("class", "b");
+ // extract system requirements
+ Element systemRequirementsTable = select.get(1);
+ Elements elementsByAttributeA =
systemRequirementsTable.getElementsByAttributeValue("class", "a");
+ Elements elementsByAttributeB =
systemRequirementsTable.getElementsByAttributeValue("class", "b");
String mavenVersion = elementsByAttributeA.first().text();
String jdkVersion = elementsByAttributeB.first().text();
@@ -171,7 +176,28 @@ public class GetPrerequisites {
pluginVersion = pluginVersion.substring(0,
pluginVersion.indexOf("</version>"));
}
- return new PluginPrerequisites(pluginName, pluginVersion, releaseDate,
mavenVersion, jdkVersion);
+ // extract system requirements history
+ int systemRequirementsHistorySize = 0;
+ String oldest = null;
+ if (select.size() > 2) {
+ Elements systemRequirementsHistoryTrs = select.get(2).select("tr");
+ systemRequirementsHistorySize =
systemRequirementsHistoryTrs.size() - 1;
+
+ Elements td = systemRequirementsHistoryTrs
+ .get(systemRequirementsHistorySize)
+ .select("td");
+ oldest = td.get(0).text() + " requires Maven " + td.get(1).text()
+ ", JDK "
+ + td.get(2).text();
+ }
+
+ return new PluginPrerequisites(
+ pluginName,
+ pluginVersion,
+ releaseDate,
+ mavenVersion,
+ jdkVersion,
+ systemRequirementsHistorySize,
+ oldest);
}
/**
diff --git
a/src/main/java/org/apache/maven/dist/tools/prerequisites/ListPluginsPrerequisitesReport.java
b/src/main/java/org/apache/maven/dist/tools/prerequisites/ListPluginsPrerequisitesReport.java
index 5d488b9..0679b34 100644
---
a/src/main/java/org/apache/maven/dist/tools/prerequisites/ListPluginsPrerequisitesReport.java
+++
b/src/main/java/org/apache/maven/dist/tools/prerequisites/ListPluginsPrerequisitesReport.java
@@ -83,6 +83,10 @@ public class ListPluginsPrerequisitesReport extends
AbstractMavenReport {
+ GetPrerequisites.PLUGIN_NAMES.length + ")");
sink.tableHeaderCell_();
+ sink.tableHeaderCell();
+ sink.rawText("Plugin Documentation");
+ sink.tableHeaderCell_();
+
sink.tableHeaderCell();
sink.rawText("Maven Version");
sink.tableHeaderCell_();
@@ -95,16 +99,22 @@ public class ListPluginsPrerequisitesReport extends
AbstractMavenReport {
sink.rawText("Release Date");
sink.tableHeaderCell_();
+ sink.tableHeaderCell();
+ sink.rawText("Requirements History");
+ sink.tableHeaderCell_();
+
sink.tableRow_();
for (PluginPrerequisites pluginPrerequisites :
pluginsPrerequisites) {
sink.tableRow();
sink.tableCell();
-
sink.link(prerequisites.getPluginInfoUrl(pluginPrerequisites.getPluginName()));
sink.text(pluginPrerequisites.getPluginName());
- sink.link_();
- sink.text(" ");
+ sink.tableCell_();
+
+ sink.tableCell();
+
sink.link(prerequisites.getPluginInfoUrl(pluginPrerequisites.getPluginName()));
sink.text(pluginPrerequisites.getPluginVersion());
+ sink.link_();
sink.tableCell_();
sink.tableCell();
@@ -118,6 +128,18 @@ public class ListPluginsPrerequisitesReport extends
AbstractMavenReport {
sink.tableCell();
sink.text(pluginPrerequisites.getReleaseDate());
sink.tableCell_();
+
+ sink.tableCell();
+ int history =
pluginPrerequisites.getSystemRequirementsHistory();
+ if (history > 0) {
+
sink.link(prerequisites.getPluginInfoUrl(pluginPrerequisites.getPluginName())
+ + "#system-requirements-history");
+ sink.text(String.valueOf(history));
+ sink.link_();
+ sink.text(", up to " +
pluginPrerequisites.getOldestRequirements());
+ }
+ sink.tableCell_();
+
sink.tableRow_();
}
});
diff --git
a/src/main/java/org/apache/maven/dist/tools/prerequisites/PluginPrerequisites.java
b/src/main/java/org/apache/maven/dist/tools/prerequisites/PluginPrerequisites.java
index a4d71ea..9c6af96 100644
---
a/src/main/java/org/apache/maven/dist/tools/prerequisites/PluginPrerequisites.java
+++
b/src/main/java/org/apache/maven/dist/tools/prerequisites/PluginPrerequisites.java
@@ -37,6 +37,10 @@ public class PluginPrerequisites {
private String jdkVersion;
+ private int systemRequirementsHistory;
+
+ private String oldestRequirements;
+
/**
* <p>Constructor for PluginPrerequisites.</p>
*
@@ -47,12 +51,20 @@ public class PluginPrerequisites {
* @param jdkVersion a {@link java.lang.String} object
*/
public PluginPrerequisites(
- String pluginName, String pluginVersion, String releaseDate,
String mavenVersion, String jdkVersion) {
+ String pluginName,
+ String pluginVersion,
+ String releaseDate,
+ String mavenVersion,
+ String jdkVersion,
+ int systemRequirementsHistory,
+ String oldestRequirements) {
this.pluginName = pluginName;
this.pluginVersion = pluginVersion;
this.releaseDate = releaseDate;
this.mavenVersion = new DefaultArtifactVersion(mavenVersion);
this.jdkVersion = jdkVersion;
+ this.systemRequirementsHistory = systemRequirementsHistory;
+ this.oldestRequirements = oldestRequirements;
}
/**
@@ -126,4 +138,22 @@ public class PluginPrerequisites {
public void setPluginName(String pluginName) {
this.pluginName = pluginName;
}
+
+ /**
+ * <p>Getter for the field <code>systemRequirementsHistory</code>.</p>
+ *
+ * @return an int
+ */
+ public int getSystemRequirementsHistory() {
+ return systemRequirementsHistory;
+ }
+
+ /**
+ * <p>Getter for the field <code>oldestRequirements</code>.</p>
+ *
+ * @return a {@link java.lang.String} object
+ */
+ public String getOldestRequirements() {
+ return oldestRequirements;
+ }
}