Modified: 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/org/apache/maven/tools/plugin/util/PluginUtils.html
==============================================================================
--- 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/org/apache/maven/tools/plugin/util/PluginUtils.html
 (original)
+++ 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/org/apache/maven/tools/plugin/util/PluginUtils.html
 Sat Mar 30 02:00:43 2024
@@ -132,7 +132,7 @@ $('.navPadding').css('padding-top', $('.
 <ul class="blockList">
 <li class="blockList">
 <hr>
-<pre>public final class <a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.45">PluginUtils</a>
+<pre>public final class <a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.44">PluginUtils</a>
 extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang" class="externalLink">Object</a></pre>
 <div class="block">Convenience methods to play with Maven plugins.</div>
 <dl>
@@ -222,7 +222,7 @@ extends <a href="https://docs.oracle.com
 <ul class="blockList">
 <li class="blockList">
 <h4>findSources</h4>
-<pre class="methodSignature">public static&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>[]&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.55">findSources</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;basedir,
+<pre class="methodSignature">public static&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>[]&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.54">findSources</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;basedir,
                                    <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;include)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -239,7 +239,7 @@ extends <a href="https://docs.oracle.com
 <ul class="blockList">
 <li class="blockList">
 <h4>findSources</h4>
-<pre class="methodSignature">public static&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>[]&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.65">findSources</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;basedir,
+<pre class="methodSignature">public static&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>[]&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.64">findSources</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;basedir,
                                    <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;include,
                                    <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;exclude)</pre>
 <dl>
@@ -258,7 +258,7 @@ extends <a href="https://docs.oracle.com
 <ul class="blockList">
 <li class="blockList">
 <h4>sortMojos</h4>
-<pre class="methodSignature">public static&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.86">sortMojos</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true";
 title="class or interface in java.util" 
class="externalLink">List</a>&lt;org.apache.maven.plugin.descriptor.MojoDescriptor&gt;&nbsp;mojoDescriptors)</pre>
+<pre class="methodSignature">public static&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.85">sortMojos</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true";
 title="class or interface in java.util" 
class="externalLink">List</a>&lt;org.apache.maven.plugin.descriptor.MojoDescriptor&gt;&nbsp;mojoDescriptors)</pre>
 <div class="block">Sorts the specified mojo descriptors by goal name.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -274,7 +274,7 @@ extends <a href="https://docs.oracle.com
 <ul class="blockList">
 <li class="blockList">
 <h4>sortMojoParameters</h4>
-<pre class="methodSignature">public static&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.105">sortMojoParameters</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true";
 title="class or interface in java.util" 
class="externalLink">List</a>&lt;org.apache.maven.plugin.descriptor.Parameter&gt;&nbsp;parameters)</pre>
+<pre class="methodSignature">public static&nbsp;void&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.98">sortMojoParameters</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true";
 title="class or interface in java.util" 
class="externalLink">List</a>&lt;org.apache.maven.plugin.descriptor.Parameter&gt;&nbsp;parameters)</pre>
 <div class="block">Sorts the specified mojo parameters by name.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -292,7 +292,7 @@ extends <a href="https://docs.oracle.com
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isMavenReport</h4>
-<pre class="methodSignature">public static&nbsp;boolean&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.125">isMavenReport</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;mojoClassName,
+<pre class="methodSignature">public static&nbsp;boolean&nbsp;<a 
href="../../../../../../src-html/org/apache/maven/tools/plugin/util/PluginUtils.html#line.112">isMavenReport</a>&#8203;(<a
 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">String</a>&nbsp;mojoClassName,
                                     
org.apache.maven.project.MavenProject&nbsp;project)
                              throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true";
 title="class or interface in java.lang" 
class="externalLink">IllegalArgumentException</a></pre>
 <dl>

Modified: 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/package-search-index.zip
==============================================================================
Binary files - no diff available.

Modified: 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/src-html/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.html
==============================================================================
--- 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/src-html/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.html
 (original)
+++ 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/src-html/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.html
 Sat Mar 30 02:00:43 2024
@@ -32,84 +32,85 @@
 <span class="sourceLineNo">023</span><a id="line.23"></a>
 <span class="sourceLineNo">024</span><a id="line.24">import 
org.apache.maven.plugin.AbstractMojo;</a>
 <span class="sourceLineNo">025</span><a id="line.25">import 
