modulelist maven plugin refactoring (#4887)

Signed-off-by: Maxim Nesen <maxim.nesen@oracle.com>
diff --git a/tools/jersey-doc-modulelist-maven-plugin/pom.xml b/tools/jersey-doc-modulelist-maven-plugin/pom.xml
index 06ae246..e09245b 100644
--- a/tools/jersey-doc-modulelist-maven-plugin/pom.xml
+++ b/tools/jersey-doc-modulelist-maven-plugin/pom.xml
@@ -21,6 +21,12 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
+    <parent>
+        <groupId>org.eclipse.ee4j</groupId>
+        <artifactId>project</artifactId>
+        <version>1.0.7</version>
+    </parent>
+
     <groupId>org.glassfish.jersey.tools.plugins</groupId>
     <artifactId>jersey-doc-modulelist-maven-plugin</artifactId>
     <packaging>maven-plugin</packaging>
@@ -53,6 +59,12 @@
             <artifactId>maven-dependency-tree</artifactId>
             <version>${maven.shared.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.maven.plugin-tools</groupId>
+            <artifactId>maven-plugin-annotations</artifactId>
+            <version>3.6.1</version>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
 
     <build>
@@ -74,6 +86,23 @@
                     <fork>false</fork>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+                <version>3.6.0</version>
+                <configuration>
+                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>default-descriptor</id>
+                        <goals>
+                            <goal>descriptor</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 
diff --git a/tools/jersey-doc-modulelist-maven-plugin/src/main/java/org/glassfish/jersey/tools/plugins/GenerateJerseyModuleListMojo.java b/tools/jersey-doc-modulelist-maven-plugin/src/main/java/org/glassfish/jersey/tools/plugins/GenerateJerseyModuleListMojo.java
index da1de2c..f284074 100644
--- a/tools/jersey-doc-modulelist-maven-plugin/src/main/java/org/glassfish/jersey/tools/plugins/GenerateJerseyModuleListMojo.java
+++ b/tools/jersey-doc-modulelist-maven-plugin/src/main/java/org/glassfish/jersey/tools/plugins/GenerateJerseyModuleListMojo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -21,6 +21,10 @@
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 
 import java.io.BufferedReader;
@@ -41,10 +45,11 @@
  * The plugins main MOJO class.
  * Walks through the maven dependency tree and creates the docbook output file.
  *
- * @goal generate
- * @phase process-sources
- * @aggregator
+ * goal: generate
+ * phase: process-sources
+ * aggregator
  */
+@Mojo(name = "generate", aggregator = true, defaultPhase = LifecyclePhase.PROCESS_SOURCES)
 public class GenerateJerseyModuleListMojo extends AbstractMojo {
 
     /**
@@ -82,6 +87,7 @@
      * @required
      * @readonly
      */
+    @Parameter(defaultValue = "${project.basedir}")
     private MavenProject mavenProject;
 
     /**
@@ -89,11 +95,13 @@
      * @required
      * @readonly
      */
+    @Parameter( defaultValue = "${session}", readonly = true )
     private MavenSession mavenSession;
 
     /**
      * @parameter default-value="modules.xml"
      */
+    @Parameter(defaultValue = "modules.xml")
     private String outputFileName;
 
     /**
@@ -103,6 +111,7 @@
      *
      * @parameter
      */
+    @Parameter
     private String templateFileName;
 
     /**
@@ -112,6 +121,7 @@
      *
      * @parameter
      */
+    @Parameter
     private String tableHeaderFileName;
 
     /**
@@ -120,6 +130,7 @@
      *
      * @parameter
      */
+    @Parameter
     private String tableFooterFileName;
 
     /**
@@ -129,11 +140,13 @@
      *
      * @parameter
      */
+    @Parameter
     private String tableRowFileName;
 
     /**
      * @parameter default-value="false"
      */
+    @Parameter(defaultValue = "false")
     private boolean outputUnmatched;
 
     private Configuration configuration;
diff --git a/tools/jersey-doc-modulelist-maven-plugin/src/main/java/org/glassfish/jersey/tools/plugins/HelpMojo.java b/tools/jersey-doc-modulelist-maven-plugin/src/main/java/org/glassfish/jersey/tools/plugins/HelpMojo.java
index c8c8b56..ccbdadd 100644
--- a/tools/jersey-doc-modulelist-maven-plugin/src/main/java/org/glassfish/jersey/tools/plugins/HelpMojo.java
+++ b/tools/jersey-doc-modulelist-maven-plugin/src/main/java/org/glassfish/jersey/tools/plugins/HelpMojo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0, which is available at
@@ -20,14 +20,17 @@
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
 
 /**
  * Displays the plugin help message.
  *
- * @goal help
- * @phase process-sources
- * @aggregator
+ * goal: help
+ * phase: process-sources
+ * aggregator
  */
+@Mojo(name = "help", aggregator = true, defaultPhase = LifecyclePhase.PROCESS_SOURCES)
 public class HelpMojo extends AbstractMojo {
 
     private Log log;