[ https://issues.apache.org/jira/browse/MPLUGIN-511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17825646#comment-17825646 ]
ASF GitHub Bot commented on MPLUGIN-511: ---------------------------------------- michael-o commented on code in PR #269: URL: https://github.com/apache/maven-plugin-tools/pull/269#discussion_r1521308296 ########## maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java: ########## @@ -93,6 +110,9 @@ public class PluginReport extends AbstractMavenReport { @Parameter private List<RequirementsHistory> requirementsHistories = new ArrayList<>(); + @Parameter(defaultValue = "[0,)") + private String detectRequirementsHistory; Review Comment: The naming includes to be boolean, but is string. Weird. ########## maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/RequirementsHistory.java: ########## @@ -118,33 +126,32 @@ public static String discoverJdkRequirement(MavenProject project, PluginDescript } jdk = getPluginParameter(compiler, "release"); - if (jdk != null) { - return jdk; + if (jdk == null) { + jdk = project.getProperties().getProperty("maven.compiler.release"); } - jdk = project.getProperties().getProperty("maven.compiler.release"); - if (jdk != null) { - return jdk; + if (jdk == null) { + jdk = getPluginParameter(compiler, "target"); } - jdk = getPluginParameter(compiler, "target"); - if (jdk != null) { - return jdk; + if (jdk == null) { + // default value + jdk = project.getProperties().getProperty("maven.compiler.target"); } - // default value - jdk = project.getProperties().getProperty("maven.compiler.target"); - if (jdk != null) { - return jdk; - } + if (jdk == null) { + String version = (compiler == null) ? null : compiler.getVersion(); - String version = (compiler == null) ? null : compiler.getVersion(); - - if (version != null) { - return "Default target for maven-compiler-plugin version " + version; + if (version != null) { + return "Default target for maven-compiler-plugin version " + version; + } + } else { + if (Arrays.asList("1.5", "1.6", "1.7", "1.8").contains(jdk)) { Review Comment: One should not be able to write 1.9, 1.10, etc. ########## maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java: ########## @@ -150,6 +179,29 @@ protected void executeReport(Locale locale) throws MavenReportException { // Generate the mojos' documentation generateMojosDocumentation(pluginDescriptor, locale); + if (requirementsHistories.isEmpty()) { + // detect requirements history + String v = null; + try { + List<Version> versions = discoverVersions(detectRequirementsHistory); + getLog().info("Detecting requirements history for " + detectRequirementsHistory + ": " + + versions.size()); + + Collections.reverse(versions); + for (Version version : versions) { + v = version.toString(); + MavenProject versionProject = buildMavenProject(v); + RequirementsHistory requirements = RequirementsHistory.discoverRequirements(versionProject); + requirementsHistories.add(requirements); + getLog().info("- " + requirements); Review Comment: This should be indented ########## maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/RequirementsHistory.java: ########## @@ -72,16 +73,23 @@ public String toString() { return sb.toString(); } + public static RequirementsHistory discoverRequirements(MavenProject project) { + RequirementsHistory req = new RequirementsHistory(); + req.version = project.getVersion(); + req.jdk = discoverJdkRequirement(project, null); + req.maven = discoverMavenRequirement(project, null); + return req; + } /** * Tries to determine the Maven requirement from either the plugin descriptor or (if not set) from the * Maven prerequisites element in the POM. * * @param project not null - * @param pluginDescriptor the plugin descriptor (not null) + * @param pluginDescriptor the plugin descriptor (can be null) * @return the Maven version or null if not specified */ public static String discoverMavenRequirement(MavenProject project, PluginDescriptor pluginDescriptor) { - if (StringUtils.isNotBlank(pluginDescriptor.getRequiredMavenVersion())) { + if (pluginDescriptor != null && StringUtils.isNotBlank(pluginDescriptor.getRequiredMavenVersion())) { Review Comment: How can it be suddenly `null`? > create and share tooling to detect plugin prerequisites history > --------------------------------------------------------------- > > Key: MPLUGIN-511 > URL: https://issues.apache.org/jira/browse/MPLUGIN-511 > Project: Maven Plugin Tools > Issue Type: Improvement > Components: Plugin Plugin > Affects Versions: 3.11.0 > Reporter: Herve Boutemy > Priority: Major > Fix For: 3.12.0 > > > to help creating documentation needed on plugins when implementing > MPLUGIN-400, i.e. fill requirementsHistories > [https://maven.apache.org/plugin-tools-archives/plugin-tools-3.7.0/maven-plugin-report-plugin/report-mojo.html#requirementshistories] > > this will be useful both for Maven project itself, because we have 52 plugins > to work on > [https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-dist-tool/job/master/site/dist-tool-prerequisites.html] > but this will help also every plugin maintainers: MojoHaus, others -- This message was sent by Atlassian Jira (v8.20.10#820010)