org.apache.maven.plugin.MojoExecutionException;</a>
-<span class="sourceLineNo">026</span><a id="line.26">import 
org.apache.maven.plugins.annotations.Parameter;</a>
-<span class="sourceLineNo">027</span><a id="line.27">import 
org.apache.maven.project.MavenProject;</a>
-<span class="sourceLineNo">028</span><a id="line.28"></a>
-<span class="sourceLineNo">029</span><a id="line.29">/**</a>
-<span class="sourceLineNo">030</span><a id="line.30"> * Abstract class for 
this Plugin.</a>
-<span class="sourceLineNo">031</span><a id="line.31"> *</a>
-<span class="sourceLineNo">032</span><a id="line.32"> * @author &lt;a 
href="mailto:ja...@maven.org"&gt;Jason van Zyl&lt;/a&gt;</a>
-<span class="sourceLineNo">033</span><a id="line.33"> *</a>
-<span class="sourceLineNo">034</span><a id="line.34"> */</a>
-<span class="sourceLineNo">035</span><a id="line.35">public abstract class 
AbstractGeneratorMojo extends AbstractMojo {</a>
-<span class="sourceLineNo">036</span><a id="line.36">    /**</a>
-<span class="sourceLineNo">037</span><a id="line.37">     * The project 
currently being built.</a>
-<span class="sourceLineNo">038</span><a id="line.38">     */</a>
-<span class="sourceLineNo">039</span><a id="line.39">    
@Parameter(defaultValue = "${project}", readonly = true)</a>
-<span class="sourceLineNo">040</span><a id="line.40">    protected 
MavenProject project;</a>
-<span class="sourceLineNo">041</span><a id="line.41"></a>
-<span class="sourceLineNo">042</span><a id="line.42">    /**</a>
-<span class="sourceLineNo">043</span><a id="line.43">     * The goal prefix 
that will appear before the ":".</a>
-<span class="sourceLineNo">044</span><a id="line.44">     */</a>
-<span class="sourceLineNo">045</span><a id="line.45">    @Parameter</a>
-<span class="sourceLineNo">046</span><a id="line.46">    protected String 
goalPrefix;</a>
-<span class="sourceLineNo">047</span><a id="line.47"></a>
-<span class="sourceLineNo">048</span><a id="line.48">    /**</a>
-<span class="sourceLineNo">049</span><a id="line.49">     * Set this to "true" 
to skip invoking any goals or reports of the plugin.</a>
-<span class="sourceLineNo">050</span><a id="line.50">     *</a>
-<span class="sourceLineNo">051</span><a id="line.51">     * @since 2.8</a>
-<span class="sourceLineNo">052</span><a id="line.52">     */</a>
-<span class="sourceLineNo">053</span><a id="line.53">    
@Parameter(defaultValue = "false", property = "maven.plugin.skip")</a>
-<span class="sourceLineNo">054</span><a id="line.54">    private boolean 
skip;</a>
-<span class="sourceLineNo">055</span><a id="line.55"></a>
-<span class="sourceLineNo">056</span><a id="line.56">    /**</a>
-<span class="sourceLineNo">057</span><a id="line.57">     * Maven plugin 
packaging types. Default is single "maven-plugin".</a>
-<span class="sourceLineNo">058</span><a id="line.58">     *</a>
-<span class="sourceLineNo">059</span><a id="line.59">     * @since 3.3</a>
-<span class="sourceLineNo">060</span><a id="line.60">     */</a>
-<span class="sourceLineNo">061</span><a id="line.61">    @Parameter</a>
-<span class="sourceLineNo">062</span><a id="line.62">    private 
List&lt;String&gt; packagingTypes = 
Collections.singletonList("maven-plugin");</a>
-<span class="sourceLineNo">063</span><a id="line.63"></a>
-<span class="sourceLineNo">064</span><a id="line.64">    /**</a>
-<span class="sourceLineNo">065</span><a id="line.65">     * System/OS line 
separator: used to format console messages.</a>
-<span class="sourceLineNo">066</span><a id="line.66">     */</a>
-<span class="sourceLineNo">067</span><a id="line.67">    protected static 
final String LS = System.lineSeparator();</a>
-<span class="sourceLineNo">068</span><a id="line.68"></a>
-<span class="sourceLineNo">069</span><a id="line.69">    protected abstract 
void generate() throws MojoExecutionException;</a>
-<span class="sourceLineNo">070</span><a id="line.70"></a>
-<span class="sourceLineNo">071</span><a id="line.71">    @Override</a>
-<span class="sourceLineNo">072</span><a id="line.72">    public void execute() 
throws MojoExecutionException {</a>
-<span class="sourceLineNo">073</span><a id="line.73">        if 
(!packagingTypes.contains(project.getPackaging())) {</a>
-<span class="sourceLineNo">074</span><a id="line.74">            
getLog().info("Unsupported packaging type " + project.getPackaging() + ", 
execution skipped");</a>
-<span class="sourceLineNo">075</span><a id="line.75">            return;</a>
-<span class="sourceLineNo">076</span><a id="line.76">        }</a>
-<span class="sourceLineNo">077</span><a id="line.77"></a>
-<span class="sourceLineNo">078</span><a id="line.78">        if (skip) {</a>
-<span class="sourceLineNo">079</span><a id="line.79">            
getLog().warn("Execution skipped");</a>
-<span class="sourceLineNo">080</span><a id="line.80">            return;</a>
-<span class="sourceLineNo">081</span><a id="line.81">        }</a>
-<span class="sourceLineNo">082</span><a id="line.82"></a>
-<span class="sourceLineNo">083</span><a id="line.83">        if (goalPrefix == 
null || goalPrefix.isEmpty()) {</a>
-<span class="sourceLineNo">084</span><a id="line.84">            goalPrefix = 
getDefaultGoalPrefix(project);</a>
-<span class="sourceLineNo">085</span><a id="line.85">        }</a>
-<span class="sourceLineNo">086</span><a id="line.86">        if (goalPrefix == 
null || goalPrefix.isEmpty()) {</a>
-<span class="sourceLineNo">087</span><a id="line.87">            throw new 
MojoExecutionException("You need to specify a goalPrefix as it can not be 
correctly computed");</a>
-<span class="sourceLineNo">088</span><a id="line.88">        }</a>
-<span class="sourceLineNo">089</span><a id="line.89"></a>
-<span class="sourceLineNo">090</span><a id="line.90">        generate();</a>
-<span class="sourceLineNo">091</span><a id="line.91">    }</a>
-<span class="sourceLineNo">092</span><a id="line.92"></a>
-<span class="sourceLineNo">093</span><a id="line.93">    static String 
getDefaultGoalPrefix(MavenProject project) {</a>
-<span class="sourceLineNo">094</span><a id="line.94">        String artifactId 
= project.getArtifactId();</a>
-<span class="sourceLineNo">095</span><a id="line.95">        if 
(artifactId.endsWith("-maven-plugin")) {</a>
-<span class="sourceLineNo">096</span><a id="line.96">            return 
artifactId.substring(0, artifactId.length() - "-maven-plugin".length());</a>
-<span class="sourceLineNo">097</span><a id="line.97">        } else if 
(artifactId.startsWith("maven-") &amp;&amp; artifactId.endsWith("-plugin")) 
{</a>
-<span class="sourceLineNo">098</span><a id="line.98">            return 
artifactId.substring("maven-".length(), artifactId.length() - 
"-plugin".length());</a>
-<span class="sourceLineNo">099</span><a id="line.99">        } else {</a>
-<span class="sourceLineNo">100</span><a id="line.100">            return 
null;</a>
-<span class="sourceLineNo">101</span><a id="line.101">        }</a>
-<span class="sourceLineNo">102</span><a id="line.102">    }</a>
-<span class="sourceLineNo">103</span><a id="line.103">}</a>
+<span class="sourceLineNo">026</span><a id="line.26">import 
org.apache.maven.plugins.annotations.Component;</a>
+<span class="sourceLineNo">027</span><a id="line.27">import 
org.apache.maven.plugins.annotations.Parameter;</a>
+<span class="sourceLineNo">028</span><a id="line.28">import 
org.apache.maven.project.MavenProject;</a>
+<span class="sourceLineNo">029</span><a id="line.29"></a>
+<span class="sourceLineNo">030</span><a id="line.30">/**</a>
+<span class="sourceLineNo">031</span><a id="line.31"> * Abstract class for 
this Plugin.</a>
+<span class="sourceLineNo">032</span><a id="line.32"> *</a>
+<span class="sourceLineNo">033</span><a id="line.33"> * @author &lt;a 
href="mailto:ja...@maven.org"&gt;Jason van Zyl&lt;/a&gt;</a>
+<span class="sourceLineNo">034</span><a id="line.34"> *</a>
+<span class="sourceLineNo">035</span><a id="line.35"> */</a>
+<span class="sourceLineNo">036</span><a id="line.36">public abstract class 
AbstractGeneratorMojo extends AbstractMojo {</a>
+<span class="sourceLineNo">037</span><a id="line.37">    /**</a>
+<span class="sourceLineNo">038</span><a id="line.38">     * The project 
currently being built.</a>
+<span class="sourceLineNo">039</span><a id="line.39">     */</a>
+<span class="sourceLineNo">040</span><a id="line.40">    @Component</a>
+<span class="sourceLineNo">041</span><a id="line.41">    protected 
MavenProject project;</a>
+<span class="sourceLineNo">042</span><a id="line.42"></a>
+<span class="sourceLineNo">043</span><a id="line.43">    /**</a>
+<span class="sourceLineNo">044</span><a id="line.44">     * The goal prefix 
that will appear before the ":".</a>
+<span class="sourceLineNo">045</span><a id="line.45">     */</a>
+<span class="sourceLineNo">046</span><a id="line.46">    @Parameter</a>
+<span class="sourceLineNo">047</span><a id="line.47">    protected String 
goalPrefix;</a>
+<span class="sourceLineNo">048</span><a id="line.48"></a>
+<span class="sourceLineNo">049</span><a id="line.49">    /**</a>
+<span class="sourceLineNo">050</span><a id="line.50">     * Set this to "true" 
to skip invoking any goals or reports of the plugin.</a>
+<span class="sourceLineNo">051</span><a id="line.51">     *</a>
+<span class="sourceLineNo">052</span><a id="line.52">     * @since 2.8</a>
+<span class="sourceLineNo">053</span><a id="line.53">     */</a>
+<span class="sourceLineNo">054</span><a id="line.54">    
@Parameter(defaultValue = "false", property = "maven.plugin.skip")</a>
+<span class="sourceLineNo">055</span><a id="line.55">    private boolean 
skip;</a>
+<span class="sourceLineNo">056</span><a id="line.56"></a>
+<span class="sourceLineNo">057</span><a id="line.57">    /**</a>
+<span class="sourceLineNo">058</span><a id="line.58">     * Maven plugin 
packaging types. Default is single "maven-plugin".</a>
+<span class="sourceLineNo">059</span><a id="line.59">     *</a>
+<span class="sourceLineNo">060</span><a id="line.60">     * @since 3.3</a>
+<span class="sourceLineNo">061</span><a id="line.61">     */</a>
+<span class="sourceLineNo">062</span><a id="line.62">    @Parameter</a>
+<span class="sourceLineNo">063</span><a id="line.63">    private 
List&lt;String&gt; packagingTypes = 
Collections.singletonList("maven-plugin");</a>
+<span class="sourceLineNo">064</span><a id="line.64"></a>
+<span class="sourceLineNo">065</span><a id="line.65">    /**</a>
+<span class="sourceLineNo">066</span><a id="line.66">     * System/OS line 
separator: used to format console messages.</a>
+<span class="sourceLineNo">067</span><a id="line.67">     */</a>
+<span class="sourceLineNo">068</span><a id="line.68">    protected static 
final String LS = System.lineSeparator();</a>
+<span class="sourceLineNo">069</span><a id="line.69"></a>
+<span class="sourceLineNo">070</span><a id="line.70">    protected abstract 
void generate() throws MojoExecutionException;</a>
+<span class="sourceLineNo">071</span><a id="line.71"></a>
+<span class="sourceLineNo">072</span><a id="line.72">    @Override</a>
+<span class="sourceLineNo">073</span><a id="line.73">    public void execute() 
throws MojoExecutionException {</a>
+<span class="sourceLineNo">074</span><a id="line.74">        if 
(!packagingTypes.contains(project.getPackaging())) {</a>
+<span class="sourceLineNo">075</span><a id="line.75">            
getLog().info("Unsupported packaging type " + project.getPackaging() + ", 
execution skipped");</a>
+<span class="sourceLineNo">076</span><a id="line.76">            return;</a>
+<span class="sourceLineNo">077</span><a id="line.77">        }</a>
+<span class="sourceLineNo">078</span><a id="line.78"></a>
+<span class="sourceLineNo">079</span><a id="line.79">        if (skip) {</a>
+<span class="sourceLineNo">080</span><a id="line.80">            
getLog().warn("Execution skipped");</a>
+<span class="sourceLineNo">081</span><a id="line.81">            return;</a>
+<span class="sourceLineNo">082</span><a id="line.82">        }</a>
+<span class="sourceLineNo">083</span><a id="line.83"></a>
+<span class="sourceLineNo">084</span><a id="line.84">        if (goalPrefix == 
null || goalPrefix.isEmpty()) {</a>
+<span class="sourceLineNo">085</span><a id="line.85">            goalPrefix = 
getDefaultGoalPrefix(project);</a>
+<span class="sourceLineNo">086</span><a id="line.86">        }</a>
+<span class="sourceLineNo">087</span><a id="line.87">        if (goalPrefix == 
null || goalPrefix.isEmpty()) {</a>
+<span class="sourceLineNo">088</span><a id="line.88">            throw new 
MojoExecutionException("You need to specify a goalPrefix as it can not be 
correctly computed");</a>
+<span class="sourceLineNo">089</span><a id="line.89">        }</a>
+<span class="sourceLineNo">090</span><a id="line.90"></a>
+<span class="sourceLineNo">091</span><a id="line.91">        generate();</a>
+<span class="sourceLineNo">092</span><a id="line.92">    }</a>
+<span class="sourceLineNo">093</span><a id="line.93"></a>
+<span class="sourceLineNo">094</span><a id="line.94">    static String 
getDefaultGoalPrefix(MavenProject project) {</a>
+<span class="sourceLineNo">095</span><a id="line.95">        String artifactId 
= project.getArtifactId();</a>
+<span class="sourceLineNo">096</span><a id="line.96">        if 
(artifactId.endsWith("-maven-plugin")) {</a>
+<span class="sourceLineNo">097</span><a id="line.97">            return 
artifactId.substring(0, artifactId.length() - "-maven-plugin".length());</a>
+<span class="sourceLineNo">098</span><a id="line.98">        } else if 
(artifactId.startsWith("maven-") &amp;&amp; artifactId.endsWith("-plugin")) 
{</a>
+<span class="sourceLineNo">099</span><a id="line.99">            return 
artifactId.substring("maven-".length(), artifactId.length() - 
"-plugin".length());</a>
+<span class="sourceLineNo">100</span><a id="line.100">        } else {</a>
+<span class="sourceLineNo">101</span><a id="line.101">            return 
null;</a>
+<span class="sourceLineNo">102</span><a id="line.102">        }</a>
+<span class="sourceLineNo">103</span><a id="line.103">    }</a>
+<span class="sourceLineNo">104</span><a id="line.104">}</a>
 
 
 

Modified: 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/src-html/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.html
==============================================================================
--- 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/src-html/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.html
 (original)
+++ 
maven/website/components/plugin-tools-archives/plugin-tools-LATEST/apidocs/src-html/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.html
 Sat Mar 30 02:00:43 2024
@@ -38,26 +38,26 @@
 <span class="sourceLineNo">029</span><a id="line.29">import 
org.apache.maven.artifact.Artifact;</a>
 <span class="sourceLineNo">030</span><a id="line.30">import 
org.apache.maven.artifact.resolver.filter.ArtifactFilter;</a>
 <span class="sourceLineNo">031</span><a id="line.31">import 
org.apache.maven.artifact.resolver.filter.IncludesArtifactFilter;</a>
-<span class="sourceLineNo">032</span><a id="line.32">import 
org.apache.maven.plugin.MojoExecutionException;</a>
-<span class="sourceLineNo">033</span><a id="line.33">import 
org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;</a>
-<span class="sourceLineNo">034</span><a id="line.34">import 
org.apache.maven.plugin.descriptor.PluginDescriptor;</a>
-<span class="sourceLineNo">035</span><a id="line.35">import 
org.apache.maven.plugins.annotations.Component;</a>
-<span class="sourceLineNo">036</span><a id="line.36">import 
org.apache.maven.plugins.annotations.LifecyclePhase;</a>
-<span class="sourceLineNo">037</span><a id="line.37">import 
org.apache.maven.plugins.annotations.Mojo;</a>
-<span class="sourceLineNo">038</span><a id="line.38">import 
org.apache.maven.plugins.annotations.Parameter;</a>
-<span class="sourceLineNo">039</span><a id="line.39">import 
org.apache.maven.plugins.annotations.ResolutionScope;</a>
-<span class="sourceLineNo">040</span><a id="line.40">import 
org.apache.maven.settings.Settings;</a>
-<span class="sourceLineNo">041</span><a id="line.41">import 
org.apache.maven.tools.plugin.DefaultPluginToolsRequest;</a>
-<span class="sourceLineNo">042</span><a id="line.42">import 
org.apache.maven.tools.plugin.ExtendedPluginDescriptor;</a>
-<span class="sourceLineNo">043</span><a id="line.43">import 
org.apache.maven.tools.plugin.PluginToolsRequest;</a>
-<span class="sourceLineNo">044</span><a id="line.44">import 
org.apache.maven.tools.plugin.extractor.ExtractionException;</a>
-<span class="sourceLineNo">045</span><a id="line.45">import 
org.apache.maven.tools.plugin.generator.GeneratorException;</a>
-<span class="sourceLineNo">046</span><a id="line.46">import 
org.apache.maven.tools.plugin.generator.GeneratorUtils;</a>
-<span class="sourceLineNo">047</span><a id="line.47">import 
org.apache.maven.tools.plugin.generator.PluginDescriptorFilesGenerator;</a>
-<span class="sourceLineNo">048</span><a id="line.48">import 
org.apache.maven.tools.plugin.scanner.MojoScanner;</a>
-<span class="sourceLineNo">049</span><a id="line.49">import 
org.codehaus.plexus.component.repository.ComponentDependency;</a>
-<span class="sourceLineNo">050</span><a id="line.50">import 
org.codehaus.plexus.util.ReaderFactory;</a>
-<span class="sourceLineNo">051</span><a id="line.51">import 
org.eclipse.aether.RepositorySystemSession;</a>
+<span class="sourceLineNo">032</span><a id="line.32">import 
org.apache.maven.execution.MavenSession;</a>
+<span class="sourceLineNo">033</span><a id="line.33">import 
org.apache.maven.plugin.MojoExecutionException;</a>
+<span class="sourceLineNo">034</span><a id="line.34">import 
org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;</a>
+<span class="sourceLineNo">035</span><a id="line.35">import 
org.apache.maven.plugin.descriptor.PluginDescriptor;</a>
+<span class="sourceLineNo">036</span><a id="line.36">import 
org.apache.maven.plugins.annotations.Component;</a>
+<span class="sourceLineNo">037</span><a id="line.37">import 
org.apache.maven.plugins.annotations.LifecyclePhase;</a>
+<span class="sourceLineNo">038</span><a id="line.38">import 
org.apache.maven.plugins.annotations.Mojo;</a>
+<span class="sourceLineNo">039</span><a id="line.39">import 
org.apache.maven.plugins.annotations.Parameter;</a>
+<span class="sourceLineNo">040</span><a id="line.40">import 
org.apache.maven.plugins.annotations.ResolutionScope;</a>
+<span class="sourceLineNo">041</span><a id="line.41">import 
org.apache.maven.settings.Settings;</a>
+<span class="sourceLineNo">042</span><a id="line.42">import 
org.apache.maven.tools.plugin.DefaultPluginToolsRequest;</a>
+<span class="sourceLineNo">043</span><a id="line.43">import 
org.apache.maven.tools.plugin.ExtendedPluginDescriptor;</a>
+<span class="sourceLineNo">044</span><a id="line.44">import 
org.apache.maven.tools.plugin.PluginToolsRequest;</a>
+<span class="sourceLineNo">045</span><a id="line.45">import 
org.apache.maven.tools.plugin.extractor.ExtractionException;</a>
+<span class="sourceLineNo">046</span><a id="line.46">import 
org.apache.maven.tools.plugin.generator.GeneratorException;</a>
+<span class="sourceLineNo">047</span><a id="line.47">import 
org.apache.maven.tools.plugin.generator.GeneratorUtils;</a>
+<span class="sourceLineNo">048</span><a id="line.48">import 
org.apache.maven.tools.plugin.generator.PluginDescriptorFilesGenerator;</a>
+<span class="sourceLineNo">049</span><a id="line.49">import 
org.apache.maven.tools.plugin.scanner.MojoScanner;</a>
+<span class="sourceLineNo">050</span><a id="line.50">import 
org.codehaus.plexus.component.repository.ComponentDependency;</a>
+<span class="sourceLineNo">051</span><a id="line.51">import 
org.codehaus.plexus.util.ReaderFactory;</a>
 <span class="sourceLineNo">052</span><a id="line.52">import 
org.sonatype.plexus.build.incremental.BuildContext;</a>
 <span class="sourceLineNo">053</span><a id="line.53"></a>
 <span class="sourceLineNo">054</span><a id="line.54">/**</a>
@@ -235,241 +235,242 @@
 <span class="sourceLineNo">226</span><a id="line.226">     *</a>
 <span class="sourceLineNo">227</span><a id="line.227">     * @since 3.7.0</a>
 <span class="sourceLineNo">228</span><a id="line.228">     */</a>
-<span class="sourceLineNo">229</span><a id="line.229">    
@Parameter(defaultValue = "${settings}", readonly = true, required = true)</a>
+<span class="sourceLineNo">229</span><a id="line.229">    @Component</a>
 <span class="sourceLineNo">230</span><a id="line.230">    private Settings 
settings;</a>
 <span class="sourceLineNo">231</span><a id="line.231"></a>
-<span class="sourceLineNo">232</span><a id="line.232">    
@Parameter(defaultValue = "${repositorySystemSession}", readonly = true, 
required = true)</a>
-<span class="sourceLineNo">233</span><a id="line.233">    private 
RepositorySystemSession repoSession;</a>
-<span class="sourceLineNo">234</span><a id="line.234">    /**</a>
-<span class="sourceLineNo">235</span><a id="line.235">     * The required Java 
version to set in the plugin descriptor. This is evaluated by Maven 4 and 
ignored by earlier</a>
-<span class="sourceLineNo">236</span><a id="line.236">     * Maven versions. 
Can be either one of the following formats:</a>
-<span class="sourceLineNo">237</span><a id="line.237">     *</a>
-<span class="sourceLineNo">238</span><a id="line.238">     * &lt;ul&gt;</a>
-<span class="sourceLineNo">239</span><a id="line.239">     * &lt;li&gt;A 
version range which specifies the supported Java versions. It can either use 
the usual mathematical</a>
-<span class="sourceLineNo">240</span><a id="line.240">     * syntax like 
{@code "[1.7,9),[11,)"} or use a single version like {@code "1.8"}. The latter 
is a short</a>
-<span class="sourceLineNo">241</span><a id="line.241">     * form for {@code 
"[1.8,)"}, i.e. denotes the minimum version required.&lt;/li&gt;</a>
-<span class="sourceLineNo">242</span><a id="line.242">     * &lt;li&gt;{@code 
"auto"} to determine the minimum Java version from the binary class version 
being generated during</a>
-<span class="sourceLineNo">243</span><a id="line.243">     * compilation 
(determined by the extractor).&lt;/li&gt;</a>
-<span class="sourceLineNo">244</span><a id="line.244">     * &lt;/ul&gt;</a>
-<span class="sourceLineNo">245</span><a id="line.245">     *</a>
-<span class="sourceLineNo">246</span><a id="line.246">     * @since 3.8.0</a>
-<span class="sourceLineNo">247</span><a id="line.247">     */</a>
-<span class="sourceLineNo">248</span><a id="line.248">    
@Parameter(defaultValue = VALUE_AUTO)</a>
-<span class="sourceLineNo">249</span><a id="line.249">    String 
requiredJavaVersion;</a>
-<span class="sourceLineNo">250</span><a id="line.250"></a>
-<span class="sourceLineNo">251</span><a id="line.251">    /**</a>
-<span class="sourceLineNo">252</span><a id="line.252">     * The required 
Maven version to set in the plugin descriptor. This is evaluated by Maven 4 and 
ignored by earlier</a>
-<span class="sourceLineNo">253</span><a id="line.253">     * Maven versions. 
Can be either one of the following formats:</a>
-<span class="sourceLineNo">254</span><a id="line.254">     *</a>
-<span class="sourceLineNo">255</span><a id="line.255">     * &lt;ul&gt;</a>
-<span class="sourceLineNo">256</span><a id="line.256">     * &lt;li&gt;A 
version range which specifies the supported Maven versions. It can either use 
the usual mathematical</a>
-<span class="sourceLineNo">257</span><a id="line.257">     * syntax like 
{@code "[2.0.10,2.1.0),[3.0,)"} or use a single version like {@code "2.2.1"}. 
The latter is a short</a>
-<span class="sourceLineNo">258</span><a id="line.258">     * form for {@code 
"[2.2.1,)"}, i.e. denotes the minimum version required.&lt;/li&gt;</a>
-<span class="sourceLineNo">259</span><a id="line.259">     * &lt;li&gt;{@code 
"auto"} to determine the minimum Maven version from the POM's Maven 
prerequisite, or if not set the</a>
-<span class="sourceLineNo">260</span><a id="line.260">     * referenced Maven 
Plugin API version.&lt;/li&gt;</a>
-<span class="sourceLineNo">261</span><a id="line.261">     * &lt;/ul&gt;</a>
-<span class="sourceLineNo">262</span><a id="line.262">     * This value takes 
precedence over the</a>
-<span class="sourceLineNo">263</span><a id="line.263">     * &lt;a 
href="https://maven.apache.org/pom.html#Prerequisites"&gt;POM's Maven 
prerequisite&lt;/a&gt; in Maven 4.</a>
-<span class="sourceLineNo">264</span><a id="line.264">     *</a>
-<span class="sourceLineNo">265</span><a id="line.265">     * @since 3.8.0</a>
-<span class="sourceLineNo">266</span><a id="line.266">     */</a>
-<span class="sourceLineNo">267</span><a id="line.267">    
@Parameter(defaultValue = VALUE_AUTO)</a>
-<span class="sourceLineNo">268</span><a id="line.268">    String 
requiredMavenVersion;</a>
-<span class="sourceLineNo">269</span><a id="line.269"></a>
-<span class="sourceLineNo">270</span><a id="line.270">    /**</a>
-<span class="sourceLineNo">271</span><a id="line.271">     * The component 
used for scanning the source tree for mojos.</a>
-<span class="sourceLineNo">272</span><a id="line.272">     */</a>
-<span class="sourceLineNo">273</span><a id="line.273">    @Component</a>
-<span class="sourceLineNo">274</span><a id="line.274">    private MojoScanner 
mojoScanner;</a>
-<span class="sourceLineNo">275</span><a id="line.275"></a>
-<span class="sourceLineNo">276</span><a id="line.276">    @Component</a>
-<span class="sourceLineNo">277</span><a id="line.277">    protected 
BuildContext buildContext;</a>
-<span class="sourceLineNo">278</span><a id="line.278"></a>
-<span class="sourceLineNo">279</span><a id="line.279">    public void 
generate() throws MojoExecutionException {</a>
-<span class="sourceLineNo">280</span><a id="line.280"></a>
-<span class="sourceLineNo">281</span><a id="line.281">        if 
(!"maven-plugin".equalsIgnoreCase(project.getArtifactId())</a>
-<span class="sourceLineNo">282</span><a id="line.282">                
&amp;&amp; project.getArtifactId().toLowerCase().startsWith("maven-")</a>
-<span class="sourceLineNo">283</span><a id="line.283">                
&amp;&amp; project.getArtifactId().toLowerCase().endsWith("-plugin")</a>
-<span class="sourceLineNo">284</span><a id="line.284">                
&amp;&amp; !"org.apache.maven.plugins".equals(project.getGroupId())) {</a>
-<span class="sourceLineNo">285</span><a id="line.285">            
getLog().warn(LS + LS + "Artifact Ids of the format maven-___-plugin are 
reserved for" + LS</a>
-<span class="sourceLineNo">286</span><a id="line.286">                    + 
"plugins in the Group Id org.apache.maven.plugins" + LS</a>
-<span class="sourceLineNo">287</span><a id="line.287">                    + 
"Please change your artifactId to the format ___-maven-plugin" + LS</a>
-<span class="sourceLineNo">288</span><a id="line.288">                    + 
"In the future this error will break the build." + LS + LS);</a>
-<span class="sourceLineNo">289</span><a id="line.289">        }</a>
-<span class="sourceLineNo">290</span><a id="line.290"></a>
-<span class="sourceLineNo">291</span><a id="line.291">        if 
(skipDescriptor) {</a>
-<span class="sourceLineNo">292</span><a id="line.292">            
getLog().warn("Execution skipped");</a>
-<span class="sourceLineNo">293</span><a id="line.293">            return;</a>
-<span class="sourceLineNo">294</span><a id="line.294">        }</a>
-<span class="sourceLineNo">295</span><a id="line.295"></a>
-<span class="sourceLineNo">296</span><a id="line.296">        if 
(checkExpectedProvidedScope) {</a>
-<span class="sourceLineNo">297</span><a id="line.297">            
Set&lt;Artifact&gt; wrongScopedArtifacts = dependenciesNotInProvidedScope();</a>
-<span class="sourceLineNo">298</span><a id="line.298">            if 
(!wrongScopedArtifacts.isEmpty()) {</a>
-<span class="sourceLineNo">299</span><a id="line.299">                
StringBuilder message = new StringBuilder(</a>
-<span class="sourceLineNo">300</span><a id="line.300">                        
LS + LS + "Some dependencies of Maven Plugins are expected to be in provided 
scope." + LS</a>
-<span class="sourceLineNo">301</span><a id="line.301">                         
       + "Please make sure that dependencies listed below declared in POM" + 
LS</a>
-<span class="sourceLineNo">302</span><a id="line.302">                         
       + "have set '&lt;scope&gt;provided&lt;/scope&gt;' as well." + LS + LS</a>
-<span class="sourceLineNo">303</span><a id="line.303">                         
       + "The following dependencies are in wrong scope:" + LS);</a>
-<span class="sourceLineNo">304</span><a id="line.304">                for 
(Artifact artifact : wrongScopedArtifacts) {</a>
-<span class="sourceLineNo">305</span><a id="line.305">                    
message.append(" * ").append(artifact).append(LS);</a>
-<span class="sourceLineNo">306</span><a id="line.306">                }</a>
-<span class="sourceLineNo">307</span><a id="line.307">                
message.append(LS).append(LS);</a>
-<span class="sourceLineNo">308</span><a id="line.308"></a>
-<span class="sourceLineNo">309</span><a id="line.309">                
getLog().warn(message.toString());</a>
-<span class="sourceLineNo">310</span><a id="line.310">            }</a>
-<span class="sourceLineNo">311</span><a id="line.311">        }</a>
-<span class="sourceLineNo">312</span><a id="line.312"></a>
-<span class="sourceLineNo">313</span><a id="line.313">        
mojoScanner.setActiveExtractors(extractors);</a>
-<span class="sourceLineNo">314</span><a id="line.314"></a>
-<span class="sourceLineNo">315</span><a id="line.315">        // TODO: could 
use this more, eg in the writing of the plugin descriptor!</a>
-<span class="sourceLineNo">316</span><a id="line.316">        PluginDescriptor 
pluginDescriptor = new PluginDescriptor();</a>
-<span class="sourceLineNo">317</span><a id="line.317"></a>
-<span class="sourceLineNo">318</span><a id="line.318">        
pluginDescriptor.setGroupId(project.getGroupId());</a>
-<span class="sourceLineNo">319</span><a id="line.319"></a>
-<span class="sourceLineNo">320</span><a id="line.320">        
pluginDescriptor.setArtifactId(project.getArtifactId());</a>
-<span class="sourceLineNo">321</span><a id="line.321"></a>
-<span class="sourceLineNo">322</span><a id="line.322">        
pluginDescriptor.setVersion(project.getVersion());</a>
-<span class="sourceLineNo">323</span><a id="line.323"></a>
-<span class="sourceLineNo">324</span><a id="line.324">        
pluginDescriptor.setGoalPrefix(goalPrefix);</a>
-<span class="sourceLineNo">325</span><a id="line.325"></a>
-<span class="sourceLineNo">326</span><a id="line.326">        
pluginDescriptor.setName(project.getName());</a>
-<span class="sourceLineNo">327</span><a id="line.327"></a>
-<span class="sourceLineNo">328</span><a id="line.328">        
pluginDescriptor.setDescription(project.getDescription());</a>
-<span class="sourceLineNo">329</span><a id="line.329"></a>
-<span class="sourceLineNo">330</span><a id="line.330">        if (encoding == 
null || encoding.length() &lt; 1) {</a>
-<span class="sourceLineNo">331</span><a id="line.331">            
getLog().warn("Using platform encoding (" + ReaderFactory.FILE_ENCODING</a>
-<span class="sourceLineNo">332</span><a id="line.332">                    + " 
actually) to read mojo source files, i.e. build is platform dependent!");</a>
-<span class="sourceLineNo">333</span><a id="line.333">        } else {</a>
-<span class="sourceLineNo">334</span><a id="line.334">            
getLog().info("Using '" + encoding + "' encoding to read mojo source 
files.");</a>
-<span class="sourceLineNo">335</span><a id="line.335">        }</a>
-<span class="sourceLineNo">336</span><a id="line.336"></a>
-<span class="sourceLineNo">337</span><a id="line.337">        if 
(internalJavadocBaseUrl != null &amp;&amp; 
!internalJavadocBaseUrl.getPath().endsWith("/")) {</a>
-<span class="sourceLineNo">338</span><a id="line.338">            throw new 
MojoExecutionException("Given parameter 'internalJavadocBaseUrl' must end with 
a slash but is '"</a>
-<span class="sourceLineNo">339</span><a id="line.339">                    + 
internalJavadocBaseUrl + "'");</a>
-<span class="sourceLineNo">340</span><a id="line.340">        }</a>
-<span class="sourceLineNo">341</span><a id="line.341">        try {</a>
-<span class="sourceLineNo">342</span><a id="line.342">            
List&lt;ComponentDependency&gt; deps = 
GeneratorUtils.toComponentDependencies(project.getArtifacts());</a>
-<span class="sourceLineNo">343</span><a id="line.343">            
pluginDescriptor.setDependencies(deps);</a>
-<span class="sourceLineNo">344</span><a id="line.344"></a>
-<span class="sourceLineNo">345</span><a id="line.345">            
PluginToolsRequest request = new DefaultPluginToolsRequest(project, 
pluginDescriptor);</a>
-<span class="sourceLineNo">346</span><a id="line.346">            
request.setEncoding(encoding);</a>
-<span class="sourceLineNo">347</span><a id="line.347">            
request.setSkipErrorNoDescriptorsFound(skipErrorNoDescriptorsFound);</a>
-<span class="sourceLineNo">348</span><a id="line.348">            
request.setDependencies(filterMojoDependencies());</a>
-<span class="sourceLineNo">349</span><a id="line.349">            
request.setRepoSession(repoSession);</a>
-<span class="sourceLineNo">350</span><a id="line.350">            
request.setInternalJavadocBaseUrl(internalJavadocBaseUrl);</a>
-<span class="sourceLineNo">351</span><a id="line.351">            
request.setInternalJavadocVersion(internalJavadocVersion);</a>
-<span class="sourceLineNo">352</span><a id="line.352">            
request.setExternalJavadocBaseUrls(externalJavadocBaseUrls);</a>
-<span class="sourceLineNo">353</span><a id="line.353">            
request.setSettings(settings);</a>
-<span class="sourceLineNo">354</span><a id="line.354"></a>
-<span class="sourceLineNo">355</span><a id="line.355">            
mojoScanner.populatePluginDescriptor(request);</a>
-<span class="sourceLineNo">356</span><a id="line.356">            
request.setPluginDescriptor(extendPluginDescriptor(request));</a>
-<span class="sourceLineNo">357</span><a id="line.357"></a>
-<span class="sourceLineNo">358</span><a id="line.358">            
outputDirectory.mkdirs();</a>
-<span class="sourceLineNo">359</span><a id="line.359"></a>
-<span class="sourceLineNo">360</span><a id="line.360">            
PluginDescriptorFilesGenerator pluginDescriptorGenerator = new 
PluginDescriptorFilesGenerator();</a>
-<span class="sourceLineNo">361</span><a id="line.361">            
pluginDescriptorGenerator.execute(outputDirectory, request);</a>
-<span class="sourceLineNo">362</span><a id="line.362"></a>
-<span class="sourceLineNo">363</span><a id="line.363">            
buildContext.refresh(outputDirectory);</a>
-<span class="sourceLineNo">364</span><a id="line.364">        } catch 
(GeneratorException e) {</a>
-<span class="sourceLineNo">365</span><a id="line.365">            throw new 
MojoExecutionException("Error writing plugin descriptor", e);</a>
-<span class="sourceLineNo">366</span><a id="line.366">        } catch 
(InvalidPluginDescriptorException | ExtractionException e) {</a>
-<span class="sourceLineNo">367</span><a id="line.367">            throw new 
MojoExecutionException(</a>
-<span class="sourceLineNo">368</span><a id="line.368">                    
"Error extracting plugin descriptor: '" + e.getLocalizedMessage() + "'", e);</a>
-<span class="sourceLineNo">369</span><a id="line.369">        } catch 
(LinkageError e) {</a>
-<span class="sourceLineNo">370</span><a id="line.370">            throw new 
MojoExecutionException(</a>
-<span class="sourceLineNo">371</span><a id="line.371">                    "The 
API of the mojo scanner is not compatible with this plugin version."</a>
-<span class="sourceLineNo">372</span><a id="line.372">                         
   + " Please check the plugin dependencies configured"</a>
-<span class="sourceLineNo">373</span><a id="line.373">                         
   + " in the POM and ensure the versions match.",</a>
-<span class="sourceLineNo">374</span><a id="line.374">                    
e);</a>
-<span class="sourceLineNo">375</span><a id="line.375">        }</a>
-<span class="sourceLineNo">376</span><a id="line.376">    }</a>
-<span class="sourceLineNo">377</span><a id="line.377"></a>
-<span class="sourceLineNo">378</span><a id="line.378">    private 
PluginDescriptor extendPluginDescriptor(PluginToolsRequest request) {</a>
-<span class="sourceLineNo">379</span><a id="line.379">        
ExtendedPluginDescriptor extendedPluginDescriptor = new 
ExtendedPluginDescriptor(request.getPluginDescriptor());</a>
-<span class="sourceLineNo">380</span><a id="line.380">        
extendedPluginDescriptor.setRequiredJavaVersion(getRequiredJavaVersion(request));</a>
-<span class="sourceLineNo">381</span><a id="line.381">        
extendedPluginDescriptor.setRequiredMavenVersion(getRequiredMavenVersion(request));</a>
-<span class="sourceLineNo">382</span><a id="line.382">        return 
extendedPluginDescriptor;</a>
-<span class="sourceLineNo">383</span><a id="line.383">    }</a>
-<span class="sourceLineNo">384</span><a id="line.384"></a>
-<span class="sourceLineNo">385</span><a id="line.385">    private String 
getRequiredMavenVersion(PluginToolsRequest request) {</a>
-<span class="sourceLineNo">386</span><a id="line.386">        if 
(!VALUE_AUTO.equals(requiredMavenVersion)) {</a>
-<span class="sourceLineNo">387</span><a id="line.387">            return 
requiredMavenVersion;</a>
-<span class="sourceLineNo">388</span><a id="line.388">        }</a>
-<span class="sourceLineNo">389</span><a id="line.389">        
getLog().debug("Trying to derive Maven version automatically from project 
prerequisites...");</a>
-<span class="sourceLineNo">390</span><a id="line.390">        String 
requiredMavenVersion =</a>
-<span class="sourceLineNo">391</span><a id="line.391">                
project.getPrerequisites() != null ? project.getPrerequisites().getMaven() : 
null;</a>
-<span class="sourceLineNo">392</span><a id="line.392">        if 
(requiredMavenVersion == null) {</a>
-<span class="sourceLineNo">393</span><a id="line.393">            
getLog().debug("Trying to derive Maven version automatically from referenced 
Maven Plugin API artifact "</a>
-<span class="sourceLineNo">394</span><a id="line.394">                    + 
"version...");</a>
-<span class="sourceLineNo">395</span><a id="line.395">            
requiredMavenVersion = request.getUsedMavenApiVersion();</a>
-<span class="sourceLineNo">396</span><a id="line.396">        }</a>
-<span class="sourceLineNo">397</span><a id="line.397">        if 
(requiredMavenVersion == null) {</a>
-<span class="sourceLineNo">398</span><a id="line.398">            
getLog().warn("Cannot determine the required Maven version automatically, it is 
recommended to "</a>
-<span class="sourceLineNo">399</span><a id="line.399">                    + 
"configure some explicit value manually.");</a>
-<span class="sourceLineNo">400</span><a id="line.400">        }</a>
-<span class="sourceLineNo">401</span><a id="line.401">        return 
requiredMavenVersion;</a>
-<span class="sourceLineNo">402</span><a id="line.402">    }</a>
-<span class="sourceLineNo">403</span><a id="line.403"></a>
-<span class="sourceLineNo">404</span><a id="line.404">    private String 
getRequiredJavaVersion(PluginToolsRequest request) {</a>
-<span class="sourceLineNo">405</span><a id="line.405">        if 
(!VALUE_AUTO.equals(requiredJavaVersion)) {</a>
-<span class="sourceLineNo">406</span><a id="line.406">            return 
requiredJavaVersion;</a>
-<span class="sourceLineNo">407</span><a id="line.407">        }</a>
-<span class="sourceLineNo">408</span><a id="line.408">        String 
minRequiredJavaVersion = request.getRequiredJavaVersion();</a>
-<span class="sourceLineNo">409</span><a id="line.409">        if 
(minRequiredJavaVersion == null) {</a>
-<span class="sourceLineNo">410</span><a id="line.410">            
getLog().warn("Cannot determine the minimally required Java version 
automatically, it is recommended to "</a>
-<span class="sourceLineNo">411</span><a id="line.411">                    + 
"configure some explicit value manually.");</a>
-<span class="sourceLineNo">412</span><a id="line.412">            return 
null;</a>
-<span class="sourceLineNo">413</span><a id="line.413">        }</a>
-<span class="sourceLineNo">414</span><a id="line.414"></a>
-<span class="sourceLineNo">415</span><a id="line.415">        return 
minRequiredJavaVersion;</a>
-<span class="sourceLineNo">416</span><a id="line.416">    }</a>
-<span class="sourceLineNo">417</span><a id="line.417"></a>
-<span class="sourceLineNo">418</span><a id="line.418">    /**</a>
-<span class="sourceLineNo">419</span><a id="line.419">     * Collects all 
dependencies expected to be in "provided" scope but are NOT in "provided" 
scope.</a>
-<span class="sourceLineNo">420</span><a id="line.420">     */</a>
-<span class="sourceLineNo">421</span><a id="line.421">    private 
Set&lt;Artifact&gt; dependenciesNotInProvidedScope() {</a>
-<span class="sourceLineNo">422</span><a id="line.422">        
LinkedHashSet&lt;Artifact&gt; wrongScopedDependencies = new 
LinkedHashSet&lt;&gt;();</a>
-<span class="sourceLineNo">423</span><a id="line.423"></a>
-<span class="sourceLineNo">424</span><a id="line.424">        for (Artifact 
dependency : project.getArtifacts()) {</a>
-<span class="sourceLineNo">425</span><a id="line.425">            String ga = 
dependency.getGroupId() + ":" + dependency.getArtifactId();</a>
-<span class="sourceLineNo">426</span><a id="line.426">            if 
(expectedProvidedScopeGroupIds.contains(dependency.getGroupId())</a>
-<span class="sourceLineNo">427</span><a id="line.427">                    
&amp;&amp; !expectedProvidedScopeExclusions.contains(ga)</a>
-<span class="sourceLineNo">428</span><a id="line.428">                    
&amp;&amp; !Artifact.SCOPE_PROVIDED.equals(dependency.getScope())) {</a>
-<span class="sourceLineNo">429</span><a id="line.429">                
wrongScopedDependencies.add(dependency);</a>
-<span class="sourceLineNo">430</span><a id="line.430">            }</a>
-<span class="sourceLineNo">431</span><a id="line.431">        }</a>
-<span class="sourceLineNo">432</span><a id="line.432"></a>
-<span class="sourceLineNo">433</span><a id="line.433">        return 
wrongScopedDependencies;</a>
-<span class="sourceLineNo">434</span><a id="line.434">    }</a>
-<span class="sourceLineNo">435</span><a id="line.435"></a>
-<span class="sourceLineNo">436</span><a id="line.436">    /**</a>
-<span class="sourceLineNo">437</span><a id="line.437">     * Get dependencies 
filtered with mojoDependencies configuration.</a>
-<span class="sourceLineNo">438</span><a id="line.438">     *</a>
-<span class="sourceLineNo">439</span><a id="line.439">     * @return 
eventually filtered dependencies, or even &lt;code&gt;null&lt;/code&gt; if 
configured with empty mojoDependencies</a>
-<span class="sourceLineNo">440</span><a id="line.440">     * list</a>
-<span class="sourceLineNo">441</span><a id="line.441">     * @see 
#mojoDependencies</a>
-<span class="sourceLineNo">442</span><a id="line.442">     */</a>
-<span class="sourceLineNo">443</span><a id="line.443">    private 
Set&lt;Artifact&gt; filterMojoDependencies() {</a>
-<span class="sourceLineNo">444</span><a id="line.444">        
Set&lt;Artifact&gt; filteredArtifacts;</a>
-<span class="sourceLineNo">445</span><a id="line.445">        if 
(mojoDependencies == null) {</a>
-<span class="sourceLineNo">446</span><a id="line.446">            
filteredArtifacts = new LinkedHashSet&lt;&gt;(project.getArtifacts());</a>
-<span class="sourceLineNo">447</span><a id="line.447">        } else if 
(mojoDependencies.isEmpty()) {</a>
-<span class="sourceLineNo">448</span><a id="line.448">            
filteredArtifacts = null;</a>
-<span class="sourceLineNo">449</span><a id="line.449">        } else {</a>
-<span class="sourceLineNo">450</span><a id="line.450">            
filteredArtifacts = new LinkedHashSet&lt;&gt;();</a>
-<span class="sourceLineNo">451</span><a id="line.451"></a>
-<span class="sourceLineNo">452</span><a id="line.452">            
ArtifactFilter filter = new IncludesArtifactFilter(mojoDependencies);</a>
-<span class="sourceLineNo">453</span><a id="line.453"></a>
-<span class="sourceLineNo">454</span><a id="line.454">            for 
(Artifact artifact : project.getArtifacts()) {</a>
-<span class="sourceLineNo">455</span><a id="line.455">                if 
(filter.include(artifact)) {</a>
-<span class="sourceLineNo">456</span><a id="line.456">                    
filteredArtifacts.add(artifact);</a>
-<span class="sourceLineNo">457</span><a id="line.457">                }</a>
-<span class="sourceLineNo">458</span><a id="line.458">            }</a>
-<span class="sourceLineNo">459</span><a id="line.459">        }</a>
-<span class="sourceLineNo">460</span><a id="line.460"></a>
-<span class="sourceLineNo">461</span><a id="line.461">        return 
filteredArtifacts;</a>
-<span class="sourceLineNo">462</span><a id="line.462">    }</a>
-<span class="sourceLineNo">463</span><a id="line.463">}</a>
+<span class="sourceLineNo">232</span><a id="line.232">    @Component</a>
+<span class="sourceLineNo">233</span><a id="line.233">    private MavenSession 
mavenSession;</a>
+<span class="sourceLineNo">234</span><a id="line.234"></a>
+<span class="sourceLineNo">235</span><a id="line.235">    /**</a>
+<span class="sourceLineNo">236</span><a id="line.236">     * The required Java 
version to set in the plugin descriptor. This is evaluated by Maven 4 and 
ignored by earlier</a>
+<span class="sourceLineNo">237</span><a id="line.237">     * Maven versions. 
Can be either one of the following formats:</a>
+<span class="sourceLineNo">238</span><a id="line.238">     *</a>
+<span class="sourceLineNo">239</span><a id="line.239">     * &lt;ul&gt;</a>
+<span class="sourceLineNo">240</span><a id="line.240">     * &lt;li&gt;A 
version range which specifies the supported Java versions. It can either use 
the usual mathematical</a>
+<span class="sourceLineNo">241</span><a id="line.241">     * syntax like 
{@code "[1.7,9),[11,)"} or use a single version like {@code "1.8"}. The latter 
is a short</a>
+<span class="sourceLineNo">242</span><a id="line.242">     * form for {@code 
"[1.8,)"}, i.e. denotes the minimum version required.&lt;/li&gt;</a>
+<span class="sourceLineNo">243</span><a id="line.243">     * &lt;li&gt;{@code 
"auto"} to determine the minimum Java version from the binary class version 
being generated during</a>
+<span class="sourceLineNo">244</span><a id="line.244">     * compilation 
(determined by the extractor).&lt;/li&gt;</a>
+<span class="sourceLineNo">245</span><a id="line.245">     * &lt;/ul&gt;</a>
+<span class="sourceLineNo">246</span><a id="line.246">     *</a>
+<span class="sourceLineNo">247</span><a id="line.247">     * @since 3.8.0</a>
+<span class="sourceLineNo">248</span><a id="line.248">     */</a>
+<span class="sourceLineNo">249</span><a id="line.249">    
@Parameter(defaultValue = VALUE_AUTO)</a>
+<span class="sourceLineNo">250</span><a id="line.250">    String 
requiredJavaVersion;</a>
+<span class="sourceLineNo">251</span><a id="line.251"></a>
+<span class="sourceLineNo">252</span><a id="line.252">    /**</a>
+<span class="sourceLineNo">253</span><a id="line.253">     * The required 
Maven version to set in the plugin descriptor. This is evaluated by Maven 4 and 
ignored by earlier</a>
+<span class="sourceLineNo">254</span><a id="line.254">     * Maven versions. 
Can be either one of the following formats:</a>
+<span class="sourceLineNo">255</span><a id="line.255">     *</a>
+<span class="sourceLineNo">256</span><a id="line.256">     * &lt;ul&gt;</a>
+<span class="sourceLineNo">257</span><a id="line.257">     * &lt;li&gt;A 
version range which specifies the supported Maven versions. It can either use 
the usual mathematical</a>
+<span class="sourceLineNo">258</span><a id="line.258">     * syntax like 
{@code "[2.0.10,2.1.0),[3.0,)"} or use a single version like {@code "2.2.1"}. 
The latter is a short</a>
+<span class="sourceLineNo">259</span><a id="line.259">     * form for {@code 
"[2.2.1,)"}, i.e. denotes the minimum version required.&lt;/li&gt;</a>
+<span class="sourceLineNo">260</span><a id="line.260">     * &lt;li&gt;{@code 
"auto"} to determine the minimum Maven version from the POM's Maven 
prerequisite, or if not set the</a>
+<span class="sourceLineNo">261</span><a id="line.261">     * referenced Maven 
Plugin API version.&lt;/li&gt;</a>
+<span class="sourceLineNo">262</span><a id="line.262">     * &lt;/ul&gt;</a>
+<span class="sourceLineNo">263</span><a id="line.263">     * This value takes 
precedence over the</a>
+<span class="sourceLineNo">264</span><a id="line.264">     * &lt;a 
href="https://maven.apache.org/pom.html#Prerequisites"&gt;POM's Maven 
prerequisite&lt;/a&gt; in Maven 4.</a>
+<span class="sourceLineNo">265</span><a id="line.265">     *</a>
+<span class="sourceLineNo">266</span><a id="line.266">     * @since 3.8.0</a>
+<span class="sourceLineNo">267</span><a id="line.267">     */</a>
+<span class="sourceLineNo">268</span><a id="line.268">    
@Parameter(defaultValue = VALUE_AUTO)</a>
+<span class="sourceLineNo">269</span><a id="line.269">    String 
requiredMavenVersion;</a>
+<span class="sourceLineNo">270</span><a id="line.270"></a>
+<span class="sourceLineNo">271</span><a id="line.271">    /**</a>
+<span class="sourceLineNo">272</span><a id="line.272">     * The component 
used for scanning the source tree for mojos.</a>
+<span class="sourceLineNo">273</span><a id="line.273">     */</a>
+<span class="sourceLineNo">274</span><a id="line.274">    @Component</a>
+<span class="sourceLineNo">275</span><a id="line.275">    private MojoScanner 
mojoScanner;</a>
+<span class="sourceLineNo">276</span><a id="line.276"></a>
+<span class="sourceLineNo">277</span><a id="line.277">    @Component</a>
+<span class="sourceLineNo">278</span><a id="line.278">    protected 
BuildContext buildContext;</a>
+<span class="sourceLineNo">279</span><a id="line.279"></a>
+<span class="sourceLineNo">280</span><a id="line.280">    public void 
generate() throws MojoExecutionException {</a>
+<span class="sourceLineNo">281</span><a id="line.281"></a>
+<span class="sourceLineNo">282</span><a id="line.282">        if 
(!"maven-plugin".equalsIgnoreCase(project.getArtifactId())</a>
+<span class="sourceLineNo">283</span><a id="line.283">                
&amp;&amp; project.getArtifactId().toLowerCase().startsWith("maven-")</a>
+<span class="sourceLineNo">284</span><a id="line.284">                
&amp;&amp; project.getArtifactId().toLowerCase().endsWith("-plugin")</a>
+<span class="sourceLineNo">285</span><a id="line.285">                
&amp;&amp; !"org.apache.maven.plugins".equals(project.getGroupId())) {</a>
+<span class="sourceLineNo">286</span><a id="line.286">            
getLog().warn(LS + LS + "Artifact Ids of the format maven-___-plugin are 
reserved for" + LS</a>
+<span class="sourceLineNo">287</span><a id="line.287">                    + 
"plugins in the Group Id org.apache.maven.plugins" + LS</a>
+<span class="sourceLineNo">288</span><a id="line.288">                    + 
"Please change your artifactId to the format ___-maven-plugin" + LS</a>
+<span class="sourceLineNo">289</span><a id="line.289">                    + 
"In the future this error will break the build." + LS + LS);</a>
+<span class="sourceLineNo">290</span><a id="line.290">        }</a>
+<span class="sourceLineNo">291</span><a id="line.291"></a>
+<span class="sourceLineNo">292</span><a id="line.292">        if 
(skipDescriptor) {</a>
+<span class="sourceLineNo">293</span><a id="line.293">            
getLog().warn("Execution skipped");</a>
+<span class="sourceLineNo">294</span><a id="line.294">            return;</a>
+<span class="sourceLineNo">295</span><a id="line.295">        }</a>
+<span class="sourceLineNo">296</span><a id="line.296"></a>
+<span class="sourceLineNo">297</span><a id="line.297">        if 
(checkExpectedProvidedScope) {</a>
+<span class="sourceLineNo">298</span><a id="line.298">            
Set&lt;Artifact&gt; wrongScopedArtifacts = dependenciesNotInProvidedScope();</a>
+<span class="sourceLineNo">299</span><a id="line.299">            if 
(!wrongScopedArtifacts.isEmpty()) {</a>
+<span class="sourceLineNo">300</span><a id="line.300">                
StringBuilder message = new StringBuilder(</a>
+<span class="sourceLineNo">301</span><a id="line.301">                        
LS + LS + "Some dependencies of Maven Plugins are expected to be in provided 
scope." + LS</a>
+<span class="sourceLineNo">302</span><a id="line.302">                         
       + "Please make sure that dependencies listed below declared in POM" + 
LS</a>
+<span class="sourceLineNo">303</span><a id="line.303">                         
       + "have set '&lt;scope&gt;provided&lt;/scope&gt;' as well." + LS + LS</a>
+<span class="sourceLineNo">304</span><a id="line.304">                         
       + "The following dependencies are in wrong scope:" + LS);</a>
+<span class="sourceLineNo">305</span><a id="line.305">                for 
(Artifact artifact : wrongScopedArtifacts) {</a>
+<span class="sourceLineNo">306</span><a id="line.306">                    
message.append(" * ").append(artifact).append(LS);</a>
+<span class="sourceLineNo">307</span><a id="line.307">                }</a>
+<span class="sourceLineNo">308</span><a id="line.308">                
message.append(LS).append(LS);</a>
+<span class="sourceLineNo">309</span><a id="line.309"></a>
+<span class="sourceLineNo">310</span><a id="line.310">                
getLog().warn(message.toString());</a>
+<span class="sourceLineNo">311</span><a id="line.311">            }</a>
+<span class="sourceLineNo">312</span><a id="line.312">        }</a>
+<span class="sourceLineNo">313</span><a id="line.313"></a>
+<span class="sourceLineNo">314</span><a id="line.314">        
mojoScanner.setActiveExtractors(extractors);</a>
+<span class="sourceLineNo">315</span><a id="line.315"></a>
+<span class="sourceLineNo">316</span><a id="line.316">        // TODO: could 
use this more, eg in the writing of the plugin descriptor!</a>
+<span class="sourceLineNo">317</span><a id="line.317">        PluginDescriptor 
pluginDescriptor = new PluginDescriptor();</a>
+<span class="sourceLineNo">318</span><a id="line.318"></a>
+<span class="sourceLineNo">319</span><a id="line.319">        
pluginDescriptor.setGroupId(project.getGroupId());</a>
+<span class="sourceLineNo">320</span><a id="line.320"></a>
+<span class="sourceLineNo">321</span><a id="line.321">        
pluginDescriptor.setArtifactId(project.getArtifactId());</a>
+<span class="sourceLineNo">322</span><a id="line.322"></a>
+<span class="sourceLineNo">323</span><a id="line.323">        
pluginDescriptor.setVersion(project.getVersion());</a>
+<span class="sourceLineNo">324</span><a id="line.324"></a>
+<span class="sourceLineNo">325</span><a id="line.325">        
pluginDescriptor.setGoalPrefix(goalPrefix);</a>
+<span class="sourceLineNo">326</span><a id="line.326"></a>
+<span class="sourceLineNo">327</span><a id="line.327">        
pluginDescriptor.setName(project.getName());</a>
+<span class="sourceLineNo">328</span><a id="line.328"></a>
+<span class="sourceLineNo">329</span><a id="line.329">        
pluginDescriptor.setDescription(project.getDescription());</a>
+<span class="sourceLineNo">330</span><a id="line.330"></a>
+<span class="sourceLineNo">331</span><a id="line.331">        if (encoding == 
null || encoding.length() &lt; 1) {</a>
+<span class="sourceLineNo">332</span><a id="line.332">            
getLog().warn("Using platform encoding (" + ReaderFactory.FILE_ENCODING</a>
+<span class="sourceLineNo">333</span><a id="line.333">                    + " 
actually) to read mojo source files, i.e. build is platform dependent!");</a>
+<span class="sourceLineNo">334</span><a id="line.334">        } else {</a>
+<span class="sourceLineNo">335</span><a id="line.335">            
getLog().info("Using '" + encoding + "' encoding to read mojo source 
files.");</a>
+<span class="sourceLineNo">336</span><a id="line.336">        }</a>
+<span class="sourceLineNo">337</span><a id="line.337"></a>
+<span class="sourceLineNo">338</span><a id="line.338">        if 
(internalJavadocBaseUrl != null &amp;&amp; 
!internalJavadocBaseUrl.getPath().endsWith("/")) {</a>
+<span class="sourceLineNo">339</span><a id="line.339">            throw new 
MojoExecutionException("Given parameter 'internalJavadocBaseUrl' must end with 
a slash but is '"</a>
+<span class="sourceLineNo">340</span><a id="line.340">                    + 
internalJavadocBaseUrl + "'");</a>
+<span class="sourceLineNo">341</span><a id="line.341">        }</a>
+<span class="sourceLineNo">342</span><a id="line.342">        try {</a>
+<span class="sourceLineNo">343</span><a id="line.343">            
List&lt;ComponentDependency&gt; deps = 
GeneratorUtils.toComponentDependencies(project.getArtifacts());</a>
+<span class="sourceLineNo">344</span><a id="line.344">            
pluginDescriptor.setDependencies(deps);</a>
+<span class="sourceLineNo">345</span><a id="line.345"></a>
+<span class="sourceLineNo">346</span><a id="line.346">            
PluginToolsRequest request = new DefaultPluginToolsRequest(project, 
pluginDescriptor);</a>
+<span class="sourceLineNo">347</span><a id="line.347">            
request.setEncoding(encoding);</a>
+<span class="sourceLineNo">348</span><a id="line.348">            
request.setSkipErrorNoDescriptorsFound(skipErrorNoDescriptorsFound);</a>
+<span class="sourceLineNo">349</span><a id="line.349">            
request.setDependencies(filterMojoDependencies());</a>
+<span class="sourceLineNo">350</span><a id="line.350">            
request.setRepoSession(mavenSession.getRepositorySession());</a>
+<span class="sourceLineNo">351</span><a id="line.351">            
request.setInternalJavadocBaseUrl(internalJavadocBaseUrl);</a>
+<span class="sourceLineNo">352</span><a id="line.352">            
request.setInternalJavadocVersion(internalJavadocVersion);</a>
+<span class="sourceLineNo">353</span><a id="line.353">            
request.setExternalJavadocBaseUrls(externalJavadocBaseUrls);</a>
+<span class="sourceLineNo">354</span><a id="line.354">            
request.setSettings(settings);</a>
+<span class="sourceLineNo">355</span><a id="line.355"></a>
+<span class="sourceLineNo">356</span><a id="line.356">            
mojoScanner.populatePluginDescriptor(request);</a>
+<span class="sourceLineNo">357</span><a id="line.357">            
request.setPluginDescriptor(extendPluginDescriptor(request));</a>
+<span class="sourceLineNo">358</span><a id="line.358"></a>
+<span class="sourceLineNo">359</span><a id="line.359">            
outputDirectory.mkdirs();</a>
+<span class="sourceLineNo">360</span><a id="line.360"></a>
+<span class="sourceLineNo">361</span><a id="line.361">            
PluginDescriptorFilesGenerator pluginDescriptorGenerator = new 
PluginDescriptorFilesGenerator();</a>
+<span class="sourceLineNo">362</span><a id="line.362">            
pluginDescriptorGenerator.execute(outputDirectory, request);</a>
+<span class="sourceLineNo">363</span><a id="line.363"></a>
+<span class="sourceLineNo">364</span><a id="line.364">            
buildContext.refresh(outputDirectory);</a>
+<span class="sourceLineNo">365</span><a id="line.365">        } catch 
(GeneratorException e) {</a>
+<span class="sourceLineNo">366</span><a id="line.366">            throw new 
MojoExecutionException("Error writing plugin descriptor", e);</a>
+<span class="sourceLineNo">367</span><a id="line.367">        } catch 
(InvalidPluginDescriptorException | ExtractionException e) {</a>
+<span class="sourceLineNo">368</span><a id="line.368">            throw new 
MojoExecutionException(</a>
+<span class="sourceLineNo">369</span><a id="line.369">                    
"Error extracting plugin descriptor: '" + e.getLocalizedMessage() + "'", e);</a>
+<span class="sourceLineNo">370</span><a id="line.370">        } catch 
(LinkageError e) {</a>
+<span class="sourceLineNo">371</span><a id="line.371">            throw new 
MojoExecutionException(</a>
+<span class="sourceLineNo">372</span><a id="line.372">                    "The 
API of the mojo scanner is not compatible with this plugin version."</a>
+<span class="sourceLineNo">373</span><a id="line.373">                         
   + " Please check the plugin dependencies configured"</a>
+<span class="sourceLineNo">374</span><a id="line.374">                         
   + " in the POM and ensure the versions match.",</a>
+<span class="sourceLineNo">375</span><a id="line.375">                    
e);</a>
+<span class="sourceLineNo">376</span><a id="line.376">        }</a>
+<span class="sourceLineNo">377</span><a id="line.377">    }</a>
+<span class="sourceLineNo">378</span><a id="line.378"></a>
+<span class="sourceLineNo">379</span><a id="line.379">    private 
PluginDescriptor extendPluginDescriptor(PluginToolsRequest request) {</a>
+<span class="sourceLineNo">380</span><a id="line.380">        
ExtendedPluginDescriptor extendedPluginDescriptor = new 
ExtendedPluginDescriptor(request.getPluginDescriptor());</a>
+<span class="sourceLineNo">381</span><a id="line.381">        
extendedPluginDescriptor.setRequiredJavaVersion(getRequiredJavaVersion(request));</a>
+<span class="sourceLineNo">382</span><a id="line.382">        
extendedPluginDescriptor.setRequiredMavenVersion(getRequiredMavenVersion(request));</a>
+<span class="sourceLineNo">383</span><a id="line.383">        return 
extendedPluginDescriptor;</a>
+<span class="sourceLineNo">384</span><a id="line.384">    }</a>
+<span class="sourceLineNo">385</span><a id="line.385"></a>
+<span class="sourceLineNo">386</span><a id="line.386">    private String 
getRequiredMavenVersion(PluginToolsRequest request) {</a>
+<span class="sourceLineNo">387</span><a id="line.387">        if 
(!VALUE_AUTO.equals(requiredMavenVersion)) {</a>
+<span class="sourceLineNo">388</span><a id="line.388">            return 
requiredMavenVersion;</a>
+<span class="sourceLineNo">389</span><a id="line.389">        }</a>
+<span class="sourceLineNo">390</span><a id="line.390">        
getLog().debug("Trying to derive Maven version automatically from project 
prerequisites...");</a>
+<span class="sourceLineNo">391</span><a id="line.391">        String 
requiredMavenVersion =</a>
+<span class="sourceLineNo">392</span><a id="line.392">                
project.getPrerequisites() != null ? project.getPrerequisites().getMaven() : 
null;</a>
+<span class="sourceLineNo">393</span><a id="line.393">        if 
(requiredMavenVersion == null) {</a>
+<span class="sourceLineNo">394</span><a id="line.394">            
getLog().debug("Trying to derive Maven version automatically from referenced 
Maven Plugin API artifact "</a>
+<span class="sourceLineNo">395</span><a id="line.395">                    + 
"version...");</a>
+<span class="sourceLineNo">396</span><a id="line.396">            
requiredMavenVersion = request.getUsedMavenApiVersion();</a>
+<span class="sourceLineNo">397</span><a id="line.397">        }</a>
+<span class="sourceLineNo">398</span><a id="line.398">        if 
(requiredMavenVersion == null) {</a>
+<span class="sourceLineNo">399</span><a id="line.399">            
getLog().warn("Cannot determine the required Maven version automatically, it is 
recommended to "</a>
+<span class="sourceLineNo">400</span><a id="line.400">                    + 
"configure some explicit value manually.");</a>
+<span class="sourceLineNo">401</span><a id="line.401">        }</a>
+<span class="sourceLineNo">402</span><a id="line.402">        return 
requiredMavenVersion;</a>
+<span class="sourceLineNo">403</span><a id="line.403">    }</a>
+<span class="sourceLineNo">404</span><a id="line.404"></a>
+<span class="sourceLineNo">405</span><a id="line.405">    private String 
getRequiredJavaVersion(PluginToolsRequest request) {</a>
+<span class="sourceLineNo">406</span><a id="line.406">        if 
(!VALUE_AUTO.equals(requiredJavaVersion)) {</a>
+<span class="sourceLineNo">407</span><a id="line.407">            return 
requiredJavaVersion;</a>
+<span class="sourceLineNo">408</span><a id="line.408">        }</a>
+<span class="sourceLineNo">409</span><a id="line.409">        String 
minRequiredJavaVersion = request.getRequiredJavaVersion();</a>
+<span class="sourceLineNo">410</span><a id="line.410">        if 
(minRequiredJavaVersion == null) {</a>
+<span class="sourceLineNo">411</span><a id="line.411">            
getLog().warn("Cannot determine the minimally required Java version 
automatically, it is recommended to "</a>
+<span class="sourceLineNo">412</span><a id="line.412">                    + 
"configure some explicit value manually.");</a>
+<span class="sourceLineNo">413</span><a id="line.413">            return 
null;</a>
+<span class="sourceLineNo">414</span><a id="line.414">        }</a>
+<span class="sourceLineNo">415</span><a id="line.415"></a>
+<span class="sourceLineNo">416</span><a id="line.416">        return 
minRequiredJavaVersion;</a>
+<span class="sourceLineNo">417</span><a id="line.417">    }</a>
+<span class="sourceLineNo">418</span><a id="line.418"></a>
+<span class="sourceLineNo">419</span><a id="line.419">    /**</a>
+<span class="sourceLineNo">420</span><a id="line.420">     * Collects all 
dependencies expected to be in "provided" scope but are NOT in "provided" 
scope.</a>
+<span class="sourceLineNo">421</span><a id="line.421">     */</a>
+<span class="sourceLineNo">422</span><a id="line.422">    private 
Set&lt;Artifact&gt; dependenciesNotInProvidedScope() {</a>
+<span class="sourceLineNo">423</span><a id="line.423">        
LinkedHashSet&lt;Artifact&gt; wrongScopedDependencies = new 
LinkedHashSet&lt;&gt;();</a>
+<span class="sourceLineNo">424</span><a id="line.424"></a>
+<span class="sourceLineNo">425</span><a id="line.425">        for (Artifact 
dependency : project.getArtifacts()) {</a>
+<span class="sourceLineNo">426</span><a id="line.426">            String ga = 
dependency.getGroupId() + ":" + dependency.getArtifactId();</a>
+<span class="sourceLineNo">427</span><a id="line.427">            if 
(expectedProvidedScopeGroupIds.contains(dependency.getGroupId())</a>
+<span class="sourceLineNo">428</span><a id="line.428">                    
&amp;&amp; !expectedProvidedScopeExclusions.contains(ga)</a>
+<span class="sourceLineNo">429</span><a id="line.429">                    
&amp;&amp; !Artifact.SCOPE_PROVIDED.equals(dependency.getScope())) {</a>
+<span class="sourceLineNo">430</span><a id="line.430">                
wrongScopedDependencies.add(dependency);</a>
+<span class="sourceLineNo">431</span><a id="line.431">            }</a>
+<span class="sourceLineNo">432</span><a id="line.432">        }</a>
+<span class="sourceLineNo">433</span><a id="line.433"></a>
+<span class="sourceLineNo">434</span><a id="line.434">        return 
wrongScopedDependencies;</a>
+<span class="sourceLineNo">435</span><a id="line.435">    }</a>
+<span class="sourceLineNo">436</span><a id="line.436"></a>
+<span class="sourceLineNo">437</span><a id="line.437">    /**</a>
+<span class="sourceLineNo">438</span><a id="line.438">     * Get dependencies 
filtered with mojoDependencies configuration.</a>
+<span class="sourceLineNo">439</span><a id="line.439">     *</a>
+<span class="sourceLineNo">440</span><a id="line.440">     * @return 
eventually filtered dependencies, or even &lt;code&gt;null&lt;/code&gt; if 
configured with empty mojoDependencies</a>
+<span class="sourceLineNo">441</span><a id="line.441">     * list</a>
+<span class="sourceLineNo">442</span><a id="line.442">     * @see 
#mojoDependencies</a>
+<span class="sourceLineNo">443</span><a id="line.443">     */</a>
+<span class="sourceLineNo">444</span><a id="line.444">    private 
Set&lt;Artifact&gt; filterMojoDependencies() {</a>
+<span class="sourceLineNo">445</span><a id="line.445">        
Set&lt;Artifact&gt; filteredArtifacts;</a>
+<span class="sourceLineNo">446</span><a id="line.446">        if 
(mojoDependencies == null) {</a>
+<span class="sourceLineNo">447</span><a id="line.447">            
filteredArtifacts = new LinkedHashSet&lt;&gt;(project.getArtifacts());</a>
+<span class="sourceLineNo">448</span><a id="line.448">        } else if 
(mojoDependencies.isEmpty()) {</a>
+<span class="sourceLineNo">449</span><a id="line.449">            
filteredArtifacts = null;</a>
+<span class="sourceLineNo">450</span><a id="line.450">        } else {</a>
+<span class="sourceLineNo">451</span><a id="line.451">            
filteredArtifacts = new LinkedHashSet&lt;&gt;();</a>
+<span class="sourceLineNo">452</span><a id="line.452"></a>
+<span class="sourceLineNo">453</span><a id="line.453">            
ArtifactFilter filter = new IncludesArtifactFilter(mojoDependencies);</a>
+<span class="sourceLineNo">454</span><a id="line.454"></a>
+<span class="sourceLineNo">455</span><a id="line.455">            for 
(Artifact artifact : project.getArtifacts()) {</a>
+<span class="sourceLineNo">456</span><a id="line.456">                if 
(filter.include(artifact)) {</a>
+<span class="sourceLineNo">457</span><a id="line.457">                    
filteredArtifacts.add(artifact);</a>
+<span class="sourceLineNo">458</span><a id="line.458">                }</a>
+<span class="sourceLineNo">459</span><a id="line.459">            }</a>
+<span class="sourceLineNo">460</span><a id="line.460">        }</a>
+<span class="sourceLineNo">461</span><a id="line.461"></a>
+<span class="sourceLineNo">462</span><a id="line.462">        return 
filteredArtifacts;</a>
+<span class="sourceLineNo">463</span><a id="line.463">    }</a>
+<span class="sourceLineNo">464</span><a id="line.464">}</a>
 
 
 


Reply via email to