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`? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org