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

Reply via email to