This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch MPLUGIN-511
in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git

commit 274e9a98e0122b63d11699d8fbc6d545697018d8
Author: Hervé Boutemy <hbout...@apache.org>
AuthorDate: Mon Feb 26 07:11:09 2024 +0100

    [MPLUGIN-511] move requirement detection code
---
 .../plugin/report/PluginOverviewRenderer.java      |  99 +------------------
 .../plugin/plugin/report/RequirementsHistory.java  | 106 +++++++++++++++++++++
 2 files changed, 108 insertions(+), 97 deletions(-)

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 a601bd50..376c420b 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
@@ -185,13 +185,13 @@ class PluginOverviewRenderer extends 
AbstractPluginReportRenderer {
 
         startTable();
 
-        String maven = discoverMavenRequirement(project, pluginDescriptor);
+        String maven = RequirementsHistory.discoverMavenRequirement(project, 
pluginDescriptor);
         sink.tableRow();
         tableCell(getI18nString("systemrequirements.maven"));
         tableCell((maven != null ? maven : 
getI18nString("systemrequirements.nominimum")));
         sink.tableRow_();
 
-        String jdk = discoverJdkRequirement(project, pluginDescriptor);
+        String jdk = RequirementsHistory.discoverJdkRequirement(project, 
pluginDescriptor);
         sink.tableRow();
         tableCell(getI18nString("systemrequirements.jdk"));
         tableCell((jdk != null ? jdk : 
getI18nString("systemrequirements.nominimum")));
@@ -320,101 +320,6 @@ class PluginOverviewRenderer extends 
AbstractPluginReportRenderer {
         endSection();
     }
 
-    /**
-     * 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)
-     * @return the Maven version or null if not specified
-     */
-    private static String discoverMavenRequirement(MavenProject project, 
PluginDescriptor pluginDescriptor) {
-        if 
(StringUtils.isNotBlank(pluginDescriptor.getRequiredMavenVersion())) {
-            return pluginDescriptor.getRequiredMavenVersion();
-        }
-        return Optional.ofNullable(project.getPrerequisites())
-                .map(Prerequisites::getMaven)
-                .orElse(null);
-    }
-
-    /**
-     * Tries to determine the JDK requirement from the following sources 
(until one is found)
-     * <ol>
-     * <li>use JDK requirement from plugin descriptor</li>
-     * <li>use {@code release} configuration of {@code 
org.apache.maven.plugins:maven-compiler-plugin}</li>
-     * <li>use {@code maven.compiler.release<} property</li>
-     * <li>use {@code target} configuration of {@code 
org.apache.maven.plugins:maven-compiler-plugin}</li>
-     * <li>use {@code maven.compiler.target} property</li>
-     * </ol>
-     *
-     * @param project      not null
-     * @param pluginDescriptor the plugin descriptor (not null)
-     * @return the JDK version
-     */
-    private static String discoverJdkRequirement(MavenProject project, 
PluginDescriptor pluginDescriptor) {
-        String jdk = null;
-        if (pluginDescriptor instanceof ExtendedPluginDescriptor) {
-            ExtendedPluginDescriptor extPluginDescriptor = 
(ExtendedPluginDescriptor) pluginDescriptor;
-            jdk = extPluginDescriptor.getRequiredJavaVersion();
-        }
-        if (jdk != null) {
-            return jdk;
-        }
-        Plugin compiler = 
getCompilerPlugin(project.getBuild().getPluginsAsMap());
-        if (compiler == null) {
-            compiler = 
getCompilerPlugin(project.getPluginManagement().getPluginsAsMap());
-        }
-
-        jdk = getPluginParameter(compiler, "release");
-        if (jdk != null) {
-            return jdk;
-        }
-
-        jdk = project.getProperties().getProperty("maven.compiler.release");
-        if (jdk != null) {
-            return jdk;
-        }
-
-        jdk = getPluginParameter(compiler, "target");
-        if (jdk != null) {
-            return jdk;
-        }
-
-        // default value
-        jdk = project.getProperties().getProperty("maven.compiler.target");
-        if (jdk != null) {
-            return jdk;
-        }
-
-        String version = (compiler == null) ? null : compiler.getVersion();
-
-        if (version != null) {
-            return "Default target for maven-compiler-plugin version " + 
version;
-        }
-
-        return null;
-    }
-
-    private static Plugin getCompilerPlugin(Map<String, Plugin> pluginsAsMap) {
-        return 
pluginsAsMap.get("org.apache.maven.plugins:maven-compiler-plugin");
-    }
-
-    private static String getPluginParameter(Plugin plugin, String parameter) {
-        if (plugin != null) {
-            Xpp3Dom pluginConf = (Xpp3Dom) plugin.getConfiguration();
-
-            if (pluginConf != null) {
-                Xpp3Dom target = pluginConf.getChild(parameter);
-
-                if (target != null) {
-                    return target.getValue();
-                }
-            }
-        }
-
-        return null;
-    }
-
     @Override
     protected String getI18nSection() {
         return "plugin";
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 4e08a6a6..ce8dae01 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
@@ -18,6 +18,17 @@
  */
 package org.apache.maven.plugin.plugin.report;
 
+import org.apache.commons.lang3.StringUtils;
+import org.apache.maven.model.Plugin;
+import org.apache.maven.model.Prerequisites;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.tools.plugin.ExtendedPluginDescriptor;
+import org.codehaus.plexus.util.xml.Xpp3Dom;
+
+import java.util.Map;
+import java.util.Optional;
+
 /**
  * Plugin requirements history.
  *
@@ -60,4 +71,99 @@ public class RequirementsHistory {
         sb.append('}');
         return sb.toString();
     }
+
+    /**
+     * 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)
+     * @return the Maven version or null if not specified
+     */
+    public static String discoverMavenRequirement(MavenProject project, 
PluginDescriptor pluginDescriptor) {
+        if 
(StringUtils.isNotBlank(pluginDescriptor.getRequiredMavenVersion())) {
+            return pluginDescriptor.getRequiredMavenVersion();
+        }
+        return Optional.ofNullable(project.getPrerequisites())
+                .map(Prerequisites::getMaven)
+                .orElse(null);
+    }
+
+    /**
+     * Tries to determine the JDK requirement from the following sources 
(until one is found)
+     * <ol>
+     * <li>use JDK requirement from plugin descriptor</li>
+     * <li>use {@code release} configuration of {@code 
org.apache.maven.plugins:maven-compiler-plugin}</li>
+     * <li>use {@code maven.compiler.release<} property</li>
+     * <li>use {@code target} configuration of {@code 
org.apache.maven.plugins:maven-compiler-plugin}</li>
+     * <li>use {@code maven.compiler.target} property</li>
+     * </ol>
+     *
+     * @param project      not null
+     * @param pluginDescriptor the plugin descriptor (not null)
+     * @return the JDK version
+     */
+    public static String discoverJdkRequirement(MavenProject project, 
PluginDescriptor pluginDescriptor) {
+        String jdk = null;
+        if (pluginDescriptor instanceof ExtendedPluginDescriptor) {
+            ExtendedPluginDescriptor extPluginDescriptor = 
(ExtendedPluginDescriptor) pluginDescriptor;
+            jdk = extPluginDescriptor.getRequiredJavaVersion();
+        }
+        if (jdk != null) {
+            return jdk;
+        }
+        Plugin compiler = 
getCompilerPlugin(project.getBuild().getPluginsAsMap());
+        if (compiler == null) {
+            compiler = 
getCompilerPlugin(project.getPluginManagement().getPluginsAsMap());
+        }
+
+        jdk = getPluginParameter(compiler, "release");
+        if (jdk != null) {
+            return jdk;
+        }
+
+        jdk = project.getProperties().getProperty("maven.compiler.release");
+        if (jdk != null) {
+            return jdk;
+        }
+
+        jdk = getPluginParameter(compiler, "target");
+        if (jdk != null) {
+            return jdk;
+        }
+
+        // default value
+        jdk = project.getProperties().getProperty("maven.compiler.target");
+        if (jdk != null) {
+            return jdk;
+        }
+
+        String version = (compiler == null) ? null : compiler.getVersion();
+
+        if (version != null) {
+            return "Default target for maven-compiler-plugin version " + 
version;
+        }
+
+        return null;
+    }
+
+    private static Plugin getCompilerPlugin(Map<String, Plugin> pluginsAsMap) {
+        return 
pluginsAsMap.get("org.apache.maven.plugins:maven-compiler-plugin");
+    }
+
+    private static String getPluginParameter(Plugin plugin, String parameter) {
+        if (plugin != null) {
+            Xpp3Dom pluginConf = (Xpp3Dom) plugin.getConfiguration();
+
+            if (pluginConf != null) {
+                Xpp3Dom target = pluginConf.getChild(parameter);
+
+                if (target != null) {
+                    return target.getValue();
+                }
+            }
+        }
+
+        return null;
+    }
 }

Reply via email to