You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2022/11/29 18:06:42 UTC

[maven-plugin-tools] 02/02: [MPLUGIN-447] Reformat source files to follow new spotless rules

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

kwin pushed a commit to branch feature/parent-38
in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git

commit 88e43da16f8f052487482b274f0a2939639d3b92
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Tue Nov 29 19:06:05 2022 +0100

    [MPLUGIN-447] Reformat source files to follow new spotless rules
---
 maven-plugin-annotations/pom.xml                   |   4 +-
 .../maven/plugins/annotations/Component.java       |  25 +-
 .../apache/maven/plugins/annotations/Execute.java  |  25 +-
 .../plugins/annotations/InstantiationStrategy.java |  35 +-
 .../maven/plugins/annotations/LifecyclePhase.java  |  91 +-
 .../org/apache/maven/plugins/annotations/Mojo.java |  27 +-
 .../maven/plugins/annotations/Parameter.java       |  29 +-
 .../maven/plugins/annotations/ResolutionScope.java |  39 +-
 maven-plugin-plugin/pom.xml                        |  17 +-
 .../metadata/GroupRepositoryMetadata.java          |  84 +-
 .../maven/plugin/plugin/AbstractGeneratorMojo.java |  78 +-
 .../plugin/plugin/DescriptorGeneratorMojo.java     | 320 +++----
 .../maven/plugin/plugin/HelpGeneratorMojo.java     |  89 +-
 .../metadata/AddPluginArtifactMetadataMojo.java    |  57 +-
 .../plugin/plugin/report_old/PluginReport.java     | 544 ++++++-----
 .../plugin/plugin/report_old/Requirements.java     |  53 +-
 .../plugin/report_old/RequirementsHistory.java     |  43 +-
 .../EnhancedPluginDescriptorBuilder.java           |  85 +-
 .../plugin/plugin/DescriptorGeneratorMojoTest.java |  68 +-
 .../maven/plugin/plugin/HelpGeneratorMojoTest.java |  50 +-
 maven-plugin-report-plugin/pom.xml                 | 436 +++++----
 .../maven/plugin/plugin/report/PluginReport.java   | 494 +++++-----
 .../plugin/plugin/report/RequirementsHistory.java  |  43 +-
 .../EnhancedPluginDescriptorBuilder.java           | 123 +--
 .../EnhancedPluginDescriptorBuilderTest.java       |  77 +-
 maven-plugin-tools-annotations/pom.xml             |   2 +-
 .../JavaAnnotationsMojoDescriptorExtractor.java    | 995 +++++++++------------
 .../annotations/converter/ConverterContext.java    |  56 +-
 .../converter/JavaClassConverterContext.java       | 577 ++++++------
 .../JavadocBlockTagsToXhtmlConverter.java          |  68 +-
 .../JavadocInlineTagsToXhtmlConverter.java         |  91 +-
 .../converter/tag/JavadocTagToHtmlConverter.java   |  46 +-
 .../annotations/converter/tag/LinkUtils.java       | 175 ++--
 .../tag/block/JavadocBlockTagToHtmlConverter.java  |  23 +-
 .../converter/tag/block/SeeTagConverter.java       |  64 +-
 .../converter/tag/inline/CodeTagConverter.java     |  32 +-
 .../converter/tag/inline/DocRootTagConverter.java  |  29 +-
 .../inline/JavadocInlineTagToHtmlConverter.java    |  22 +-
 .../tag/inline/LinkPlainTagToHtmlConverter.java    |  30 +-
 .../tag/inline/LinkTagToHtmlConverter.java         |  36 +-
 .../tag/inline/LiteralTagToHtmlConverter.java      |  31 +-
 .../converter/tag/inline/ValueTagConverter.java    |  34 +-
 .../annotations/datamodel/AnnotatedContent.java    |  40 +-
 .../annotations/datamodel/AnnotatedField.java      |  46 +-
 .../datamodel/ComponentAnnotationContent.java      |  67 +-
 .../datamodel/ExecuteAnnotationContent.java        |  72 +-
 .../datamodel/MojoAnnotationContent.java           | 162 ++--
 .../datamodel/ParameterAnnotationContent.java      | 182 ++--
 .../scanner/DefaultMojoAnnotationsScanner.java     | 372 ++++----
 .../annotations/scanner/MojoAnnotatedClass.java    | 114 ++-
 .../scanner/MojoAnnotationsScanner.java            |  60 +-
 .../scanner/MojoAnnotationsScannerRequest.java     |  67 +-
 .../scanner/visitors/MojoAnnotationVisitor.java    |  51 +-
 .../scanner/visitors/MojoClassVisitor.java         | 178 ++--
 .../scanner/visitors/MojoFieldVisitor.java         |  55 +-
 .../scanner/visitors/MojoMethodVisitor.java        |  54 +-
 .../scanner/visitors/MojoParameterVisitor.java     |  21 +-
 .../extractor/annotations/AbstractFooMojo.java     |  28 +-
 .../annotations/ClassVersionComparatorTest.java    |  35 +-
 .../extractor/annotations/DeprecatedMojo.java      |  31 +-
 .../plugin/extractor/annotations/Execute2Mojo.java |  35 +-
 .../plugin/extractor/annotations/ExecuteMojo.java  |  31 +-
 .../plugin/extractor/annotations/FooMojo.java      |  63 +-
 ...JavaAnnotationsMojoDescriptorExtractorTest.java |  88 +-
 .../annotations/ParametersWithGenericsMojo.java    |  37 +-
 .../converter/JavaClassConverterContextTest.java   | 347 ++++---
 .../JavadocBlockTagsToXhtmlConverterTest.java      |  87 +-
 .../JavadocInlineTagsToXhtmlConverterTest.java     | 186 ++--
 .../converter/SimpleConverterContext.java          | 172 ++--
 .../annotations/converter/tag/LinkUtilsTest.java   |  50 +-
 .../annotations/converter/test/CurrentClass.java   |  54 +-
 .../annotations/converter/test/OtherClass.java     |  30 +-
 .../annotations/converter/test/SuperClass.java     |  21 +-
 .../test/other/OtherClassOtherPackage.java         |  25 +-
 .../scanner/DefaultMojoAnnotationsScannerTest.java | 448 ++++++----
 maven-plugin-tools-api/pom.xml                     |   5 +-
 .../tools/plugin/DefaultPluginToolsRequest.java    | 126 ++-
 .../tools/plugin/EnhancedParameterWrapper.java     | 144 ++-
 .../maven/tools/plugin/ExtendedMojoDescriptor.java |  59 +-
 .../tools/plugin/ExtendedPluginDescriptor.java     | 205 ++---
 .../maven/tools/plugin/PluginToolsRequest.java     |  68 +-
 .../AbstractScriptedMojoDescriptorExtractor.java   | 179 ++--
 .../plugin/extractor/ExtractionException.java      |  32 +-
 .../maven/tools/plugin/extractor/GroupKey.java     |  74 +-
 .../plugin/extractor/MojoDescriptorExtractor.java  |  33 +-
 .../MojoDescriptorExtractorComparator.java         |  29 +-
 .../javadoc/FullyQualifiedJavadocReference.java    | 161 ++--
 .../tools/plugin/javadoc/JavadocLinkGenerator.java | 218 ++---
 .../tools/plugin/javadoc/JavadocReference.java     | 114 +--
 .../maven/tools/plugin/javadoc/JavadocSite.java    | 556 +++++-------
 .../tools/plugin/scanner/DefaultMojoScanner.java   | 157 ++--
 .../maven/tools/plugin/scanner/MojoScanner.java    |  31 +-
 .../maven/tools/plugin/util/PluginUtils.java       | 108 +--
 .../maven/tools/plugin/extractor/GroupKeyTest.java |  67 +-
 .../plugin/javadoc/JavadocLinkGeneratorTest.java   | 172 ++--
 .../tools/plugin/javadoc/JavadocReferenceTest.java |  70 +-
 .../maven/tools/plugin/javadoc/JavadocSiteIT.java  |  96 +-
 .../tools/plugin/javadoc/JavadocSiteTest.java      | 149 +--
 .../plugin/scanner/DefaultMojoScannerTest.java     | 172 ++--
 .../tools/plugin/scanner/ScannerTestExtractor.java |  68 +-
 .../maven/tools/plugin/scanner/TestExtractor.java  |  55 +-
 .../maven/tools/plugin/util/PluginUtilsTest.java   |  59 +-
 .../apache/maven/tools/plugin/util/TestUtils.java  |  56 +-
 .../maven/tools/plugin/util/stubs/MojoStub.java    |  38 +-
 maven-plugin-tools-generators/pom.xml              |   8 +-
 .../maven/tools/plugin/generator/Converter.java    |  24 +-
 .../maven/tools/plugin/generator/Generator.java    |  31 +-
 .../tools/plugin/generator/GeneratorException.java |  27 +-
 .../tools/plugin/generator/GeneratorUtils.java     | 519 +++++------
 .../plugin/generator/HtmlToPlainTextConverter.java |  94 +-
 .../generator/PluginDescriptorFilesGenerator.java  | 574 ++++++------
 .../plugin/generator/PluginHelpGenerator.java      | 117 ++-
 .../plugin/generator/PluginXdocGenerator.java      | 888 ++++++++----------
 .../generator/AbstractGeneratorTestCase.java       | 152 ++--
 .../tools/plugin/generator/GeneratorUtilsTest.java | 199 +++--
 .../generator/HtmlToPlainTextConverterTest.java    |  80 +-
 .../PluginDescriptorFilesGeneratorTest.java        | 170 ++--
 .../plugin/generator/PluginXdocGeneratorTest.java  |  95 +-
 .../plugin/generator/stubs/MavenReportStub.java    |  47 +-
 maven-plugin-tools-java/pom.xml                    |   2 -
 .../JavaJavadocMojoDescriptorExtractor.java        | 583 ++++++------
 .../extractor/javadoc/JavadocMojoAnnotation.java   |  26 +-
 .../javadoc/JavaMojoDescriptorExtractorTest.java   | 194 ++--
 maven-script/maven-plugin-tools-ant/pom.xml        |   4 +-
 .../extractor/ant/AntMojoDescriptorExtractor.java  | 253 +++---
 .../ant/AntMojoDescriptorExtractorTest.java        | 144 +--
 maven-script/maven-plugin-tools-beanshell/pom.xml  |   2 -
 .../BeanshellMojoDescriptorExtractor.java          | 109 +--
 maven-script/maven-plugin-tools-model/pom.xml      |   6 +-
 .../model/PluginMetadataParseException.java        | 172 ++--
 .../extractor/model/PluginMetadataParser.java      | 379 ++++----
 .../extractor/model/PluginMetadataParserTest.java  |  87 +-
 .../maven/script/ant/AntMojoComponentFactory.java  | 102 ++-
 .../apache/maven/script/ant/AntMojoWrapper.java    | 337 +++----
 .../apache/maven/script/ant/AntPropertyHelper.java | 392 ++++----
 .../maven/script/ant/AntMojoWrapperTest.java       | 206 +++--
 .../script/beanshell/BeanshellMojoAdapter.java     | 152 ++--
 maven-script/pom.xml                               |   1 -
 pom.xml                                            |  27 +-
 139 files changed, 9146 insertions(+), 8914 deletions(-)

diff --git a/maven-plugin-annotations/pom.xml b/maven-plugin-annotations/pom.xml
index e752eb7d..2abe0f68 100644
--- a/maven-plugin-annotations/pom.xml
+++ b/maven-plugin-annotations/pom.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements.  See the NOTICE file
@@ -21,8 +21,8 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <artifactId>maven-plugin-tools</artifactId>
     <groupId>org.apache.maven.plugin-tools</groupId>
+    <artifactId>maven-plugin-tools</artifactId>
     <version>3.7.1-SNAPSHOT</version>
   </parent>
 
diff --git a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Component.java b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Component.java
index 9afbd65b..19191940 100644
--- a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Component.java
+++ b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Component.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.annotations;
 
 /*
@@ -35,11 +53,10 @@ import java.lang.annotation.Target;
  * @since 3.0
  */
 @Documented
-@Retention( RetentionPolicy.CLASS )
-@Target( { ElementType.FIELD } )
+@Retention(RetentionPolicy.CLASS)
+@Target({ElementType.FIELD})
 @Inherited
-public @interface Component
-{
+public @interface Component {
     /**
      * role of the component to inject.
      * @return the role
diff --git a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Execute.java b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Execute.java
index 3fba2ef2..498e553a 100644
--- a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Execute.java
+++ b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Execute.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.annotations;
 
 /*
@@ -33,11 +51,10 @@ import java.lang.annotation.Target;
  * @since 3.0
  */
 @Documented
-@Retention( RetentionPolicy.CLASS )
-@Target( ElementType.TYPE )
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.TYPE)
 @Inherited
-public @interface Execute
-{
+public @interface Execute {
     /**
      * Lifecycle phase to fork. Note that specifying a phase overrides specifying a goal.
      * For custom lifecycle phase ids use {@link #customPhase()} instead.
diff --git a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/InstantiationStrategy.java b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/InstantiationStrategy.java
index 2e6b1782..7dd9c01c 100644
--- a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/InstantiationStrategy.java
+++ b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/InstantiationStrategy.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.annotations;
 
 /*
@@ -25,22 +43,19 @@ package org.apache.maven.plugins.annotations;
  * @author Hervé Boutemy
  * @since 3.0
  */
-public enum InstantiationStrategy
-{
-    PER_LOOKUP( "per-lookup" ),
-    SINGLETON( "singleton" ),
-    KEEP_ALIVE( "keep-alive" ),
-    POOLABLE( "poolable" );
+public enum InstantiationStrategy {
+    PER_LOOKUP("per-lookup"),
+    SINGLETON("singleton"),
+    KEEP_ALIVE("keep-alive"),
+    POOLABLE("poolable");
 
     private final String id;
 
-    InstantiationStrategy( String id )
-    {
+    InstantiationStrategy(String id) {
         this.id = id;
     }
 
-    public String id()
-    {
+    public String id() {
         return this.id;
     }
 }
diff --git a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/LifecyclePhase.java b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/LifecyclePhase.java
index 4930ebcb..4b607ebf 100644
--- a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/LifecyclePhase.java
+++ b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/LifecyclePhase.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.annotations;
 
 /*
@@ -24,54 +42,49 @@ package org.apache.maven.plugins.annotations;
  * @author Olivier Lamy
  * @since 3.0
  */
-public enum LifecyclePhase
-{
+public enum LifecyclePhase {
+    VALIDATE("validate"),
+    INITIALIZE("initialize"),
+    GENERATE_SOURCES("generate-sources"),
+    PROCESS_SOURCES("process-sources"),
+    GENERATE_RESOURCES("generate-resources"),
+    PROCESS_RESOURCES("process-resources"),
+    COMPILE("compile"),
+    PROCESS_CLASSES("process-classes"),
+    GENERATE_TEST_SOURCES("generate-test-sources"),
+    PROCESS_TEST_SOURCES("process-test-sources"),
+    GENERATE_TEST_RESOURCES("generate-test-resources"),
+    PROCESS_TEST_RESOURCES("process-test-resources"),
+    TEST_COMPILE("test-compile"),
+    PROCESS_TEST_CLASSES("process-test-classes"),
+    TEST("test"),
+    PREPARE_PACKAGE("prepare-package"),
+    PACKAGE("package"),
+    PRE_INTEGRATION_TEST("pre-integration-test"),
+    INTEGRATION_TEST("integration-test"),
+    POST_INTEGRATION_TEST("post-integration-test"),
+    VERIFY("verify"),
+    INSTALL("install"),
+    DEPLOY("deploy"),
 
-    VALIDATE( "validate" ),
-    INITIALIZE( "initialize" ),
-    GENERATE_SOURCES( "generate-sources" ),
-    PROCESS_SOURCES( "process-sources" ),
-    GENERATE_RESOURCES( "generate-resources" ),
-    PROCESS_RESOURCES( "process-resources" ),
-    COMPILE( "compile" ),
-    PROCESS_CLASSES( "process-classes" ),
-    GENERATE_TEST_SOURCES( "generate-test-sources" ),
-    PROCESS_TEST_SOURCES( "process-test-sources" ),
-    GENERATE_TEST_RESOURCES( "generate-test-resources" ),
-    PROCESS_TEST_RESOURCES( "process-test-resources" ),
-    TEST_COMPILE( "test-compile" ),
-    PROCESS_TEST_CLASSES( "process-test-classes" ),
-    TEST( "test" ),
-    PREPARE_PACKAGE( "prepare-package" ),
-    PACKAGE( "package" ),
-    PRE_INTEGRATION_TEST( "pre-integration-test" ),
-    INTEGRATION_TEST( "integration-test" ),
-    POST_INTEGRATION_TEST( "post-integration-test" ),
-    VERIFY( "verify" ),
-    INSTALL( "install" ),
-    DEPLOY( "deploy" ),
+    PRE_CLEAN("pre-clean"),
+    CLEAN("clean"),
+    POST_CLEAN("post-clean"),
 
-    PRE_CLEAN( "pre-clean" ),
-    CLEAN( "clean" ),
-    POST_CLEAN( "post-clean" ),
+    PRE_SITE("pre-site"),
+    SITE("site"),
+    POST_SITE("post-site"),
+    SITE_DEPLOY("site-deploy"),
 
-    PRE_SITE( "pre-site" ),
-    SITE( "site" ),
-    POST_SITE( "post-site" ),
-    SITE_DEPLOY( "site-deploy" ),
-
-    NONE( "" );
+    NONE("");
 
     private final String id;
 
-    LifecyclePhase( String id )
-    {
+    LifecyclePhase(String id) {
         this.id = id;
     }
 
-    public String id()
-    {
+    public String id() {
         return this.id;
     }
-
 }
diff --git a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Mojo.java b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Mojo.java
index 336a5227..2a1ac4de 100644
--- a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Mojo.java
+++ b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Mojo.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.annotations;
 
 /*
@@ -33,11 +51,10 @@ import java.lang.annotation.Target;
  * @since 3.0
  */
 @Documented
-@Retention( RetentionPolicy.CLASS )
-@Target( ElementType.TYPE )
+@Retention(RetentionPolicy.CLASS)
+@Target(ElementType.TYPE)
 @Inherited
-public @interface Mojo
-{
+public @interface Mojo {
     /**
      * goal name (required).
      * @return the goal name
@@ -58,7 +75,7 @@ public @interface Mojo
 
     /**
      * the required dependency collection scope.
-     * @return the required dependency collection scope 
+     * @return the required dependency collection scope
      */
     ResolutionScope requiresDependencyCollection() default ResolutionScope.NONE;
 
diff --git a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Parameter.java b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Parameter.java
index 87887cb7..a7fc3a4b 100644
--- a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Parameter.java
+++ b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/Parameter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.annotations;
 
 /*
@@ -39,11 +57,10 @@ import java.lang.annotation.Target;
  * @since 3.0
  */
 @Documented
-@Retention( RetentionPolicy.CLASS )
-@Target( { ElementType.FIELD, ElementType.METHOD } )
+@Retention(RetentionPolicy.CLASS)
+@Target({ElementType.FIELD, ElementType.METHOD})
 @Inherited
-public @interface Parameter
-{
+public @interface Parameter {
     /**
      * name of the bean property used to get/set the field: by default, field name is used.
      * @return the name of the bean property
@@ -67,7 +84,7 @@ public @interface Parameter
      * parameter default value, may contain <code>${...}</code> expressions which will be interpreted at
      * inject time: see
      * <a href="/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html">
-     * PluginParameterExpressionEvaluator</a>. 
+     * PluginParameterExpressionEvaluator</a>.
      * @return the default value
      */
     String defaultValue() default "";
@@ -85,7 +102,7 @@ public @interface Parameter
      * want the user to modify <code>&lt;build&gt;&lt;finalName/&gt;&lt;/build&gt;</code> rather than specifying a value
      * for finalName directly in the plugin configuration section. It is also useful to ensure that - for example - a
      * List-typed parameter which expects items of type Artifact doesn't get a List full of Strings.
-     * 
+     *
      * @return <code>true</code> if the user should not be allowed to configure the parameter directly
      */
     boolean readonly() default false;
diff --git a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/ResolutionScope.java b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/ResolutionScope.java
index e2bcd6a3..64f1d961 100644
--- a/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/ResolutionScope.java
+++ b/maven-plugin-annotations/src/main/java/org/apache/maven/plugins/annotations/ResolutionScope.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.annotations;
 
 /*
@@ -29,48 +47,45 @@ package org.apache.maven.plugins.annotations;
  * @author Hervé Boutemy
  * @since 3.0
  */
-public enum ResolutionScope
-{
+public enum ResolutionScope {
     /**
      * empty resolution scope
      */
-    NONE( null ),
+    NONE(null),
     /**
      * <code>compile</code> resolution scope
      * = <code>compile</code> + <code>system</code> + <code>provided</code> dependencies
      */
-    COMPILE( "compile" ),
+    COMPILE("compile"),
     /**
      * <code>compile+runtime</code> resolution scope (Maven 3 only)
      * = <code>compile</code> + <code>system</code> + <code>provided</code> + <code>runtime</code> dependencies
      */
-    COMPILE_PLUS_RUNTIME( "compile+runtime" ),
+    COMPILE_PLUS_RUNTIME("compile+runtime"),
     /**
      * <code>runtime</code> resolution scope
      * = <code>compile</code> + <code>runtime</code> dependencies
      */
-    RUNTIME( "runtime" ),
+    RUNTIME("runtime"),
     /**
      * <code>runtime+system</code> resolution scope (Maven 3 only)
      * = <code>compile</code> + <code>system</code> + <code>runtime</code> dependencies
      */
-    RUNTIME_PLUS_SYSTEM( "runtime+system" ),
+    RUNTIME_PLUS_SYSTEM("runtime+system"),
     /**
      * <code>test</code> resolution scope
      * = <code>compile</code> + <code>system</code> + <code>provided</code> + <code>runtime</code> + <code>test</code>
      * dependencies
      */
-    TEST( "test" );
+    TEST("test");
 
     private final String id;
 
-    ResolutionScope( String id )
-    {
+    ResolutionScope(String id) {
         this.id = id;
     }
 
-    public String id()
-    {
+    public String id() {
         return this.id;
     }
 }
diff --git a/maven-plugin-plugin/pom.xml b/maven-plugin-plugin/pom.xml
index 6445cf76..db729156 100644
--- a/maven-plugin-plugin/pom.xml
+++ b/maven-plugin-plugin/pom.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements.  See the NOTICE file
@@ -21,8 +21,8 @@
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <artifactId>maven-plugin-tools</artifactId>
     <groupId>org.apache.maven.plugin-tools</groupId>
+    <artifactId>maven-plugin-tools</artifactId>
     <version>3.7.1-SNAPSHOT</version>
   </parent>
 
@@ -31,11 +31,9 @@
   <packaging>maven-plugin</packaging>
 
   <name>Maven Plugin Plugin</name>
-  <description>
-    The Plugin Plugin is used to create a Maven plugin descriptor for any Mojo's found in the source tree,
+  <description>The Plugin Plugin is used to create a Maven plugin descriptor for any Mojo's found in the source tree,
     to include in the JAR. It is also used to generate Xdoc files for the Mojos as well as the artifact metadata
-    and a generic help goal.
-  </description>
+    and a generic help goal.</description>
 
   <prerequisites>
     <maven>${mavenVersion}</maven>
@@ -190,8 +188,8 @@
         <directory>src/main/resources</directory>
       </resource>
       <resource>
-        <directory>src/main/filtered-resources</directory>
         <filtering>true</filtering>
+        <directory>src/main/filtered-resources</directory>
       </resource>
     </resources>
     <pluginManagement>
@@ -214,10 +212,10 @@
         <artifactId>maven-enforcer-plugin</artifactId>
         <executions>
           <execution>
+            <id>ensure-no-container-api</id>
             <goals>
               <goal>enforce</goal>
             </goals>
-            <id>ensure-no-container-api</id>
             <configuration>
               <rules>
                 <bannedDependencies>
@@ -302,7 +300,8 @@
                 <maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
               </properties>
               <pomExcludes>
-                <pomExclude>plugin-info-jdk/pom.xml</pomExclude><!-- relies on just a given plugin.xml for generating a report, this is no longer supported -->
+                <pomExclude>plugin-info-jdk/pom.xml</pomExclude>
+                <!-- relies on just a given plugin.xml for generating a report, this is no longer supported -->
               </pomExcludes>
             </configuration>
             <executions>
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java b/maven-plugin-plugin/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java
index b55bcb32..1fa33cf1 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/artifact/repository/metadata/GroupRepositoryMetadata.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.artifact.repository.metadata;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.artifact.repository.metadata;
 
 import java.util.Iterator;
 import java.util.List;
-
 import org.apache.maven.artifact.repository.ArtifactRepository;
 
 /**
@@ -31,91 +48,70 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  */
-public class GroupRepositoryMetadata
-    extends AbstractRepositoryMetadata
-{
+public class GroupRepositoryMetadata extends AbstractRepositoryMetadata {
     private final String groupId;
 
-    public GroupRepositoryMetadata( String groupId )
-    {
-        super( new Metadata() );
+    public GroupRepositoryMetadata(String groupId) {
+        super(new Metadata());
         this.groupId = groupId;
     }
 
-    public boolean storedInGroupDirectory()
-    {
+    public boolean storedInGroupDirectory() {
         return true;
     }
 
-    public boolean storedInArtifactVersionDirectory()
-    {
+    public boolean storedInArtifactVersionDirectory() {
         return false;
     }
 
-    public String getGroupId()
-    {
+    public String getGroupId() {
         return groupId;
     }
 
-    public String getArtifactId()
-    {
+    public String getArtifactId() {
         return null;
     }
 
-    public String getBaseVersion()
-    {
+    public String getBaseVersion() {
         return null;
     }
 
-    public void addPluginMapping( String goalPrefix,
-                                  String artifactId )
-    {
-        addPluginMapping( goalPrefix, artifactId, artifactId );
+    public void addPluginMapping(String goalPrefix, String artifactId) {
+        addPluginMapping(goalPrefix, artifactId, artifactId);
     }
 
-    public void addPluginMapping( String goalPrefix,
-                                  String artifactId,
-                                  String name )
-    {
+    public void addPluginMapping(String goalPrefix, String artifactId, String name) {
         List<Plugin> plugins = getMetadata().getPlugins();
         boolean found = false;
-        for ( Iterator<Plugin> i = plugins.iterator(); i.hasNext() && !found; )
-        {
+        for (Iterator<Plugin> i = plugins.iterator(); i.hasNext() && !found; ) {
             Plugin plugin = i.next();
-            if ( plugin.getPrefix().equals( goalPrefix ) )
-            {
+            if (plugin.getPrefix().equals(goalPrefix)) {
                 found = true;
             }
         }
-        if ( !found )
-        {
+        if (!found) {
             Plugin plugin = new Plugin();
-            plugin.setPrefix( goalPrefix );
-            plugin.setArtifactId( artifactId );
-            plugin.setName( name );
-
+            plugin.setPrefix(goalPrefix);
+            plugin.setArtifactId(artifactId);
+            plugin.setName(name);
 
-            getMetadata().addPlugin( plugin );
+            getMetadata().addPlugin(plugin);
         }
     }
 
-    public Object getKey()
-    {
+    public Object getKey() {
         return groupId;
     }
 
-    public boolean isSnapshot()
-    {
+    public boolean isSnapshot() {
         return false;
     }
 
-    public ArtifactRepository getRepository()
-    {
+    public ArtifactRepository getRepository() {
         return null;
     }
 
-    public void setRepository( ArtifactRepository remoteRepository )
-    {
+    public void setRepository(ArtifactRepository remoteRepository) {
         // intentionally blank
     }
 }
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
index adf2ffc5..e60fffec 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/AbstractGeneratorMojo.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.plugin.plugin;
 
 import java.util.Collections;
 import java.util.List;
-
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
@@ -34,13 +51,11 @@ import org.apache.maven.project.MavenProject;
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  *
  */
-public abstract class AbstractGeneratorMojo
-    extends AbstractMojo
-{
+public abstract class AbstractGeneratorMojo extends AbstractMojo {
     /**
      * The project currently being built.
      */
-    @Parameter( defaultValue = "${project}", readonly = true )
+    @Parameter(defaultValue = "${project}", readonly = true)
     protected MavenProject project;
 
     /**
@@ -54,16 +69,16 @@ public abstract class AbstractGeneratorMojo
      *
      * @since 2.8
      */
-    @Parameter( defaultValue = "false", property = "maven.plugin.skip" )
+    @Parameter(defaultValue = "false", property = "maven.plugin.skip")
     private boolean skip;
 
     /**
      * Maven plugin packaging types. Default is single "maven-plugin".
-     * 
+     *
      * @since 3.3
      */
     @Parameter
-    private List<String> packagingTypes = Collections.singletonList( "maven-plugin" );
+    private List<String> packagingTypes = Collections.singletonList("maven-plugin");
 
     /**
      * System/OS line separator: used to format console messages.
@@ -73,51 +88,38 @@ public abstract class AbstractGeneratorMojo
     protected abstract void generate() throws MojoExecutionException;
 
     @Override
-    public void execute()
-        throws MojoExecutionException
-    {
-        if ( !packagingTypes.contains( project.getPackaging() ) )
-        {
-            getLog().info( "Unsupported packaging type " + project.getPackaging() + ", execution skipped" );
+    public void execute() throws MojoExecutionException {
+        if (!packagingTypes.contains(project.getPackaging())) {
+            getLog().info("Unsupported packaging type " + project.getPackaging() + ", execution skipped");
             return;
         }
 
-        if ( skip )
-        {
-            getLog().warn( "Execution skipped" );
+        if (skip) {
+            getLog().warn("Execution skipped");
             return;
         }
 
-        String defaultGoalPrefix = getDefaultGoalPrefix( project );
+        String defaultGoalPrefix = getDefaultGoalPrefix(project);
 
-        if ( goalPrefix == null )
-        {
+        if (goalPrefix == null) {
             goalPrefix = defaultGoalPrefix;
-        }
-        else if ( !goalPrefix.equals( defaultGoalPrefix ) )
-        {
-            getLog().warn(
-                LS + LS + "Goal prefix is specified as: '" + goalPrefix + "'. " + "Maven currently expects it to be '"
-                    + defaultGoalPrefix + "'." + LS );
+        } else if (!goalPrefix.equals(defaultGoalPrefix)) {
+            getLog().warn(LS + LS + "Goal prefix is specified as: '" + goalPrefix + "'. "
+                    + "Maven currently expects it to be '" + defaultGoalPrefix + "'." + LS);
         }
 
         generate();
     }
 
-    static String getDefaultGoalPrefix( MavenProject project )
-    {
+    static String getDefaultGoalPrefix(MavenProject project) {
         String defaultGoalPrefix;
-        if ( "maven-plugin-report-plugin".equalsIgnoreCase( project.getArtifactId() ) )
-        {
+        if ("maven-plugin-report-plugin".equalsIgnoreCase(project.getArtifactId())) {
             defaultGoalPrefix = "plugin-report";
-        }
-        else if ( "maven-plugin".equalsIgnoreCase( project.getArtifactId() ) )
-        {
-            defaultGoalPrefix = project.getGroupId().substring( project.getGroupId().lastIndexOf( '.' ) + 1 );
-        }
-        else
-        {
-            defaultGoalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId( project.getArtifactId() );
+        } else if ("maven-plugin".equalsIgnoreCase(project.getArtifactId())) {
+            defaultGoalPrefix =
+                    project.getGroupId().substring(project.getGroupId().lastIndexOf('.') + 1);
+        } else {
+            defaultGoalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId(project.getArtifactId());
         }
         return defaultGoalPrefix;
     }
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java
index b50d8670..05445e97 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojo.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin;
 
 /*
@@ -26,7 +44,6 @@ import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
-
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
@@ -66,17 +83,18 @@ import org.sonatype.plexus.build.incremental.BuildContext;
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
  * @since 2.0
  */
-@Mojo( name = "descriptor", defaultPhase = LifecyclePhase.PROCESS_CLASSES,
-       requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME, threadSafe = true )
-public class DescriptorGeneratorMojo
-    extends AbstractGeneratorMojo
-{
+@Mojo(
+        name = "descriptor",
+        defaultPhase = LifecyclePhase.PROCESS_CLASSES,
+        requiresDependencyResolution = ResolutionScope.COMPILE_PLUS_RUNTIME,
+        threadSafe = true)
+public class DescriptorGeneratorMojo extends AbstractGeneratorMojo {
     private static final String VALUE_AUTO = "auto";
 
     /**
      * The directory where the generated <code>plugin.xml</code> file will be put.
      */
-    @Parameter( defaultValue = "${project.build.outputDirectory}/META-INF/maven", readonly = true )
+    @Parameter(defaultValue = "${project.build.outputDirectory}/META-INF/maven", readonly = true)
     private File outputDirectory;
 
     /**
@@ -84,7 +102,7 @@ public class DescriptorGeneratorMojo
      *
      * @since 2.5
      */
-    @Parameter( property = "encoding", defaultValue = "${project.build.sourceEncoding}" )
+    @Parameter(property = "encoding", defaultValue = "${project.build.sourceEncoding}")
     private String encoding;
 
     /**
@@ -92,7 +110,7 @@ public class DescriptorGeneratorMojo
      *
      * @since 2.6
      */
-    @Parameter( defaultValue = "false" )
+    @Parameter(defaultValue = "false")
     private boolean skipDescriptor;
 
     /**
@@ -136,7 +154,7 @@ public class DescriptorGeneratorMojo
      *
      * @since 3.0
      */
-    @Parameter( property = "maven.plugin.skipErrorNoDescriptorsFound", defaultValue = "false" )
+    @Parameter(property = "maven.plugin.skipErrorNoDescriptorsFound", defaultValue = "false")
     private boolean skipErrorNoDescriptorsFound;
 
     /**
@@ -145,7 +163,7 @@ public class DescriptorGeneratorMojo
      *
      * @since 3.6.3
      */
-    @Parameter( defaultValue = "true", property = "maven.plugin.checkExpectedProvidedScope" )
+    @Parameter(defaultValue = "true", property = "maven.plugin.checkExpectedProvidedScope")
     private boolean checkExpectedProvidedScope = true;
 
     /**
@@ -155,7 +173,7 @@ public class DescriptorGeneratorMojo
      * @since 3.6.3
      */
     @Parameter
-    private List<String> expectedProvidedScopeGroupIds = Collections.singletonList( "org.apache.maven" );
+    private List<String> expectedProvidedScopeGroupIds = Collections.singletonList("org.apache.maven");
 
     /**
      * List of {@code groupId:artifactId} strings of artifact coordinates that are to be excluded from "expected
@@ -166,9 +184,7 @@ public class DescriptorGeneratorMojo
      */
     @Parameter
     private List<String> expectedProvidedScopeExclusions = Arrays.asList(
-        "org.apache.maven:maven-archiver",
-        "org.apache.maven:maven-jxr",
-        "org.apache.maven:plexus-utils" );
+            "org.apache.maven:maven-archiver", "org.apache.maven:maven-jxr", "org.apache.maven:plexus-utils");
 
     /**
      * Specify the dependencies as {@code groupId:artifactId} containing (abstract) Mojos, to filter
@@ -198,7 +214,7 @@ public class DescriptorGeneratorMojo
      * Using this parameter requires connectivity to the given URLs during the goal execution.
      * @since 3.7.0
      */
-    @Parameter( property = "externalJavadocBaseUrls", alias = "links" )
+    @Parameter(property = "externalJavadocBaseUrls", alias = "links")
     protected List<URI> externalJavadocBaseUrls;
 
     /**
@@ -210,17 +226,17 @@ public class DescriptorGeneratorMojo
      * <a href="../maven-plugin-report-plugin/index.html">Plugin Report</a>.</b>
      * @since 3.7.0
      */
-    @Parameter( property = "internalJavadocBaseUrl" )
+    @Parameter(property = "internalJavadocBaseUrl")
     protected URI internalJavadocBaseUrl;
 
     /**
      * The version of the javadoc tool (equal to the container JDK version) used to generate the internal javadoc
      * Only relevant if {@link #internalJavadocBaseUrl} is set.
      * The default value needs to be overwritten in case toolchains are being used for generating Javadoc.
-     * 
+     *
      * @since 3.7.0
      */
-    @Parameter( property = "internalJavadocVersion", defaultValue = "${java.version}" )
+    @Parameter(property = "internalJavadocVersion", defaultValue = "${java.version}")
     protected String internalJavadocVersion;
 
     /**
@@ -228,7 +244,7 @@ public class DescriptorGeneratorMojo
      *
      * @since 3.7.0
      */
-    @Parameter( defaultValue = "${settings}", readonly = true, required = true )
+    @Parameter(defaultValue = "${settings}", readonly = true, required = true)
     private Settings settings;
 
     /**
@@ -236,7 +252,7 @@ public class DescriptorGeneratorMojo
      *
      * @since 3.0
      */
-    @Parameter( defaultValue = "${project.remoteArtifactRepositories}", required = true, readonly = true )
+    @Parameter(defaultValue = "${project.remoteArtifactRepositories}", required = true, readonly = true)
     private List<ArtifactRepository> remoteRepos;
 
     /**
@@ -244,13 +260,13 @@ public class DescriptorGeneratorMojo
      *
      * @since 3.0
      */
-    @Parameter( defaultValue = "${localRepository}", required = true, readonly = true )
+    @Parameter(defaultValue = "${localRepository}", required = true, readonly = true)
     private ArtifactRepository local;
 
     /**
      * The required Java version to set in the plugin descriptor. This is evaluated by Maven 4 and ignored by earlier
      * Maven versions. Can be either one of the following formats:
-     * 
+     *
      * <ul>
      * <li>One of the values as for <a href="https://maven.apache.org/pom.html#Activation">POM profile activation
      * element {@code jdk}</a>, i.e. version ranges, version prefixes
@@ -258,16 +274,16 @@ public class DescriptorGeneratorMojo
      * <li>{@code "auto"} to determine the minimum Java version from the binary class version being generated during
      * compilation (determined by the extractor).</li>
      * </ul>
-     * 
+     *
      * @since 3.8.0
      */
-    @Parameter( defaultValue = VALUE_AUTO )
+    @Parameter(defaultValue = VALUE_AUTO)
     String requiredJavaVersion;
 
     /**
      * The required Maven version to set in the plugin descriptor. This is evaluated by Maven 4 and ignored by earlier
      * Maven versions. Can be either one of the following formats:
-     * 
+     *
      * <ul>
      * <li>A version range which specifies the supported Maven versions. It can either use the usual mathematical
      * 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
@@ -275,12 +291,12 @@ public class DescriptorGeneratorMojo
      * <li>{@code "auto"} to determine the minimum Maven version from the POM's Maven prerequisite, or if not set the
      * referenced Maven Plugin API version.</li>
      * </ul>
-     * This value takes precedence over the 
+     * This value takes precedence over the
      * <a href="https://maven.apache.org/pom.html#Prerequisites">POM's Maven prerequisite</a> in Maven 4.
-     * 
+     *
      * @since 3.8.0
      */
-    @Parameter( defaultValue = VALUE_AUTO )
+    @Parameter(defaultValue = VALUE_AUTO)
     String requiredMavenVersion;
 
     /**
@@ -292,187 +308,157 @@ public class DescriptorGeneratorMojo
     @Component
     protected BuildContext buildContext;
 
-    public void generate()
-        throws MojoExecutionException
-    {
-
-        if ( !"maven-plugin".equalsIgnoreCase( project.getArtifactId() )
-                        && project.getArtifactId().toLowerCase().startsWith( "maven-" )
-                        && project.getArtifactId().toLowerCase().endsWith( "-plugin" )
-                        && !"org.apache.maven.plugins".equals( project.getGroupId() ) )
-        {
-            getLog().error( LS + LS + "Artifact Ids of the format maven-___-plugin are reserved for" + LS
-                                + "plugins in the Group Id org.apache.maven.plugins" + LS
-                                + "Please change your artifactId to the format ___-maven-plugin" + LS
-                                + "In the future this error will break the build." + LS + LS );
+    public void generate() throws MojoExecutionException {
+
+        if (!"maven-plugin".equalsIgnoreCase(project.getArtifactId())
+                && project.getArtifactId().toLowerCase().startsWith("maven-")
+                && project.getArtifactId().toLowerCase().endsWith("-plugin")
+                && !"org.apache.maven.plugins".equals(project.getGroupId())) {
+            getLog().error(LS + LS + "Artifact Ids of the format maven-___-plugin are reserved for" + LS
+                    + "plugins in the Group Id org.apache.maven.plugins" + LS
+                    + "Please change your artifactId to the format ___-maven-plugin" + LS
+                    + "In the future this error will break the build." + LS + LS);
         }
 
-        if ( skipDescriptor )
-        {
-            getLog().warn( "Execution skipped" );
+        if (skipDescriptor) {
+            getLog().warn("Execution skipped");
             return;
         }
 
-        if ( checkExpectedProvidedScope )
-        {
+        if (checkExpectedProvidedScope) {
             Set<Artifact> wrongScopedArtifacts = dependenciesNotInProvidedScope();
-            if ( !wrongScopedArtifacts.isEmpty() )
-            {
+            if (!wrongScopedArtifacts.isEmpty()) {
                 StringBuilder errorMessage = new StringBuilder(
-                    LS + LS + "Some dependencies of Maven Plugins are expected to be in provided scope." + LS
-                        + "Please make sure that dependencies listed below declared in POM" + LS
-                        + "have set '<scope>provided</scope>' as well." + LS + LS
-                        + "The following dependencies are in wrong scope:" + LS
-                );
-                for ( Artifact artifact : wrongScopedArtifacts )
-                {
-                    errorMessage.append( " * " ).append( artifact ).append( LS );
+                        LS + LS + "Some dependencies of Maven Plugins are expected to be in provided scope." + LS
+                                + "Please make sure that dependencies listed below declared in POM" + LS
+                                + "have set '<scope>provided</scope>' as well." + LS + LS
+                                + "The following dependencies are in wrong scope:" + LS);
+                for (Artifact artifact : wrongScopedArtifacts) {
+                    errorMessage.append(" * ").append(artifact).append(LS);
                 }
-                errorMessage.append( LS ).append( LS );
+                errorMessage.append(LS).append(LS);
 
-                getLog().error( errorMessage.toString() );
+                getLog().error(errorMessage.toString());
             }
         }
 
-        mojoScanner.setActiveExtractors( extractors );
+        mojoScanner.setActiveExtractors(extractors);
 
         // TODO: could use this more, eg in the writing of the plugin descriptor!
         PluginDescriptor pluginDescriptor = new PluginDescriptor();
 
-        pluginDescriptor.setGroupId( project.getGroupId() );
+        pluginDescriptor.setGroupId(project.getGroupId());
 
-        pluginDescriptor.setArtifactId( project.getArtifactId() );
+        pluginDescriptor.setArtifactId(project.getArtifactId());
 
-        pluginDescriptor.setVersion( project.getVersion() );
+        pluginDescriptor.setVersion(project.getVersion());
 
-        pluginDescriptor.setGoalPrefix( goalPrefix );
+        pluginDescriptor.setGoalPrefix(goalPrefix);
 
-        pluginDescriptor.setName( project.getName() );
+        pluginDescriptor.setName(project.getName());
 
-        pluginDescriptor.setDescription( project.getDescription() );
+        pluginDescriptor.setDescription(project.getDescription());
 
-        if ( encoding == null || encoding.length() < 1 )
-        {
-            getLog().warn( "Using platform encoding (" + ReaderFactory.FILE_ENCODING
-                               + " actually) to read mojo source files, i.e. build is platform dependent!" );
-        }
-        else
-        {
-            getLog().info( "Using '" + encoding + "' encoding to read mojo source files." );
+        if (encoding == null || encoding.length() < 1) {
+            getLog().warn("Using platform encoding (" + ReaderFactory.FILE_ENCODING
+                    + " actually) to read mojo source files, i.e. build is platform dependent!");
+        } else {
+            getLog().info("Using '" + encoding + "' encoding to read mojo source files.");
         }
 
-        if ( internalJavadocBaseUrl != null && !internalJavadocBaseUrl.getPath().endsWith( "/" ) )
-        {
-            throw new MojoExecutionException( "Given parameter 'internalJavadocBaseUrl' must end with a slash but is '"
-                                              + internalJavadocBaseUrl + "'" );
+        if (internalJavadocBaseUrl != null && !internalJavadocBaseUrl.getPath().endsWith("/")) {
+            throw new MojoExecutionException("Given parameter 'internalJavadocBaseUrl' must end with a slash but is '"
+                    + internalJavadocBaseUrl + "'");
         }
-        try
-        {
-            List<ComponentDependency> deps = GeneratorUtils.toComponentDependencies( project.getArtifacts() );
-            pluginDescriptor.setDependencies( deps );
-
-            PluginToolsRequest request = new DefaultPluginToolsRequest( project, pluginDescriptor );
-            request.setEncoding( encoding );
-            request.setSkipErrorNoDescriptorsFound( skipErrorNoDescriptorsFound );
-            request.setDependencies( filterMojoDependencies() );
-            request.setLocal( this.local );
-            request.setRemoteRepos( this.remoteRepos );
-            request.setInternalJavadocBaseUrl( internalJavadocBaseUrl );
-            request.setInternalJavadocVersion( internalJavadocVersion );
-            request.setExternalJavadocBaseUrls( externalJavadocBaseUrls );
-            request.setSettings( settings );
-
-            mojoScanner.populatePluginDescriptor( request );
-            request.setPluginDescriptor( extendPluginDescriptor( request ) );
+        try {
+            List<ComponentDependency> deps = GeneratorUtils.toComponentDependencies(project.getArtifacts());
+            pluginDescriptor.setDependencies(deps);
+
+            PluginToolsRequest request = new DefaultPluginToolsRequest(project, pluginDescriptor);
+            request.setEncoding(encoding);
+            request.setSkipErrorNoDescriptorsFound(skipErrorNoDescriptorsFound);
+            request.setDependencies(filterMojoDependencies());
+            request.setLocal(this.local);
+            request.setRemoteRepos(this.remoteRepos);
+            request.setInternalJavadocBaseUrl(internalJavadocBaseUrl);
+            request.setInternalJavadocVersion(internalJavadocVersion);
+            request.setExternalJavadocBaseUrls(externalJavadocBaseUrls);
+            request.setSettings(settings);
+
+            mojoScanner.populatePluginDescriptor(request);
+            request.setPluginDescriptor(extendPluginDescriptor(request));
 
             outputDirectory.mkdirs();
 
             PluginDescriptorFilesGenerator pluginDescriptorGenerator = new PluginDescriptorFilesGenerator();
-            pluginDescriptorGenerator.execute( outputDirectory, request );
-
-            buildContext.refresh( outputDirectory );
-        }
-        catch ( GeneratorException e )
-        {
-            throw new MojoExecutionException( "Error writing plugin descriptor", e );
-        }
-        catch ( InvalidPluginDescriptorException | ExtractionException e )
-        {
-            throw new MojoExecutionException( "Error extracting plugin descriptor: '" + e.getLocalizedMessage() + "'",
-                                              e );
-        }
-        catch ( LinkageError e )
-        {
-            throw new MojoExecutionException( "The API of the mojo scanner is not compatible with this plugin version."
-                                                  + " Please check the plugin dependencies configured"
-                                                  + " in the POM and ensure the versions match.",
-                                              e );
+            pluginDescriptorGenerator.execute(outputDirectory, request);
+
+            buildContext.refresh(outputDirectory);
+        } catch (GeneratorException e) {
+            throw new MojoExecutionException("Error writing plugin descriptor", e);
+        } catch (InvalidPluginDescriptorException | ExtractionException e) {
+            throw new MojoExecutionException(
+                    "Error extracting plugin descriptor: '" + e.getLocalizedMessage() + "'", e);
+        } catch (LinkageError e) {
+            throw new MojoExecutionException(
+                    "The API of the mojo scanner is not compatible with this plugin version."
+                            + " Please check the plugin dependencies configured"
+                            + " in the POM and ensure the versions match.",
+                    e);
         }
     }
 
-    private PluginDescriptor extendPluginDescriptor( PluginToolsRequest request )
-    {
-        ExtendedPluginDescriptor extendedPluginDescriptor = 
-                        new ExtendedPluginDescriptor( request.getPluginDescriptor() );
-        extendedPluginDescriptor.setRequiredJavaVersion( getRequiredJavaVersion( request ) );
-        extendedPluginDescriptor.setRequiredMavenVersion( getRequiredMavenVersion( request ) );
+    private PluginDescriptor extendPluginDescriptor(PluginToolsRequest request) {
+        ExtendedPluginDescriptor extendedPluginDescriptor = new ExtendedPluginDescriptor(request.getPluginDescriptor());
+        extendedPluginDescriptor.setRequiredJavaVersion(getRequiredJavaVersion(request));
+        extendedPluginDescriptor.setRequiredMavenVersion(getRequiredMavenVersion(request));
         return extendedPluginDescriptor;
     }
 
-    private String getRequiredMavenVersion( PluginToolsRequest request )
-    {
-        if ( !VALUE_AUTO.equals( requiredMavenVersion ) )
-        {
+    private String getRequiredMavenVersion(PluginToolsRequest request) {
+        if (!VALUE_AUTO.equals(requiredMavenVersion)) {
             return requiredMavenVersion;
         }
-        getLog().debug( "Trying to derive Maven version automatically from project prerequisites..." );
-        String requiredMavenVersion = project.getPrerequisites() != null ? project.getPrerequisites().getMaven()
-                                        : null;
-        if ( requiredMavenVersion == null )
-        {
-            getLog().debug( "Trying to derive Maven version automatically from referenced Maven Plugin API artifact "
-                            + "version..." );
+        getLog().debug("Trying to derive Maven version automatically from project prerequisites...");
+        String requiredMavenVersion =
+                project.getPrerequisites() != null ? project.getPrerequisites().getMaven() : null;
+        if (requiredMavenVersion == null) {
+            getLog().debug("Trying to derive Maven version automatically from referenced Maven Plugin API artifact "
+                    + "version...");
             requiredMavenVersion = request.getUsedMavenApiVersion();
         }
-        if ( requiredMavenVersion == null )
-        {
-            getLog().warn( "Cannot determine the required Maven version automatically, it is recommended to "
-                + "configure some explicit value manually." );
+        if (requiredMavenVersion == null) {
+            getLog().warn("Cannot determine the required Maven version automatically, it is recommended to "
+                    + "configure some explicit value manually.");
         }
         return requiredMavenVersion;
     }
 
-    private String getRequiredJavaVersion( PluginToolsRequest request )
-    {
-        if ( !VALUE_AUTO.equals( requiredJavaVersion ) )
-        {
+    private String getRequiredJavaVersion(PluginToolsRequest request) {
+        if (!VALUE_AUTO.equals(requiredJavaVersion)) {
             return requiredJavaVersion;
         }
         String requiredJavaVersion = request.getRequiredJavaVersion();
-        if ( requiredJavaVersion == null )
-        {
-            getLog().warn( "Cannot determine the required Java version automatically, it is recommended to "
-                            + "configure some explicit value manually." );
+        if (requiredJavaVersion == null) {
+            getLog().warn("Cannot determine the required Java version automatically, it is recommended to "
+                    + "configure some explicit value manually.");
         }
-        
+
         return requiredJavaVersion;
     }
 
     /**
      * Collects all dependencies expected to be in "provided" scope but are NOT in "provided" scope.
      */
-    private Set<Artifact> dependenciesNotInProvidedScope()
-    {
+    private Set<Artifact> dependenciesNotInProvidedScope() {
         LinkedHashSet<Artifact> wrongScopedDependencies = new LinkedHashSet<>();
 
-        for ( Artifact dependency : project.getArtifacts() )
-        {
+        for (Artifact dependency : project.getArtifacts()) {
             String ga = dependency.getGroupId() + ":" + dependency.getArtifactId();
-            if ( expectedProvidedScopeGroupIds.contains( dependency.getGroupId() )
-                && !expectedProvidedScopeExclusions.contains( ga )
-                && !Artifact.SCOPE_PROVIDED.equals( dependency.getScope() ) )
-            {
-                wrongScopedDependencies.add( dependency );
+            if (expectedProvidedScopeGroupIds.contains(dependency.getGroupId())
+                    && !expectedProvidedScopeExclusions.contains(ga)
+                    && !Artifact.SCOPE_PROVIDED.equals(dependency.getScope())) {
+                wrongScopedDependencies.add(dependency);
             }
         }
 
@@ -486,28 +472,20 @@ public class DescriptorGeneratorMojo
      * list
      * @see #mojoDependencies
      */
-    private Set<Artifact> filterMojoDependencies()
-    {
+    private Set<Artifact> filterMojoDependencies() {
         Set<Artifact> filteredArtifacts;
-        if ( mojoDependencies == null )
-        {
-            filteredArtifacts = new LinkedHashSet<>( project.getArtifacts() );
-        }
-        else if ( mojoDependencies.isEmpty() )
-        {
+        if (mojoDependencies == null) {
+            filteredArtifacts = new LinkedHashSet<>(project.getArtifacts());
+        } else if (mojoDependencies.isEmpty()) {
             filteredArtifacts = null;
-        }
-        else
-        {
+        } else {
             filteredArtifacts = new LinkedHashSet<>();
 
-            ArtifactFilter filter = new IncludesArtifactFilter( mojoDependencies );
+            ArtifactFilter filter = new IncludesArtifactFilter(mojoDependencies);
 
-            for ( Artifact artifact : project.getArtifacts() )
-            {
-                if ( filter.include( artifact ) )
-                {
-                    filteredArtifacts.add( artifact );
+            for (Artifact artifact : project.getArtifacts()) {
+                if (filter.include(artifact)) {
+                    filteredArtifacts.add(artifact);
                 }
             }
         }
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java
index 679b5945..16814223 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/HelpGeneratorMojo.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin;
 
 /*
@@ -19,12 +37,10 @@ package org.apache.maven.plugin.plugin;
  * under the License.
  */
 
-import javax.lang.model.SourceVersion;
-
 import java.io.File;
 import java.util.Arrays;
 import java.util.stream.Collectors;
-
+import javax.lang.model.SourceVersion;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
@@ -43,15 +59,16 @@ import org.codehaus.plexus.velocity.VelocityComponent;
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @since 2.4
  */
-@Mojo( name = "helpmojo", defaultPhase = LifecyclePhase.GENERATE_SOURCES, threadSafe = true,
-       requiresDependencyResolution = ResolutionScope.COMPILE )
-public class HelpGeneratorMojo
-    extends AbstractGeneratorMojo
-{
+@Mojo(
+        name = "helpmojo",
+        defaultPhase = LifecyclePhase.GENERATE_SOURCES,
+        threadSafe = true,
+        requiresDependencyResolution = ResolutionScope.COMPILE)
+public class HelpGeneratorMojo extends AbstractGeneratorMojo {
     /**
      * The directory where the generated <code>HelpMojo</code> file will be put.
      */
-    @Parameter( defaultValue = "${project.build.directory}/generated-sources/plugin" )
+    @Parameter(defaultValue = "${project.build.directory}/generated-sources/plugin")
     protected File outputDirectory;
 
     /**
@@ -74,59 +91,47 @@ public class HelpGeneratorMojo
     @Component
     private VelocityComponent velocity;
 
-    String getHelpPackageName()
-    {
+    String getHelpPackageName() {
         String packageName = null;
-        if ( StringUtils.isNotBlank( helpPackageName ) )
-        {
+        if (StringUtils.isNotBlank(helpPackageName)) {
             packageName = helpPackageName;
         }
 
-        if ( packageName == null )
-        {
+        if (packageName == null) {
             packageName = project.getGroupId() + "." + project.getArtifactId();
-            packageName = packageName.replace( "-", "_" );
+            packageName = packageName.replace("-", "_");
 
-            String[] packageItems = packageName.split( "\\." );
-            packageName = Arrays.stream( packageItems )
-                .map( this::prefixSpecialCase )
-                .collect( Collectors.joining( "." ) );
+            String[] packageItems = packageName.split("\\.");
+            packageName =
+                    Arrays.stream(packageItems).map(this::prefixSpecialCase).collect(Collectors.joining("."));
         }
 
         return packageName;
     }
 
-    private String prefixSpecialCase( String name )
-    {
-        if ( SourceVersion.isKeyword( name ) || !Character.isJavaIdentifierStart( name.charAt( 0 ) ) )
-        {
+    private String prefixSpecialCase(String name) {
+        if (SourceVersion.isKeyword(name) || !Character.isJavaIdentifierStart(name.charAt(0))) {
             name = "_" + name;
         }
         return name;
     }
 
     @Override
-    protected void generate() throws MojoExecutionException
-    {
+    protected void generate() throws MojoExecutionException {
         PluginHelpGenerator pluginHelpGenerator = new PluginHelpGenerator()
-            .setMavenProject( project )
-            .setHelpPackageName( getHelpPackageName() )
-            .setGoalPrefix( goalPrefix )
-            .setVelocityComponent( velocity );
-
-        try
-        {
-            pluginHelpGenerator.execute( outputDirectory );
-        }
-        catch ( GeneratorException e )
-        {
-            throw new MojoExecutionException( e.getMessage(), e );
+                .setMavenProject(project)
+                .setHelpPackageName(getHelpPackageName())
+                .setGoalPrefix(goalPrefix)
+                .setVelocityComponent(velocity);
+
+        try {
+            pluginHelpGenerator.execute(outputDirectory);
+        } catch (GeneratorException e) {
+            throw new MojoExecutionException(e.getMessage(), e);
         }
 
-        if ( !project.getCompileSourceRoots().contains( outputDirectory.getAbsolutePath() ) )
-        {
-            project.addCompileSourceRoot( outputDirectory.getAbsolutePath() );
+        if (!project.getCompileSourceRoots().contains(outputDirectory.getAbsolutePath())) {
+            project.addCompileSourceRoot(outputDirectory.getAbsolutePath());
         }
     }
-
 }
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
index 0711980a..933107c7 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/metadata/AddPluginArtifactMetadataMojo.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin.metadata;
 
 /*
@@ -47,14 +65,12 @@ import org.apache.maven.project.MavenProject;
  *
  * @since 2.0
  */
-@Mojo( name = "addPluginArtifactMetadata", defaultPhase = LifecyclePhase.PACKAGE, threadSafe = true )
-public class AddPluginArtifactMetadataMojo
-    extends AbstractMojo
-{
+@Mojo(name = "addPluginArtifactMetadata", defaultPhase = LifecyclePhase.PACKAGE, threadSafe = true)
+public class AddPluginArtifactMetadataMojo extends AbstractMojo {
     /**
      * The project artifact, which should have the <code>latest</code> metadata added to it.
      */
-    @Parameter( defaultValue = "${project}", readonly = true )
+    @Parameter(defaultValue = "${project}", readonly = true)
     private MavenProject project;
 
     /**
@@ -68,41 +84,36 @@ public class AddPluginArtifactMetadataMojo
      *
      * @since 2.8
      */
-    @Parameter( defaultValue = "false", property = "maven.plugin.skip" )
+    @Parameter(defaultValue = "false", property = "maven.plugin.skip")
     private boolean skip;
 
     /** {@inheritDoc} */
     @Override
-    public void execute()
-        throws MojoExecutionException
-    {
-        if ( skip )
-        {
-            getLog().warn( "Execution skipped" );
+    public void execute() throws MojoExecutionException {
+        if (skip) {
+            getLog().warn("Execution skipped");
             return;
         }
         Artifact projectArtifact = project.getArtifact();
 
         Versioning versioning = new Versioning();
-        versioning.setLatest( projectArtifact.getVersion() );
+        versioning.setLatest(projectArtifact.getVersion());
         versioning.updateTimestamp();
-        ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata( projectArtifact, versioning );
-        projectArtifact.addMetadata( metadata );
+        ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata(projectArtifact, versioning);
+        projectArtifact.addMetadata(metadata);
 
-        GroupRepositoryMetadata groupMetadata = new GroupRepositoryMetadata( project.getGroupId() );
-        groupMetadata.addPluginMapping( getGoalPrefix(), project.getArtifactId(), project.getName() );
+        GroupRepositoryMetadata groupMetadata = new GroupRepositoryMetadata(project.getGroupId());
+        groupMetadata.addPluginMapping(getGoalPrefix(), project.getArtifactId(), project.getName());
 
-        projectArtifact.addMetadata( groupMetadata );
+        projectArtifact.addMetadata(groupMetadata);
     }
 
     /**
      * @return the goal prefix parameter or the goal prefix from the Plugin artifactId.
      */
-    private String getGoalPrefix()
-    {
-        if ( goalPrefix == null )
-        {
-            goalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId( project.getArtifactId() );
+    private String getGoalPrefix() {
+        if (goalPrefix == null) {
+            goalPrefix = PluginDescriptor.getGoalPrefixFromArtifactId(project.getArtifactId());
         }
 
         return goalPrefix;
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/PluginReport.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/PluginReport.java
index 34f39632..430d5dc9 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/PluginReport.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/PluginReport.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin.report_old;
 
 /*
@@ -29,7 +47,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.ResourceBundle;
-
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
@@ -69,15 +86,13 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
  * @deprecated use the maven-plugin-report-plugin instead
  */
 @Deprecated
-@Mojo( name = "report", threadSafe = true )
-@Execute( phase = LifecyclePhase.PROCESS_CLASSES )
-public class PluginReport
-    extends AbstractMavenReport
-{
+@Mojo(name = "report", threadSafe = true)
+@Execute(phase = LifecyclePhase.PROCESS_CLASSES)
+public class PluginReport extends AbstractMavenReport {
     /**
      * Report output directory for mojos' documentation.
      */
-    @Parameter( defaultValue = "${project.build.directory}/generated-site/xdoc" )
+    @Parameter(defaultValue = "${project.build.directory}/generated-site/xdoc")
     private File outputDirectory;
 
     /**
@@ -88,7 +103,7 @@ public class PluginReport
      * @since 2.7
      */
     @Deprecated
-    @Parameter( property = "encoding", defaultValue = "${project.build.sourceEncoding}" )
+    @Parameter(property = "encoding", defaultValue = "${project.build.sourceEncoding}")
     private String encoding;
 
     /**
@@ -141,7 +156,7 @@ public class PluginReport
      * @since 2.4
      */
     @Deprecated
-    @Parameter( property = "goalPrefix" )
+    @Parameter(property = "goalPrefix")
     protected String goalPrefix;
 
     /**
@@ -152,7 +167,7 @@ public class PluginReport
      * @since 2.8
      */
     @Deprecated
-    @Parameter( defaultValue = "false", property = "maven.plugin.skip" )
+    @Parameter(defaultValue = "false", property = "maven.plugin.skip")
     private boolean skipReport;
 
     /**
@@ -160,7 +175,7 @@ public class PluginReport
      *
      * @since 2.8
      */
-    @Parameter( defaultValue = "false", property = "maven.plugin.report.skip" )
+    @Parameter(defaultValue = "false", property = "maven.plugin.report.skip")
     private boolean skip;
 
     /**
@@ -169,7 +184,7 @@ public class PluginReport
      *
      * @since 3.7.0
      */
-    @Parameter( defaultValue = "false", property = "maven.plugin.report.hasExtensionsToLoad" )
+    @Parameter(defaultValue = "false", property = "maven.plugin.report.hasExtensionsToLoad")
     private boolean hasExtensionsToLoad;
 
     /**
@@ -204,8 +219,10 @@ public class PluginReport
      * @since 3.5.1
      * @deprecated No longer evaluated, use {@link #enhancedPluginXmlFile}.
      */
-    @Parameter( defaultValue = "${project.build.outputDirectory}/META-INF/maven/plugin.xml", required = true,
-                readonly = true )
+    @Parameter(
+            defaultValue = "${project.build.outputDirectory}/META-INF/maven/plugin.xml",
+            required = true,
+            readonly = true)
     @Deprecated
     private File pluginXmlFile;
 
@@ -214,8 +231,7 @@ public class PluginReport
      *
      * @since 3.7.0
      */
-    @Parameter( defaultValue = "${project.build.directory}/plugin-enhanced.xml", required = true,
-                readonly = true )
+    @Parameter(defaultValue = "${project.build.directory}/plugin-enhanced.xml", required = true, readonly = true)
     private File enhancedPluginXmlFile;
 
     /**
@@ -225,18 +241,17 @@ public class PluginReport
      * This might have the drawback that some links being generated in the report might be broken
      * in case not all parameter types and javadoc link references are resolvable through the sites being given to
      * {@link DescriptorGeneratorMojo}.
-     * 
+     *
      * @since 3.7.0
      */
-    @Parameter( property = "maven.plugin.report.disableInternalJavadocLinkValidation" )
+    @Parameter(property = "maven.plugin.report.disableInternalJavadocLinkValidation")
     private boolean disableInternalJavadocLinkValidation;
 
     /**
      * {@inheritDoc}
      */
     @Override
-    protected String getOutputDirectory()
-    {
+    protected String getOutputDirectory() {
         // PLUGIN-191: output directory of plugin.html, not *-mojo.xml
         return project.getReporting().getOutputDirectory();
     }
@@ -245,8 +260,7 @@ public class PluginReport
      * {@inheritDoc}
      */
     @Override
-    public boolean canGenerateReport()
-    {
+    public boolean canGenerateReport() {
         return enhancedPluginXmlFile != null && enhancedPluginXmlFile.isFile() && enhancedPluginXmlFile.canRead();
     }
 
@@ -254,71 +268,64 @@ public class PluginReport
      * {@inheritDoc}
      */
     @Override
-    protected void executeReport( Locale locale )
-        throws MavenReportException
-    {
-        getLog().warn( "The 'report' goal of the maven-plugin-plugin is deprecated, please use "
+    protected void executeReport(Locale locale) throws MavenReportException {
+        getLog().warn("The 'report' goal of the maven-plugin-plugin is deprecated, please use "
                 + "the 'report' goal from the maven-plugin-report-plugin instead. This goal will be removed "
-                + "in version 4.0.0." );
+                + "in version 4.0.0.");
 
-        if ( skip || skipReport )
-        {
-            getLog().info( "Maven Plugin Plugin Report generation skipped." );
+        if (skip || skipReport) {
+            getLog().info("Maven Plugin Plugin Report generation skipped.");
             return;
         }
 
         PluginDescriptor pluginDescriptor = extractPluginDescriptor();
 
         // Generate the mojos' documentation
-        generateMojosDocumentation( pluginDescriptor, locale );
+        generateMojosDocumentation(pluginDescriptor, locale);
 
         // Write the overview
-        PluginOverviewRenderer r =
-            new PluginOverviewRenderer( getProject(), requirements, requirementsHistories, getSink(),
-                                        pluginDescriptor, locale, hasExtensionsToLoad );
+        PluginOverviewRenderer r = new PluginOverviewRenderer(
+                getProject(),
+                requirements,
+                requirementsHistories,
+                getSink(),
+                pluginDescriptor,
+                locale,
+                hasExtensionsToLoad);
         r.render();
     }
 
-    private PluginDescriptor extractPluginDescriptor()
-        throws MavenReportException
-    {
-        PluginDescriptorBuilder builder = new EnhancedPluginDescriptorBuilder( rtInfo );
+    private PluginDescriptor extractPluginDescriptor() throws MavenReportException {
+        PluginDescriptorBuilder builder = new EnhancedPluginDescriptorBuilder(rtInfo);
 
-        try ( Reader input = new XmlStreamReader( Files.newInputStream( enhancedPluginXmlFile.toPath() ) ) )
-        {
-            return builder.build( input );
-        }
-        catch ( IOException | PlexusConfigurationException e )
-        {
-            throw new MavenReportException( "Error extracting plugin descriptor from " + enhancedPluginXmlFile, e );
+        try (Reader input = new XmlStreamReader(Files.newInputStream(enhancedPluginXmlFile.toPath()))) {
+            return builder.build(input);
+        } catch (IOException | PlexusConfigurationException e) {
+            throw new MavenReportException("Error extracting plugin descriptor from " + enhancedPluginXmlFile, e);
         }
-
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public String getDescription( Locale locale )
-    {
-        return getBundle( locale ).getString( "report.plugin.description" );
+    public String getDescription(Locale locale) {
+        return getBundle(locale).getString("report.plugin.description");
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public String getName( Locale locale )
-    {
-        return getBundle( locale ).getString( "report.plugin.name" );
+    public String getName(Locale locale) {
+        return getBundle(locale).getString("report.plugin.name");
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public String getOutputName()
-    {
+    public String getOutputName() {
         return "plugin-info";
     }
 
@@ -329,42 +336,34 @@ public class PluginReport
      * @param locale           not null
      * @throws MavenReportException if any
      */
-    private void generateMojosDocumentation( PluginDescriptor pluginDescriptor, Locale locale )
-        throws MavenReportException
-    {
-        try
-        {
+    private void generateMojosDocumentation(PluginDescriptor pluginDescriptor, Locale locale)
+            throws MavenReportException {
+        try {
             File outputDir = outputDirectory;
             outputDir.mkdirs();
 
-            PluginXdocGenerator generator = new PluginXdocGenerator( getProject(), locale, getReportOutputDirectory(),
-                                                                     disableInternalJavadocLinkValidation );
-            PluginToolsRequest pluginToolsRequest = new DefaultPluginToolsRequest( getProject(), pluginDescriptor );
-            generator.execute( outputDir, pluginToolsRequest );
-        }
-        catch ( GeneratorException e )
-        {
-            throw new MavenReportException( "Error writing plugin documentation", e );
+            PluginXdocGenerator generator = new PluginXdocGenerator(
+                    getProject(), locale, getReportOutputDirectory(), disableInternalJavadocLinkValidation);
+            PluginToolsRequest pluginToolsRequest = new DefaultPluginToolsRequest(getProject(), pluginDescriptor);
+            generator.execute(outputDir, pluginToolsRequest);
+        } catch (GeneratorException e) {
+            throw new MavenReportException("Error writing plugin documentation", e);
         }
-
     }
 
     /**
      * @param locale not null
      * @return the bundle for this report
      */
-    protected static ResourceBundle getBundle( Locale locale )
-    {
-        return ResourceBundle.getBundle( "plugin-report", locale, PluginReport.class.getClassLoader() );
+    protected static ResourceBundle getBundle(Locale locale) {
+        return ResourceBundle.getBundle("plugin-report", locale, PluginReport.class.getClassLoader());
     }
 
     /**
      * Generates an overview page with the list of goals
      * and a link to the goal's page.
      */
-    static class PluginOverviewRenderer
-        extends AbstractMavenReportRenderer
-    {
+    static class PluginOverviewRenderer extends AbstractMavenReportRenderer {
         private final MavenProject project;
 
         private final Requirements requirements;
@@ -385,15 +384,19 @@ public class PluginReport
          * @param pluginDescriptor      not null
          * @param locale                not null
          */
-        PluginOverviewRenderer( MavenProject project, Requirements requirements,
-                                List<RequirementsHistory> requirementsHistories, Sink sink,
-                                PluginDescriptor pluginDescriptor, Locale locale, boolean hasExtensionsToLoad )
-        {
-            super( sink );
+        PluginOverviewRenderer(
+                MavenProject project,
+                Requirements requirements,
+                List<RequirementsHistory> requirementsHistories,
+                Sink sink,
+                PluginDescriptor pluginDescriptor,
+                Locale locale,
+                boolean hasExtensionsToLoad) {
+            super(sink);
 
             this.project = project;
 
-            this.requirements = ( requirements == null ? new Requirements() : requirements );
+            this.requirements = (requirements == null ? new Requirements() : requirements);
 
             this.requirementsHistories = requirementsHistories;
 
@@ -408,58 +411,50 @@ public class PluginReport
          * {@inheritDoc}
          */
         @Override
-        public String getTitle()
-        {
-            return getBundle( locale ).getString( "report.plugin.title" );
+        public String getTitle() {
+            return getBundle(locale).getString("report.plugin.title");
         }
 
         /**
          * {@inheritDoc}
          */
         @Override
-        public void renderBody()
-        {
-            startSection( getTitle() );
+        public void renderBody() {
+            startSection(getTitle());
 
-            if ( !( pluginDescriptor.getMojos() != null && pluginDescriptor.getMojos().size() > 0 ) )
-            {
-                paragraph( getBundle( locale ).getString( "report.plugin.goals.nogoal" ) );
+            if (!(pluginDescriptor.getMojos() != null
+                    && pluginDescriptor.getMojos().size() > 0)) {
+                paragraph(getBundle(locale).getString("report.plugin.goals.nogoal"));
                 endSection();
                 return;
             }
 
-            paragraph( getBundle( locale ).getString( "report.plugin.goals.intro" ) );
+            paragraph(getBundle(locale).getString("report.plugin.goals.intro"));
 
             boolean hasMavenReport = false;
-            for ( Iterator<MojoDescriptor> i = pluginDescriptor.getMojos().iterator(); i.hasNext(); )
-            {
+            for (Iterator<MojoDescriptor> i = pluginDescriptor.getMojos().iterator(); i.hasNext(); ) {
                 MojoDescriptor mojo = i.next();
 
-                if ( GeneratorUtils.isMavenReport( mojo.getImplementation(), project ) )
-                {
+                if (GeneratorUtils.isMavenReport(mojo.getImplementation(), project)) {
                     hasMavenReport = true;
                 }
             }
 
             startTable();
 
-            String goalColumnName = getBundle( locale ).getString( "report.plugin.goals.column.goal" );
-            String isMavenReport = getBundle( locale ).getString( "report.plugin.goals.column.isMavenReport" );
-            String descriptionColumnName = getBundle( locale ).getString( "report.plugin.goals.column.description" );
-            if ( hasMavenReport )
-            {
-                tableHeader( new String[] {goalColumnName, isMavenReport, descriptionColumnName} );
-            }
-            else
-            {
-                tableHeader( new String[] {goalColumnName, descriptionColumnName} );
+            String goalColumnName = getBundle(locale).getString("report.plugin.goals.column.goal");
+            String isMavenReport = getBundle(locale).getString("report.plugin.goals.column.isMavenReport");
+            String descriptionColumnName = getBundle(locale).getString("report.plugin.goals.column.description");
+            if (hasMavenReport) {
+                tableHeader(new String[] {goalColumnName, isMavenReport, descriptionColumnName});
+            } else {
+                tableHeader(new String[] {goalColumnName, descriptionColumnName});
             }
 
             List<MojoDescriptor> mojos = new ArrayList<>();
-            mojos.addAll( pluginDescriptor.getMojos() );
-            PluginUtils.sortMojos( mojos );
-            for ( MojoDescriptor mojo : mojos )
-            {
+            mojos.addAll(pluginDescriptor.getMojos());
+            PluginUtils.sortMojos(mojos);
+            for (MojoDescriptor mojo : mojos) {
                 String goalName = mojo.getFullGoalName();
 
                 /*
@@ -469,94 +464,81 @@ public class PluginReport
                 String goalDocumentationLink = "./" + mojo.getGoal() + "-mojo.html";
 
                 String description;
-                if ( StringUtils.isNotEmpty( mojo.getDeprecated() ) )
-                {
-                    description =
-                        "<strong>" + getBundle( locale ).getString( "report.plugin.goal.deprecated" ) + "</strong> "
-                            + mojo.getDeprecated();
-                }
-                else if ( StringUtils.isNotEmpty( mojo.getDescription() ) )
-                {
+                if (StringUtils.isNotEmpty(mojo.getDeprecated())) {
+                    description = "<strong>" + getBundle(locale).getString("report.plugin.goal.deprecated")
+                            + "</strong> " + mojo.getDeprecated();
+                } else if (StringUtils.isNotEmpty(mojo.getDescription())) {
                     description = mojo.getDescription();
-                }
-                else
-                {
-                    description = getBundle( locale ).getString( "report.plugin.goal.nodescription" );
+                } else {
+                    description = getBundle(locale).getString("report.plugin.goal.nodescription");
                 }
 
                 sink.tableRow();
-                tableCell( createLinkPatternedText( goalName, goalDocumentationLink ) );
-                if ( hasMavenReport )
-                {
-                    if ( GeneratorUtils.isMavenReport( mojo.getImplementation(), project ) )
-                    {
+                tableCell(createLinkPatternedText(goalName, goalDocumentationLink));
+                if (hasMavenReport) {
+                    if (GeneratorUtils.isMavenReport(mojo.getImplementation(), project)) {
                         sink.tableCell();
-                        sink.text( getBundle( locale ).getString( "report.plugin.isReport" ) );
+                        sink.text(getBundle(locale).getString("report.plugin.isReport"));
                         sink.tableCell_();
-                    }
-                    else
-                    {
+                    } else {
                         sink.tableCell();
-                        sink.text( getBundle( locale ).getString( "report.plugin.isNotReport" ) );
+                        sink.text(getBundle(locale).getString("report.plugin.isNotReport"));
                         sink.tableCell_();
                     }
                 }
-                tableCell( description, true );
+                tableCell(description, true);
                 sink.tableRow_();
             }
 
             endTable();
 
-            startSection( getBundle( locale ).getString( "report.plugin.systemrequirements" ) );
+            startSection(getBundle(locale).getString("report.plugin.systemrequirements"));
 
-            paragraph( getBundle( locale ).getString( "report.plugin.systemrequirements.intro" ) );
+            paragraph(getBundle(locale).getString("report.plugin.systemrequirements.intro"));
 
             startTable();
 
-            String maven = discoverMavenRequirement( project, requirements );
+            String maven = discoverMavenRequirement(project, requirements);
             sink.tableRow();
-            tableCell( getBundle( locale ).getString( "report.plugin.systemrequirements.maven" ) );
-            tableCell( ( maven != null
-                ? maven
-                : getBundle( locale ).getString( "report.plugin.systemrequirements.nominimum" ) ) );
+            tableCell(getBundle(locale).getString("report.plugin.systemrequirements.maven"));
+            tableCell(
+                    (maven != null
+                            ? maven
+                            : getBundle(locale).getString("report.plugin.systemrequirements.nominimum")));
             sink.tableRow_();
 
-            String jdk = discoverJdkRequirement( project, requirements );
+            String jdk = discoverJdkRequirement(project, requirements);
             sink.tableRow();
-            tableCell( getBundle( locale ).getString( "report.plugin.systemrequirements.jdk" ) );
-            tableCell(
-                ( jdk != null ? jdk : getBundle( locale ).getString( "report.plugin.systemrequirements.nominimum" ) ) );
+            tableCell(getBundle(locale).getString("report.plugin.systemrequirements.jdk"));
+            tableCell((jdk != null ? jdk : getBundle(locale).getString("report.plugin.systemrequirements.nominimum")));
             sink.tableRow_();
 
             String memory = requirements.getMemory();
-            if ( StringUtils.isNotEmpty( memory ) )
-            {
+            if (StringUtils.isNotEmpty(memory)) {
                 sink.tableRow();
-                tableCell( getBundle( locale ).getString( "report.plugin.systemrequirements.memory" ) );
-                tableCell( memory );
+                tableCell(getBundle(locale).getString("report.plugin.systemrequirements.memory"));
+                tableCell(memory);
                 sink.tableRow_();
             }
 
             String diskSpace = requirements.getDiskSpace();
-            if ( StringUtils.isNotEmpty( diskSpace ) )
-            {
+            if (StringUtils.isNotEmpty(diskSpace)) {
                 sink.tableRow();
-                tableCell( getBundle( locale ).getString( "report.plugin.systemrequirements.diskspace" ) );
-                tableCell( diskSpace );
+                tableCell(getBundle(locale).getString("report.plugin.systemrequirements.diskspace"));
+                tableCell(diskSpace);
                 sink.tableRow_();
             }
 
-            if ( requirements.getOthers() != null && requirements.getOthers().size() > 0 )
-            {
-                for ( Iterator it = requirements.getOthers().keySet().iterator(); it.hasNext(); )
-                {
+            if (requirements.getOthers() != null && requirements.getOthers().size() > 0) {
+                for (Iterator it = requirements.getOthers().keySet().iterator(); it.hasNext(); ) {
                     String key = it.next().toString();
 
                     sink.tableRow();
-                    tableCell( key );
-                    tableCell( ( StringUtils.isNotEmpty( requirements.getOthers().getProperty( key ) )
-                        ? requirements.getOthers().getProperty( key )
-                        : getBundle( locale ).getString( "report.plugin.systemrequirements.nominimum" ) ) );
+                    tableCell(key);
+                    tableCell(
+                            (StringUtils.isNotEmpty(requirements.getOthers().getProperty(key))
+                                    ? requirements.getOthers().getProperty(key)
+                                    : getBundle(locale).getString("report.plugin.systemrequirements.nominimum")));
                     sink.tableRow_();
                 }
             }
@@ -566,37 +548,33 @@ public class PluginReport
 
             renderRequirementsHistories();
 
-            renderUsageSection( hasMavenReport );
+            renderUsageSection(hasMavenReport);
 
             endSection();
         }
 
-        private void renderRequirementsHistories()
-        {
-            if ( requirementsHistories.isEmpty() )
-            {
+        private void renderRequirementsHistories() {
+            if (requirementsHistories.isEmpty()) {
                 return;
             }
 
-            startSection( getBundle( locale ).getString( "report.plugin.systemrequirements.history" ) );
-            paragraph( getBundle( locale ).getString( "report.plugin.systemrequirements.history.intro" ) );
+            startSection(getBundle(locale).getString("report.plugin.systemrequirements.history"));
+            paragraph(getBundle(locale).getString("report.plugin.systemrequirements.history.intro"));
 
             startTable();
-            tableHeader( new String[] {
-                getBundle( locale ).getString( "report.plugin.systemrequirements.history.version" ),
-                getBundle( locale ).getString( "report.plugin.systemrequirements.history.maven" ),
-                getBundle( locale ).getString( "report.plugin.systemrequirements.history.jdk" )
-            } );
-
-            requirementsHistories.forEach(
-                requirementsHistory ->
-                {
-                    sink.tableRow();
-                    tableCell( requirementsHistory.getVersion() );
-                    tableCell( requirementsHistory.getMaven() );
-                    tableCell( requirementsHistory.getJdk() );
-                    sink.tableRow_();
-                } );
+            tableHeader(new String[] {
+                getBundle(locale).getString("report.plugin.systemrequirements.history.version"),
+                getBundle(locale).getString("report.plugin.systemrequirements.history.maven"),
+                getBundle(locale).getString("report.plugin.systemrequirements.history.jdk")
+            });
+
+            requirementsHistories.forEach(requirementsHistory -> {
+                sink.tableRow();
+                tableCell(requirementsHistory.getVersion());
+                tableCell(requirementsHistory.getMaven());
+                tableCell(requirementsHistory.getJdk());
+                sink.tableRow_();
+            });
             endTable();
 
             endSection();
@@ -607,81 +585,91 @@ public class PluginReport
          *
          * @param hasMavenReport If the plugin has a report or not
          */
-        private void renderUsageSection( boolean hasMavenReport )
-        {
-            startSection( getBundle( locale ).getString( "report.plugin.usage" ) );
+        private void renderUsageSection(boolean hasMavenReport) {
+            startSection(getBundle(locale).getString("report.plugin.usage"));
 
             // Configuration
             sink.paragraph();
-            text( getBundle( locale ).getString( "report.plugin.usage.intro" ) );
+            text(getBundle(locale).getString("report.plugin.usage.intro"));
             sink.paragraph_();
 
             StringBuilder sb = new StringBuilder();
-            sb.append( "<project>" ).append( '\n' );
-            sb.append( "  ..." ).append( '\n' );
-            sb.append( "  <build>" ).append( '\n' );
-            sb.append(
-                "    <!-- " + getBundle( locale ).getString( "report.plugin.usage.pluginManagement" ) + " -->" ).append(
-                '\n' );
-            sb.append( "    <pluginManagement>" ).append( '\n' );
-            sb.append( "      <plugins>" ).append( '\n' );
-            sb.append( "        <plugin>" ).append( '\n' );
-            sb.append( "          <groupId>" ).append( pluginDescriptor.getGroupId() ).append( "</groupId>" ).append(
-                '\n' );
-            sb.append( "          <artifactId>" ).append( pluginDescriptor.getArtifactId() ).append(
-                "</artifactId>" ).append( '\n' );
-            sb.append( "          <version>" ).append( pluginDescriptor.getVersion() ).append( "</version>" ).append(
-                '\n' );
-            if ( hasExtensionsToLoad )
-            {
-                sb.append( "          <extensions>true</extensions>" ).append(
-                    '\n' );
+            sb.append("<project>").append('\n');
+            sb.append("  ...").append('\n');
+            sb.append("  <build>").append('\n');
+            sb.append("    <!-- " + getBundle(locale).getString("report.plugin.usage.pluginManagement") + " -->")
+                    .append('\n');
+            sb.append("    <pluginManagement>").append('\n');
+            sb.append("      <plugins>").append('\n');
+            sb.append("        <plugin>").append('\n');
+            sb.append("          <groupId>")
+                    .append(pluginDescriptor.getGroupId())
+                    .append("</groupId>")
+                    .append('\n');
+            sb.append("          <artifactId>")
+                    .append(pluginDescriptor.getArtifactId())
+                    .append("</artifactId>")
+                    .append('\n');
+            sb.append("          <version>")
+                    .append(pluginDescriptor.getVersion())
+                    .append("</version>")
+                    .append('\n');
+            if (hasExtensionsToLoad) {
+                sb.append("          <extensions>true</extensions>").append('\n');
             }
-            sb.append( "        </plugin>" ).append( '\n' );
-            sb.append( "        ..." ).append( '\n' );
-            sb.append( "      </plugins>" ).append( '\n' );
-            sb.append( "    </pluginManagement>" ).append( '\n' );
-            sb.append( "    <!-- " + getBundle( locale ).getString( "report.plugin.usage.plugins" ) + " -->" ).append(
-                '\n' );
-            sb.append( "    <plugins>" ).append( '\n' );
-            sb.append( "      <plugin>" ).append( '\n' );
-            sb.append( "        <groupId>" ).append( pluginDescriptor.getGroupId() ).append( "</groupId>" ).append(
-                '\n' );
-            sb.append( "        <artifactId>" ).append( pluginDescriptor.getArtifactId() ).append(
-                "</artifactId>" ).append( '\n' );
-            sb.append( "      </plugin>" ).append( '\n' );
-            sb.append( "      ..." ).append( '\n' );
-            sb.append( "    </plugins>" ).append( '\n' );
-            sb.append( "  </build>" ).append( '\n' );
-
-            if ( hasMavenReport )
-            {
-                sb.append( "  ..." ).append( '\n' );
-                sb.append(
-                    "  <!-- " + getBundle( locale ).getString( "report.plugin.usage.reporting" ) + " -->" ).append(
-                    '\n' );
-                sb.append( "  <reporting>" ).append( '\n' );
-                sb.append( "    <plugins>" ).append( '\n' );
-                sb.append( "      <plugin>" ).append( '\n' );
-                sb.append( "        <groupId>" ).append( pluginDescriptor.getGroupId() ).append( "</groupId>" ).append(
-                    '\n' );
-                sb.append( "        <artifactId>" ).append( pluginDescriptor.getArtifactId() ).append(
-                    "</artifactId>" ).append( '\n' );
-                sb.append( "        <version>" ).append( pluginDescriptor.getVersion() ).append( "</version>" ).append(
-                    '\n' );
-                sb.append( "      </plugin>" ).append( '\n' );
-                sb.append( "      ..." ).append( '\n' );
-                sb.append( "    </plugins>" ).append( '\n' );
-                sb.append( "  </reporting>" ).append( '\n' );
+            sb.append("        </plugin>").append('\n');
+            sb.append("        ...").append('\n');
+            sb.append("      </plugins>").append('\n');
+            sb.append("    </pluginManagement>").append('\n');
+            sb.append("    <!-- " + getBundle(locale).getString("report.plugin.usage.plugins") + " -->")
+                    .append('\n');
+            sb.append("    <plugins>").append('\n');
+            sb.append("      <plugin>").append('\n');
+            sb.append("        <groupId>")
+                    .append(pluginDescriptor.getGroupId())
+                    .append("</groupId>")
+                    .append('\n');
+            sb.append("        <artifactId>")
+                    .append(pluginDescriptor.getArtifactId())
+                    .append("</artifactId>")
+                    .append('\n');
+            sb.append("      </plugin>").append('\n');
+            sb.append("      ...").append('\n');
+            sb.append("    </plugins>").append('\n');
+            sb.append("  </build>").append('\n');
+
+            if (hasMavenReport) {
+                sb.append("  ...").append('\n');
+                sb.append("  <!-- " + getBundle(locale).getString("report.plugin.usage.reporting") + " -->")
+                        .append('\n');
+                sb.append("  <reporting>").append('\n');
+                sb.append("    <plugins>").append('\n');
+                sb.append("      <plugin>").append('\n');
+                sb.append("        <groupId>")
+                        .append(pluginDescriptor.getGroupId())
+                        .append("</groupId>")
+                        .append('\n');
+                sb.append("        <artifactId>")
+                        .append(pluginDescriptor.getArtifactId())
+                        .append("</artifactId>")
+                        .append('\n');
+                sb.append("        <version>")
+                        .append(pluginDescriptor.getVersion())
+                        .append("</version>")
+                        .append('\n');
+                sb.append("      </plugin>").append('\n');
+                sb.append("      ...").append('\n');
+                sb.append("    </plugins>").append('\n');
+                sb.append("  </reporting>").append('\n');
             }
 
-            sb.append( "  ..." ).append( '\n' );
-            sb.append( "</project>" ).append( '\n' );
+            sb.append("  ...").append('\n');
+            sb.append("</project>").append('\n');
 
-            verbatimText( sb.toString() );
+            verbatimText(sb.toString());
 
             sink.paragraph();
-            linkPatternedText( getBundle( locale ).getString( "report.plugin.configuration.end" ) );
+            linkPatternedText(getBundle(locale).getString("report.plugin.configuration.end"));
             sink.paragraph_();
 
             endSection();
@@ -695,15 +683,14 @@ public class PluginReport
          * @param requirements not null
          * @return the Maven version
          */
-        private static String discoverMavenRequirement( MavenProject project, Requirements requirements )
-        {
+        private static String discoverMavenRequirement(MavenProject project, Requirements requirements) {
             String maven = requirements.getMaven();
-            if ( maven == null )
-            {
-                maven = ( project.getPrerequisites() != null ? project.getPrerequisites().getMaven() : null );
+            if (maven == null) {
+                maven = (project.getPrerequisites() != null
+                        ? project.getPrerequisites().getMaven()
+                        : null);
             }
-            if ( maven == null )
-            {
+            if (maven == null) {
                 maven = "2.0";
             }
 
@@ -723,75 +710,62 @@ public class PluginReport
          * @param requirements not null
          * @return the JDK version
          */
-        private static String discoverJdkRequirement( MavenProject project, Requirements requirements )
-        {
+        private static String discoverJdkRequirement(MavenProject project, Requirements requirements) {
             String jdk = requirements.getJdk();
 
-            if ( jdk != null )
-            {
+            if (jdk != null) {
                 return jdk;
             }
 
-            Plugin compiler = getCompilerPlugin( project.getBuild().getPluginsAsMap() );
-            if ( compiler == null )
-            {
-                compiler = getCompilerPlugin( project.getPluginManagement().getPluginsAsMap() );
+            Plugin compiler = getCompilerPlugin(project.getBuild().getPluginsAsMap());
+            if (compiler == null) {
+                compiler = getCompilerPlugin(project.getPluginManagement().getPluginsAsMap());
             }
 
-            jdk = getPluginParameter( compiler, "release" );
-            if ( jdk != null )
-            {
+            jdk = getPluginParameter(compiler, "release");
+            if (jdk != null) {
                 return jdk;
             }
 
-            jdk = project.getProperties().getProperty( "maven.compiler.release" );
-            if ( jdk != null )
-            {
+            jdk = project.getProperties().getProperty("maven.compiler.release");
+            if (jdk != null) {
                 return jdk;
             }
 
-            jdk = getPluginParameter( compiler, "target" );
-            if ( jdk != null )
-            {
+            jdk = getPluginParameter(compiler, "target");
+            if (jdk != null) {
                 return jdk;
             }
 
             // default value
-            jdk = project.getProperties().getProperty( "maven.compiler.target" );
-            if ( jdk != null )
-            {
+            jdk = project.getProperties().getProperty("maven.compiler.target");
+            if (jdk != null) {
                 return jdk;
             }
 
             // return "1.5" by default?
 
-            String version = ( compiler == null ) ? null : compiler.getVersion();
+            String version = (compiler == null) ? null : compiler.getVersion();
 
-            if ( version != null )
-            {
+            if (version != null) {
                 return "Default target for maven-compiler-plugin version " + version;
             }
 
             return "Unknown";
         }
 
-        private static Plugin getCompilerPlugin( Map<String, Plugin> pluginsAsMap )
-        {
-            return pluginsAsMap.get( "org.apache.maven.plugins:maven-compiler-plugin" );
+        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 )
-            {
+        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 (pluginConf != null) {
+                    Xpp3Dom target = pluginConf.getChild(parameter);
 
-                    if ( target != null )
-                    {
+                    if (target != null) {
                         return target.getValue();
                     }
                 }
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/Requirements.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/Requirements.java
index cb420995..c8e09524 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/Requirements.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/Requirements.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin.report_old;
 
 /*
@@ -27,8 +45,7 @@ import java.util.Properties;
  * @deprecated will be removed in the next major version
  */
 @Deprecated
-public class Requirements
-{
+public class Requirements {
     /**
      * The minimum version of Maven to run this plugin.
      */
@@ -54,41 +71,35 @@ public class Requirements
      */
     private java.util.Properties others;
 
-    public String getMaven()
-    {
+    public String getMaven() {
         return maven;
     }
 
-    public String getJdk()
-    {
+    public String getJdk() {
         return jdk;
     }
 
-    public String getMemory()
-    {
+    public String getMemory() {
         return memory;
     }
 
-    public String getDiskSpace()
-    {
+    public String getDiskSpace() {
         return diskSpace;
     }
 
-    public Properties getOthers()
-    {
+    public Properties getOthers() {
         return others;
     }
 
     @Override
-    public String toString()
-    {
-        final StringBuilder sb = new StringBuilder( "Requirements{" );
-        sb.append( "maven='" ).append( maven ).append( '\'' );
-        sb.append( ", jdk='" ).append( jdk ).append( '\'' );
-        sb.append( ", memory='" ).append( memory ).append( '\'' );
-        sb.append( ", diskSpace='" ).append( diskSpace ).append( '\'' );
-        sb.append( ", others=" ).append( others );
-        sb.append( '}' );
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("Requirements{");
+        sb.append("maven='").append(maven).append('\'');
+        sb.append(", jdk='").append(jdk).append('\'');
+        sb.append(", memory='").append(memory).append('\'');
+        sb.append(", diskSpace='").append(diskSpace).append('\'');
+        sb.append(", others=").append(others);
+        sb.append('}');
         return sb.toString();
     }
 }
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/RequirementsHistory.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/RequirementsHistory.java
index 438d8d74..f79f7fd6 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/RequirementsHistory.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugin/plugin/report_old/RequirementsHistory.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin.report_old;
 
 /*
@@ -25,8 +43,7 @@ package org.apache.maven.plugin.plugin.report_old;
  * @author Slawomir Jaranowski
  */
 @Deprecated
-public class RequirementsHistory
-{
+public class RequirementsHistory {
     /**
      * The plugin version.
      */
@@ -42,29 +59,25 @@ public class RequirementsHistory
      */
     private String jdk;
 
-    public String getVersion()
-    {
+    public String getVersion() {
         return version;
     }
 
-    public String getMaven()
-    {
+    public String getMaven() {
         return maven;
     }
 
-    public String getJdk()
-    {
+    public String getJdk() {
         return jdk;
     }
 
     @Override
-    public String toString()
-    {
-        final StringBuilder sb = new StringBuilder( "RequirementsHistory{" );
-        sb.append( "version='" ).append( version ).append( '\'' );
-        sb.append( ", maven='" ).append( maven ).append( '\'' );
-        sb.append( ", jdk='" ).append( jdk ).append( '\'' );
-        sb.append( '}' );
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("RequirementsHistory{");
+        sb.append("version='").append(version).append('\'');
+        sb.append(", maven='").append(maven).append('\'');
+        sb.append(", jdk='").append(jdk).append('\'');
+        sb.append('}');
         return sb.toString();
     }
 }
diff --git a/maven-plugin-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor_old/EnhancedPluginDescriptorBuilder.java b/maven-plugin-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor_old/EnhancedPluginDescriptorBuilder.java
index 75515656..d3b74c0a 100644
--- a/maven-plugin-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor_old/EnhancedPluginDescriptorBuilder.java
+++ b/maven-plugin-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor_old/EnhancedPluginDescriptorBuilder.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.plugin.descriptor_old;
 
 /*
@@ -20,7 +38,6 @@ package org.apache.maven.plugins.plugin.descriptor_old;
  */
 
 import java.net.URI;
-
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
@@ -38,49 +55,44 @@ import org.codehaus.plexus.configuration.PlexusConfigurationException;
  * Populates the slightly extended {@link Parameter} object {@link EnhancedParameterWrapper}.
  */
 @Deprecated
-public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder
-{
+public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder {
     private final boolean requireAddingMissingParameterSinceField;
-    
-    public EnhancedPluginDescriptorBuilder( RuntimeInformation rtInfo )
-    {
-        this( rtInfo.isMavenVersion( "[,3.3.9]" ) );
+
+    public EnhancedPluginDescriptorBuilder(RuntimeInformation rtInfo) {
+        this(rtInfo.isMavenVersion("[,3.3.9]"));
     }
 
-    EnhancedPluginDescriptorBuilder( boolean requireAddingMissingParameterSinceField )
-    {
+    EnhancedPluginDescriptorBuilder(boolean requireAddingMissingParameterSinceField) {
         this.requireAddingMissingParameterSinceField = requireAddingMissingParameterSinceField;
     }
 
     @Override
-    public MojoDescriptor buildComponentDescriptor( PlexusConfiguration c, PluginDescriptor pluginDescriptor )
-        throws PlexusConfigurationException
-    {
-        MojoDescriptor mojoDescriptor = super.buildComponentDescriptor( c, pluginDescriptor );
-        
+    public MojoDescriptor buildComponentDescriptor(PlexusConfiguration c, PluginDescriptor pluginDescriptor)
+            throws PlexusConfigurationException {
+        MojoDescriptor mojoDescriptor = super.buildComponentDescriptor(c, pluginDescriptor);
+
         // ----------------------------------------------------------------------
         // Parameters
         // ----------------------------------------------------------------------
 
-        PlexusConfiguration[] parameterConfigurations = c.getChild( "parameters" ).getChildren( "parameter" );
+        PlexusConfiguration[] parameterConfigurations = c.getChild("parameters").getChildren("parameter");
 
-        for ( PlexusConfiguration d : parameterConfigurations )
-        {
-            String parameterName = d.getChild( "name" ).getValue();
-            // don't call getParameterMap() to not populate 
-            Parameter pd = mojoDescriptor.getParameterMap().get( parameterName );
-            if ( requireAddingMissingParameterSinceField )
-            {
-                addMissingParameterSinceField( pd, d );
+        for (PlexusConfiguration d : parameterConfigurations) {
+            String parameterName = d.getChild("name").getValue();
+            // don't call getParameterMap() to not populate
+            Parameter pd = mojoDescriptor.getParameterMap().get(parameterName);
+            if (requireAddingMissingParameterSinceField) {
+                addMissingParameterSinceField(pd, d);
             }
-            PlexusConfiguration configTypeJavadocUrl = d.getChild( "typeJavadocUrl", false );
-            if ( configTypeJavadocUrl != null )
-            {
+            PlexusConfiguration configTypeJavadocUrl = d.getChild("typeJavadocUrl", false);
+            if (configTypeJavadocUrl != null) {
                 String parameterTypeJavadocUrl = configTypeJavadocUrl.getValue();
-                EnhancedParameterWrapper enhancedParameter = new EnhancedParameterWrapper( pd );
-                enhancedParameter.setTypeJavadocUrl( URI.create( parameterTypeJavadocUrl ) );
-                mojoDescriptor.getParameters().set( mojoDescriptor.getParameters().indexOf( pd ), enhancedParameter );
-                mojoDescriptor.getParameterMap().put( parameterName, enhancedParameter );
+                EnhancedParameterWrapper enhancedParameter = new EnhancedParameterWrapper(pd);
+                enhancedParameter.setTypeJavadocUrl(URI.create(parameterTypeJavadocUrl));
+                mojoDescriptor
+                        .getParameters()
+                        .set(mojoDescriptor.getParameters().indexOf(pd), enhancedParameter);
+                mojoDescriptor.getParameterMap().put(parameterName, enhancedParameter);
             }
         }
         return mojoDescriptor;
@@ -90,15 +102,14 @@ public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder
      * Reads the plugin descriptor and adds the fix for <a href="https://issues.apache.org/jira/browse/MNG-6109">
      * MNG-6109</a> when using Maven-3.3.9 and before.
      * Method can be removed once Maven 3.5.0 is the prerequisite for this plugin.
-     * @throws PlexusConfigurationException 
-     * 
+     * @throws PlexusConfigurationException
+     *
      * @since 3.5.1
      * @see <a href="https://issues.apache.org/jira/browse/MNG-6109">MNG-6109</a>
      * @see <a href="https://issues.apache.org/jira/browse/MPLUGIN-319">MPLUGIN-319</a>
      */
-     void addMissingParameterSinceField( Parameter pd, PlexusConfiguration d ) throws PlexusConfigurationException
-     {
-         String parameterSince = d.getChild( "since" ).getValue();
-         pd.setSince( parameterSince );
-     }
+    void addMissingParameterSinceField(Parameter pd, PlexusConfiguration d) throws PlexusConfigurationException {
+        String parameterSince = d.getChild("since").getValue();
+        pd.setSince(parameterSince);
+    }
 }
diff --git a/maven-plugin-plugin/src/test/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojoTest.java b/maven-plugin-plugin/src/test/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojoTest.java
index 71444a61..f937ac7a 100644
--- a/maven-plugin-plugin/src/test/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojoTest.java
+++ b/maven-plugin-plugin/src/test/java/org/apache/maven/plugin/plugin/DescriptorGeneratorMojoTest.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin;
 
 /*
@@ -19,56 +37,46 @@ package org.apache.maven.plugin.plugin;
  * under the License.
  */
 
-import java.util.stream.Stream;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.params.provider.Arguments.arguments;
 
+import java.util.stream.Stream;
 import org.apache.maven.project.MavenProject;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.params.provider.Arguments.arguments;
-
 // at least one test class must be public for test-javadoc report
-public class DescriptorGeneratorMojoTest
-{
-    public static Stream<Arguments> goalPrefixes()
-    {
+public class DescriptorGeneratorMojoTest {
+    public static Stream<Arguments> goalPrefixes() {
         return Stream.of(
-            arguments( null, "maven-plugin-plugin", "plugin" ),
-            arguments( null, "maven-plugin-report-plugin", "plugin-report" ),
-            arguments( null, "maven-default-plugin", "default" ),
-            arguments( null, "default-maven-plugin", "default" ),
-            arguments( null, "default-maven-plugin", "default" ),
-            arguments( "foo.bar", "maven-plugin", "bar" ),
-            arguments( "foo", "maven-plugin", "foo" )
-        );
+                arguments(null, "maven-plugin-plugin", "plugin"),
+                arguments(null, "maven-plugin-report-plugin", "plugin-report"),
+                arguments(null, "maven-default-plugin", "default"),
+                arguments(null, "default-maven-plugin", "default"),
+                arguments(null, "default-maven-plugin", "default"),
+                arguments("foo.bar", "maven-plugin", "bar"),
+                arguments("foo", "maven-plugin", "foo"));
     }
 
     @ParameterizedTest
     @MethodSource("goalPrefixes")
-    void defaultGoalPrefix(String groupId, String artifactId, String expectedGoal)
-    {
-        assertThat( DescriptorGeneratorMojo.getDefaultGoalPrefix( newProject( groupId, artifactId ) ),
-                    is( expectedGoal ) );
+    void defaultGoalPrefix(String groupId, String artifactId, String expectedGoal) {
+        assertThat(DescriptorGeneratorMojo.getDefaultGoalPrefix(newProject(groupId, artifactId)), is(expectedGoal));
     }
-    
-    private MavenProject newProject( final String groupId, final String artifactId )
-    {
+
+    private MavenProject newProject(final String groupId, final String artifactId) {
         return new MavenProject() {
             @Override
-            public String getGroupId()
-            {
+            public String getGroupId() {
                 return groupId;
             }
-            
+
             @Override
-            public String getArtifactId()
-            {
+            public String getArtifactId() {
                 return artifactId;
             }
         };
     }
-
 }
diff --git a/maven-plugin-plugin/src/test/java/org/apache/maven/plugin/plugin/HelpGeneratorMojoTest.java b/maven-plugin-plugin/src/test/java/org/apache/maven/plugin/plugin/HelpGeneratorMojoTest.java
index 5d657091..18dbc7b4 100644
--- a/maven-plugin-plugin/src/test/java/org/apache/maven/plugin/plugin/HelpGeneratorMojoTest.java
+++ b/maven-plugin-plugin/src/test/java/org/apache/maven/plugin/plugin/HelpGeneratorMojoTest.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin;
 
 /*
@@ -19,45 +37,39 @@ package org.apache.maven.plugin.plugin;
  * under the License.
  */
 
-import java.util.stream.Stream;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import java.util.stream.Stream;
 import org.apache.maven.project.MavenProject;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-class HelpGeneratorMojoTest
-{
+class HelpGeneratorMojoTest {
 
-    public static Stream<Arguments> packageNameShouldBeCorrect()
-    {
+    public static Stream<Arguments> packageNameShouldBeCorrect() {
         return Stream.of(
-            Arguments.of( aProject( "groupId", "artifactId" ), "groupId.artifactId" ),
-            Arguments.of( aProject( "groupId", "123-artifactId" ), "groupId._123_artifactId" ),
-            Arguments.of( aProject( "group-Id", "artifact-Id" ), "group_Id.artifact_Id" ),
-            Arguments.of( aProject( "group-Id", "int" ), "group_Id._int" )
-        );
+                Arguments.of(aProject("groupId", "artifactId"), "groupId.artifactId"),
+                Arguments.of(aProject("groupId", "123-artifactId"), "groupId._123_artifactId"),
+                Arguments.of(aProject("group-Id", "artifact-Id"), "group_Id.artifact_Id"),
+                Arguments.of(aProject("group-Id", "int"), "group_Id._int"));
     }
 
     @ParameterizedTest
     @MethodSource
-    void packageNameShouldBeCorrect( MavenProject project, String expectedPackageName )
-    {
+    void packageNameShouldBeCorrect(MavenProject project, String expectedPackageName) {
         HelpGeneratorMojo mojo = new HelpGeneratorMojo();
         mojo.project = project;
 
         String packageName = mojo.getHelpPackageName();
-        assertEquals( expectedPackageName, packageName );
+        assertEquals(expectedPackageName, packageName);
     }
 
-    private static MavenProject aProject( String groupId, String artifactId )
-    {
+    private static MavenProject aProject(String groupId, String artifactId) {
 
         MavenProject mavenProject = new MavenProject();
-        mavenProject.setGroupId( groupId );
-        mavenProject.setArtifactId( artifactId );
+        mavenProject.setGroupId(groupId);
+        mavenProject.setArtifactId(artifactId);
         return mavenProject;
     }
 }
diff --git a/maven-plugin-report-plugin/pom.xml b/maven-plugin-report-plugin/pom.xml
index 0227f4fe..5ada8b43 100644
--- a/maven-plugin-report-plugin/pom.xml
+++ b/maven-plugin-report-plugin/pom.xml
@@ -1,4 +1,4 @@
-<?xml version='1.0' encoding='UTF-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   ~ Licensed to the Apache Software Foundation (ASF) under one
   ~ or more contributor license agreements.  See the NOTICE file
@@ -18,238 +18,236 @@
   ~ under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
+  <modelVersion>4.0.0</modelVersion>
 
-    <parent>
-        <artifactId>maven-plugin-tools</artifactId>
-        <groupId>org.apache.maven.plugin-tools</groupId>
-        <version>3.7.1-SNAPSHOT</version>
-    </parent>
+  <parent>
+    <groupId>org.apache.maven.plugin-tools</groupId>
+    <artifactId>maven-plugin-tools</artifactId>
+    <version>3.7.1-SNAPSHOT</version>
+  </parent>
 
-    <groupId>org.apache.maven.plugins</groupId>
-    <artifactId>maven-plugin-report-plugin</artifactId>
-    <packaging>maven-plugin</packaging>
+  <groupId>org.apache.maven.plugins</groupId>
+  <artifactId>maven-plugin-report-plugin</artifactId>
+  <packaging>maven-plugin</packaging>
 
-    <name>Maven Plugin Report Plugin</name>
-    <description>
-        The Plugin Report Plugin is used to create reports about the plugin being built.
-    </description>
+  <name>Maven Plugin Report Plugin</name>
+  <description>The Plugin Report Plugin is used to create reports about the plugin being built.</description>
 
-    <prerequisites>
-        <maven>${mavenVersion}</maven>
-    </prerequisites>
+  <prerequisites>
+    <maven>${mavenVersion}</maven>
+  </prerequisites>
 
-    <properties>
-        <it.debug>true</it.debug>
-    </properties>
+  <properties>
+    <it.debug>true</it.debug>
+  </properties>
 
-    <dependencies>
-        <!-- Maven -->
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-plugin-api</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.reporting</groupId>
-            <artifactId>maven-reporting-api</artifactId>
-            <version>${reportingApiVersion}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-model</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-artifact</artifactId>
-            <scope>provided</scope>
-        </dependency>
+  <dependencies>
+    <!-- Maven -->
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.reporting</groupId>
+      <artifactId>maven-reporting-api</artifactId>
+      <version>${reportingApiVersion}</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-model</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-artifact</artifactId>
+      <scope>provided</scope>
+    </dependency>
 
-        <!-- plugin tools -->
-        <dependency>
-            <groupId>org.apache.maven.plugin-tools</groupId>
-            <artifactId>maven-plugin-annotations</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.plugin-tools</groupId>
-            <artifactId>maven-plugin-tools-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.plugin-tools</groupId>
-            <artifactId>maven-plugin-tools-generators</artifactId>
-        </dependency>
+    <!-- plugin tools -->
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-annotations</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-tools-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-tools-generators</artifactId>
+    </dependency>
 
-        <!-- doxia -->
-        <dependency>
-            <groupId>org.apache.maven.doxia</groupId>
-            <artifactId>doxia-sink-api</artifactId>
-        </dependency>
+    <!-- doxia -->
+    <dependency>
+      <groupId>org.apache.maven.doxia</groupId>
+      <artifactId>doxia-sink-api</artifactId>
+    </dependency>
 
-        <!-- shared -->
-        <dependency>
-            <groupId>org.apache.maven.reporting</groupId>
-            <artifactId>maven-reporting-impl</artifactId>
-        </dependency>
+    <!-- shared -->
+    <dependency>
+      <groupId>org.apache.maven.reporting</groupId>
+      <artifactId>maven-reporting-impl</artifactId>
+    </dependency>
 
-        <!-- plexus -->
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>plexus-utils</artifactId>
-        </dependency>
+    <!-- plexus -->
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
 
-        <!-- tests -->
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <!-- Depenency is listed here because it's used in ITs -->
-        <dependency>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-plugin-plugin</artifactId>
-            <scope>test</scope>
-            <optional>true</optional>
-        </dependency>
-    </dependencies>
+    <!-- tests -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- Depenency is listed here because it's used in ITs -->
+    <dependency>
+      <groupId>org.apache.maven.plugins</groupId>
+      <artifactId>maven-plugin-plugin</artifactId>
+      <scope>test</scope>
+      <optional>true</optional>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+      </resource>
+      <resource>
+        <filtering>true</filtering>
+        <directory>src/main/filtered-resources</directory>
+      </resource>
+    </resources>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <configuration>
+            <excludes combine.children="append">
+              <!-- This file should exactly match the output of this project -->
+              <exclude>src/test/resources/plugin-enhanced.xml</exclude>
+            </excludes>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>ensure-no-container-api</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <bannedDependencies>
+                  <excludes>
+                    <exclude>org.codehaus.plexus:plexus-component-api</exclude>
+                  </excludes>
+                  <message>The new containers are not supported. You probably added a dependency that is missing the exclusions.</message>
+                </bannedDependencies>
+              </rules>
+              <fail>true</fail>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-plugin-plugin</artifactId>
+        <configuration>
+          <goalPrefix>plugin-report</goalPrefix>
+        </configuration>
+        <executions>
+          <execution>
+            <id>generated-helpmojo</id>
+            <goals>
+              <goal>helpmojo</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-            </resource>
-            <resource>
-                <directory>src/main/filtered-resources</directory>
-                <filtering>true</filtering>
-            </resource>
-        </resources>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.rat</groupId>
-                    <artifactId>apache-rat-plugin</artifactId>
-                    <configuration>
-                        <excludes combine.children="append">
-                            <!-- This file should exactly match the output of this project -->
-                            <exclude>src/test/resources/plugin-enhanced.xml</exclude>
-                        </excludes>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-plugin-report-plugin</artifactId>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+    </plugins>
+  </reporting>
+
+  <profiles>
+    <profile>
+      <id>reporting</id>
+      <reporting>
         <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <id>ensure-no-container-api</id>
-                        <configuration>
-                            <rules>
-                                <bannedDependencies>
-                                    <excludes>
-                                        <exclude>org.codehaus.plexus:plexus-component-api</exclude>
-                                    </excludes>
-                                    <message>The new containers are not supported. You probably added a dependency that is missing the exclusions.</message>
-                                </bannedDependencies>
-                            </rules>
-                            <fail>true</fail>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-plugin-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>generated-helpmojo</id>
-                        <goals>
-                            <goal>helpmojo</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <goalPrefix>plugin-report</goalPrefix>
-                </configuration>
-            </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+          </plugin>
         </plugins>
-    </build>
-
-    <reporting>
+      </reporting>
+    </profile>
+    <profile>
+      <id>run-its</id>
+      <build>
         <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-plugin-report-plugin</artifactId>
-                <reportSets>
-                    <reportSet>
-                        <reports>
-                            <report>report</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+            <configuration>
+              <projectsDirectory>src/it</projectsDirectory>
+              <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+              <preBuildHookScript>setup</preBuildHookScript>
+              <postBuildHookScript>verify</postBuildHookScript>
+              <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+              <settingsFile>src/it/settings.xml</settingsFile>
+              <streamLogsOnFailures>true</streamLogsOnFailures>
+              <filterProperties>
+                <sitePluginVersion>3.12.1</sitePluginVersion>
+                <projectInfoReportsPlugin>3.4.1</projectInfoReportsPlugin>
+                <antVersion>${antVersion}</antVersion>
+              </filterProperties>
+              <properties>
+                <maven.compiler.source>${maven.compiler.source}</maven.compiler.source>
+                <maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
+              </properties>
+            </configuration>
+            <executions>
+              <execution>
+                <id>integration-test</id>
+                <goals>
+                  <goal>install</goal>
+                  <goal>run</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
         </plugins>
-    </reporting>
-
-    <profiles>
-        <profile>
-            <id>reporting</id>
-            <reporting>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-invoker-plugin</artifactId>
-                    </plugin>
-                </plugins>
-            </reporting>
-        </profile>
-        <profile>
-            <id>run-its</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-invoker-plugin</artifactId>
-                        <configuration>
-                            <projectsDirectory>src/it</projectsDirectory>
-                            <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
-                            <preBuildHookScript>setup</preBuildHookScript>
-                            <postBuildHookScript>verify</postBuildHookScript>
-                            <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
-                            <settingsFile>src/it/settings.xml</settingsFile>
-                            <streamLogsOnFailures>true</streamLogsOnFailures>
-                            <filterProperties>
-                                <sitePluginVersion>3.12.1</sitePluginVersion>
-                                <projectInfoReportsPlugin>3.4.1</projectInfoReportsPlugin>
-                                <antVersion>${antVersion}</antVersion>
-                            </filterProperties>
-                            <properties>
-                                <maven.compiler.source>${maven.compiler.source}</maven.compiler.source>
-                                <maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
-                            </properties>
-                        </configuration>
-                        <executions>
-                            <execution>
-                                <id>integration-test</id>
-                                <goals>
-                                    <goal>install</goal>
-                                    <goal>run</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java
index 9eb7ac99..f69865fa 100644
--- a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java
+++ b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginReport.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin.report;
 
 /*
@@ -30,7 +48,6 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Optional;
 import java.util.ResourceBundle;
-
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.Prerequisites;
@@ -69,17 +86,15 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
  * @since 3.7.0
  */
-@Mojo( name = "report", threadSafe = true )
-@Execute( phase = LifecyclePhase.PROCESS_CLASSES )
-public class PluginReport
-    extends AbstractMavenReport
-{
+@Mojo(name = "report", threadSafe = true)
+@Execute(phase = LifecyclePhase.PROCESS_CLASSES)
+public class PluginReport extends AbstractMavenReport {
     /**
      * Report output directory for mojos' documentation.
      *
      * @since 3.7.0
      */
-    @Parameter( defaultValue = "${project.build.directory}/generated-site/xdoc" )
+    @Parameter(defaultValue = "${project.build.directory}/generated-site/xdoc")
     private File outputDirectory;
 
     /**
@@ -87,7 +102,7 @@ public class PluginReport
      *
      * @since 3.7.0
      */
-    @Parameter( defaultValue = "false", property = "maven.plugin.report.skip" )
+    @Parameter(defaultValue = "false", property = "maven.plugin.report.skip")
     private boolean skip;
 
     /**
@@ -96,7 +111,7 @@ public class PluginReport
      *
      * @since 3.7.0
      */
-    @Parameter( defaultValue = "false", property = "maven.plugin.report.hasExtensionsToLoad" )
+    @Parameter(defaultValue = "false", property = "maven.plugin.report.hasExtensionsToLoad")
     private boolean hasExtensionsToLoad;
 
     /**
@@ -127,8 +142,7 @@ public class PluginReport
      *
      * @since 3.7.0
      */
-    @Parameter( defaultValue = "${project.build.directory}/plugin-enhanced.xml", required = true,
-                readonly = true )
+    @Parameter(defaultValue = "${project.build.directory}/plugin-enhanced.xml", required = true, readonly = true)
     private File enhancedPluginXmlFile;
 
     /**
@@ -138,18 +152,17 @@ public class PluginReport
      * This might have the drawback that some links being generated in the report might be broken
      * in case not all parameter types and javadoc link references are resolvable through the sites being given to
      * goal {@code plugin:descriptor}.
-     * 
+     *
      * @since 3.7.0
      */
-    @Parameter( property = "maven.plugin.report.disableInternalJavadocLinkValidation" )
+    @Parameter(property = "maven.plugin.report.disableInternalJavadocLinkValidation")
     private boolean disableInternalJavadocLinkValidation;
 
     /**
      * {@inheritDoc}
      */
     @Override
-    protected String getOutputDirectory()
-    {
+    protected String getOutputDirectory() {
         // PLUGIN-191: output directory of plugin.html, not *-mojo.xml
         return project.getReporting().getOutputDirectory();
     }
@@ -158,8 +171,7 @@ public class PluginReport
      * {@inheritDoc}
      */
     @Override
-    public boolean canGenerateReport()
-    {
+    public boolean canGenerateReport() {
         return enhancedPluginXmlFile != null && enhancedPluginXmlFile.isFile() && enhancedPluginXmlFile.canRead();
     }
 
@@ -167,67 +179,54 @@ public class PluginReport
      * {@inheritDoc}
      */
     @Override
-    protected void executeReport( Locale locale )
-        throws MavenReportException
-    {
-        if ( skip  )
-        {
-            getLog().info( "Maven Plugin Plugin Report generation skipped." );
+    protected void executeReport(Locale locale) throws MavenReportException {
+        if (skip) {
+            getLog().info("Maven Plugin Plugin Report generation skipped.");
             return;
         }
 
         PluginDescriptor pluginDescriptor = extractPluginDescriptor();
 
         // Generate the mojos' documentation
-        generateMojosDocumentation( pluginDescriptor, locale );
+        generateMojosDocumentation(pluginDescriptor, locale);
 
         // Write the overview
-        PluginOverviewRenderer r =
-            new PluginOverviewRenderer( getProject(), requirementsHistories, getSink(),
-                                        pluginDescriptor, locale, hasExtensionsToLoad );
+        PluginOverviewRenderer r = new PluginOverviewRenderer(
+                getProject(), requirementsHistories, getSink(), pluginDescriptor, locale, hasExtensionsToLoad);
         r.render();
     }
 
-    private PluginDescriptor extractPluginDescriptor()
-        throws MavenReportException
-    {
-        PluginDescriptorBuilder builder = new EnhancedPluginDescriptorBuilder( rtInfo );
+    private PluginDescriptor extractPluginDescriptor() throws MavenReportException {
+        PluginDescriptorBuilder builder = new EnhancedPluginDescriptorBuilder(rtInfo);
 
-        try ( Reader input = new XmlStreamReader( Files.newInputStream( enhancedPluginXmlFile.toPath() ) ) )
-        {
-            return builder.build( input );
-        }
-        catch ( IOException | PlexusConfigurationException e )
-        {
-            throw new MavenReportException( "Error extracting plugin descriptor from " + enhancedPluginXmlFile, e );
+        try (Reader input = new XmlStreamReader(Files.newInputStream(enhancedPluginXmlFile.toPath()))) {
+            return builder.build(input);
+        } catch (IOException | PlexusConfigurationException e) {
+            throw new MavenReportException("Error extracting plugin descriptor from " + enhancedPluginXmlFile, e);
         }
-
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public String getDescription( Locale locale )
-    {
-        return getBundle( locale ).getString( "report.plugin.description" );
+    public String getDescription(Locale locale) {
+        return getBundle(locale).getString("report.plugin.description");
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public String getName( Locale locale )
-    {
-        return getBundle( locale ).getString( "report.plugin.name" );
+    public String getName(Locale locale) {
+        return getBundle(locale).getString("report.plugin.name");
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public String getOutputName()
-    {
+    public String getOutputName() {
         return "plugin-info";
     }
 
@@ -238,42 +237,34 @@ public class PluginReport
      * @param locale           not null
      * @throws MavenReportException if any
      */
-    private void generateMojosDocumentation( PluginDescriptor pluginDescriptor, Locale locale )
-        throws MavenReportException
-    {
-        try
-        {
+    private void generateMojosDocumentation(PluginDescriptor pluginDescriptor, Locale locale)
+            throws MavenReportException {
+        try {
             File outputDir = outputDirectory;
             outputDir.mkdirs();
 
-            PluginXdocGenerator generator = new PluginXdocGenerator( getProject(), locale, getReportOutputDirectory(),
-                                                                     disableInternalJavadocLinkValidation );
-            PluginToolsRequest pluginToolsRequest = new DefaultPluginToolsRequest( getProject(), pluginDescriptor );
-            generator.execute( outputDir, pluginToolsRequest );
-        }
-        catch ( GeneratorException e )
-        {
-            throw new MavenReportException( "Error writing plugin documentation", e );
+            PluginXdocGenerator generator = new PluginXdocGenerator(
+                    getProject(), locale, getReportOutputDirectory(), disableInternalJavadocLinkValidation);
+            PluginToolsRequest pluginToolsRequest = new DefaultPluginToolsRequest(getProject(), pluginDescriptor);
+            generator.execute(outputDir, pluginToolsRequest);
+        } catch (GeneratorException e) {
+            throw new MavenReportException("Error writing plugin documentation", e);
         }
-
     }
 
     /**
      * @param locale not null
      * @return the bundle for this report
      */
-    protected static ResourceBundle getBundle( Locale locale )
-    {
-        return ResourceBundle.getBundle( "plugin-report", locale, PluginReport.class.getClassLoader() );
+    protected static ResourceBundle getBundle(Locale locale) {
+        return ResourceBundle.getBundle("plugin-report", locale, PluginReport.class.getClassLoader());
     }
 
     /**
      * Generates an overview page with the list of goals
      * and a link to the goal's page.
      */
-    static class PluginOverviewRenderer
-        extends AbstractMavenReportRenderer
-    {
+    static class PluginOverviewRenderer extends AbstractMavenReportRenderer {
         private final MavenProject project;
 
         private final List<RequirementsHistory> requirementsHistories;
@@ -291,11 +282,14 @@ public class PluginReport
          * @param pluginDescriptor      not null
          * @param locale                not null
          */
-        PluginOverviewRenderer( MavenProject project,
-                                List<RequirementsHistory> requirementsHistories, Sink sink,
-                                PluginDescriptor pluginDescriptor, Locale locale, boolean hasExtensionsToLoad )
-        {
-            super( sink );
+        PluginOverviewRenderer(
+                MavenProject project,
+                List<RequirementsHistory> requirementsHistories,
+                Sink sink,
+                PluginDescriptor pluginDescriptor,
+                Locale locale,
+                boolean hasExtensionsToLoad) {
+            super(sink);
 
             this.project = project;
 
@@ -312,58 +306,50 @@ public class PluginReport
          * {@inheritDoc}
          */
         @Override
-        public String getTitle()
-        {
-            return getBundle( locale ).getString( "report.plugin.title" );
+        public String getTitle() {
+            return getBundle(locale).getString("report.plugin.title");
         }
 
         /**
          * {@inheritDoc}
          */
         @Override
-        public void renderBody()
-        {
-            startSection( getTitle() );
+        public void renderBody() {
+            startSection(getTitle());
 
-            if ( !( pluginDescriptor.getMojos() != null && pluginDescriptor.getMojos().size() > 0 ) )
-            {
-                paragraph( getBundle( locale ).getString( "report.plugin.goals.nogoal" ) );
+            if (!(pluginDescriptor.getMojos() != null
+                    && pluginDescriptor.getMojos().size() > 0)) {
+                paragraph(getBundle(locale).getString("report.plugin.goals.nogoal"));
                 endSection();
                 return;
             }
 
-            paragraph( getBundle( locale ).getString( "report.plugin.goals.intro" ) );
+            paragraph(getBundle(locale).getString("report.plugin.goals.intro"));
 
             boolean hasMavenReport = false;
-            for ( Iterator<MojoDescriptor> i = pluginDescriptor.getMojos().iterator(); i.hasNext(); )
-            {
+            for (Iterator<MojoDescriptor> i = pluginDescriptor.getMojos().iterator(); i.hasNext(); ) {
                 MojoDescriptor mojo = i.next();
 
-                if ( GeneratorUtils.isMavenReport( mojo.getImplementation(), project ) )
-                {
+                if (GeneratorUtils.isMavenReport(mojo.getImplementation(), project)) {
                     hasMavenReport = true;
                 }
             }
 
             startTable();
 
-            String goalColumnName = getBundle( locale ).getString( "report.plugin.goals.column.goal" );
-            String isMavenReport = getBundle( locale ).getString( "report.plugin.goals.column.isMavenReport" );
-            String descriptionColumnName = getBundle( locale ).getString( "report.plugin.goals.column.description" );
-            if ( hasMavenReport )
-            {
-                tableHeader( new String[] {goalColumnName, isMavenReport, descriptionColumnName} );
-            }
-            else
-            {
-                tableHeader( new String[] {goalColumnName, descriptionColumnName} );
+            String goalColumnName = getBundle(locale).getString("report.plugin.goals.column.goal");
+            String isMavenReport = getBundle(locale).getString("report.plugin.goals.column.isMavenReport");
+            String descriptionColumnName = getBundle(locale).getString("report.plugin.goals.column.description");
+            if (hasMavenReport) {
+                tableHeader(new String[] {goalColumnName, isMavenReport, descriptionColumnName});
+            } else {
+                tableHeader(new String[] {goalColumnName, descriptionColumnName});
             }
 
             List<MojoDescriptor> mojos = new ArrayList<>();
-            mojos.addAll( pluginDescriptor.getMojos() );
-            PluginUtils.sortMojos( mojos );
-            for ( MojoDescriptor mojo : mojos )
-            {
+            mojos.addAll(pluginDescriptor.getMojos());
+            PluginUtils.sortMojos(mojos);
+            for (MojoDescriptor mojo : mojos) {
                 String goalName = mojo.getFullGoalName();
 
                 /*
@@ -373,63 +359,53 @@ public class PluginReport
                 String goalDocumentationLink = "./" + mojo.getGoal() + "-mojo.html";
 
                 String description;
-                if ( StringUtils.isNotEmpty( mojo.getDeprecated() ) )
-                {
-                    description =
-                        "<strong>" + getBundle( locale ).getString( "report.plugin.goal.deprecated" ) + "</strong> "
-                            + mojo.getDeprecated();
-                }
-                else if ( StringUtils.isNotEmpty( mojo.getDescription() ) )
-                {
+                if (StringUtils.isNotEmpty(mojo.getDeprecated())) {
+                    description = "<strong>" + getBundle(locale).getString("report.plugin.goal.deprecated")
+                            + "</strong> " + mojo.getDeprecated();
+                } else if (StringUtils.isNotEmpty(mojo.getDescription())) {
                     description = mojo.getDescription();
-                }
-                else
-                {
-                    description = getBundle( locale ).getString( "report.plugin.goal.nodescription" );
+                } else {
+                    description = getBundle(locale).getString("report.plugin.goal.nodescription");
                 }
 
                 sink.tableRow();
-                tableCell( createLinkPatternedText( goalName, goalDocumentationLink ) );
-                if ( hasMavenReport )
-                {
-                    if ( GeneratorUtils.isMavenReport( mojo.getImplementation(), project ) )
-                    {
+                tableCell(createLinkPatternedText(goalName, goalDocumentationLink));
+                if (hasMavenReport) {
+                    if (GeneratorUtils.isMavenReport(mojo.getImplementation(), project)) {
                         sink.tableCell();
-                        sink.text( getBundle( locale ).getString( "report.plugin.isReport" ) );
+                        sink.text(getBundle(locale).getString("report.plugin.isReport"));
                         sink.tableCell_();
-                    }
-                    else
-                    {
+                    } else {
                         sink.tableCell();
-                        sink.text( getBundle( locale ).getString( "report.plugin.isNotReport" ) );
+                        sink.text(getBundle(locale).getString("report.plugin.isNotReport"));
                         sink.tableCell_();
                     }
                 }
-                tableCell( description, true );
+                tableCell(description, true);
                 sink.tableRow_();
             }
 
             endTable();
 
-            startSection( getBundle( locale ).getString( "report.plugin.systemrequirements" ) );
+            startSection(getBundle(locale).getString("report.plugin.systemrequirements"));
 
-            paragraph( getBundle( locale ).getString( "report.plugin.systemrequirements.intro" ) );
+            paragraph(getBundle(locale).getString("report.plugin.systemrequirements.intro"));
 
             startTable();
 
-            String maven = discoverMavenRequirement( project, pluginDescriptor );
+            String maven = discoverMavenRequirement(project, pluginDescriptor);
             sink.tableRow();
-            tableCell( getBundle( locale ).getString( "report.plugin.systemrequirements.maven" ) );
-            tableCell( ( maven != null
-                ? maven
-                : getBundle( locale ).getString( "report.plugin.systemrequirements.nominimum" ) ) );
+            tableCell(getBundle(locale).getString("report.plugin.systemrequirements.maven"));
+            tableCell(
+                    (maven != null
+                            ? maven
+                            : getBundle(locale).getString("report.plugin.systemrequirements.nominimum")));
             sink.tableRow_();
 
-            String jdk = discoverJdkRequirement( project, pluginDescriptor );
+            String jdk = discoverJdkRequirement(project, pluginDescriptor);
             sink.tableRow();
-            tableCell( getBundle( locale ).getString( "report.plugin.systemrequirements.jdk" ) );
-            tableCell(
-                ( jdk != null ? jdk : getBundle( locale ).getString( "report.plugin.systemrequirements.nominimum" ) ) );
+            tableCell(getBundle(locale).getString("report.plugin.systemrequirements.jdk"));
+            tableCell((jdk != null ? jdk : getBundle(locale).getString("report.plugin.systemrequirements.nominimum")));
             sink.tableRow_();
 
             endTable();
@@ -438,37 +414,33 @@ public class PluginReport
 
             renderRequirementsHistories();
 
-            renderUsageSection( hasMavenReport );
+            renderUsageSection(hasMavenReport);
 
             endSection();
         }
 
-        private void renderRequirementsHistories()
-        {
-            if ( requirementsHistories.isEmpty() )
-            {
+        private void renderRequirementsHistories() {
+            if (requirementsHistories.isEmpty()) {
                 return;
             }
 
-            startSection( getBundle( locale ).getString( "report.plugin.systemrequirements.history" ) );
-            paragraph( getBundle( locale ).getString( "report.plugin.systemrequirements.history.intro" ) );
+            startSection(getBundle(locale).getString("report.plugin.systemrequirements.history"));
+            paragraph(getBundle(locale).getString("report.plugin.systemrequirements.history.intro"));
 
             startTable();
-            tableHeader( new String[] {
-                getBundle( locale ).getString( "report.plugin.systemrequirements.history.version" ),
-                getBundle( locale ).getString( "report.plugin.systemrequirements.history.maven" ),
-                getBundle( locale ).getString( "report.plugin.systemrequirements.history.jdk" )
-            } );
-
-            requirementsHistories.forEach(
-                requirementsHistory ->
-                {
-                    sink.tableRow();
-                    tableCell( requirementsHistory.getVersion() );
-                    tableCell( requirementsHistory.getMaven() );
-                    tableCell( requirementsHistory.getJdk() );
-                    sink.tableRow_();
-                } );
+            tableHeader(new String[] {
+                getBundle(locale).getString("report.plugin.systemrequirements.history.version"),
+                getBundle(locale).getString("report.plugin.systemrequirements.history.maven"),
+                getBundle(locale).getString("report.plugin.systemrequirements.history.jdk")
+            });
+
+            requirementsHistories.forEach(requirementsHistory -> {
+                sink.tableRow();
+                tableCell(requirementsHistory.getVersion());
+                tableCell(requirementsHistory.getMaven());
+                tableCell(requirementsHistory.getJdk());
+                sink.tableRow_();
+            });
             endTable();
 
             endSection();
@@ -479,103 +451,111 @@ public class PluginReport
          *
          * @param hasMavenReport If the plugin has a report or not
          */
-        private void renderUsageSection( boolean hasMavenReport )
-        {
-            startSection( getBundle( locale ).getString( "report.plugin.usage" ) );
+        private void renderUsageSection(boolean hasMavenReport) {
+            startSection(getBundle(locale).getString("report.plugin.usage"));
 
             // Configuration
             sink.paragraph();
-            text( getBundle( locale ).getString( "report.plugin.usage.intro" ) );
+            text(getBundle(locale).getString("report.plugin.usage.intro"));
             sink.paragraph_();
 
             StringBuilder sb = new StringBuilder();
-            sb.append( "<project>" ).append( '\n' );
-            sb.append( "  ..." ).append( '\n' );
-            sb.append( "  <build>" ).append( '\n' );
-            sb.append(
-                "    <!-- " + getBundle( locale ).getString( "report.plugin.usage.pluginManagement" ) + " -->" ).append(
-                '\n' );
-            sb.append( "    <pluginManagement>" ).append( '\n' );
-            sb.append( "      <plugins>" ).append( '\n' );
-            sb.append( "        <plugin>" ).append( '\n' );
-            sb.append( "          <groupId>" ).append( pluginDescriptor.getGroupId() ).append( "</groupId>" ).append(
-                '\n' );
-            sb.append( "          <artifactId>" ).append( pluginDescriptor.getArtifactId() ).append(
-                "</artifactId>" ).append( '\n' );
-            sb.append( "          <version>" ).append( pluginDescriptor.getVersion() ).append( "</version>" ).append(
-                '\n' );
-            if ( hasExtensionsToLoad )
-            {
-                sb.append( "          <extensions>true</extensions>" ).append(
-                    '\n' );
+            sb.append("<project>").append('\n');
+            sb.append("  ...").append('\n');
+            sb.append("  <build>").append('\n');
+            sb.append("    <!-- " + getBundle(locale).getString("report.plugin.usage.pluginManagement") + " -->")
+                    .append('\n');
+            sb.append("    <pluginManagement>").append('\n');
+            sb.append("      <plugins>").append('\n');
+            sb.append("        <plugin>").append('\n');
+            sb.append("          <groupId>")
+                    .append(pluginDescriptor.getGroupId())
+                    .append("</groupId>")
+                    .append('\n');
+            sb.append("          <artifactId>")
+                    .append(pluginDescriptor.getArtifactId())
+                    .append("</artifactId>")
+                    .append('\n');
+            sb.append("          <version>")
+                    .append(pluginDescriptor.getVersion())
+                    .append("</version>")
+                    .append('\n');
+            if (hasExtensionsToLoad) {
+                sb.append("          <extensions>true</extensions>").append('\n');
             }
-            sb.append( "        </plugin>" ).append( '\n' );
-            sb.append( "        ..." ).append( '\n' );
-            sb.append( "      </plugins>" ).append( '\n' );
-            sb.append( "    </pluginManagement>" ).append( '\n' );
-            sb.append( "    <!-- " + getBundle( locale ).getString( "report.plugin.usage.plugins" ) + " -->" ).append(
-                '\n' );
-            sb.append( "    <plugins>" ).append( '\n' );
-            sb.append( "      <plugin>" ).append( '\n' );
-            sb.append( "        <groupId>" ).append( pluginDescriptor.getGroupId() ).append( "</groupId>" ).append(
-                '\n' );
-            sb.append( "        <artifactId>" ).append( pluginDescriptor.getArtifactId() ).append(
-                "</artifactId>" ).append( '\n' );
-            sb.append( "      </plugin>" ).append( '\n' );
-            sb.append( "      ..." ).append( '\n' );
-            sb.append( "    </plugins>" ).append( '\n' );
-            sb.append( "  </build>" ).append( '\n' );
-
-            if ( hasMavenReport )
-            {
-                sb.append( "  ..." ).append( '\n' );
-                sb.append(
-                    "  <!-- " + getBundle( locale ).getString( "report.plugin.usage.reporting" ) + " -->" ).append(
-                    '\n' );
-                sb.append( "  <reporting>" ).append( '\n' );
-                sb.append( "    <plugins>" ).append( '\n' );
-                sb.append( "      <plugin>" ).append( '\n' );
-                sb.append( "        <groupId>" ).append( pluginDescriptor.getGroupId() ).append( "</groupId>" ).append(
-                    '\n' );
-                sb.append( "        <artifactId>" ).append( pluginDescriptor.getArtifactId() ).append(
-                    "</artifactId>" ).append( '\n' );
-                sb.append( "        <version>" ).append( pluginDescriptor.getVersion() ).append( "</version>" ).append(
-                    '\n' );
-                sb.append( "      </plugin>" ).append( '\n' );
-                sb.append( "      ..." ).append( '\n' );
-                sb.append( "    </plugins>" ).append( '\n' );
-                sb.append( "  </reporting>" ).append( '\n' );
+            sb.append("        </plugin>").append('\n');
+            sb.append("        ...").append('\n');
+            sb.append("      </plugins>").append('\n');
+            sb.append("    </pluginManagement>").append('\n');
+            sb.append("    <!-- " + getBundle(locale).getString("report.plugin.usage.plugins") + " -->")
+                    .append('\n');
+            sb.append("    <plugins>").append('\n');
+            sb.append("      <plugin>").append('\n');
+            sb.append("        <groupId>")
+                    .append(pluginDescriptor.getGroupId())
+                    .append("</groupId>")
+                    .append('\n');
+            sb.append("        <artifactId>")
+                    .append(pluginDescriptor.getArtifactId())
+                    .append("</artifactId>")
+                    .append('\n');
+            sb.append("      </plugin>").append('\n');
+            sb.append("      ...").append('\n');
+            sb.append("    </plugins>").append('\n');
+            sb.append("  </build>").append('\n');
+
+            if (hasMavenReport) {
+                sb.append("  ...").append('\n');
+                sb.append("  <!-- " + getBundle(locale).getString("report.plugin.usage.reporting") + " -->")
+                        .append('\n');
+                sb.append("  <reporting>").append('\n');
+                sb.append("    <plugins>").append('\n');
+                sb.append("      <plugin>").append('\n');
+                sb.append("        <groupId>")
+                        .append(pluginDescriptor.getGroupId())
+                        .append("</groupId>")
+                        .append('\n');
+                sb.append("        <artifactId>")
+                        .append(pluginDescriptor.getArtifactId())
+                        .append("</artifactId>")
+                        .append('\n');
+                sb.append("        <version>")
+                        .append(pluginDescriptor.getVersion())
+                        .append("</version>")
+                        .append('\n');
+                sb.append("      </plugin>").append('\n');
+                sb.append("      ...").append('\n');
+                sb.append("    </plugins>").append('\n');
+                sb.append("  </reporting>").append('\n');
             }
 
-            sb.append( "  ..." ).append( '\n' );
-            sb.append( "</project>" ).append( '\n' );
+            sb.append("  ...").append('\n');
+            sb.append("</project>").append('\n');
 
-            verbatimText( sb.toString() );
+            verbatimText(sb.toString());
 
             sink.paragraph();
-            linkPatternedText( getBundle( locale ).getString( "report.plugin.configuration.end" ) );
+            linkPatternedText(getBundle(locale).getString("report.plugin.configuration.end"));
             sink.paragraph_();
 
             endSection();
         }
 
         /**
-         * Tries to determine the Maven requirement from either the plugin descriptor or (if not set) from the 
+         * 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() ) )
-            {
+        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 );
+            return Optional.ofNullable(project.getPrerequisites())
+                    .map(Prerequisites::getMaven)
+                    .orElse(null);
         }
 
         /**
@@ -592,76 +572,62 @@ public class PluginReport
          * @param pluginDescriptor the plugin descriptor (not null)
          * @return the JDK version
          */
-        private static String discoverJdkRequirement( MavenProject project, PluginDescriptor pluginDescriptor )
-        {
+        private static String discoverJdkRequirement(MavenProject project, PluginDescriptor pluginDescriptor) {
             String jdk = null;
-            if ( pluginDescriptor instanceof ExtendedPluginDescriptor )
-            {
+            if (pluginDescriptor instanceof ExtendedPluginDescriptor) {
                 ExtendedPluginDescriptor extPluginDescriptor = (ExtendedPluginDescriptor) pluginDescriptor;
                 jdk = extPluginDescriptor.getRequiredJavaVersion();
             }
-            if ( jdk != null )
-            {
+            if (jdk != null) {
                 return jdk;
             }
-            Plugin compiler = getCompilerPlugin( project.getBuild().getPluginsAsMap() );
-            if ( compiler == null )
-            {
-                compiler = getCompilerPlugin( project.getPluginManagement().getPluginsAsMap() );
+            Plugin compiler = getCompilerPlugin(project.getBuild().getPluginsAsMap());
+            if (compiler == null) {
+                compiler = getCompilerPlugin(project.getPluginManagement().getPluginsAsMap());
             }
 
-            jdk = getPluginParameter( compiler, "release" );
-            if ( jdk != null )
-            {
+            jdk = getPluginParameter(compiler, "release");
+            if (jdk != null) {
                 return jdk;
             }
 
-            jdk = project.getProperties().getProperty( "maven.compiler.release" );
-            if ( jdk != null )
-            {
+            jdk = project.getProperties().getProperty("maven.compiler.release");
+            if (jdk != null) {
                 return jdk;
             }
 
-            jdk = getPluginParameter( compiler, "target" );
-            if ( jdk != null )
-            {
+            jdk = getPluginParameter(compiler, "target");
+            if (jdk != null) {
                 return jdk;
             }
 
             // default value
-            jdk = project.getProperties().getProperty( "maven.compiler.target" );
-            if ( jdk != null )
-            {
+            jdk = project.getProperties().getProperty("maven.compiler.target");
+            if (jdk != null) {
                 return jdk;
             }
 
-            String version = ( compiler == null ) ? null : compiler.getVersion();
+            String version = (compiler == null) ? null : compiler.getVersion();
 
-            if ( version != null )
-            {
+            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 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 )
-            {
+        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 (pluginConf != null) {
+                    Xpp3Dom target = pluginConf.getChild(parameter);
 
-                    if ( target != null )
-                    {
+                    if (target != null) {
                         return target.getValue();
                     }
                 }
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 ec3955a4..c3044158 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
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugin.plugin.report;
 
 /*
@@ -24,8 +42,7 @@ package org.apache.maven.plugin.plugin.report;
  *
  * @author Slawomir Jaranowski
  */
-public class RequirementsHistory
-{
+public class RequirementsHistory {
     /**
      * The plugin version.
      */
@@ -41,29 +58,25 @@ public class RequirementsHistory
      */
     private String jdk;
 
-    public String getVersion()
-    {
+    public String getVersion() {
         return version;
     }
 
-    public String getMaven()
-    {
+    public String getMaven() {
         return maven;
     }
 
-    public String getJdk()
-    {
+    public String getJdk() {
         return jdk;
     }
 
     @Override
-    public String toString()
-    {
-        final StringBuilder sb = new StringBuilder( "RequirementsHistory{" );
-        sb.append( "version='" ).append( version ).append( '\'' );
-        sb.append( ", maven='" ).append( maven ).append( '\'' );
-        sb.append( ", jdk='" ).append( jdk ).append( '\'' );
-        sb.append( '}' );
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("RequirementsHistory{");
+        sb.append("version='").append(version).append('\'');
+        sb.append(", maven='").append(maven).append('\'');
+        sb.append(", jdk='").append(jdk).append('\'');
+        sb.append('}');
         return sb.toString();
     }
 }
diff --git a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
index 5d742790..f695001b 100644
--- a/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
+++ b/maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.plugin.descriptor;
 
 /*
@@ -19,23 +37,22 @@ package org.apache.maven.plugins.plugin.descriptor;
  * under the License.
  */
 
+import java.io.Reader;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.plugin.descriptor.PluginDescriptorBuilder;
+import org.apache.maven.plugin.plugin.report.PluginReport;
 import org.apache.maven.rtinfo.RuntimeInformation;
 import org.apache.maven.tools.plugin.EnhancedParameterWrapper;
 import org.apache.maven.tools.plugin.ExtendedPluginDescriptor;
 import org.codehaus.plexus.configuration.PlexusConfiguration;
 import org.codehaus.plexus.configuration.PlexusConfigurationException;
-import org.apache.maven.plugin.plugin.report.PluginReport;
-
-import java.io.Reader;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * Reads enhanced plugin.xml files as generated by
@@ -44,18 +61,15 @@ import java.util.Map;
  * Populates the slightly extended {@link Parameter} object {@link EnhancedParameterWrapper}.
  * In addition populates all (optional) elements added after Maven Plugin API 3.2.5.
  */
-public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder
-{
+public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder {
     private final boolean requireAddingMissingParameterSinceField;
     private PlexusConfiguration configuration;
 
-    public EnhancedPluginDescriptorBuilder( RuntimeInformation rtInfo )
-    {
-        this( rtInfo.isMavenVersion( "[,3.3.9]" ) );
+    public EnhancedPluginDescriptorBuilder(RuntimeInformation rtInfo) {
+        this(rtInfo.isMavenVersion("[,3.3.9]"));
     }
 
-    EnhancedPluginDescriptorBuilder( boolean requireAddingMissingParameterSinceField )
-    {
+    EnhancedPluginDescriptorBuilder(boolean requireAddingMissingParameterSinceField) {
         this.requireAddingMissingParameterSinceField = requireAddingMissingParameterSinceField;
     }
 
@@ -63,67 +77,61 @@ public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder
      * Cache the returned configuration for additional evaluation in {@link #build(Reader, String)}.
      */
     @Override
-    public PlexusConfiguration buildConfiguration( Reader reader )
-        throws PlexusConfigurationException
-    {
-        configuration = super.buildConfiguration( reader );
+    public PlexusConfiguration buildConfiguration(Reader reader) throws PlexusConfigurationException {
+        configuration = super.buildConfiguration(reader);
         return configuration;
     }
 
     @Override
-    public PluginDescriptor build( Reader reader, String source )
-        throws PlexusConfigurationException
-    {
-        PluginDescriptor pluginDescriptor = super.build( reader, source );
+    public PluginDescriptor build(Reader reader, String source) throws PlexusConfigurationException {
+        PluginDescriptor pluginDescriptor = super.build(reader, source);
         // elements added in plugin descriptor 1.1
-        ExtendedPluginDescriptor extendedPluginDescriptor = new ExtendedPluginDescriptor( pluginDescriptor );
-        extendedPluginDescriptor.setRequiredJavaVersion( configuration.getChild( "requiredJavaVersion" ).getValue() );
-        extendedPluginDescriptor.setRequiredMavenVersion( configuration.getChild( "requiredMavenVersion" ).getValue() );
+        ExtendedPluginDescriptor extendedPluginDescriptor = new ExtendedPluginDescriptor(pluginDescriptor);
+        extendedPluginDescriptor.setRequiredJavaVersion(
+                configuration.getChild("requiredJavaVersion").getValue());
+        extendedPluginDescriptor.setRequiredMavenVersion(
+                configuration.getChild("requiredMavenVersion").getValue());
         return extendedPluginDescriptor;
     }
 
     @Override
-    public MojoDescriptor buildComponentDescriptor( PlexusConfiguration c, PluginDescriptor pluginDescriptor )
-        throws PlexusConfigurationException
-    {
-        MojoDescriptor mojoDescriptor = super.buildComponentDescriptor( c, pluginDescriptor );
-        
+    public MojoDescriptor buildComponentDescriptor(PlexusConfiguration c, PluginDescriptor pluginDescriptor)
+            throws PlexusConfigurationException {
+        MojoDescriptor mojoDescriptor = super.buildComponentDescriptor(c, pluginDescriptor);
+
         // ----------------------------------------------------------------------
         // Parameters
         // ----------------------------------------------------------------------
 
-        PlexusConfiguration[] parameterConfigurations = c.getChild( "parameters" ).getChildren( "parameter" );
+        PlexusConfiguration[] parameterConfigurations = c.getChild("parameters").getChildren("parameter");
 
-        List<Parameter> parameters = new ArrayList<>( mojoDescriptor.getParameters() );
-        Map<String, Parameter> parameterMap = new LinkedHashMap<>( mojoDescriptor.getParameterMap() );
+        List<Parameter> parameters = new ArrayList<>(mojoDescriptor.getParameters());
+        Map<String, Parameter> parameterMap = new LinkedHashMap<>(mojoDescriptor.getParameterMap());
 
-        for ( PlexusConfiguration d : parameterConfigurations )
-        {
-            String parameterName = d.getChild( "name" ).getValue();
-            // don't call getParameterMap() to not populate 
-            Parameter pd = parameterMap.get( parameterName );
-            if ( requireAddingMissingParameterSinceField )
-            {
-                addMissingParameterSinceField( pd, d );
+        for (PlexusConfiguration d : parameterConfigurations) {
+            String parameterName = d.getChild("name").getValue();
+            // don't call getParameterMap() to not populate
+            Parameter pd = parameterMap.get(parameterName);
+            if (requireAddingMissingParameterSinceField) {
+                addMissingParameterSinceField(pd, d);
             }
-            PlexusConfiguration configTypeJavadocUrl = d.getChild( "typeJavadocUrl", false );
-            if ( configTypeJavadocUrl != null )
-            {
+            PlexusConfiguration configTypeJavadocUrl = d.getChild("typeJavadocUrl", false);
+            if (configTypeJavadocUrl != null) {
                 String parameterTypeJavadocUrl = configTypeJavadocUrl.getValue();
-                EnhancedParameterWrapper enhancedParameter = new EnhancedParameterWrapper( pd );
-                enhancedParameter.setTypeJavadocUrl( URI.create( parameterTypeJavadocUrl ) );
-                parameters.set( mojoDescriptor.getParameters().indexOf( pd ), enhancedParameter );
-                parameterMap.put( parameterName, enhancedParameter );
+                EnhancedParameterWrapper enhancedParameter = new EnhancedParameterWrapper(pd);
+                enhancedParameter.setTypeJavadocUrl(URI.create(parameterTypeJavadocUrl));
+                parameters.set(mojoDescriptor.getParameters().indexOf(pd), enhancedParameter);
+                parameterMap.put(parameterName, enhancedParameter);
             }
         }
 
         // clear() is required for maven < 3.6.2
         mojoDescriptor.getParameters().clear();
         // set parameters
-        mojoDescriptor.setParameters( parameters );
+        mojoDescriptor.setParameters(parameters);
         // on maven < 3.6.2, getParameterMap is kept internally in a field
         // so update it in case we're on an old maven version
-        mojoDescriptor.getParameterMap().putAll( parameterMap );
+        mojoDescriptor.getParameterMap().putAll(parameterMap);
 
         return mojoDescriptor;
     }
@@ -132,15 +140,14 @@ public class EnhancedPluginDescriptorBuilder extends PluginDescriptorBuilder
      * Reads the plugin descriptor and adds the fix for <a href="https://issues.apache.org/jira/browse/MNG-6109">
      * MNG-6109</a> when using Maven-3.3.9 and before.
      * Method can be removed once Maven 3.5.0 is the prerequisite for this plugin.
-     * @throws PlexusConfigurationException 
-     * 
+     * @throws PlexusConfigurationException
+     *
      * @since 3.5.1
      * @see <a href="https://issues.apache.org/jira/browse/MNG-6109">MNG-6109</a>
      * @see <a href="https://issues.apache.org/jira/browse/MPLUGIN-319">MPLUGIN-319</a>
      */
-     void addMissingParameterSinceField( Parameter pd, PlexusConfiguration d ) throws PlexusConfigurationException
-     {
-         String parameterSince = d.getChild( "since" ).getValue();
-         pd.setSince( parameterSince );
-     }
+    void addMissingParameterSinceField(Parameter pd, PlexusConfiguration d) throws PlexusConfigurationException {
+        String parameterSince = d.getChild("since").getValue();
+        pd.setSince(parameterSince);
+    }
 }
diff --git a/maven-plugin-report-plugin/src/test/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilderTest.java b/maven-plugin-report-plugin/src/test/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilderTest.java
index 55f116ef..dd792aba 100644
--- a/maven-plugin-report-plugin/src/test/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilderTest.java
+++ b/maven-plugin-report-plugin/src/test/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilderTest.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.plugins.plugin.descriptor;
 
 /*
@@ -24,7 +42,6 @@ import java.io.InputStream;
 import java.io.Reader;
 import java.net.URI;
 import java.util.Objects;
-
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
 import org.apache.maven.plugin.descriptor.Parameter;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
@@ -34,50 +51,46 @@ import org.codehaus.plexus.util.xml.XmlStreamReader;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-public class EnhancedPluginDescriptorBuilderTest
-{
+public class EnhancedPluginDescriptorBuilderTest {
 
     @Test
-    void testTypeJavaDocUrlElement() throws PlexusConfigurationException, IOException
-    {
-        EnhancedPluginDescriptorBuilder builder = new EnhancedPluginDescriptorBuilder( false );
-        try ( InputStream input = Objects.requireNonNull( this.getClass().getResourceAsStream( "/plugin-enhanced.xml" ) );
-              Reader reader = new XmlStreamReader( input ) )
-        {
-            PluginDescriptor descriptor = builder.build( reader );
-            MojoDescriptor mojoDescriptor = descriptor.getMojo( "format-xml" );
-            Assertions.assertNotNull( mojoDescriptor );
-            EnhancedParameterWrapper enhancedParameter = assertEnhancedParameter( mojoDescriptor, "excludes" );
-            Assertions.assertEquals( URI.create( "apidocs/java/util/Set.html" ), enhancedParameter.getTypeJavadocUrl() );
-            assertParameter( mojoDescriptor, "enableForIncrementalBuild" );// primitive types don't have javadoc
+    void testTypeJavaDocUrlElement() throws PlexusConfigurationException, IOException {
+        EnhancedPluginDescriptorBuilder builder = new EnhancedPluginDescriptorBuilder(false);
+        try (InputStream input = Objects.requireNonNull(this.getClass().getResourceAsStream("/plugin-enhanced.xml"));
+                Reader reader = new XmlStreamReader(input)) {
+            PluginDescriptor descriptor = builder.build(reader);
+            MojoDescriptor mojoDescriptor = descriptor.getMojo("format-xml");
+            Assertions.assertNotNull(mojoDescriptor);
+            EnhancedParameterWrapper enhancedParameter = assertEnhancedParameter(mojoDescriptor, "excludes");
+            Assertions.assertEquals(URI.create("apidocs/java/util/Set.html"), enhancedParameter.getTypeJavadocUrl());
+            assertParameter(mojoDescriptor, "enableForIncrementalBuild"); // primitive types don't have javadoc
         }
     }
 
-    EnhancedParameterWrapper assertEnhancedParameter( MojoDescriptor mojoDescriptor, String parameterName )
-    {
-        return (EnhancedParameterWrapper) assertParameter( mojoDescriptor, parameterName, true );
+    EnhancedParameterWrapper assertEnhancedParameter(MojoDescriptor mojoDescriptor, String parameterName) {
+        return (EnhancedParameterWrapper) assertParameter(mojoDescriptor, parameterName, true);
     }
 
-    Parameter assertParameter( MojoDescriptor mojoDescriptor, String parameterName )
-    {
-        return assertParameter( mojoDescriptor, parameterName, false );
+    Parameter assertParameter(MojoDescriptor mojoDescriptor, String parameterName) {
+        return assertParameter(mojoDescriptor, parameterName, false);
     }
 
-    Parameter assertParameter( MojoDescriptor mojoDescriptor, String parameterName, boolean isEnhancedParameter )
-    {
+    Parameter assertParameter(MojoDescriptor mojoDescriptor, String parameterName, boolean isEnhancedParameter) {
         // test both getParameters() and getParameterMap() as both use independent objects
-        Parameter parameter = mojoDescriptor.getParameters().stream().filter( p -> p.getName().equals( parameterName ) ).findFirst().orElse( null );
-        assertParameter( parameter, isEnhancedParameter );
-        Parameter parameterFromMap = mojoDescriptor.getParameterMap().get( parameterName );
-        assertParameter( parameterFromMap, isEnhancedParameter );
+        Parameter parameter = mojoDescriptor.getParameters().stream()
+                .filter(p -> p.getName().equals(parameterName))
+                .findFirst()
+                .orElse(null);
+        assertParameter(parameter, isEnhancedParameter);
+        Parameter parameterFromMap = mojoDescriptor.getParameterMap().get(parameterName);
+        assertParameter(parameterFromMap, isEnhancedParameter);
         // check that both are equal
-        Assertions.assertEquals( parameter, parameterFromMap );
+        Assertions.assertEquals(parameter, parameterFromMap);
         return parameter;
     }
 
-    void assertParameter( Parameter parameter, boolean isEnhhancedParameter )
-    {
-        Assertions.assertNotNull( parameter );
-        Assertions.assertEquals( isEnhhancedParameter, parameter instanceof EnhancedParameterWrapper );
+    void assertParameter(Parameter parameter, boolean isEnhhancedParameter) {
+        Assertions.assertNotNull(parameter);
+        Assertions.assertEquals(isEnhhancedParameter, parameter instanceof EnhancedParameterWrapper);
     }
 }
diff --git a/maven-plugin-tools-annotations/pom.xml b/maven-plugin-tools-annotations/pom.xml
index 3756c41c..5758cfef 100644
--- a/maven-plugin-tools-annotations/pom.xml
+++ b/maven-plugin-tools-annotations/pom.xml
@@ -73,7 +73,7 @@
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-archiver</artifactId>
     </dependency>
-        
+
     <dependency>
       <groupId>org.ow2.asm</groupId>
       <artifactId>asm</artifactId>
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
index f7078e86..dd99c0a7 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/JavaAnnotationsMojoDescriptorExtractor.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations;
 
 /*
@@ -19,10 +37,14 @@ package org.apache.maven.tools.plugin.extractor.annotations;
  * under the License.
  */
 
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
+import com.thoughtworks.qdox.JavaProjectBuilder;
+import com.thoughtworks.qdox.library.SortedClassLibraryBuilder;
+import com.thoughtworks.qdox.model.DocletTag;
+import com.thoughtworks.qdox.model.JavaAnnotatedElement;
+import com.thoughtworks.qdox.model.JavaClass;
+import com.thoughtworks.qdox.model.JavaField;
+import com.thoughtworks.qdox.model.JavaMember;
+import com.thoughtworks.qdox.model.JavaMethod;
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -42,15 +64,9 @@ import java.util.Set;
 import java.util.TreeMap;
 import java.util.TreeSet;
 import java.util.stream.Collectors;
-
-import com.thoughtworks.qdox.JavaProjectBuilder;
-import com.thoughtworks.qdox.library.SortedClassLibraryBuilder;
-import com.thoughtworks.qdox.model.DocletTag;
-import com.thoughtworks.qdox.model.JavaAnnotatedElement;
-import com.thoughtworks.qdox.model.JavaClass;
-import com.thoughtworks.qdox.model.JavaField;
-import com.thoughtworks.qdox.model.JavaMember;
-import com.thoughtworks.qdox.model.JavaMethod;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
 import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
@@ -95,44 +111,41 @@ import org.objectweb.asm.Opcodes;
  * @author Olivier Lamy
  * @since 3.0
  */
-@Named( JavaAnnotationsMojoDescriptorExtractor.NAME )
+@Named(JavaAnnotationsMojoDescriptorExtractor.NAME)
 @Singleton
-public class JavaAnnotationsMojoDescriptorExtractor
-    extends AbstractLogEnabled
-    implements MojoDescriptorExtractor
-{
+public class JavaAnnotationsMojoDescriptorExtractor extends AbstractLogEnabled implements MojoDescriptorExtractor {
     public static final String NAME = "java-annotations";
 
-    private static final GroupKey GROUP_KEY = new GroupKey( GroupKey.JAVA_GROUP, 100 );
+    private static final GroupKey GROUP_KEY = new GroupKey(GroupKey.JAVA_GROUP, 100);
 
     /**
-     * 
+     *
      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se19/html/jvms-4.html#jvms-4.1">JVMS 4.1</a>
      */
     private static final Map<Integer, String> CLASS_VERSION_TO_JAVA_STRING;
-    static
-    {
+
+    static {
         CLASS_VERSION_TO_JAVA_STRING = new HashMap<>();
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V1_1, "1.1" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V1_2, "1.2" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V1_3, "1.3" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V1_4, "1.4" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V1_5, "1.5" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V1_6, "1.6" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V1_7, "1.7" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V1_8, "1.8" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V9, "9" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V10, "10" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V11, "11" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V12, "12" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V13, "13" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V14, "14" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V15, "15" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V16, "16" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V17, "17" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V18, "18" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V19, "19" );
-        CLASS_VERSION_TO_JAVA_STRING.put( Opcodes.V20, "20" );
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V1_1, "1.1");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V1_2, "1.2");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V1_3, "1.3");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V1_4, "1.4");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V1_5, "1.5");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V1_6, "1.6");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V1_7, "1.7");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V1_8, "1.8");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V9, "9");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V10, "10");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V11, "11");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V12, "12");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V13, "13");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V14, "14");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V15, "15");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V16, "16");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V17, "17");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V18, "18");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V19, "19");
+        CLASS_VERSION_TO_JAVA_STRING.put(Opcodes.V20, "20");
     }
 
     @Inject
@@ -151,20 +164,17 @@ public class JavaAnnotationsMojoDescriptorExtractor
     private JavadocBlockTagsToXhtmlConverter javadocBlockTagsToHtmlConverter;
 
     @Override
-    public String getName()
-    {
+    public String getName() {
         return NAME;
     }
 
     @Override
-    public boolean isDeprecated()
-    {
+    public boolean isDeprecated() {
         return false; // this is the "current way" to write Java Mojos
     }
 
     @Override
-    public GroupKey getGroupKey()
-    {
+    public GroupKey getGroupKey() {
         return GROUP_KEY;
     }
 
@@ -173,84 +183,76 @@ public class JavaAnnotationsMojoDescriptorExtractor
      * @see <a href="https://docs.oracle.com/javase/specs/jvms/se19/html/jvms-4.html#jvms-4.1">JVMS 4.1</a>
      *
      */
-    @SuppressWarnings( "checkstyle:magicnumber" )
-    static final class ClassVersionComparator implements Comparator<Integer>
-    {
+    @SuppressWarnings("checkstyle:magicnumber")
+    static final class ClassVersionComparator implements Comparator<Integer> {
         @Override
-        public int compare( Integer classVersion1, Integer classVersion2 )
-        {
+        public int compare(Integer classVersion1, Integer classVersion2) {
             // first compare major version (
-            int result = Integer.compare( classVersion1 & 0x00FF, classVersion2 & 0x00FF );
-            if ( result == 0 )
-            {
+            int result = Integer.compare(classVersion1 & 0x00FF, classVersion2 & 0x00FF);
+            if (result == 0) {
                 // compare minor version if major is equal
-                result = Integer.compare( classVersion1, classVersion2 );
+                result = Integer.compare(classVersion1, classVersion2);
             }
             return result;
         }
     }
 
     @Override
-    public List<MojoDescriptor> execute( PluginToolsRequest request )
-        throws ExtractionException, InvalidPluginDescriptorException
-    {
-        Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = scanAnnotations( request );
+    public List<MojoDescriptor> execute(PluginToolsRequest request)
+            throws ExtractionException, InvalidPluginDescriptorException {
+        Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = scanAnnotations(request);
 
         Optional<Integer> maxClassVersion = mojoAnnotatedClasses.values().stream()
-                        .map( MojoAnnotatedClass::getClassVersion ).max( new ClassVersionComparator() );
-        if ( maxClassVersion.isPresent() )
-        {
-            String requiredJavaVersion = CLASS_VERSION_TO_JAVA_STRING.get( maxClassVersion.get() );
-            if ( StringUtils.isBlank( request.getRequiredJavaVersion() )
-                                      || new ComparableVersion( request.getRequiredJavaVersion() ).compareTo( 
-                                             new ComparableVersion( requiredJavaVersion ) ) < 0 )
-            {
-                request.setRequiredJavaVersion( requiredJavaVersion );
+                .map(MojoAnnotatedClass::getClassVersion)
+                .max(new ClassVersionComparator());
+        if (maxClassVersion.isPresent()) {
+            String requiredJavaVersion = CLASS_VERSION_TO_JAVA_STRING.get(maxClassVersion.get());
+            if (StringUtils.isBlank(request.getRequiredJavaVersion())
+                    || new ComparableVersion(request.getRequiredJavaVersion())
+                                    .compareTo(new ComparableVersion(requiredJavaVersion))
+                            < 0) {
+                request.setRequiredJavaVersion(requiredJavaVersion);
             }
         }
-        JavaProjectBuilder builder = scanJavadoc( request, mojoAnnotatedClasses.values() );
-        Map<String, JavaClass> javaClassesMap = discoverClasses( builder );
+        JavaProjectBuilder builder = scanJavadoc(request, mojoAnnotatedClasses.values());
+        Map<String, JavaClass> javaClassesMap = discoverClasses(builder);
 
         final JavadocLinkGenerator linkGenerator;
-        if ( request.getInternalJavadocBaseUrl() != null || ( request.getExternalJavadocBaseUrls() != null
-             && !request.getExternalJavadocBaseUrls().isEmpty() ) )
-        {
-            linkGenerator =  new JavadocLinkGenerator( request.getInternalJavadocBaseUrl(),
-                                                       request.getInternalJavadocVersion(),
-                                                       request.getExternalJavadocBaseUrls(),
-                                                       request.getSettings() );
-        }
-        else
-        {
+        if (request.getInternalJavadocBaseUrl() != null
+                || (request.getExternalJavadocBaseUrls() != null
+                        && !request.getExternalJavadocBaseUrls().isEmpty())) {
+            linkGenerator = new JavadocLinkGenerator(
+                    request.getInternalJavadocBaseUrl(),
+                    request.getInternalJavadocVersion(),
+                    request.getExternalJavadocBaseUrls(),
+                    request.getSettings());
+        } else {
             linkGenerator = null;
         }
 
-        populateDataFromJavadoc( builder, mojoAnnotatedClasses, javaClassesMap, linkGenerator );
+        populateDataFromJavadoc(builder, mojoAnnotatedClasses, javaClassesMap, linkGenerator);
 
-        return toMojoDescriptors( mojoAnnotatedClasses, request.getPluginDescriptor() );
+        return toMojoDescriptors(mojoAnnotatedClasses, request.getPluginDescriptor());
     }
 
-    private Map<String, MojoAnnotatedClass> scanAnnotations( PluginToolsRequest request )
-        throws ExtractionException
-    {
+    private Map<String, MojoAnnotatedClass> scanAnnotations(PluginToolsRequest request) throws ExtractionException {
         MojoAnnotationsScannerRequest mojoAnnotationsScannerRequest = new MojoAnnotationsScannerRequest();
 
-        File output = new File( request.getProject().getBuild().getOutputDirectory() );
-        mojoAnnotationsScannerRequest.setClassesDirectories( Arrays.asList( output ) );
+        File output = new File(request.getProject().getBuild().getOutputDirectory());
+        mojoAnnotationsScannerRequest.setClassesDirectories(Arrays.asList(output));
 
-        mojoAnnotationsScannerRequest.setDependencies( request.getDependencies() );
+        mojoAnnotationsScannerRequest.setDependencies(request.getDependencies());
 
-        mojoAnnotationsScannerRequest.setProject( request.getProject() );
+        mojoAnnotationsScannerRequest.setProject(request.getProject());
 
-        Map<String, MojoAnnotatedClass> result = mojoAnnotationsScanner.scan( mojoAnnotationsScannerRequest );
-        request.setUsedMavenApiVersion( mojoAnnotationsScannerRequest.getMavenApiVersion() );
+        Map<String, MojoAnnotatedClass> result = mojoAnnotationsScanner.scan(mojoAnnotationsScannerRequest);
+        request.setUsedMavenApiVersion(mojoAnnotationsScannerRequest.getMavenApiVersion());
         return result;
     }
 
-    private JavaProjectBuilder scanJavadoc( PluginToolsRequest request,
-                                            Collection<MojoAnnotatedClass> mojoAnnotatedClasses )
-        throws ExtractionException
-    {
+    private JavaProjectBuilder scanJavadoc(
+            PluginToolsRequest request, Collection<MojoAnnotatedClass> mojoAnnotatedClasses)
+            throws ExtractionException {
         // found artifact from reactors to scan sources
         // we currently only scan sources from reactors
         List<MavenProject> mavenProjects = new ArrayList<>();
@@ -258,183 +260,149 @@ public class JavaAnnotationsMojoDescriptorExtractor
         // if we need to scan sources from external artifacts
         Set<Artifact> externalArtifacts = new HashSet<>();
 
-        JavaProjectBuilder builder = new JavaProjectBuilder( new SortedClassLibraryBuilder( ) );
-        builder.setEncoding( request.getEncoding() );
-        extendJavaProjectBuilder( builder, request.getProject() );
+        JavaProjectBuilder builder = new JavaProjectBuilder(new SortedClassLibraryBuilder());
+        builder.setEncoding(request.getEncoding());
+        extendJavaProjectBuilder(builder, request.getProject());
 
-        for ( MojoAnnotatedClass mojoAnnotatedClass : mojoAnnotatedClasses )
-        {
-            if ( Objects.equals( mojoAnnotatedClass.getArtifact().getArtifactId(),
-                                     request.getProject().getArtifact().getArtifactId() ) )
-            {
+        for (MojoAnnotatedClass mojoAnnotatedClass : mojoAnnotatedClasses) {
+            if (Objects.equals(
+                    mojoAnnotatedClass.getArtifact().getArtifactId(),
+                    request.getProject().getArtifact().getArtifactId())) {
                 continue;
             }
 
-            if ( !isMojoAnnnotatedClassCandidate( mojoAnnotatedClass ) )
-            {
+            if (!isMojoAnnnotatedClassCandidate(mojoAnnotatedClass)) {
                 // we don't scan sources for classes without mojo annotations
                 continue;
             }
 
             MavenProject mavenProject =
-                getFromProjectReferences( mojoAnnotatedClass.getArtifact(), request.getProject() );
+                    getFromProjectReferences(mojoAnnotatedClass.getArtifact(), request.getProject());
 
-            if ( mavenProject != null )
-            {
-                mavenProjects.add( mavenProject );
-            }
-            else
-            {
-                externalArtifacts.add( mojoAnnotatedClass.getArtifact() );
+            if (mavenProject != null) {
+                mavenProjects.add(mavenProject);
+            } else {
+                externalArtifacts.add(mojoAnnotatedClass.getArtifact());
             }
         }
 
         // try to get artifact with sources classifier, extract somewhere then scan for @since, @deprecated
-        for ( Artifact artifact : externalArtifacts )
-        {
+        for (Artifact artifact : externalArtifacts) {
             // parameter for test-sources too ?? olamy I need that for it test only
-            if ( StringUtils.equalsIgnoreCase( "tests", artifact.getClassifier() ) )
-            {
-                extendJavaProjectBuilderWithSourcesJar( builder, artifact, request, "test-sources" );
-            }
-            else
-            {
-                extendJavaProjectBuilderWithSourcesJar( builder, artifact, request, "sources" );
+            if (StringUtils.equalsIgnoreCase("tests", artifact.getClassifier())) {
+                extendJavaProjectBuilderWithSourcesJar(builder, artifact, request, "test-sources");
+            } else {
+                extendJavaProjectBuilderWithSourcesJar(builder, artifact, request, "sources");
             }
-
         }
 
-        for ( MavenProject mavenProject : mavenProjects )
-        {
-            extendJavaProjectBuilder( builder, mavenProject );
+        for (MavenProject mavenProject : mavenProjects) {
+            extendJavaProjectBuilder(builder, mavenProject);
         }
 
         return builder;
     }
 
-    private boolean isMojoAnnnotatedClassCandidate( MojoAnnotatedClass mojoAnnotatedClass )
-    {
+    private boolean isMojoAnnnotatedClassCandidate(MojoAnnotatedClass mojoAnnotatedClass) {
         return mojoAnnotatedClass != null && mojoAnnotatedClass.hasAnnotations();
     }
 
     /**
      * from sources scan to get @since and @deprecated and description of classes and fields.
      */
-    protected void populateDataFromJavadoc( JavaProjectBuilder javaProjectBuilder,
-                                            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
-                                            Map<String, JavaClass> javaClassesMap,
-                                            JavadocLinkGenerator linkGenerator )
-    {
-
-        for ( Map.Entry<String, MojoAnnotatedClass> entry : mojoAnnotatedClasses.entrySet() )
-        {
-            JavaClass javaClass = javaClassesMap.get( entry.getKey() );
-            if ( javaClass == null )
-            {
+    protected void populateDataFromJavadoc(
+            JavaProjectBuilder javaProjectBuilder,
+            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
+            Map<String, JavaClass> javaClassesMap,
+            JavadocLinkGenerator linkGenerator) {
+
+        for (Map.Entry<String, MojoAnnotatedClass> entry : mojoAnnotatedClasses.entrySet()) {
+            JavaClass javaClass = javaClassesMap.get(entry.getKey());
+            if (javaClass == null) {
                 continue;
             }
             // populate class-level content
             MojoAnnotationContent mojoAnnotationContent = entry.getValue().getMojo();
-            if ( mojoAnnotationContent != null )
-            {
-                JavaClassConverterContext context =
-                                new JavaClassConverterContext( javaClass, javaProjectBuilder,
-                                                                mojoAnnotatedClasses, linkGenerator,
-                                                                javaClass.getLineNumber() );
-                mojoAnnotationContent.setDescription(
-                    getDescriptionFromElement( javaClass, context ) );
-
-                DocletTag since = findInClassHierarchy( javaClass, "since" );
-                if ( since != null )
-                {
-                    mojoAnnotationContent.setSince( getRawValueFromTaglet ( since, context ) );
+            if (mojoAnnotationContent != null) {
+                JavaClassConverterContext context = new JavaClassConverterContext(
+                        javaClass, javaProjectBuilder, mojoAnnotatedClasses, linkGenerator, javaClass.getLineNumber());
+                mojoAnnotationContent.setDescription(getDescriptionFromElement(javaClass, context));
+
+                DocletTag since = findInClassHierarchy(javaClass, "since");
+                if (since != null) {
+                    mojoAnnotationContent.setSince(getRawValueFromTaglet(since, context));
                 }
 
-                DocletTag deprecated = findInClassHierarchy( javaClass, "deprecated" );
-                if ( deprecated != null )
-                {
-                    mojoAnnotationContent.setDeprecated( getRawValueFromTaglet ( deprecated, context ) );
+                DocletTag deprecated = findInClassHierarchy(javaClass, "deprecated");
+                if (deprecated != null) {
+                    mojoAnnotationContent.setDeprecated(getRawValueFromTaglet(deprecated, context));
                 }
             }
 
-            Map<String, JavaAnnotatedElement> fieldsMap = extractFieldsAnnotations( javaClass, javaClassesMap );
-            Map<String, JavaAnnotatedElement> methodsMap = extractMethodsAnnotations( javaClass, javaClassesMap );
+            Map<String, JavaAnnotatedElement> fieldsMap = extractFieldsAnnotations(javaClass, javaClassesMap);
+            Map<String, JavaAnnotatedElement> methodsMap = extractMethodsAnnotations(javaClass, javaClassesMap);
 
             // populate parameters
             Map<String, ParameterAnnotationContent> parameters =
-                    getParametersParentHierarchy( entry.getValue(), mojoAnnotatedClasses );
-            parameters = new TreeMap<>( parameters );
-            for ( Map.Entry<String, ParameterAnnotationContent> parameter : parameters.entrySet() )
-            {
+                    getParametersParentHierarchy(entry.getValue(), mojoAnnotatedClasses);
+            parameters = new TreeMap<>(parameters);
+            for (Map.Entry<String, ParameterAnnotationContent> parameter : parameters.entrySet()) {
                 JavaAnnotatedElement element;
-                if ( parameter.getValue().isAnnotationOnMethod() )
-                {
-                    element = methodsMap.get( parameter.getKey() );
-                }
-                else
-                {
-                    element = fieldsMap.get( parameter.getKey() );
+                if (parameter.getValue().isAnnotationOnMethod()) {
+                    element = methodsMap.get(parameter.getKey());
+                } else {
+                    element = fieldsMap.get(parameter.getKey());
                 }
 
-                if ( element == null )
-                {
+                if (element == null) {
                     continue;
                 }
 
-                JavaClassConverterContext context =
-                    new JavaClassConverterContext( javaClass, ( (JavaMember) element ).getDeclaringClass(),
-                                                   javaProjectBuilder, mojoAnnotatedClasses,
-                                                   linkGenerator, element.getLineNumber() );
+                JavaClassConverterContext context = new JavaClassConverterContext(
+                        javaClass, ((JavaMember) element).getDeclaringClass(),
+                        javaProjectBuilder, mojoAnnotatedClasses,
+                        linkGenerator, element.getLineNumber());
                 ParameterAnnotationContent parameterAnnotationContent = parameter.getValue();
-                parameterAnnotationContent.setDescription(
-                    getDescriptionFromElement( element, context ) );
+                parameterAnnotationContent.setDescription(getDescriptionFromElement(element, context));
 
-                DocletTag deprecated = element.getTagByName( "deprecated" );
-                if ( deprecated != null )
-                {
-                    parameterAnnotationContent.setDeprecated( getRawValueFromTaglet ( deprecated, context ) );
+                DocletTag deprecated = element.getTagByName("deprecated");
+                if (deprecated != null) {
+                    parameterAnnotationContent.setDeprecated(getRawValueFromTaglet(deprecated, context));
                 }
 
-                DocletTag since = element.getTagByName( "since" );
-                if ( since != null )
-                {
-                    parameterAnnotationContent.setSince( getRawValueFromTaglet ( since, context ) );
+                DocletTag since = element.getTagByName("since");
+                if (since != null) {
+                    parameterAnnotationContent.setSince(getRawValueFromTaglet(since, context));
                 }
             }
 
             // populate components
-            Map<String, ComponentAnnotationContent> components = entry.getValue().getComponents();
-            for ( Map.Entry<String, ComponentAnnotationContent> component : components.entrySet() )
-            {
-                JavaAnnotatedElement element = fieldsMap.get( component.getKey() );
-                if ( element == null )
-                {
+            Map<String, ComponentAnnotationContent> components =
+                    entry.getValue().getComponents();
+            for (Map.Entry<String, ComponentAnnotationContent> component : components.entrySet()) {
+                JavaAnnotatedElement element = fieldsMap.get(component.getKey());
+                if (element == null) {
                     continue;
                 }
 
-                JavaClassConverterContext context =
-                    new JavaClassConverterContext( javaClass, ( (JavaMember) element ).getDeclaringClass(),
-                                                   javaProjectBuilder, mojoAnnotatedClasses,
-                                                   linkGenerator, javaClass.getLineNumber() );
+                JavaClassConverterContext context = new JavaClassConverterContext(
+                        javaClass, ((JavaMember) element).getDeclaringClass(),
+                        javaProjectBuilder, mojoAnnotatedClasses,
+                        linkGenerator, javaClass.getLineNumber());
                 ComponentAnnotationContent componentAnnotationContent = component.getValue();
-                componentAnnotationContent.setDescription(
-                    getDescriptionFromElement( element, context ) );
+                componentAnnotationContent.setDescription(getDescriptionFromElement(element, context));
 
-                DocletTag deprecated = element.getTagByName( "deprecated" );
-                if ( deprecated != null )
-                {
-                    componentAnnotationContent.setDeprecated( getRawValueFromTaglet ( deprecated, context ) );
+                DocletTag deprecated = element.getTagByName("deprecated");
+                if (deprecated != null) {
+                    componentAnnotationContent.setDeprecated(getRawValueFromTaglet(deprecated, context));
                 }
 
-                DocletTag since = element.getTagByName( "since" );
-                if ( since != null )
-                {
-                    componentAnnotationContent.setSince( getRawValueFromTaglet ( since, context ) );
+                DocletTag since = element.getTagByName("since");
+                if (since != null) {
+                    componentAnnotationContent.setSince(getRawValueFromTaglet(since, context));
                 }
             }
-
         }
-
     }
 
     /**
@@ -444,30 +412,25 @@ public class JavaAnnotationsMojoDescriptorExtractor
      * @param context the context with which to call the converter
      * @return the generated description
      */
-    String getDescriptionFromElement( JavaAnnotatedElement element, JavaClassConverterContext context )
-    {
+    String getDescriptionFromElement(JavaAnnotatedElement element, JavaClassConverterContext context) {
 
         String comment = element.getComment();
-        if ( comment == null )
-        {
+        if (comment == null) {
             return null;
         }
-        StringBuilder description = new StringBuilder( javadocInlineTagsToHtmlConverter.convert( comment, context ) );
-        for ( DocletTag docletTag : element.getTags() )
-        {
+        StringBuilder description = new StringBuilder(javadocInlineTagsToHtmlConverter.convert(comment, context));
+        for (DocletTag docletTag : element.getTags()) {
             // also consider see block tags
-            if ( "see".equals( docletTag.getName() ) )
-            {
-                description.append( javadocBlockTagsToHtmlConverter.convert( docletTag, context ) );
+            if ("see".equals(docletTag.getName())) {
+                description.append(javadocBlockTagsToHtmlConverter.convert(docletTag, context));
             }
         }
         return description.toString();
     }
 
-    String getRawValueFromTaglet( DocletTag docletTag, ConverterContext context )
-    {
+    String getRawValueFromTaglet(DocletTag docletTag, ConverterContext context) {
         // just resolve inline tags and convert to XHTML
-        return javadocInlineTagsToHtmlConverter.convert( docletTag.getValue(), context );
+        return javadocInlineTagsToHtmlConverter.convert(docletTag.getValue(), context);
     }
 
     /**
@@ -475,42 +438,31 @@ public class JavaAnnotationsMojoDescriptorExtractor
      * @param tagName   not null
      * @return docletTag instance
      */
-    private DocletTag findInClassHierarchy( JavaClass javaClass, String tagName )
-    {
-        try
-        {
-            DocletTag tag = javaClass.getTagByName( tagName );
-
-            if ( tag == null )
-            {
+    private DocletTag findInClassHierarchy(JavaClass javaClass, String tagName) {
+        try {
+            DocletTag tag = javaClass.getTagByName(tagName);
+
+            if (tag == null) {
                 JavaClass superClass = javaClass.getSuperJavaClass();
 
-                if ( superClass != null )
-                {
-                    tag = findInClassHierarchy( superClass, tagName );
+                if (superClass != null) {
+                    tag = findInClassHierarchy(superClass, tagName);
                 }
             }
 
             return tag;
-        }
-        catch ( NoClassDefFoundError e )
-        {
-            if ( e.getMessage().replace( '/', '.' )
-                    .contains( MojoAnnotationsScanner.V4_API_PLUGIN_PACKAGE ) )
-            {
+        } catch (NoClassDefFoundError e) {
+            if (e.getMessage().replace('/', '.').contains(MojoAnnotationsScanner.V4_API_PLUGIN_PACKAGE)) {
                 return null;
             }
             String str;
-            try
-            {
+            try {
                 str = javaClass.getFullyQualifiedName();
-            }
-            catch ( Throwable t )
-            {
+            } catch (Throwable t) {
                 str = javaClass.getValue();
             }
-            getLogger().warn( "Failed extracting tag '" + tagName + "' from class " + str );
-            throw (NoClassDefFoundError) new NoClassDefFoundError( e.getMessage() ).initCause( e );
+            getLogger().warn("Failed extracting tag '" + tagName + "' from class " + str);
+            throw (NoClassDefFoundError) new NoClassDefFoundError(e.getMessage()).initCause(e);
         }
     }
 
@@ -520,46 +472,36 @@ public class JavaAnnotationsMojoDescriptorExtractor
      * @param javaClass not null
      * @return map with Mojo parameters names as keys
      */
-    private Map<String, JavaAnnotatedElement> extractFieldsAnnotations( JavaClass javaClass,
-                                                                        Map<String, JavaClass> javaClassesMap )
-    {
-        try
-        {
+    private Map<String, JavaAnnotatedElement> extractFieldsAnnotations(
+            JavaClass javaClass, Map<String, JavaClass> javaClassesMap) {
+        try {
             Map<String, JavaAnnotatedElement> rawParams = new TreeMap<>();
 
             // we have to add the parent fields first, so that they will be overwritten by the local fields if
             // that actually happens...
             JavaClass superClass = javaClass.getSuperJavaClass();
 
-            if ( superClass != null )
-            {
-                if ( !superClass.getFields().isEmpty() )
-                {
-                    rawParams = extractFieldsAnnotations( superClass, javaClassesMap );
+            if (superClass != null) {
+                if (!superClass.getFields().isEmpty()) {
+                    rawParams = extractFieldsAnnotations(superClass, javaClassesMap);
                 }
                 // maybe sources comes from scan of sources artifact
-                superClass = javaClassesMap.get( superClass.getFullyQualifiedName() );
-                if ( superClass != null && !superClass.getFields().isEmpty() )
-                {
-                    rawParams = extractFieldsAnnotations( superClass, javaClassesMap );
+                superClass = javaClassesMap.get(superClass.getFullyQualifiedName());
+                if (superClass != null && !superClass.getFields().isEmpty()) {
+                    rawParams = extractFieldsAnnotations(superClass, javaClassesMap);
                 }
-            }
-            else
-            {
+            } else {
 
                 rawParams = new TreeMap<>();
             }
 
-            for ( JavaField field : javaClass.getFields() )
-            {
-                rawParams.put( field.getName(), field );
+            for (JavaField field : javaClass.getFields()) {
+                rawParams.put(field.getName(), field);
             }
 
             return rawParams;
-        }
-        catch ( NoClassDefFoundError e )
-        {
-            getLogger().warn( "Failed extracting parameters from " + javaClass );
+        } catch (NoClassDefFoundError e) {
+            getLogger().warn("Failed extracting parameters from " + javaClass);
             throw e;
         }
     }
@@ -570,480 +512,411 @@ public class JavaAnnotationsMojoDescriptorExtractor
      * @param javaClass not null
      * @return map with Mojo parameters names as keys
      */
-    private Map<String, JavaAnnotatedElement> extractMethodsAnnotations( JavaClass javaClass,
-                                                                        Map<String, JavaClass> javaClassesMap )
-    {
-        try
-        {
+    private Map<String, JavaAnnotatedElement> extractMethodsAnnotations(
+            JavaClass javaClass, Map<String, JavaClass> javaClassesMap) {
+        try {
             Map<String, JavaAnnotatedElement> rawParams = new TreeMap<>();
 
             // we have to add the parent methods first, so that they will be overwritten by the local methods if
             // that actually happens...
             JavaClass superClass = javaClass.getSuperJavaClass();
 
-            if ( superClass != null )
-            {
-                if ( !superClass.getMethods().isEmpty() )
-                {
-                    rawParams = extractMethodsAnnotations( superClass, javaClassesMap );
+            if (superClass != null) {
+                if (!superClass.getMethods().isEmpty()) {
+                    rawParams = extractMethodsAnnotations(superClass, javaClassesMap);
                 }
                 // maybe sources comes from scan of sources artifact
-                superClass = javaClassesMap.get( superClass.getFullyQualifiedName() );
-                if ( superClass != null && !superClass.getMethods().isEmpty() )
-                {
-                    rawParams = extractMethodsAnnotations( superClass, javaClassesMap );
+                superClass = javaClassesMap.get(superClass.getFullyQualifiedName());
+                if (superClass != null && !superClass.getMethods().isEmpty()) {
+                    rawParams = extractMethodsAnnotations(superClass, javaClassesMap);
                 }
-            }
-            else
-            {
+            } else {
 
                 rawParams = new TreeMap<>();
             }
 
-            for ( JavaMethod method : javaClass.getMethods() )
-            {
-                if ( isPublicSetterMethod( method ) )
-                {
+            for (JavaMethod method : javaClass.getMethods()) {
+                if (isPublicSetterMethod(method)) {
                     rawParams.put(
-                        StringUtils.lowercaseFirstLetter( method.getName().substring( 3 ) ), method );
+                            StringUtils.lowercaseFirstLetter(method.getName().substring(3)), method);
                 }
             }
 
             return rawParams;
-        }
-        catch ( NoClassDefFoundError e )
-        {
-            if ( e.getMessage().replace( '/', '.' )
-                    .contains( MojoAnnotationsScanner.V4_API_PLUGIN_PACKAGE ) )
-            {
+        } catch (NoClassDefFoundError e) {
+            if (e.getMessage().replace('/', '.').contains(MojoAnnotationsScanner.V4_API_PLUGIN_PACKAGE)) {
                 return new TreeMap<>();
             }
             String str;
-            try
-            {
+            try {
                 str = javaClass.getFullyQualifiedName();
-            }
-            catch ( Throwable t )
-            {
+            } catch (Throwable t) {
                 str = javaClass.getValue();
             }
-            getLogger().warn( "Failed extracting methods from " + str );
-            throw (NoClassDefFoundError) new NoClassDefFoundError( e.getMessage() ).initCause( e );
+            getLogger().warn("Failed extracting methods from " + str);
+            throw (NoClassDefFoundError) new NoClassDefFoundError(e.getMessage()).initCause(e);
         }
     }
 
-    private boolean isPublicSetterMethod( JavaMethod method )
-    {
+    private boolean isPublicSetterMethod(JavaMethod method) {
         return method.isPublic()
-            && !method.isStatic()
-            && method.getName().length() > 3
-            && ( method.getName().startsWith( "add" ) || method.getName().startsWith( "set" ) )
-            && "void".equals( method.getReturnType().getValue() )
-            && method.getParameters().size() == 1;
+                && !method.isStatic()
+                && method.getName().length() > 3
+                && (method.getName().startsWith("add") || method.getName().startsWith("set"))
+                && "void".equals(method.getReturnType().getValue())
+                && method.getParameters().size() == 1;
     }
 
-    protected Map<String, JavaClass> discoverClasses( JavaProjectBuilder builder )
-    {
+    protected Map<String, JavaClass> discoverClasses(JavaProjectBuilder builder) {
         Collection<JavaClass> javaClasses = builder.getClasses();
 
-        if ( javaClasses == null || javaClasses.size() < 1 )
-        {
+        if (javaClasses == null || javaClasses.size() < 1) {
             return Collections.emptyMap();
         }
 
-        Map<String, JavaClass> javaClassMap = new HashMap<>( javaClasses.size() );
+        Map<String, JavaClass> javaClassMap = new HashMap<>(javaClasses.size());
 
-        for ( JavaClass javaClass : javaClasses )
-        {
-            javaClassMap.put( javaClass.getFullyQualifiedName(), javaClass );
+        for (JavaClass javaClass : javaClasses) {
+            javaClassMap.put(javaClass.getFullyQualifiedName(), javaClass);
         }
 
         return javaClassMap;
     }
 
-    protected void extendJavaProjectBuilderWithSourcesJar( JavaProjectBuilder builder,
-                                                           Artifact artifact, PluginToolsRequest request,
-                                                           String classifier )
-        throws ExtractionException
-    {
-        try
-        {
-            Artifact sourcesArtifact =
-                repositorySystem.createArtifactWithClassifier( artifact.getGroupId(), artifact.getArtifactId(),
-                                                               artifact.getVersion(), artifact.getType(), classifier );
+    protected void extendJavaProjectBuilderWithSourcesJar(
+            JavaProjectBuilder builder, Artifact artifact, PluginToolsRequest request, String classifier)
+            throws ExtractionException {
+        try {
+            Artifact sourcesArtifact = repositorySystem.createArtifactWithClassifier(
+                    artifact.getGroupId(),
+                    artifact.getArtifactId(),
+                    artifact.getVersion(),
+                    artifact.getType(),
+                    classifier);
 
             ArtifactResolutionRequest req = new ArtifactResolutionRequest();
-            req.setArtifact( sourcesArtifact );
-            req.setLocalRepository( request.getLocal() );
-            req.setRemoteRepositories( request.getRemoteRepos() );
-            ArtifactResolutionResult res = repositorySystem.resolve( req );
-            if ( res.hasMissingArtifacts() || res.hasExceptions() )
-            {
-                getLogger().warn(
-                    "Unable to get sources artifact for " + artifact.getGroupId() + ":" + artifact.getArtifactId() + ":"
-                    + artifact.getVersion() + ". Some javadoc tags (@since, @deprecated and comments) won't be used" );
+            req.setArtifact(sourcesArtifact);
+            req.setLocalRepository(request.getLocal());
+            req.setRemoteRepositories(request.getRemoteRepos());
+            ArtifactResolutionResult res = repositorySystem.resolve(req);
+            if (res.hasMissingArtifacts() || res.hasExceptions()) {
+                getLogger()
+                        .warn("Unable to get sources artifact for " + artifact.getGroupId() + ":"
+                                + artifact.getArtifactId() + ":" + artifact.getVersion()
+                                + ". Some javadoc tags (@since, @deprecated and comments) won't be used");
                 return;
             }
 
-            if ( sourcesArtifact.getFile() == null || !sourcesArtifact.getFile().exists() )
-            {
+            if (sourcesArtifact.getFile() == null || !sourcesArtifact.getFile().exists()) {
                 // could not get artifact sources
                 return;
             }
 
-            if ( sourcesArtifact.getFile().isFile() )
-            {
+            if (sourcesArtifact.getFile().isFile()) {
                 // extract sources to target/maven-plugin-plugin-sources/${groupId}/${artifact}/sources
-                File extractDirectory = new File( request.getProject().getBuild().getDirectory(),
-                                              "maven-plugin-plugin-sources/" + sourcesArtifact.getGroupId() + "/"
-                                                  + sourcesArtifact.getArtifactId() + "/" + sourcesArtifact.getVersion()
-                                                  + "/" + sourcesArtifact.getClassifier() );
+                File extractDirectory = new File(
+                        request.getProject().getBuild().getDirectory(),
+                        "maven-plugin-plugin-sources/" + sourcesArtifact.getGroupId() + "/"
+                                + sourcesArtifact.getArtifactId() + "/" + sourcesArtifact.getVersion()
+                                + "/" + sourcesArtifact.getClassifier());
                 extractDirectory.mkdirs();
 
-                UnArchiver unArchiver = archiverManager.getUnArchiver( "jar" );
-                unArchiver.setSourceFile( sourcesArtifact.getFile() );
-                unArchiver.setDestDirectory( extractDirectory );
+                UnArchiver unArchiver = archiverManager.getUnArchiver("jar");
+                unArchiver.setSourceFile(sourcesArtifact.getFile());
+                unArchiver.setDestDirectory(extractDirectory);
                 unArchiver.extract();
 
-                extendJavaProjectBuilder( builder,
-                                          Arrays.asList( extractDirectory ),
-                                          request.getDependencies() );
-            }
-            else if ( sourcesArtifact.getFile().isDirectory() )
-            {
-                extendJavaProjectBuilder( builder,
-                        Arrays.asList( sourcesArtifact.getFile() ),
-                        request.getDependencies() );
+                extendJavaProjectBuilder(builder, Arrays.asList(extractDirectory), request.getDependencies());
+            } else if (sourcesArtifact.getFile().isDirectory()) {
+                extendJavaProjectBuilder(builder, Arrays.asList(sourcesArtifact.getFile()), request.getDependencies());
             }
-        }
-        catch ( ArchiverException | NoSuchArchiverException e )
-        {
-            throw new ExtractionException( e.getMessage(), e );
+        } catch (ArchiverException | NoSuchArchiverException e) {
+            throw new ExtractionException(e.getMessage(), e);
         }
     }
 
-    private void extendJavaProjectBuilder( JavaProjectBuilder builder,
-                                           final MavenProject project )
-    {
+    private void extendJavaProjectBuilder(JavaProjectBuilder builder, final MavenProject project) {
         List<File> sources = new ArrayList<>();
 
-        for ( String source : project.getCompileSourceRoots() )
-        {
-            sources.add( new File( source ) );
+        for (String source : project.getCompileSourceRoots()) {
+            sources.add(new File(source));
         }
 
         // TODO be more dynamic
-        File generatedPlugin = new File( project.getBasedir(), "target/generated-sources/plugin" );
-        if ( !project.getCompileSourceRoots().contains( generatedPlugin.getAbsolutePath() )
-            && generatedPlugin.exists() )
-        {
-            sources.add( generatedPlugin );
+        File generatedPlugin = new File(project.getBasedir(), "target/generated-sources/plugin");
+        if (!project.getCompileSourceRoots().contains(generatedPlugin.getAbsolutePath()) && generatedPlugin.exists()) {
+            sources.add(generatedPlugin);
         }
-        extendJavaProjectBuilder( builder, sources, project.getArtifacts() );
+        extendJavaProjectBuilder(builder, sources, project.getArtifacts());
     }
 
-    private void extendJavaProjectBuilder( JavaProjectBuilder builder,
-                                           List<File> sourceDirectories,
-                                           Set<Artifact> artifacts )
-    {
-
-        // Build isolated Classloader with only the artifacts of the project (none of this plugin) 
-        List<URL> urls = new ArrayList<>( artifacts.size() );
-        for ( Artifact artifact : artifacts )
-        {
-            try
-            {
-                urls.add( artifact.getFile().toURI().toURL() );
-            }
-            catch ( MalformedURLException e )
-            {
+    private void extendJavaProjectBuilder(
+            JavaProjectBuilder builder, List<File> sourceDirectories, Set<Artifact> artifacts) {
+
+        // Build isolated Classloader with only the artifacts of the project (none of this plugin)
+        List<URL> urls = new ArrayList<>(artifacts.size());
+        for (Artifact artifact : artifacts) {
+            try {
+                urls.add(artifact.getFile().toURI().toURL());
+            } catch (MalformedURLException e) {
                 // noop
             }
         }
-        builder.addClassLoader( new URLClassLoader( urls.toArray( new URL[0] ), ClassLoader.getSystemClassLoader() ) );
+        builder.addClassLoader(new URLClassLoader(urls.toArray(new URL[0]), ClassLoader.getSystemClassLoader()));
 
-        for ( File source : sourceDirectories )
-        {
-            builder.addSourceTree( source );
+        for (File source : sourceDirectories) {
+            builder.addSourceTree(source);
         }
     }
 
-    private List<MojoDescriptor> toMojoDescriptors( Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
-                                                    PluginDescriptor pluginDescriptor )
-        throws InvalidPluginDescriptorException
-    {
-        List<MojoDescriptor> mojoDescriptors = new ArrayList<>( mojoAnnotatedClasses.size() );
-        for ( MojoAnnotatedClass mojoAnnotatedClass : mojoAnnotatedClasses.values() )
-        {
+    private List<MojoDescriptor> toMojoDescriptors(
+            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses, PluginDescriptor pluginDescriptor)
+            throws InvalidPluginDescriptorException {
+        List<MojoDescriptor> mojoDescriptors = new ArrayList<>(mojoAnnotatedClasses.size());
+        for (MojoAnnotatedClass mojoAnnotatedClass : mojoAnnotatedClasses.values()) {
             // no mojo so skip it
-            if ( mojoAnnotatedClass.getMojo() == null )
-            {
+            if (mojoAnnotatedClass.getMojo() == null) {
                 continue;
             }
 
-            ExtendedMojoDescriptor mojoDescriptor = new ExtendedMojoDescriptor( true );
+            ExtendedMojoDescriptor mojoDescriptor = new ExtendedMojoDescriptor(true);
 
-            //mojoDescriptor.setRole( mojoAnnotatedClass.getClassName() );
-            //mojoDescriptor.setRoleHint( "default" );
-            mojoDescriptor.setImplementation( mojoAnnotatedClass.getClassName() );
-            mojoDescriptor.setLanguage( "java" );
+            // mojoDescriptor.setRole( mojoAnnotatedClass.getClassName() );
+            // mojoDescriptor.setRoleHint( "default" );
+            mojoDescriptor.setImplementation(mojoAnnotatedClass.getClassName());
+            mojoDescriptor.setLanguage("java");
 
-            mojoDescriptor.setV4Api( mojoAnnotatedClass.isV4Api() );
+            mojoDescriptor.setV4Api(mojoAnnotatedClass.isV4Api());
 
             MojoAnnotationContent mojo = mojoAnnotatedClass.getMojo();
 
-            mojoDescriptor.setDescription( mojo.getDescription() );
-            mojoDescriptor.setSince( mojo.getSince() );
-            mojo.setDeprecated( mojo.getDeprecated() );
+            mojoDescriptor.setDescription(mojo.getDescription());
+            mojoDescriptor.setSince(mojo.getSince());
+            mojo.setDeprecated(mojo.getDeprecated());
 
-            mojoDescriptor.setProjectRequired( mojo.requiresProject() );
+            mojoDescriptor.setProjectRequired(mojo.requiresProject());
 
-            mojoDescriptor.setRequiresReports( mojo.requiresReports() );
+            mojoDescriptor.setRequiresReports(mojo.requiresReports());
 
-            mojoDescriptor.setComponentConfigurator( mojo.configurator() );
+            mojoDescriptor.setComponentConfigurator(mojo.configurator());
 
-            mojoDescriptor.setInheritedByDefault( mojo.inheritByDefault() );
+            mojoDescriptor.setInheritedByDefault(mojo.inheritByDefault());
 
-            mojoDescriptor.setInstantiationStrategy( mojo.instantiationStrategy().id() );
+            mojoDescriptor.setInstantiationStrategy(mojo.instantiationStrategy().id());
 
-            mojoDescriptor.setAggregator( mojo.aggregator() );
-            mojoDescriptor.setDependencyResolutionRequired( mojo.requiresDependencyResolution().id() );
-            mojoDescriptor.setDependencyCollectionRequired( mojo.requiresDependencyCollection().id() );
+            mojoDescriptor.setAggregator(mojo.aggregator());
+            mojoDescriptor.setDependencyResolutionRequired(
+                    mojo.requiresDependencyResolution().id());
+            mojoDescriptor.setDependencyCollectionRequired(
+                    mojo.requiresDependencyCollection().id());
 
-            mojoDescriptor.setDirectInvocationOnly( mojo.requiresDirectInvocation() );
-            mojoDescriptor.setDeprecated( mojo.getDeprecated() );
-            mojoDescriptor.setThreadSafe( mojo.threadSafe() );
+            mojoDescriptor.setDirectInvocationOnly(mojo.requiresDirectInvocation());
+            mojoDescriptor.setDeprecated(mojo.getDeprecated());
+            mojoDescriptor.setThreadSafe(mojo.threadSafe());
 
             MojoAnnotatedClass mojoAnnotatedClassWithExecute =
-                            findClassWithExecuteAnnotationInParentHierarchy( mojoAnnotatedClass,
-                                                                                mojoAnnotatedClasses );
-            if ( mojoAnnotatedClassWithExecute != null && mojoAnnotatedClassWithExecute.getExecute() != null )
-            {
+                    findClassWithExecuteAnnotationInParentHierarchy(mojoAnnotatedClass, mojoAnnotatedClasses);
+            if (mojoAnnotatedClassWithExecute != null && mojoAnnotatedClassWithExecute.getExecute() != null) {
                 ExecuteAnnotationContent execute = mojoAnnotatedClassWithExecute.getExecute();
-                mojoDescriptor.setExecuteGoal( execute.goal() );
-                mojoDescriptor.setExecuteLifecycle( execute.lifecycle() );
-                if ( execute.phase() != null )
-                {
-                    mojoDescriptor.setExecutePhase( execute.phase().id() );
-                    if ( StringUtils.isNotEmpty( execute.customPhase() ) )
-                    {
-                        throw new InvalidPluginDescriptorException( "@Execute annotation must only use either 'phase' " 
+                mojoDescriptor.setExecuteGoal(execute.goal());
+                mojoDescriptor.setExecuteLifecycle(execute.lifecycle());
+                if (execute.phase() != null) {
+                    mojoDescriptor.setExecutePhase(execute.phase().id());
+                    if (StringUtils.isNotEmpty(execute.customPhase())) {
+                        throw new InvalidPluginDescriptorException(
+                                "@Execute annotation must only use either 'phase' "
                                         + "or 'customPhase' but not both. Both are used though on "
-                                        + mojoAnnotatedClassWithExecute.getClassName(), null );
+                                        + mojoAnnotatedClassWithExecute.getClassName(),
+                                null);
                     }
-                }
-                else if ( StringUtils.isNotEmpty( execute.customPhase() ) )
-                {
-                    mojoDescriptor.setExecutePhase( execute.customPhase() );
+                } else if (StringUtils.isNotEmpty(execute.customPhase())) {
+                    mojoDescriptor.setExecutePhase(execute.customPhase());
                 }
             }
 
-            mojoDescriptor.setExecutionStrategy( mojo.executionStrategy() );
+            mojoDescriptor.setExecutionStrategy(mojo.executionStrategy());
             // ???
-            //mojoDescriptor.alwaysExecute(mojo.a)
+            // mojoDescriptor.alwaysExecute(mojo.a)
 
-            mojoDescriptor.setGoal( mojo.name() );
-            mojoDescriptor.setOnlineRequired( mojo.requiresOnline() );
+            mojoDescriptor.setGoal(mojo.name());
+            mojoDescriptor.setOnlineRequired(mojo.requiresOnline());
 
-            mojoDescriptor.setPhase( mojo.defaultPhase().id() );
+            mojoDescriptor.setPhase(mojo.defaultPhase().id());
 
             // Parameter annotations
             Map<String, ParameterAnnotationContent> parameters =
-                    getParametersParentHierarchy( mojoAnnotatedClass, mojoAnnotatedClasses );
+                    getParametersParentHierarchy(mojoAnnotatedClass, mojoAnnotatedClasses);
 
-            for ( ParameterAnnotationContent parameterAnnotationContent : new TreeSet<>( parameters.values() ) )
-            {
+            for (ParameterAnnotationContent parameterAnnotationContent : new TreeSet<>(parameters.values())) {
                 org.apache.maven.plugin.descriptor.Parameter parameter =
-                    new org.apache.maven.plugin.descriptor.Parameter();
-                String name =
-                    StringUtils.isEmpty( parameterAnnotationContent.name() ) ? parameterAnnotationContent.getFieldName()
-                                    : parameterAnnotationContent.name();
-                parameter.setName( name );
-                parameter.setAlias( parameterAnnotationContent.alias() );
-                parameter.setDefaultValue( parameterAnnotationContent.defaultValue() );
-                parameter.setDeprecated( parameterAnnotationContent.getDeprecated() );
-                parameter.setDescription( parameterAnnotationContent.getDescription() );
-                parameter.setEditable( !parameterAnnotationContent.readonly() );
+                        new org.apache.maven.plugin.descriptor.Parameter();
+                String name = StringUtils.isEmpty(parameterAnnotationContent.name())
+                        ? parameterAnnotationContent.getFieldName()
+                        : parameterAnnotationContent.name();
+                parameter.setName(name);
+                parameter.setAlias(parameterAnnotationContent.alias());
+                parameter.setDefaultValue(parameterAnnotationContent.defaultValue());
+                parameter.setDeprecated(parameterAnnotationContent.getDeprecated());
+                parameter.setDescription(parameterAnnotationContent.getDescription());
+                parameter.setEditable(!parameterAnnotationContent.readonly());
                 String property = parameterAnnotationContent.property();
-                if ( StringUtils.contains( property, '$' ) || StringUtils.contains( property, '{' )
-                    || StringUtils.contains( property, '}' ) )
-                {
+                if (StringUtils.contains(property, '$')
+                        || StringUtils.contains(property, '{')
+                        || StringUtils.contains(property, '}')) {
                     throw new InvalidParameterException(
-                        "Invalid property for parameter '" + parameter.getName() + "', " + "forbidden characters ${}: "
-                            + property, null );
+                            "Invalid property for parameter '" + parameter.getName() + "', "
+                                    + "forbidden characters ${}: " + property,
+                            null);
                 }
-                parameter.setExpression( StringUtils.isEmpty( property ) ? "" : "${" + property + "}" );
-                StringBuilder type = new StringBuilder( parameterAnnotationContent.getClassName() );
-                if ( !parameterAnnotationContent.getTypeParameters().isEmpty() )
-                {
-                    type.append( parameterAnnotationContent.getTypeParameters().stream()
-                            .collect( Collectors.joining( ", ", "<", ">" ) ) );
+                parameter.setExpression(StringUtils.isEmpty(property) ? "" : "${" + property + "}");
+                StringBuilder type = new StringBuilder(parameterAnnotationContent.getClassName());
+                if (!parameterAnnotationContent.getTypeParameters().isEmpty()) {
+                    type.append(parameterAnnotationContent.getTypeParameters().stream()
+                            .collect(Collectors.joining(", ", "<", ">")));
                 }
-                parameter.setType( type.toString() );
-                parameter.setSince( parameterAnnotationContent.getSince() );
-                parameter.setRequired( parameterAnnotationContent.required() );
+                parameter.setType(type.toString());
+                parameter.setSince(parameterAnnotationContent.getSince());
+                parameter.setRequired(parameterAnnotationContent.required());
 
-                mojoDescriptor.addParameter( parameter );
+                mojoDescriptor.addParameter(parameter);
             }
 
             // Component annotations
             Map<String, ComponentAnnotationContent> components =
-                    getComponentsParentHierarchy( mojoAnnotatedClass, mojoAnnotatedClasses );
+                    getComponentsParentHierarchy(mojoAnnotatedClass, mojoAnnotatedClasses);
 
-            for ( ComponentAnnotationContent componentAnnotationContent : new TreeSet<>( components.values() ) )
-            {
+            for (ComponentAnnotationContent componentAnnotationContent : new TreeSet<>(components.values())) {
                 org.apache.maven.plugin.descriptor.Parameter parameter =
-                    new org.apache.maven.plugin.descriptor.Parameter();
-                parameter.setName( componentAnnotationContent.getFieldName() );
+                        new org.apache.maven.plugin.descriptor.Parameter();
+                parameter.setName(componentAnnotationContent.getFieldName());
 
                 // recognize Maven-injected objects as components annotations instead of parameters
-                String expression = PluginUtils.MAVEN_COMPONENTS.get( componentAnnotationContent.getRoleClassName() );
-                if ( expression == null )
-                {
+                String expression = PluginUtils.MAVEN_COMPONENTS.get(componentAnnotationContent.getRoleClassName());
+                if (expression == null) {
                     // normal component
-                    parameter.setRequirement( new Requirement( componentAnnotationContent.getRoleClassName(),
-                                                               componentAnnotationContent.hint() ) );
-                }
-                else
-                {
+                    parameter.setRequirement(new Requirement(
+                            componentAnnotationContent.getRoleClassName(), componentAnnotationContent.hint()));
+                } else {
                     // not a component but a Maven object to be transformed into an expression/property: deprecated
-                    getLogger().warn( "Deprecated @Component annotation for '" + parameter.getName() + "' field in "
-                                          + mojoAnnotatedClass.getClassName()
-                                          + ": replace with @Parameter( defaultValue = \"" + expression
-                                          + "\", readonly = true )" );
-                    parameter.setDefaultValue( expression );
-                    parameter.setType( componentAnnotationContent.getRoleClassName() );
-                    parameter.setRequired( true );
+                    getLogger()
+                            .warn("Deprecated @Component annotation for '" + parameter.getName() + "' field in "
+                                    + mojoAnnotatedClass.getClassName()
+                                    + ": replace with @Parameter( defaultValue = \"" + expression
+                                    + "\", readonly = true )");
+                    parameter.setDefaultValue(expression);
+                    parameter.setType(componentAnnotationContent.getRoleClassName());
+                    parameter.setRequired(true);
                 }
-                parameter.setDeprecated( componentAnnotationContent.getDeprecated() );
-                parameter.setSince( componentAnnotationContent.getSince() );
+                parameter.setDeprecated(componentAnnotationContent.getDeprecated());
+                parameter.setSince(componentAnnotationContent.getSince());
 
                 // same behaviour as JavaMojoDescriptorExtractor
-                //parameter.setRequired( ... );
-                parameter.setEditable( false );
+                // parameter.setRequired( ... );
+                parameter.setEditable(false);
 
-                mojoDescriptor.addParameter( parameter );
+                mojoDescriptor.addParameter(parameter);
             }
 
-            mojoDescriptor.setPluginDescriptor( pluginDescriptor );
+            mojoDescriptor.setPluginDescriptor(pluginDescriptor);
 
-            mojoDescriptors.add( mojoDescriptor );
+            mojoDescriptors.add(mojoDescriptor);
         }
         return mojoDescriptors;
     }
 
-    protected MojoAnnotatedClass findClassWithExecuteAnnotationInParentHierarchy( MojoAnnotatedClass mojoAnnotatedClass,
-                                                                 Map<String, MojoAnnotatedClass> mojoAnnotatedClasses )
-    {
-        if ( mojoAnnotatedClass.getExecute() != null )
-        {
+    protected MojoAnnotatedClass findClassWithExecuteAnnotationInParentHierarchy(
+            MojoAnnotatedClass mojoAnnotatedClass, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) {
+        if (mojoAnnotatedClass.getExecute() != null) {
             return mojoAnnotatedClass;
         }
         String parentClassName = mojoAnnotatedClass.getParentClassName();
-        if ( StringUtils.isEmpty( parentClassName ) )
-        {
+        if (StringUtils.isEmpty(parentClassName)) {
             return null;
         }
-        MojoAnnotatedClass parent = mojoAnnotatedClasses.get( parentClassName );
-        if ( parent == null )
-        {
+        MojoAnnotatedClass parent = mojoAnnotatedClasses.get(parentClassName);
+        if (parent == null) {
             return null;
         }
-        return findClassWithExecuteAnnotationInParentHierarchy( parent, mojoAnnotatedClasses );
+        return findClassWithExecuteAnnotationInParentHierarchy(parent, mojoAnnotatedClasses);
     }
 
-
     protected Map<String, ParameterAnnotationContent> getParametersParentHierarchy(
-            MojoAnnotatedClass mojoAnnotatedClass,
-            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses )
-    {
+            MojoAnnotatedClass mojoAnnotatedClass, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) {
         List<ParameterAnnotationContent> parameterAnnotationContents = new ArrayList<>();
 
         parameterAnnotationContents =
-            getParametersParent( mojoAnnotatedClass, parameterAnnotationContents, mojoAnnotatedClasses );
+                getParametersParent(mojoAnnotatedClass, parameterAnnotationContents, mojoAnnotatedClasses);
 
         // move to parent first to build the Map
-        Collections.reverse( parameterAnnotationContents );
+        Collections.reverse(parameterAnnotationContents);
 
-        Map<String, ParameterAnnotationContent> map = new HashMap<>( parameterAnnotationContents.size() );
+        Map<String, ParameterAnnotationContent> map = new HashMap<>(parameterAnnotationContents.size());
 
-        for ( ParameterAnnotationContent parameterAnnotationContent : parameterAnnotationContents )
-        {
-            map.put( parameterAnnotationContent.getFieldName(), parameterAnnotationContent );
+        for (ParameterAnnotationContent parameterAnnotationContent : parameterAnnotationContents) {
+            map.put(parameterAnnotationContent.getFieldName(), parameterAnnotationContent);
         }
         return map;
     }
 
-    protected List<ParameterAnnotationContent> getParametersParent( MojoAnnotatedClass mojoAnnotatedClass,
-                                                        List<ParameterAnnotationContent> parameterAnnotationContents,
-                                                        Map<String, MojoAnnotatedClass> mojoAnnotatedClasses )
-    {
-        parameterAnnotationContents.addAll( mojoAnnotatedClass.getParameters().values() );
+    protected List<ParameterAnnotationContent> getParametersParent(
+            MojoAnnotatedClass mojoAnnotatedClass,
+            List<ParameterAnnotationContent> parameterAnnotationContents,
+            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) {
+        parameterAnnotationContents.addAll(mojoAnnotatedClass.getParameters().values());
         String parentClassName = mojoAnnotatedClass.getParentClassName();
-        if ( parentClassName != null )
-        {
-            MojoAnnotatedClass parent = mojoAnnotatedClasses.get( parentClassName );
-            if ( parent != null )
-            {
-                return getParametersParent( parent, parameterAnnotationContents, mojoAnnotatedClasses );
+        if (parentClassName != null) {
+            MojoAnnotatedClass parent = mojoAnnotatedClasses.get(parentClassName);
+            if (parent != null) {
+                return getParametersParent(parent, parameterAnnotationContents, mojoAnnotatedClasses);
             }
         }
         return parameterAnnotationContents;
     }
 
     protected Map<String, ComponentAnnotationContent> getComponentsParentHierarchy(
-            MojoAnnotatedClass mojoAnnotatedClass,
-            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses )
-    {
+            MojoAnnotatedClass mojoAnnotatedClass, Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) {
         List<ComponentAnnotationContent> componentAnnotationContents = new ArrayList<>();
 
         componentAnnotationContents =
-            getComponentParent( mojoAnnotatedClass, componentAnnotationContents, mojoAnnotatedClasses );
+                getComponentParent(mojoAnnotatedClass, componentAnnotationContents, mojoAnnotatedClasses);
 
         // move to parent first to build the Map
-        Collections.reverse( componentAnnotationContents );
+        Collections.reverse(componentAnnotationContents);
 
-        Map<String, ComponentAnnotationContent> map = new HashMap<>( componentAnnotationContents.size() );
+        Map<String, ComponentAnnotationContent> map = new HashMap<>(componentAnnotationContents.size());
 
-        for ( ComponentAnnotationContent componentAnnotationContent : componentAnnotationContents )
-        {
-            map.put( componentAnnotationContent.getFieldName(), componentAnnotationContent );
+        for (ComponentAnnotationContent componentAnnotationContent : componentAnnotationContents) {
+            map.put(componentAnnotationContent.getFieldName(), componentAnnotationContent);
         }
         return map;
     }
 
-    protected List<ComponentAnnotationContent> getComponentParent( MojoAnnotatedClass mojoAnnotatedClass,
-                                                       List<ComponentAnnotationContent> componentAnnotationContents,
-                                                       Map<String, MojoAnnotatedClass> mojoAnnotatedClasses )
-    {
-        componentAnnotationContents.addAll( mojoAnnotatedClass.getComponents().values() );
+    protected List<ComponentAnnotationContent> getComponentParent(
+            MojoAnnotatedClass mojoAnnotatedClass,
+            List<ComponentAnnotationContent> componentAnnotationContents,
+            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses) {
+        componentAnnotationContents.addAll(mojoAnnotatedClass.getComponents().values());
         String parentClassName = mojoAnnotatedClass.getParentClassName();
-        if ( parentClassName != null )
-        {
-            MojoAnnotatedClass parent = mojoAnnotatedClasses.get( parentClassName );
-            if ( parent != null )
-            {
-                return getComponentParent( parent, componentAnnotationContents, mojoAnnotatedClasses );
+        if (parentClassName != null) {
+            MojoAnnotatedClass parent = mojoAnnotatedClasses.get(parentClassName);
+            if (parent != null) {
+                return getComponentParent(parent, componentAnnotationContents, mojoAnnotatedClasses);
             }
         }
         return componentAnnotationContents;
     }
 
-    protected MavenProject getFromProjectReferences( Artifact artifact, MavenProject project )
-    {
-        if ( project.getProjectReferences() == null || project.getProjectReferences().isEmpty() )
-        {
+    protected MavenProject getFromProjectReferences(Artifact artifact, MavenProject project) {
+        if (project.getProjectReferences() == null
+                || project.getProjectReferences().isEmpty()) {
             return null;
         }
         Collection<MavenProject> mavenProjects = project.getProjectReferences().values();
-        for ( MavenProject mavenProject : mavenProjects )
-        {
-            if ( Objects.equals( mavenProject.getId(), artifact.getId() ) )
-            {
+        for (MavenProject mavenProject : mavenProjects) {
+            if (Objects.equals(mavenProject.getId(), artifact.getId())) {
                 return mavenProject;
             }
         }
         return null;
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/ConverterContext.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/ConverterContext.java
index 29349828..d5cf69d8 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/ConverterContext.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/ConverterContext.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter;
 
 import java.net.URI;
 import java.util.Optional;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.JavadocBlockTagToHtmlConverter;
 import org.apache.maven.tools.plugin.javadoc.FullyQualifiedJavadocReference;
 import org.apache.maven.tools.plugin.javadoc.JavadocReference;
@@ -29,49 +46,48 @@ import org.apache.maven.tools.plugin.javadoc.JavadocReference;
 /**
  * Context which is passed to {@link JavadocBlockTagsToXhtmlConverter}, {@link JavadocInlineTagsToXhtmlConverter},
  * {@link JavadocBlockTagToHtmlConverter} and {@link JavadocBlockTagToHtmlConverter}.
- * It contains metadata about the container class and allows to resolve class or member names 
+ * It contains metadata about the container class and allows to resolve class or member names
  * which are not fully qualified as well as creating (deep-) links to javadoc pages.
  */
-public interface ConverterContext
-{
+public interface ConverterContext {
     /**
-     * 
+     *
      * @return the module name of the container class
      */
     Optional<String> getModuleName();
-    
+
     /**
-     * 
+     *
      * @return the package name of the container class
      */
     String getPackageName();
 
     /**
-     * 
+     *
      * @param reference
      * @return true in case either the current container class or any of its super classes are referenced
      */
-    boolean isReferencedBy( FullyQualifiedJavadocReference reference );
+    boolean isReferencedBy(FullyQualifiedJavadocReference reference);
 
     /**
-     * 
+     *
      * @return a location text (human readable) indicating where in the container class the conversion is triggered
      * (should be as specific as possible to ease debugging)
      */
     String getLocation();
 
     /**
-     * Resolves a given javadoc reference, according to the rules of 
+     * Resolves a given javadoc reference, according to the rules of
      * <a href="https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html#JSWOR655">
      * Javadoc's search order</a>.
      * @param reference the reference to resolve
      * @return the resolved fully qualified reference
      * @throws IllegalArgumentException in case the reference cannot be resolved
      */
-    FullyQualifiedJavadocReference resolveReference( JavadocReference reference );
+    FullyQualifiedJavadocReference resolveReference(JavadocReference reference);
 
     /**
-     * 
+     *
      * @return {@code true} if links to javadoc pages could potentially be generated with
      * {@link #getUrl(FullyQualifiedJavadocReference)}.
      */
@@ -85,7 +101,7 @@ public interface ConverterContext
      * @throws IllegalStateException in case no javadoc source sites have been configured
      * (i.e. {@link #canGetUrl()} returns {@code false})
      */
-    URI getUrl( FullyQualifiedJavadocReference reference );
+    URI getUrl(FullyQualifiedJavadocReference reference);
 
     /**
      * Returns the value of a referenced static field.
@@ -93,10 +109,10 @@ public interface ConverterContext
      * @return the value of the static field given by the {@code reference}
      * @throws IllegalArgumentException in case the reference does not point to a valid static field
      */
-    String getStaticFieldValue( FullyQualifiedJavadocReference reference );
+    String getStaticFieldValue(FullyQualifiedJavadocReference reference);
 
     /**
-     * Returns the base url to use for internal javadoc links 
+     * Returns the base url to use for internal javadoc links
      * @return the base url for internal javadoc links (may be {@code null}).
      */
     URI getInternalJavadocSiteBaseUrl();
@@ -108,8 +124,8 @@ public interface ConverterContext
      * @param value
      * @return the old attribute value or null.
      */
-    <T> T setAttribute( String name, T value );
-    
+    <T> T setAttribute(String name, T value);
+
     /**
      * Retrieves some attribute value from the current context.
      * @param <T>
@@ -118,5 +134,5 @@ public interface ConverterContext
      * @param defaultValue
      * @return the value of the attribute with the given name or {@code null} if it does not exist
      */
-    <T> T getAttribute( String name, Class<T> clazz, T defaultValue );
-}
\ No newline at end of file
+    <T> T getAttribute(String name, Class<T> clazz, T defaultValue);
+}
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java
index f4a6a356..25f69f06 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter;
 
 /*
@@ -19,6 +37,16 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter;
  * under the License.
  */
 
+import com.thoughtworks.qdox.JavaProjectBuilder;
+import com.thoughtworks.qdox.builder.TypeAssembler;
+import com.thoughtworks.qdox.library.ClassNameLibrary;
+import com.thoughtworks.qdox.model.JavaClass;
+import com.thoughtworks.qdox.model.JavaField;
+import com.thoughtworks.qdox.model.JavaModule;
+import com.thoughtworks.qdox.model.JavaPackage;
+import com.thoughtworks.qdox.model.JavaType;
+import com.thoughtworks.qdox.parser.structs.TypeDef;
+import com.thoughtworks.qdox.type.TypeResolver;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -30,27 +58,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Collectors;
-
-import com.thoughtworks.qdox.JavaProjectBuilder;
-import com.thoughtworks.qdox.builder.TypeAssembler;
-import com.thoughtworks.qdox.library.ClassNameLibrary;
-import com.thoughtworks.qdox.model.JavaClass;
-import com.thoughtworks.qdox.model.JavaField;
-import com.thoughtworks.qdox.model.JavaModule;
-import com.thoughtworks.qdox.model.JavaPackage;
-import com.thoughtworks.qdox.model.JavaType;
-import com.thoughtworks.qdox.parser.structs.TypeDef;
-import com.thoughtworks.qdox.type.TypeResolver;
 import org.apache.maven.tools.plugin.extractor.annotations.scanner.MojoAnnotatedClass;
 import org.apache.maven.tools.plugin.javadoc.FullyQualifiedJavadocReference;
+import org.apache.maven.tools.plugin.javadoc.FullyQualifiedJavadocReference.MemberType;
 import org.apache.maven.tools.plugin.javadoc.JavadocLinkGenerator;
 import org.apache.maven.tools.plugin.javadoc.JavadocReference;
-import org.apache.maven.tools.plugin.javadoc.FullyQualifiedJavadocReference.MemberType;
 
 /** {@link ConverterContext} based on QDox's {@link JavaClass} and {@link JavaProjectBuilder}. */
-public class JavaClassConverterContext
-    implements ConverterContext
-{
+public class JavaClassConverterContext implements ConverterContext {
 
     final JavaClass mojoClass; // this is the mojo's class
 
@@ -65,21 +80,25 @@ public class JavaClassConverterContext
     final int lineNumber;
 
     final Optional<JavaModule> javaModule;
-    
+
     final Map<String, Object> attributes;
 
-    public JavaClassConverterContext( JavaClass mojoClass, JavaProjectBuilder javaProjectBuilder,
-                                      Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
-                                      JavadocLinkGenerator linkGenerator, int lineNumber )
-    {
-        this( mojoClass, mojoClass, javaProjectBuilder, mojoAnnotatedClasses, linkGenerator, lineNumber );
+    public JavaClassConverterContext(
+            JavaClass mojoClass,
+            JavaProjectBuilder javaProjectBuilder,
+            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
+            JavadocLinkGenerator linkGenerator,
+            int lineNumber) {
+        this(mojoClass, mojoClass, javaProjectBuilder, mojoAnnotatedClasses, linkGenerator, lineNumber);
     }
 
-    public JavaClassConverterContext( JavaClass mojoClass, JavaClass declaringClass,
-                                      JavaProjectBuilder javaProjectBuilder,
-                                      Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
-                                      JavadocLinkGenerator linkGenerator, int lineNumber )
-    {
+    public JavaClassConverterContext(
+            JavaClass mojoClass,
+            JavaClass declaringClass,
+            JavaProjectBuilder javaProjectBuilder,
+            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
+            JavadocLinkGenerator linkGenerator,
+            int lineNumber) {
         this.mojoClass = mojoClass;
         this.declaringClass = declaringClass;
         this.javaProjectBuilder = javaProjectBuilder;
@@ -88,41 +107,33 @@ public class JavaClassConverterContext
         this.lineNumber = lineNumber;
         this.attributes = new HashMap<>();
 
-        javaModule =
-            mojoClass.getJavaClassLibrary().getJavaModules().stream().filter( 
-                m -> m.getDescriptor().getExports().stream().anyMatch( 
-                    e -> e.getSource().getName().equals( getPackageName() ) 
-                ) )
-            .findFirst();
+        javaModule = mojoClass.getJavaClassLibrary().getJavaModules().stream()
+                .filter(m -> m.getDescriptor().getExports().stream()
+                        .anyMatch(e -> e.getSource().getName().equals(getPackageName())))
+                .findFirst();
     }
 
     @Override
-    public Optional<String> getModuleName()
-    {
+    public Optional<String> getModuleName() {
         // https://github.com/paul-hammant/qdox/issues/113, module name is not exposed
-        return javaModule.map( JavaModule::getName );
+        return javaModule.map(JavaModule::getName);
     }
 
     @Override
-    public String getPackageName()
-    {
+    public String getPackageName() {
         return mojoClass.getPackageName();
     }
 
     @Override
-    public String getLocation()
-    {
-        try
-        {
+    public String getLocation() {
+        try {
             URL url = declaringClass.getSource().getURL();
-            if ( url == null ) // url is not always available, just emit FQCN in that case
+            if (url == null) // url is not always available, just emit FQCN in that case
             {
                 return declaringClass.getPackageName() + declaringClass.getSimpleName() + ":" + lineNumber;
             }
-            return Paths.get( "" ).toUri().relativize( url.toURI() ) + ":" + lineNumber;
-        }
-        catch ( URISyntaxException e )
-        {
+            return Paths.get("").toUri().relativize(url.toURI()) + ":" + lineNumber;
+        } catch (URISyntaxException e) {
             return declaringClass.getSource().getURL() + ":" + lineNumber;
         }
     }
@@ -132,20 +143,15 @@ public class JavaClassConverterContext
      * @return true in case either the current context class or any of its super classes are referenced
      */
     @Override
-    public boolean isReferencedBy( FullyQualifiedJavadocReference reference )
-    {
+    public boolean isReferencedBy(FullyQualifiedJavadocReference reference) {
         JavaClass javaClassInHierarchy = this.mojoClass;
-        while ( javaClassInHierarchy != null )
-        {
-            if ( isClassReferencedByReference( javaClassInHierarchy, reference ) )
-            {
+        while (javaClassInHierarchy != null) {
+            if (isClassReferencedByReference(javaClassInHierarchy, reference)) {
                 return true;
             }
             // check implemented interfaces
-            for ( JavaClass implementedInterfaces : javaClassInHierarchy.getInterfaces() )
-            {
-                if ( isClassReferencedByReference( implementedInterfaces, reference ) )
-                {
+            for (JavaClass implementedInterfaces : javaClassInHierarchy.getInterfaces()) {
+                if (isClassReferencedByReference(implementedInterfaces, reference)) {
                     return true;
                 }
             }
@@ -154,146 +160,121 @@ public class JavaClassConverterContext
         return false;
     }
 
-    private static boolean isClassReferencedByReference( JavaClass javaClass, FullyQualifiedJavadocReference reference )
-    {
-        return javaClass.getPackageName().equals( reference.getPackageName().orElse( "" ) )
-            && javaClass.getSimpleName().equals( reference.getClassName().orElse( "" ) );
+    private static boolean isClassReferencedByReference(JavaClass javaClass, FullyQualifiedJavadocReference reference) {
+        return javaClass.getPackageName().equals(reference.getPackageName().orElse(""))
+                && javaClass.getSimpleName().equals(reference.getClassName().orElse(""));
     }
 
-    
     @Override
-    public boolean canGetUrl()
-    {
+    public boolean canGetUrl() {
         return linkGenerator != null;
     }
 
     @Override
-    public URI getUrl( FullyQualifiedJavadocReference reference )
-    {
-        try
-        {
-            if ( isReferencedBy( reference ) && MemberType.FIELD == reference.getMemberType().orElse( null ) )
-            {
+    public URI getUrl(FullyQualifiedJavadocReference reference) {
+        try {
+            if (isReferencedBy(reference)
+                    && MemberType.FIELD == reference.getMemberType().orElse(null)) {
                 // link to current goal's parameters
-                return new URI( null, null, reference.getMember().orElse( null ) ); // just an anchor if same context
+                return new URI(null, null, reference.getMember().orElse(null)); // just an anchor if same context
             }
             Optional<String> fqClassName = reference.getFullyQualifiedClassName();
-            if ( fqClassName.isPresent() )
-            {
-                MojoAnnotatedClass mojoAnnotatedClass = mojoAnnotatedClasses.get( fqClassName.get() );
-                if ( mojoAnnotatedClass != null && mojoAnnotatedClass.getMojo() != null
-                    && ( !reference.getLabel().isPresent()
-                        || MemberType.FIELD == reference.getMemberType().orElse( null ) ) )
-                {
+            if (fqClassName.isPresent()) {
+                MojoAnnotatedClass mojoAnnotatedClass = mojoAnnotatedClasses.get(fqClassName.get());
+                if (mojoAnnotatedClass != null
+                        && mojoAnnotatedClass.getMojo() != null
+                        && (!reference.getLabel().isPresent()
+                                || MemberType.FIELD == reference.getMemberType().orElse(null))) {
                     // link to other mojo (only for fields = parameters or without member)
-                    return new URI( null, "./" + mojoAnnotatedClass.getMojo().name() + "-mojo.html",
-                                    reference.getMember().orElse( null ) );
+                    return new URI(
+                            null,
+                            "./" + mojoAnnotatedClass.getMojo().name() + "-mojo.html",
+                            reference.getMember().orElse(null));
                 }
             }
+        } catch (URISyntaxException e) {
+            throw new IllegalStateException("Error constructing a valid URL", e); // should not happen
         }
-        catch ( URISyntaxException e )
-        {
-            throw new IllegalStateException( "Error constructing a valid URL", e ); // should not happen
+        if (linkGenerator == null) {
+            throw new IllegalStateException("No Javadoc Sites given to create URLs to");
         }
-        if ( linkGenerator == null )
-        {
-            throw new IllegalStateException( "No Javadoc Sites given to create URLs to" );
-        }
-        return linkGenerator.createLink( reference );
+        return linkGenerator.createLink(reference);
     }
 
     @Override
-    public FullyQualifiedJavadocReference resolveReference( JavadocReference reference )
-    {
+    public FullyQualifiedJavadocReference resolveReference(JavadocReference reference) {
         Optional<FullyQualifiedJavadocReference> resolvedName;
         // is it already fully qualified?
-        if ( reference.getPackageNameClassName().isPresent() )
-        {
-            resolvedName =
-                resolveMember( reference.getPackageNameClassName().get(), reference.getMember(), reference.getLabel() );
-            if ( resolvedName.isPresent() )
-            {
+        if (reference.getPackageNameClassName().isPresent()) {
+            resolvedName = resolveMember(
+                    reference.getPackageNameClassName().get(), reference.getMember(), reference.getLabel());
+            if (resolvedName.isPresent()) {
                 return resolvedName.get();
             }
         }
         // is it a member only?
-        if ( reference.getMember().isPresent() && !reference.getPackageNameClassName().isPresent() )
-        {
+        if (reference.getMember().isPresent()
+                && !reference.getPackageNameClassName().isPresent()) {
             // search order for not fully qualified names:
             // 1. The current class or interface (only for members)
-            resolvedName = resolveMember( declaringClass, reference.getMember(), reference.getLabel() );
-            if ( resolvedName.isPresent() )
-            {
+            resolvedName = resolveMember(declaringClass, reference.getMember(), reference.getLabel());
+            if (resolvedName.isPresent()) {
                 return resolvedName.get();
             }
             // 2. Any enclosing classes and interfaces searching the closest first (only members)
-            for ( JavaClass nestedClass : declaringClass.getNestedClasses() )
-            {
-                resolvedName = resolveMember( nestedClass, reference.getMember(), reference.getLabel() );
-                if ( resolvedName.isPresent() )
-                {
+            for (JavaClass nestedClass : declaringClass.getNestedClasses()) {
+                resolvedName = resolveMember(nestedClass, reference.getMember(), reference.getLabel());
+                if (resolvedName.isPresent()) {
                     return resolvedName.get();
                 }
             }
             // 3. Any superclasses and superinterfaces, searching the closest first. (only members)
             JavaClass superClass = declaringClass.getSuperJavaClass();
-            while ( superClass != null )
-            {
-                resolvedName = resolveMember( superClass, reference.getMember(), reference.getLabel() );
-                if ( resolvedName.isPresent() )
-                {
+            while (superClass != null) {
+                resolvedName = resolveMember(superClass, reference.getMember(), reference.getLabel());
+                if (resolvedName.isPresent()) {
                     return resolvedName.get();
                 }
                 superClass = superClass.getSuperJavaClass();
             }
-        }
-        else
-        {
+        } else {
             String packageNameClassName = reference.getPackageNameClassName().get();
             // 4. The current package
-            resolvedName = resolveMember( declaringClass.getPackageName() + "." + packageNameClassName,
-                                          reference.getMember(), reference.getLabel() );
-            if ( resolvedName.isPresent() )
-            {
+            resolvedName = resolveMember(
+                    declaringClass.getPackageName() + "." + packageNameClassName,
+                    reference.getMember(),
+                    reference.getLabel());
+            if (resolvedName.isPresent()) {
                 return resolvedName.get();
             }
             // 5. Any imported packages, classes, and interfaces, searching in the order of the import statement.
             List<String> importNames = new ArrayList<>();
-            importNames.add( "java.lang.*" ); // default import
-            importNames.addAll( declaringClass.getSource().getImports() );
-            for ( String importName : importNames )
-            {
-                if ( importName.endsWith( ".*" ) )
-                {
-                    resolvedName = resolveMember( importName.replace( "*", packageNameClassName ),
-                                                  reference.getMember(), reference.getLabel() );
-                    if ( resolvedName.isPresent() )
-                    {
+            importNames.add("java.lang.*"); // default import
+            importNames.addAll(declaringClass.getSource().getImports());
+            for (String importName : importNames) {
+                if (importName.endsWith(".*")) {
+                    resolvedName = resolveMember(
+                            importName.replace("*", packageNameClassName), reference.getMember(), reference.getLabel());
+                    if (resolvedName.isPresent()) {
                         return resolvedName.get();
                     }
-                }
-                else
-                {
-                    if ( importName.endsWith( packageNameClassName ) )
-                    {
-                        resolvedName = resolveMember( importName, reference.getMember(), reference.getLabel() );
-                        if ( resolvedName.isPresent() )
-                        {
+                } else {
+                    if (importName.endsWith(packageNameClassName)) {
+                        resolvedName = resolveMember(importName, reference.getMember(), reference.getLabel());
+                        if (resolvedName.isPresent()) {
                             return resolvedName.get();
                         }
-                    }
-                    else
-                    {
+                    } else {
                         // ends with prefix of reference (nested class name)
-                        int firstDotIndex = packageNameClassName.indexOf( "." );
-                        if ( firstDotIndex > 0
-                            && importName.endsWith( packageNameClassName.substring( 0, firstDotIndex ) ) )
-                        {
-                            resolvedName =
-                                resolveMember( importName, packageNameClassName.substring( firstDotIndex + 1 ),
-                                               reference.getMember(), reference.getLabel() );
-                            if ( resolvedName.isPresent() )
-                            {
+                        int firstDotIndex = packageNameClassName.indexOf(".");
+                        if (firstDotIndex > 0
+                                && importName.endsWith(packageNameClassName.substring(0, firstDotIndex))) {
+                            resolvedName = resolveMember(
+                                    importName,
+                                    packageNameClassName.substring(firstDotIndex + 1),
+                                    reference.getMember(),
+                                    reference.getLabel());
+                            if (resolvedName.isPresent()) {
                                 return resolvedName.get();
                             }
                         }
@@ -301,185 +282,162 @@ public class JavaClassConverterContext
                 }
             }
         }
-        throw new IllegalArgumentException( "Could not resolve javadoc reference " + reference );
+        throw new IllegalArgumentException("Could not resolve javadoc reference " + reference);
     }
 
     @Override
-    public String getStaticFieldValue( FullyQualifiedJavadocReference reference )
-    {
-        String fqcn = reference.getFullyQualifiedClassName().orElseThrow(
-            () -> new IllegalArgumentException( "Given reference does not specify a fully qualified class name!" ) );
-        String fieldName = reference.getMember().orElseThrow(
-            () -> new IllegalArgumentException( "Given reference does not specify a member!" ) );
-        JavaClass javaClass = javaProjectBuilder.getClassByName( fqcn );
-        JavaField javaField = javaClass.getFieldByName( fieldName );
-        if ( javaField == null )
-        {
-            throw new IllegalArgumentException( "Could not find field with name " + fieldName + " in class " + fqcn );
+    public String getStaticFieldValue(FullyQualifiedJavadocReference reference) {
+        String fqcn = reference
+                .getFullyQualifiedClassName()
+                .orElseThrow(() ->
+                        new IllegalArgumentException("Given reference does not specify a fully qualified class name!"));
+        String fieldName = reference
+                .getMember()
+                .orElseThrow(() -> new IllegalArgumentException("Given reference does not specify a member!"));
+        JavaClass javaClass = javaProjectBuilder.getClassByName(fqcn);
+        JavaField javaField = javaClass.getFieldByName(fieldName);
+        if (javaField == null) {
+            throw new IllegalArgumentException("Could not find field with name " + fieldName + " in class " + fqcn);
         }
-        if ( !javaField.isStatic() )
-        {
-            throw new IllegalArgumentException( "Field with name " + fieldName + " in class " + fqcn
-                                                + " is not static" );
+        if (!javaField.isStatic()) {
+            throw new IllegalArgumentException("Field with name " + fieldName + " in class " + fqcn + " is not static");
         }
         return javaField.getInitializationExpression();
     }
 
     @Override
-    public URI getInternalJavadocSiteBaseUrl()
-    {
+    public URI getInternalJavadocSiteBaseUrl() {
         return linkGenerator.getInternalJavadocSiteBaseUrl();
     }
 
-    private Optional<FullyQualifiedJavadocReference> resolveMember( String fullyQualifiedPackageNameClassName,
-                                                                    Optional<String> member, Optional<String> label )
-    {
-        return resolveMember( fullyQualifiedPackageNameClassName, "", member, label );
+    private Optional<FullyQualifiedJavadocReference> resolveMember(
+            String fullyQualifiedPackageNameClassName, Optional<String> member, Optional<String> label) {
+        return resolveMember(fullyQualifiedPackageNameClassName, "", member, label);
     }
 
-    private Optional<FullyQualifiedJavadocReference> resolveMember( String fullyQualifiedPackageNameClassName,
-                                                                    String nestedClassName, Optional<String> member,
-                                                                    Optional<String> label )
-    {
-        JavaClass javaClass = javaProjectBuilder.getClassByName( fullyQualifiedPackageNameClassName );
-        if ( !isClassFound( javaClass ) )
-        {
-            JavaPackage javaPackage = javaProjectBuilder.getPackageByName( fullyQualifiedPackageNameClassName );
-            if ( javaPackage == null || !nestedClassName.isEmpty() )
-            {
+    private Optional<FullyQualifiedJavadocReference> resolveMember(
+            String fullyQualifiedPackageNameClassName,
+            String nestedClassName,
+            Optional<String> member,
+            Optional<String> label) {
+        JavaClass javaClass = javaProjectBuilder.getClassByName(fullyQualifiedPackageNameClassName);
+        if (!isClassFound(javaClass)) {
+            JavaPackage javaPackage = javaProjectBuilder.getPackageByName(fullyQualifiedPackageNameClassName);
+            if (javaPackage == null || !nestedClassName.isEmpty()) {
                 // is it a nested class?
-                int lastIndexOfDot = fullyQualifiedPackageNameClassName.lastIndexOf( '.' );
-                if ( lastIndexOfDot > 0 )
-                {
+                int lastIndexOfDot = fullyQualifiedPackageNameClassName.lastIndexOf('.');
+                if (lastIndexOfDot > 0) {
                     String newNestedClassName = nestedClassName;
-                    if ( !newNestedClassName.isEmpty() )
-                    {
+                    if (!newNestedClassName.isEmpty()) {
                         newNestedClassName += '.';
                     }
-                    newNestedClassName += fullyQualifiedPackageNameClassName.substring( lastIndexOfDot + 1 );
-                    return resolveMember( fullyQualifiedPackageNameClassName.substring( 0, lastIndexOfDot ),
-                                          newNestedClassName, member, label );
+                    newNestedClassName += fullyQualifiedPackageNameClassName.substring(lastIndexOfDot + 1);
+                    return resolveMember(
+                            fullyQualifiedPackageNameClassName.substring(0, lastIndexOfDot),
+                            newNestedClassName,
+                            member,
+                            label);
                 }
                 return Optional.empty();
-            }
-            else
-            {
+            } else {
                 // reference to java package never has a member
-                return Optional.of( new FullyQualifiedJavadocReference( javaPackage.getName(), label,
-                                                                        isExternal( javaPackage ) ) );
+                return Optional.of(
+                        new FullyQualifiedJavadocReference(javaPackage.getName(), label, isExternal(javaPackage)));
             }
-        }
-        else
-        {
-            if ( !nestedClassName.isEmpty() )
-            {
-                javaClass = javaClass.getNestedClassByName( nestedClassName );
-                if ( javaClass == null )
-                {
+        } else {
+            if (!nestedClassName.isEmpty()) {
+                javaClass = javaClass.getNestedClassByName(nestedClassName);
+                if (javaClass == null) {
                     return Optional.empty();
                 }
             }
 
-            return resolveMember( javaClass, member, label );
+            return resolveMember(javaClass, member, label);
         }
     }
 
-    private boolean isExternal( JavaClass javaClass )
-    {
-        return isExternal( javaClass.getPackage() );
+    private boolean isExternal(JavaClass javaClass) {
+        return isExternal(javaClass.getPackage());
     }
-    
-    private boolean isExternal( JavaPackage javaPackage )
-    {
-        return !javaPackage.getJavaClassLibrary().equals( mojoClass.getJavaClassLibrary() );
+
+    private boolean isExternal(JavaPackage javaPackage) {
+        return !javaPackage.getJavaClassLibrary().equals(mojoClass.getJavaClassLibrary());
     }
 
-    private Optional<FullyQualifiedJavadocReference> resolveMember( JavaClass javaClass, Optional<String> member,
-                                                                    Optional<String> label )
-    {
+    private Optional<FullyQualifiedJavadocReference> resolveMember(
+            JavaClass javaClass, Optional<String> member, Optional<String> label) {
         final Optional<MemberType> memberType;
         Optional<String> resolvedMember = member;
-        if ( member.isPresent() )
-        {
+        if (member.isPresent()) {
             // member is either field...
-            if ( javaClass.getFieldByName( member.get() ) == null )
-            {
+            if (javaClass.getFieldByName(member.get()) == null) {
                 // ...is method...
-                List<JavaType> parameterTypes = getParameterTypes( member.get() );
-                String methodName = getMethodName( member.get() );
-                if ( javaClass.getMethodBySignature( methodName, parameterTypes ) == null )
-                {
+                List<JavaType> parameterTypes = getParameterTypes(member.get());
+                String methodName = getMethodName(member.get());
+                if (javaClass.getMethodBySignature(methodName, parameterTypes) == null) {
                     // ...or is constructor
-                    if ( ( !methodName.equals( javaClass.getSimpleName() ) )
-                        || ( javaClass.getConstructor( parameterTypes ) == null ) )
-                    {
+                    if ((!methodName.equals(javaClass.getSimpleName()))
+                            || (javaClass.getConstructor(parameterTypes) == null)) {
                         return Optional.empty();
+                    } else {
+                        memberType = Optional.of(MemberType.CONSTRUCTOR);
                     }
-                    else
-                    {
-                        memberType = Optional.of( MemberType.CONSTRUCTOR );
-                    }
-                }
-                else
-                {
-                    memberType = Optional.of( MemberType.METHOD );
+                } else {
+                    memberType = Optional.of(MemberType.METHOD);
                 }
                 // reconstruct member with fully qualified names but leaving out the argument names
-                StringBuilder memberBuilder = new StringBuilder( methodName );
-                memberBuilder.append( "(" );
-                memberBuilder.append( parameterTypes.stream().map( JavaType::getFullyQualifiedName )
-                                      .collect( Collectors.joining( "," ) ) );
-                memberBuilder.append( ")" );
-                resolvedMember = Optional.of( memberBuilder.toString() );
-            }
-            else
-            {
-                memberType = Optional.of( MemberType.FIELD );
+                StringBuilder memberBuilder = new StringBuilder(methodName);
+                memberBuilder.append("(");
+                memberBuilder.append(parameterTypes.stream()
+                        .map(JavaType::getFullyQualifiedName)
+                        .collect(Collectors.joining(",")));
+                memberBuilder.append(")");
+                resolvedMember = Optional.of(memberBuilder.toString());
+            } else {
+                memberType = Optional.of(MemberType.FIELD);
             }
-        }
-        else
-        {
+        } else {
             memberType = Optional.empty();
         }
-        String className = javaClass.getCanonicalName().substring( javaClass.getPackageName().length() + 1 );
-        return Optional.of( new FullyQualifiedJavadocReference( javaClass.getPackageName(), Optional.of( className ),
-                                                                resolvedMember, memberType, label,
-                                                                isExternal( javaClass ) ) );
+        String className = javaClass
+                .getCanonicalName()
+                .substring(javaClass.getPackageName().length() + 1);
+        return Optional.of(new FullyQualifiedJavadocReference(
+                javaClass.getPackageName(),
+                Optional.of(className),
+                resolvedMember,
+                memberType,
+                label,
+                isExternal(javaClass)));
     }
 
-    private static boolean isClassFound( JavaClass javaClass )
-    {
+    private static boolean isClassFound(JavaClass javaClass) {
         // this is never null due to using the ClassNameLibrary in the builder
         // but every instance of ClassNameLibrary basically means that the class was not found
-        return !( javaClass.getJavaClassLibrary() instanceof ClassNameLibrary );
+        return !(javaClass.getJavaClassLibrary() instanceof ClassNameLibrary);
     }
 
     // https://github.com/paul-hammant/qdox/issues/104
-    private List<JavaType> getParameterTypes( String member )
-    {
+    private List<JavaType> getParameterTypes(String member) {
         List<JavaType> parameterTypes = new ArrayList<>();
         // TypeResolver.byClassName() always resolves types as non existing inner class
-        TypeResolver typeResolver =
-            TypeResolver.byClassName( declaringClass.getPackageName(), declaringClass.getJavaClassLibrary(),
-                                      declaringClass.getSource().getImports() );
+        TypeResolver typeResolver = TypeResolver.byClassName(
+                declaringClass.getPackageName(),
+                declaringClass.getJavaClassLibrary(),
+                declaringClass.getSource().getImports());
 
         // method parameters are optionally enclosed by parentheses
-        int indexOfOpeningParenthesis = member.indexOf( '(' );
-        int indexOfClosingParenthesis = member.indexOf( ')' );
+        int indexOfOpeningParenthesis = member.indexOf('(');
+        int indexOfClosingParenthesis = member.indexOf(')');
         final String signatureArguments;
-        if ( indexOfOpeningParenthesis >= 0 && indexOfClosingParenthesis > 0
-            && indexOfClosingParenthesis > indexOfOpeningParenthesis )
-        {
-            signatureArguments = member.substring( indexOfOpeningParenthesis + 1, indexOfClosingParenthesis );
-        }
-        else if ( indexOfOpeningParenthesis == -1 && indexOfClosingParenthesis >= 0
-            || indexOfOpeningParenthesis >= 0 && indexOfOpeningParenthesis == -1 )
-        {
-            throw new IllegalArgumentException( "Found opening without closing parentheses or vice versa in "
-                + member );
-        }
-        else
-        {
+        if (indexOfOpeningParenthesis >= 0
+                && indexOfClosingParenthesis > 0
+                && indexOfClosingParenthesis > indexOfOpeningParenthesis) {
+            signatureArguments = member.substring(indexOfOpeningParenthesis + 1, indexOfClosingParenthesis);
+        } else if (indexOfOpeningParenthesis == -1 && indexOfClosingParenthesis >= 0
+                || indexOfOpeningParenthesis >= 0 && indexOfOpeningParenthesis == -1) {
+            throw new IllegalArgumentException("Found opening without closing parentheses or vice versa in " + member);
+        } else {
             // If any method or constructor is entered as a name with no parentheses, such as getValue,
             // and if there is no field with the same name, then the javadoc command still creates a
             // link to the method. If this method is overloaded, then the javadoc command links to the
@@ -487,82 +445,65 @@ public class JavaClassConverterContext
             // (Source: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html#JSWOR654)
             return Collections.emptyList();
         }
-        for ( String parameter : signatureArguments.split( "," ) )
-        {
+        for (String parameter : signatureArguments.split(",")) {
             // strip off argument name, only type is relevant
             String canonicalParameter = parameter.trim();
-            int spaceIndex = canonicalParameter.indexOf( ' ' );
+            int spaceIndex = canonicalParameter.indexOf(' ');
             final String typeName;
-            if ( spaceIndex > 0 )
-            {
-                typeName = canonicalParameter.substring( 0, spaceIndex ).trim();
-            }
-            else
-            {
+            if (spaceIndex > 0) {
+                typeName = canonicalParameter.substring(0, spaceIndex).trim();
+            } else {
                 typeName = canonicalParameter;
             }
-            if ( !typeName.isEmpty() )
-            {
-                String rawTypeName = getRawTypeName( typeName );
+            if (!typeName.isEmpty()) {
+                String rawTypeName = getRawTypeName(typeName);
                 // already check here for unresolvable types due to https://github.com/paul-hammant/qdox/issues/111
-                if ( typeResolver.resolveType( rawTypeName ) == null )
-                {
-                    throw new IllegalArgumentException( "Found unresolvable method argument type in " + member );
+                if (typeResolver.resolveType(rawTypeName) == null) {
+                    throw new IllegalArgumentException("Found unresolvable method argument type in " + member);
                 }
-                TypeDef typeDef = new TypeDef( getRawTypeName( typeName ) );
-                int dimensions = getDimensions( typeName );
-                JavaType javaType = TypeAssembler.createUnresolved( typeDef, dimensions, typeResolver );
+                TypeDef typeDef = new TypeDef(getRawTypeName(typeName));
+                int dimensions = getDimensions(typeName);
+                JavaType javaType = TypeAssembler.createUnresolved(typeDef, dimensions, typeResolver);
 
-                parameterTypes.add( javaType );
+                parameterTypes.add(javaType);
             }
         }
         return parameterTypes;
     }
 
-    private static int getDimensions( String type )
-    {
-        return (int) type.chars().filter( ch -> ch == '[' ).count();
+    private static int getDimensions(String type) {
+        return (int) type.chars().filter(ch -> ch == '[').count();
     }
 
-    private static String getRawTypeName( String typeName )
-    {
+    private static String getRawTypeName(String typeName) {
         // strip dimensions
-        int indexOfOpeningBracket = typeName.indexOf( '[' );
-        if ( indexOfOpeningBracket >= 0 )
-        {
-            return typeName.substring( 0, indexOfOpeningBracket );
-        }
-        else
-        {
+        int indexOfOpeningBracket = typeName.indexOf('[');
+        if (indexOfOpeningBracket >= 0) {
+            return typeName.substring(0, indexOfOpeningBracket);
+        } else {
             return typeName;
         }
     }
 
-    private static String getMethodName( String member )
-    {
+    private static String getMethodName(String member) {
         // name is separated from arguments either by '(' or spans the full member
-        int indexOfOpeningParentheses = member.indexOf( '(' );
-        if ( indexOfOpeningParentheses == -1 )
-        {
+        int indexOfOpeningParentheses = member.indexOf('(');
+        if (indexOfOpeningParentheses == -1) {
             return member;
-        }
-        else
-        {
-            return member.substring( 0, indexOfOpeningParentheses );
+        } else {
+            return member.substring(0, indexOfOpeningParentheses);
         }
     }
 
-    @SuppressWarnings( "unchecked" )
+    @SuppressWarnings("unchecked")
     @Override
-    public <T> T setAttribute( String name, T value )
-    {
-        return (T) attributes.put( name, value );
+    public <T> T setAttribute(String name, T value) {
+        return (T) attributes.put(name, value);
     }
 
-    @SuppressWarnings( "unchecked" )
+    @SuppressWarnings("unchecked")
     @Override
-    public <T> T getAttribute( String name, Class<T> clazz, T defaultValue )
-    {
-        return (T) attributes.getOrDefault( name, defaultValue );
+    public <T> T getAttribute(String name, Class<T> clazz, T defaultValue) {
+        return (T) attributes.getOrDefault(name, defaultValue);
     }
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavadocBlockTagsToXhtmlConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavadocBlockTagsToXhtmlConverter.java
index 63feef58..9d3abe35 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavadocBlockTagsToXhtmlConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavadocBlockTagsToXhtmlConverter.java
@@ -1,5 +1,3 @@
-package org.apache.maven.tools.plugin.extractor.annotations.converter;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,12 +16,7 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter;
  * specific language governing permissions and limitations
  * under the License.
  */
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import java.util.Map;
+package org.apache.maven.tools.plugin.extractor.annotations.converter;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -45,12 +38,16 @@ import java.util.Map;
  */
 
 import com.thoughtworks.qdox.model.DocletTag;
+import java.util.Map;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.JavadocBlockTagToHtmlConverter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Converts a given 
+ * Converts a given
  * <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#block-tags">
  * javadoc block taglet</a> to HTML.
  * The implementations have a name equal to the supported doclet name.
@@ -58,52 +55,41 @@ import org.slf4j.LoggerFactory;
  */
 @Named
 @Singleton
-public class JavadocBlockTagsToXhtmlConverter
-{
-    private static final Logger LOG = LoggerFactory.getLogger( JavadocBlockTagsToXhtmlConverter.class );
+public class JavadocBlockTagsToXhtmlConverter {
+    private static final Logger LOG = LoggerFactory.getLogger(JavadocBlockTagsToXhtmlConverter.class);
 
     private final JavadocInlineTagsToXhtmlConverter inlineTagsConverter;
     private final Map<String, JavadocBlockTagToHtmlConverter> blockTagConverters;
 
     @Inject
-    public JavadocBlockTagsToXhtmlConverter( JavadocInlineTagsToXhtmlConverter inlineTagsConverter,
-                                             Map<String, JavadocBlockTagToHtmlConverter> blockTagConverters )
-    {
+    public JavadocBlockTagsToXhtmlConverter(
+            JavadocInlineTagsToXhtmlConverter inlineTagsConverter,
+            Map<String, JavadocBlockTagToHtmlConverter> blockTagConverters) {
         this.inlineTagsConverter = inlineTagsConverter;
         this.blockTagConverters = blockTagConverters;
     }
 
-    public String convert( DocletTag docletTag, ConverterContext context )
-    {
-        return convert( docletTag.getName(), docletTag.getValue(), context );
+    public String convert(DocletTag docletTag, ConverterContext context) {
+        return convert(docletTag.getName(), docletTag.getValue(), context);
     }
 
-    public String convert( String name, String text, ConverterContext context )
-    {
-        JavadocBlockTagToHtmlConverter converter = blockTagConverters.get( name );
-        if ( converter == null )
-        {
-            return getOriginalTag( name, text ) + "<!-- unknown block tag '" + name + "' -->";
-        }
-        else
-        {
-            try
-            {
-                String convertedBlockTagValue = converter.convert( text, context );
-                return inlineTagsConverter.convert( convertedBlockTagValue, context );
-            }
-            catch ( Throwable t )
-            {
-                LOG.warn( "Error converting javadoc block tag '{}' in {}", name, context.getLocation(), t );
-                return getOriginalTag( name, text ) + "<!-- error processing javadoc tag '" + name + "': "
-                + t.getMessage() + "-->"; // leave original javadoc in place
+    public String convert(String name, String text, ConverterContext context) {
+        JavadocBlockTagToHtmlConverter converter = blockTagConverters.get(name);
+        if (converter == null) {
+            return getOriginalTag(name, text) + "<!-- unknown block tag '" + name + "' -->";
+        } else {
+            try {
+                String convertedBlockTagValue = converter.convert(text, context);
+                return inlineTagsConverter.convert(convertedBlockTagValue, context);
+            } catch (Throwable t) {
+                LOG.warn("Error converting javadoc block tag '{}' in {}", name, context.getLocation(), t);
+                return getOriginalTag(name, text) + "<!-- error processing javadoc tag '" + name + "': "
+                        + t.getMessage() + "-->"; // leave original javadoc in place
             }
-            
         }
     }
 
-    private static String getOriginalTag( String name, String text )
-    {
-        return "@" + name + " "  + text;
+    private static String getOriginalTag(String name, String text) {
+        return "@" + name + " " + text;
     }
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavadocInlineTagsToXhtmlConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavadocInlineTagsToXhtmlConverter.java
index 8d7205c6..6f0a070d 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavadocInlineTagsToXhtmlConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavadocInlineTagsToXhtmlConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter;
 
 /*
@@ -22,7 +40,9 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.inject.Singleton;
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.JavadocTagToHtmlConverter;
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline.JavadocInlineTagToHtmlConverter;
 import org.jsoup.Jsoup;
@@ -30,28 +50,22 @@ import org.jsoup.nodes.Document;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
 /**
  * Replaces inline javadoc taglets by their according XHTML representation.
  */
 @Named
 @Singleton
-public class JavadocInlineTagsToXhtmlConverter
-{
-    private static final Logger LOG = LoggerFactory.getLogger( JavadocInlineTagsToXhtmlConverter.class );
+public class JavadocInlineTagsToXhtmlConverter {
+    private static final Logger LOG = LoggerFactory.getLogger(JavadocInlineTagsToXhtmlConverter.class);
 
     private final Map<String, JavadocInlineTagToHtmlConverter> converters;
-    
-    private static final Pattern INLINE_TAG_PATTERN = Pattern.compile( "\\{@([^\\s]*)(?:\\s([^\\}]*))?\\}" );
+
+    private static final Pattern INLINE_TAG_PATTERN = Pattern.compile("\\{@([^\\s]*)(?:\\s([^\\}]*))?\\}");
     private static final int GROUP_TAG_NAME = 1;
     private static final int GROUP_REFERENCE = 2;
 
     @Inject
-    public JavadocInlineTagsToXhtmlConverter( Map<String, JavadocInlineTagToHtmlConverter> converters )
-    {
+    public JavadocInlineTagsToXhtmlConverter(Map<String, JavadocInlineTagToHtmlConverter> converters) {
         this.converters = converters;
     }
 
@@ -61,44 +75,35 @@ public class JavadocInlineTagsToXhtmlConverter
      * @param context
      * @return
      */
-    public String convert( String text, ConverterContext context )
-    {
-        Matcher matcher = INLINE_TAG_PATTERN.matcher( text );
+    public String convert(String text, ConverterContext context) {
+        Matcher matcher = INLINE_TAG_PATTERN.matcher(text);
         StringBuffer sb = new StringBuffer();
-        while ( matcher.find() )
-        {
-            String tagName = matcher.group( GROUP_TAG_NAME );
-            JavadocTagToHtmlConverter converter = converters.get( tagName );
+        while (matcher.find()) {
+            String tagName = matcher.group(GROUP_TAG_NAME);
+            JavadocTagToHtmlConverter converter = converters.get(tagName);
             String patternReplacement;
-            if ( converter == null )
-            {
-                patternReplacement = matcher.group( 0 ) + "<!-- unsupported tag '" + tagName + "' -->";
-                LOG.warn( "Found unsupported javadoc inline tag '{}' in {}", tagName, context.getLocation() );
-            }
-            else
-            {
-                try
-                {
-                    patternReplacement = converter.convert( matcher.group( GROUP_REFERENCE ), context );
-                }
-                catch ( Throwable t )
-                {
-                    patternReplacement = matcher.group( 0 ) + "<!-- error processing javadoc tag '" + tagName + "': "
-                                         + t.getMessage() + " -->"; // leave original javadoc in place
-                    LOG.warn( "Error converting javadoc inline tag '{}' in {}", tagName, context.getLocation(), t );
+            if (converter == null) {
+                patternReplacement = matcher.group(0) + "<!-- unsupported tag '" + tagName + "' -->";
+                LOG.warn("Found unsupported javadoc inline tag '{}' in {}", tagName, context.getLocation());
+            } else {
+                try {
+                    patternReplacement = converter.convert(matcher.group(GROUP_REFERENCE), context);
+                } catch (Throwable t) {
+                    patternReplacement = matcher.group(0) + "<!-- error processing javadoc tag '" + tagName + "': "
+                            + t.getMessage() + " -->"; // leave original javadoc in place
+                    LOG.warn("Error converting javadoc inline tag '{}' in {}", tagName, context.getLocation(), t);
                 }
             }
-            matcher.appendReplacement( sb, Matcher.quoteReplacement( patternReplacement ) );
+            matcher.appendReplacement(sb, Matcher.quoteReplacement(patternReplacement));
         }
-        matcher.appendTail( sb );
-        return toXHTML( sb.toString() );
+        matcher.appendTail(sb);
+        return toXHTML(sb.toString());
     }
 
-    static String toXHTML( String bodySnippet )
-    {
+    static String toXHTML(String bodySnippet) {
         String html = "<html><head></head><body>" + bodySnippet + "</body>"; // make it a valid HTML document
-        final Document document = Jsoup.parse( html );
-        document.outputSettings().syntax( Document.OutputSettings.Syntax.xml );
+        final Document document = Jsoup.parse(html);
+        document.outputSettings().syntax(Document.OutputSettings.Syntax.xml);
         return document.body().html();
     }
-}
\ No newline at end of file
+}
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/JavadocTagToHtmlConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/JavadocTagToHtmlConverter.java
index 67cc976f..8659cfa6 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/JavadocTagToHtmlConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/JavadocTagToHtmlConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag;
 
 /*
@@ -20,7 +38,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag;
  */
 
 import java.util.regex.Pattern;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.JavadocBlockTagToHtmlConverter;
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline.JavadocInlineTagToHtmlConverter;
@@ -28,33 +45,28 @@ import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline.
 /**
  * Common base class of both {@link JavadocBlockTagToHtmlConverter} and {@link JavadocInlineTagToHtmlConverter}.
  */
-public abstract class JavadocTagToHtmlConverter
-{
+public abstract class JavadocTagToHtmlConverter {
 
-    private static final Pattern LT = Pattern.compile( "<" );
-    private static final Pattern GT = Pattern.compile( ">" );
+    private static final Pattern LT = Pattern.compile("<");
+    private static final Pattern GT = Pattern.compile(">");
 
     /**
-     * 
+     *
      * @param text the value of the tag
      * @param context the content of the tag (may be empty in case there was no content given)
      * @return the converted text which represents the tag with the given value in html
      */
-    public abstract String convert( String text, ConverterContext context );
+    public abstract String convert(String text, ConverterContext context);
 
     /** Mostly a copy of {@code org.codehaus.plexus.util.xml.PrettyPrintXMLWriter#escapeXml(String)}. */
-    protected static String escapeXmlElement( String text )
-    {
-        if ( text.indexOf( '<' ) >= 0 )
-        {
-            text = LT.matcher( text ).replaceAll( "&lt;" );
+    protected static String escapeXmlElement(String text) {
+        if (text.indexOf('<') >= 0) {
+            text = LT.matcher(text).replaceAll("&lt;");
         }
-    
-        if ( text.indexOf( '>' ) >= 0 )
-        {
-            text = GT.matcher( text ).replaceAll( "&gt;" );
+
+        if (text.indexOf('>') >= 0) {
+            text = GT.matcher(text).replaceAll("&gt;");
         }
         return text;
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/LinkUtils.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/LinkUtils.java
index c7a25143..cd096d8a 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/LinkUtils.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/LinkUtils.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag;
 
 import java.util.Optional;
 import java.util.function.UnaryOperator;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 import org.apache.maven.tools.plugin.javadoc.FullyQualifiedJavadocReference;
 import org.apache.maven.tools.plugin.javadoc.JavadocReference;
@@ -31,71 +48,71 @@ import org.slf4j.LoggerFactory;
 /**
  * Utility methods for dealing with links generated from Javadoc tags.
  */
-public class LinkUtils
-{
+public class LinkUtils {
 
-    private static final Logger LOG = LoggerFactory.getLogger( LinkUtils.class );
+    private static final Logger LOG = LoggerFactory.getLogger(LinkUtils.class);
 
-    private LinkUtils()
-    {
+    private LinkUtils() {
         // only static methods
     }
 
-    public static String createLink( String referenceValue, ConverterContext context )
-    {
-        return createLink( referenceValue, context, UnaryOperator.identity() );
+    public static String createLink(String referenceValue, ConverterContext context) {
+        return createLink(referenceValue, context, UnaryOperator.identity());
     }
 
-    public static String createLink( String referenceValue, ConverterContext context,
-                                     UnaryOperator<String> labelDecorator )
-    {
-        try
-        {
-            JavadocReference reference = JavadocReference.parse( referenceValue );
-            FullyQualifiedJavadocReference fqReference = context.resolveReference( reference );
-            if ( !context.canGetUrl() )
-            {
-                return getReferenceLabel( fqReference, context, labelDecorator, "no javadoc sites associated" );
+    public static String createLink(
+            String referenceValue, ConverterContext context, UnaryOperator<String> labelDecorator) {
+        try {
+            JavadocReference reference = JavadocReference.parse(referenceValue);
+            FullyQualifiedJavadocReference fqReference = context.resolveReference(reference);
+            if (!context.canGetUrl()) {
+                return getReferenceLabel(fqReference, context, labelDecorator, "no javadoc sites associated");
             }
-            return createLink( referenceValue, fqReference, context, labelDecorator );
-        }
-        catch ( IllegalArgumentException e )
-        {
-            LOG.warn( "Unresolvable link in javadoc tag with value {} found in {}: {}", referenceValue,
-                      context.getLocation(), e.getMessage() );
-            return labelDecorator.apply( referenceValue ) + "<!-- this link could not be resolved -->";
+            return createLink(referenceValue, fqReference, context, labelDecorator);
+        } catch (IllegalArgumentException e) {
+            LOG.warn(
+                    "Unresolvable link in javadoc tag with value {} found in {}: {}",
+                    referenceValue,
+                    context.getLocation(),
+                    e.getMessage());
+            return labelDecorator.apply(referenceValue) + "<!-- this link could not be resolved -->";
         }
     }
 
-    private static String createLink( String referenceValue, FullyQualifiedJavadocReference fqReference, 
-                                      ConverterContext context, UnaryOperator<String> labelDecorator )
-    {
+    private static String createLink(
+            String referenceValue,
+            FullyQualifiedJavadocReference fqReference,
+            ConverterContext context,
+            UnaryOperator<String> labelDecorator) {
         StringBuilder link = new StringBuilder();
-        try
-        {
-            link.append( "<a href=\"" );
-            link.append( context.getUrl( fqReference ).toString() );
-            link.append( "\">" );
-            String label = getReferenceLabel( fqReference, context );
-            label = labelDecorator.apply( label );
-            link.append( label );
-            link.append( "</a>" );
-        }
-        catch ( IllegalArgumentException e )
-        {
-            LOG.warn( "Could not get javadoc URL for reference {} at {} (fully qualified {}): {}", referenceValue,
-                      fqReference, context.getLocation(), e.getMessage() );
-            return getReferenceLabel( fqReference, context, labelDecorator,
-                                      "reference not found in associated javadoc sites" );
+        try {
+            link.append("<a href=\"");
+            link.append(context.getUrl(fqReference).toString());
+            link.append("\">");
+            String label = getReferenceLabel(fqReference, context);
+            label = labelDecorator.apply(label);
+            link.append(label);
+            link.append("</a>");
+        } catch (IllegalArgumentException e) {
+            LOG.warn(
+                    "Could not get javadoc URL for reference {} at {} (fully qualified {}): {}",
+                    referenceValue,
+                    fqReference,
+                    context.getLocation(),
+                    e.getMessage());
+            return getReferenceLabel(
+                    fqReference, context, labelDecorator, "reference not found in associated javadoc sites");
         }
         return link.toString();
     }
 
-    private static String getReferenceLabel( FullyQualifiedJavadocReference fqReference, ConverterContext context,
-                                      UnaryOperator<String> labelDecorator, String htmlComment ) 
-    {
-        String label = getReferenceLabel( fqReference, context );
-        return labelDecorator.apply( label ) + "<!-- " + htmlComment + " -->";
+    private static String getReferenceLabel(
+            FullyQualifiedJavadocReference fqReference,
+            ConverterContext context,
+            UnaryOperator<String> labelDecorator,
+            String htmlComment) {
+        String label = getReferenceLabel(fqReference, context);
+        return labelDecorator.apply(label) + "<!-- " + htmlComment + " -->";
     }
 
     /**
@@ -103,61 +120,49 @@ public class LinkUtils
      * @see <a href="https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html#JSWOR656"> javadoc: How
      *      a Name Appears</a>
      */
-    private static String getReferenceLabel( FullyQualifiedJavadocReference fqReference, ConverterContext context )
-    {
-        if ( fqReference.getLabel().isPresent() )
-        {
+    private static String getReferenceLabel(FullyQualifiedJavadocReference fqReference, ConverterContext context) {
+        if (fqReference.getLabel().isPresent()) {
             return fqReference.getLabel().get();
-        }
-        else
-        {
+        } else {
             Optional<String> packageName;
             Optional<String> moduleName;
             Optional<String> className = fqReference.getClassName();
-            if ( Optional.of( context.getPackageName() ).equals( fqReference.getPackageName() )
-                && context.getModuleName().equals( fqReference.getModuleName() ) )
-            {
+            if (Optional.of(context.getPackageName()).equals(fqReference.getPackageName())
+                    && context.getModuleName().equals(fqReference.getModuleName())) {
                 packageName = Optional.empty();
                 moduleName = Optional.empty();
-                if ( context.isReferencedBy( fqReference ) )
-                {
+                if (context.isReferencedBy(fqReference)) {
                     className = Optional.empty();
                 }
-            }
-            else
-            {
+            } else {
                 packageName = fqReference.getPackageName();
                 moduleName = fqReference.getModuleName();
             }
-            return createLabel( moduleName, packageName, className, fqReference.getMember() );
+            return createLabel(moduleName, packageName, className, fqReference.getMember());
         }
     }
 
-    private static String createLabel( Optional<String> moduleName, Optional<String> packageName,
-                                       Optional<String> className, Optional<String> member )
-    {
+    private static String createLabel(
+            Optional<String> moduleName,
+            Optional<String> packageName,
+            Optional<String> className,
+            Optional<String> member) {
         StringBuilder sb = new StringBuilder();
-        if ( packageName.isPresent() && !"java.lang".equals( packageName.get() ) )
-        {
-            sb.append( packageName.get() );
+        if (packageName.isPresent() && !"java.lang".equals(packageName.get())) {
+            sb.append(packageName.get());
         }
-        if ( className.isPresent() )
-        {
-            if ( sb.length() > 0 )
-            {
-                sb.append( '.' );
+        if (className.isPresent()) {
+            if (sb.length() > 0) {
+                sb.append('.');
             }
-            sb.append( className.get() );
+            sb.append(className.get());
         }
-        if ( member.isPresent() )
-        {
-            if ( sb.length() > 0 )
-            {
-                sb.append( '.' );
+        if (member.isPresent()) {
+            if (sb.length() > 0) {
+                sb.append('.');
             }
-            sb.append( member.get() );
+            sb.append(member.get());
         }
         return sb.toString();
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/block/JavadocBlockTagToHtmlConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/block/JavadocBlockTagToHtmlConverter.java
index 373f9968..32a5a8bd 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/block/JavadocBlockTagToHtmlConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/block/JavadocBlockTagToHtmlConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block;
 
 /*
@@ -27,7 +45,4 @@ import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.Javadoc
  * Javadoc block tag</a> to HTML format.
  * The resolved HTML format may still contain other javadoc inline tags.
  */
-public abstract class JavadocBlockTagToHtmlConverter extends JavadocTagToHtmlConverter
-{
-
-}
+public abstract class JavadocBlockTagToHtmlConverter extends JavadocTagToHtmlConverter {}
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/block/SeeTagConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/block/SeeTagConverter.java
index 8b4b270e..6fc8f0ec 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/block/SeeTagConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/block/SeeTagConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block;
 
 import javax.inject.Named;
 import javax.inject.Singleton;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.LinkUtils;
 
@@ -29,44 +46,33 @@ import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.LinkUti
  * Supports <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#see">block see
  * taglet</a>.
  */
-@Named( "see" )
+@Named("see")
 @Singleton
-public class SeeTagConverter
-    extends JavadocBlockTagToHtmlConverter
-{
-    private static final String ATTRIBUTE_NAME_IS_FIRST_REFERENCE = 
-                    "SeeTagletConverter.isFirstReference";
+public class SeeTagConverter extends JavadocBlockTagToHtmlConverter {
+    private static final String ATTRIBUTE_NAME_IS_FIRST_REFERENCE = "SeeTagletConverter.isFirstReference";
 
     @Override
-    public String convert( String value, ConverterContext context )
-    {
+    public String convert(String value, ConverterContext context) {
         StringBuilder htmlBuilder = new StringBuilder();
-        Boolean isFirstReference = context.getAttribute( ATTRIBUTE_NAME_IS_FIRST_REFERENCE,
-                                                         Boolean.class, Boolean.TRUE );
-        if ( Boolean.TRUE.equals( isFirstReference ) )
-        {
+        Boolean isFirstReference = context.getAttribute(ATTRIBUTE_NAME_IS_FIRST_REFERENCE, Boolean.class, Boolean.TRUE);
+        if (Boolean.TRUE.equals(isFirstReference)) {
             // headline only once per instance
-            htmlBuilder.append( "<br/><strong>See also:</strong>\n" );
-            context.setAttribute( ATTRIBUTE_NAME_IS_FIRST_REFERENCE, Boolean.FALSE );
-        }
-        else
-        {
-            // multiple links just comma separated, 
-            htmlBuilder.append( ", " );
+            htmlBuilder.append("<br/><strong>See also:</strong>\n");
+            context.setAttribute(ATTRIBUTE_NAME_IS_FIRST_REFERENCE, Boolean.FALSE);
+        } else {
+            // multiple links just comma separated,
+            htmlBuilder.append(", ");
         }
         // is it regular HTML link?
-        if ( value.startsWith( "<a href" ) )
-        {
-            return htmlBuilder.append( value ).toString();
+        if (value.startsWith("<a href")) {
+            return htmlBuilder.append(value).toString();
         }
         // is it just a soft string reference?
-        if ( value.startsWith( "\"" ) )
-        {
-            return htmlBuilder.append( value ).toString();
+        if (value.startsWith("\"")) {
+            return htmlBuilder.append(value).toString();
         }
-        String link = LinkUtils.createLink( value, context );
-        htmlBuilder.append( link );
+        String link = LinkUtils.createLink(value, context);
+        htmlBuilder.append(link);
         return htmlBuilder.toString();
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/CodeTagConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/CodeTagConverter.java
index c2f55cb1..04539fd7 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/CodeTagConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/CodeTagConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline;
 
 /*
@@ -21,23 +39,17 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline
 
 import javax.inject.Named;
 import javax.inject.Singleton;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 
 /**
  * Supports <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#code">
  * inline code tag</a>.
  */
-@Named( "code" )
+@Named("code")
 @Singleton
-public class CodeTagConverter
-    extends JavadocInlineTagToHtmlConverter
-{
+public class CodeTagConverter extends JavadocInlineTagToHtmlConverter {
     @Override
-    public String convert( String text, ConverterContext context )
-    {
-        return "<code>" + escapeXmlElement( text ) + "</code>";
+    public String convert(String text, ConverterContext context) {
+        return "<code>" + escapeXmlElement(text) + "</code>";
     }
-
-    
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/DocRootTagConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/DocRootTagConverter.java
index 6dce4c16..dd76e230 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/DocRootTagConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/DocRootTagConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline;
 
 /*
@@ -21,22 +39,17 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline
 
 import javax.inject.Named;
 import javax.inject.Singleton;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 
 /**
  * Supports <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#docroot">
  * docRoot value tag</a>.
  */
-@Named( "docRoot" )
+@Named("docRoot")
 @Singleton
-public class DocRootTagConverter
-    extends JavadocInlineTagToHtmlConverter
-{
+public class DocRootTagConverter extends JavadocInlineTagToHtmlConverter {
     @Override
-    public String convert( String text, ConverterContext context )
-    {
+    public String convert(String text, ConverterContext context) {
         return context.getInternalJavadocSiteBaseUrl().toString();
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/JavadocInlineTagToHtmlConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/JavadocInlineTagToHtmlConverter.java
index bcfdf593..e035dadc 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/JavadocInlineTagToHtmlConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/JavadocInlineTagToHtmlConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline;
 
 /*
@@ -26,6 +44,4 @@ import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.Javadoc
  * <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#inline-tags">
  * Javadoc inline tag</a> to HTML format.
  */
-public abstract class JavadocInlineTagToHtmlConverter extends JavadocTagToHtmlConverter
-{
-}
+public abstract class JavadocInlineTagToHtmlConverter extends JavadocTagToHtmlConverter {}
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LinkPlainTagToHtmlConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LinkPlainTagToHtmlConverter.java
index ffde1d9c..a78c2f89 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LinkPlainTagToHtmlConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LinkPlainTagToHtmlConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline
 
 import javax.inject.Named;
 import javax.inject.Singleton;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.LinkUtils;
 
@@ -29,14 +46,11 @@ import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.LinkUti
  * Supports <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#linkplain">
  * inline linkplain taglet</a>.
  */
-@Named( "linkplain" )
+@Named("linkplain")
 @Singleton
-public class LinkPlainTagToHtmlConverter
-    extends JavadocInlineTagToHtmlConverter
-{
+public class LinkPlainTagToHtmlConverter extends JavadocInlineTagToHtmlConverter {
     @Override
-    public String convert( String text, ConverterContext context )
-    {
-        return LinkUtils.createLink( text, context );
+    public String convert(String text, ConverterContext context) {
+        return LinkUtils.createLink(text, context);
     }
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LinkTagToHtmlConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LinkTagToHtmlConverter.java
index 9575538a..3101f162 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LinkTagToHtmlConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LinkTagToHtmlConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline
 
 import javax.inject.Named;
 import javax.inject.Singleton;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.LinkUtils;
 
@@ -29,26 +46,21 @@ import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.LinkUti
  * Supports <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#link">
  * inline link tag</a>.
  */
-@Named( "link" )
+@Named("link")
 @Singleton
-public class LinkTagToHtmlConverter
-    extends JavadocInlineTagToHtmlConverter
-{
+public class LinkTagToHtmlConverter extends JavadocInlineTagToHtmlConverter {
     @Override
-    public String convert( String text, ConverterContext context )
-    {
-        return LinkUtils.createLink( text, context, LinkTagToHtmlConverter::decorateLinkLabel );
+    public String convert(String text, ConverterContext context) {
+        return LinkUtils.createLink(text, context, LinkTagToHtmlConverter::decorateLinkLabel);
     }
 
     /**
      * Encloses the given label in {@code code} HTML tags.
-     * 
+     *
      * @param label
      * @return
      */
-    static String decorateLinkLabel( String label )
-    {
+    static String decorateLinkLabel(String label) {
         return "<code>" + label + "</code>";
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LiteralTagToHtmlConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LiteralTagToHtmlConverter.java
index fab365a6..fb98a9f8 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LiteralTagToHtmlConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/LiteralTagToHtmlConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline;
 
 /*
@@ -21,22 +39,17 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline
 
 import javax.inject.Named;
 import javax.inject.Singleton;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 
 /**
  * Supports <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#literal">
  * inline literal tag</a>.
  */
-@Named( "literal" )
+@Named("literal")
 @Singleton
-public class LiteralTagToHtmlConverter
-    extends JavadocInlineTagToHtmlConverter
-{
+public class LiteralTagToHtmlConverter extends JavadocInlineTagToHtmlConverter {
     @Override
-    public String convert( String text, ConverterContext context )
-    {
-        return escapeXmlElement( text );
+    public String convert(String text, ConverterContext context) {
+        return escapeXmlElement(text);
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/ValueTagConverter.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/ValueTagConverter.java
index 30884b33..8519dee5 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/ValueTagConverter.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/tag/inline/ValueTagConverter.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline
 
 import javax.inject.Named;
 import javax.inject.Singleton;
-
 import org.apache.maven.tools.plugin.extractor.annotations.converter.ConverterContext;
 import org.apache.maven.tools.plugin.javadoc.FullyQualifiedJavadocReference;
 import org.apache.maven.tools.plugin.javadoc.JavadocReference;
@@ -30,17 +47,12 @@ import org.apache.maven.tools.plugin.javadoc.JavadocReference;
  * Supports <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/doc-comment-spec.html#value">
  * inline value tag</a>.
  */
-@Named( "value" )
+@Named("value")
 @Singleton
-public class ValueTagConverter
-    extends JavadocInlineTagToHtmlConverter
-{
+public class ValueTagConverter extends JavadocInlineTagToHtmlConverter {
     @Override
-    public String convert( String text, ConverterContext context )
-    {
-        FullyQualifiedJavadocReference reference = 
-                        context.resolveReference( JavadocReference.parse( text ) );
-        return context.getStaticFieldValue( reference );
+    public String convert(String text, ConverterContext context) {
+        FullyQualifiedJavadocReference reference = context.resolveReference(JavadocReference.parse(text));
+        return context.getStaticFieldValue(reference);
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/AnnotatedContent.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/AnnotatedContent.java
index 54494e0a..ab0a15a2 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/AnnotatedContent.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/AnnotatedContent.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
 
 /*
@@ -23,8 +41,7 @@ package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
  * @author Olivier Lamy
  * @since 3.0
  */
-public class AnnotatedContent
-{
+public class AnnotatedContent {
 
     private String description;
 
@@ -32,34 +49,27 @@ public class AnnotatedContent
 
     private String deprecated;
 
-    public String getDescription()
-    {
+    public String getDescription() {
         return description;
     }
 
-    public void setDescription( String description )
-    {
+    public void setDescription(String description) {
         this.description = description;
     }
 
-    public String getSince()
-    {
+    public String getSince() {
         return since;
     }
 
-    public void setSince( String since )
-    {
+    public void setSince(String since) {
         this.since = since;
     }
 
-    public String getDeprecated()
-    {
+    public String getDeprecated() {
         return deprecated;
     }
 
-    public void setDeprecated( String deprecated )
-    {
+    public void setDeprecated(String deprecated) {
         this.deprecated = deprecated;
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/AnnotatedField.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/AnnotatedField.java
index dca8eddc..04dd0511 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/AnnotatedField.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/AnnotatedField.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
 
 /*
@@ -23,40 +41,32 @@ package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
  * @author Olivier Lamy
  * @since 3.0
  */
-public class AnnotatedField
-    extends AnnotatedContent
-    implements Comparable<AnnotatedField>
-{
+public class AnnotatedField extends AnnotatedContent implements Comparable<AnnotatedField> {
     private String fieldName;
 
-    public AnnotatedField( String fieldName )
-    {
+    public AnnotatedField(String fieldName) {
         this.fieldName = fieldName;
     }
 
-    public String getFieldName()
-    {
+    public String getFieldName() {
         return fieldName;
     }
 
-    public void setFieldName( String name )
-    {
+    public void setFieldName(String name) {
         this.fieldName = name;
     }
 
     @Override
-    public String toString()
-    {
+    public String toString() {
         final StringBuilder sb = new StringBuilder();
-        sb.append( "AnnotatedField" );
-        sb.append( "{fieldName='" ).append( fieldName ).append( '\'' );
-        sb.append( '}' );
+        sb.append("AnnotatedField");
+        sb.append("{fieldName='").append(fieldName).append('\'');
+        sb.append('}');
         return sb.toString();
     }
 
     @Override
-    public int compareTo( AnnotatedField annotatedField )
-    {
-        return getFieldName().compareTo( annotatedField.getFieldName() );
+    public int compareTo(AnnotatedField annotatedField) {
+        return getFieldName().compareTo(annotatedField.getFieldName());
     }
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ComponentAnnotationContent.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ComponentAnnotationContent.java
index 219d2585..70523133 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ComponentAnnotationContent.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ComponentAnnotationContent.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
 
 /*
@@ -19,77 +37,64 @@ package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
  * under the License.
  */
 
-import org.apache.maven.plugins.annotations.Component;
-
 import java.lang.annotation.Annotation;
+import org.apache.maven.plugins.annotations.Component;
 
 /**
  * @author Olivier Lamy
  * @since 3.0
  */
-public class ComponentAnnotationContent
-    extends AnnotatedField
-    implements Component
-{
+public class ComponentAnnotationContent extends AnnotatedField implements Component {
     private String roleClassName;
 
     private String hint;
 
-    public ComponentAnnotationContent( String fieldName )
-    {
-        super( fieldName );
+    public ComponentAnnotationContent(String fieldName) {
+        super(fieldName);
     }
 
-    public ComponentAnnotationContent( String fieldName, String role, String hint )
-    {
-        this( fieldName );
+    public ComponentAnnotationContent(String fieldName, String role, String hint) {
+        this(fieldName);
         this.roleClassName = role;
         this.hint = hint;
     }
 
     @Override
-    public Class<?> role()
-    {
+    public Class<?> role() {
         // not used
         return null;
     }
 
-    public void setRoleClassName( String roleClassName )
-    {
+    public void setRoleClassName(String roleClassName) {
         this.roleClassName = roleClassName;
     }
 
-    public String getRoleClassName()
-    {
+    public String getRoleClassName() {
         return roleClassName;
     }
 
     @Override
-    public String hint()
-    {
+    public String hint() {
         return hint == null ? "" : hint;
     }
 
-    public void hint( String hint )
-    {
+    public void hint(String hint) {
         this.hint = hint;
     }
 
     @Override
-    public Class<? extends Annotation> annotationType()
-    {
+    public Class<? extends Annotation> annotationType() {
         return null;
     }
 
     @Override
-    public String toString()
-    {
+    public String toString() {
         final StringBuilder sb = new StringBuilder();
-        sb.append( super.toString() );
-        sb.append( "ComponentAnnotationContent" );
-        sb.append( "{role='" ).append( roleClassName ).append( '\'' );
-        sb.append( ", hint='" ).append( hint ).append( '\'' );
-        sb.append( '}' );
+        sb.append(super.toString());
+        sb.append("ComponentAnnotationContent");
+        sb.append("{role='").append(roleClassName).append('\'');
+        sb.append(", hint='").append(hint).append('\'');
+        sb.append('}');
         return sb.toString();
     }
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ExecuteAnnotationContent.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ExecuteAnnotationContent.java
index c5201923..3eaba604 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ExecuteAnnotationContent.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ExecuteAnnotationContent.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
 
 /*
@@ -19,18 +37,15 @@ package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
  * under the License.
  */
 
+import java.lang.annotation.Annotation;
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 
-import java.lang.annotation.Annotation;
-
 /**
  * @author Olivier Lamy
  * @since 3.0
  */
-public class ExecuteAnnotationContent
-    implements Execute
-{
+public class ExecuteAnnotationContent implements Execute {
     private String goal;
 
     private String lifecycle;
@@ -40,68 +55,55 @@ public class ExecuteAnnotationContent
     private String customPhase;
 
     @Override
-    public LifecyclePhase phase()
-    {
+    public LifecyclePhase phase() {
         return this.phase;
     }
 
     @Override
-    public String customPhase()
-    {
+    public String customPhase() {
         return customPhase;
     }
 
     @Override
-    public String goal()
-    {
+    public String goal() {
         return this.goal;
     }
 
     @Override
-    public String lifecycle()
-    {
+    public String lifecycle() {
         return this.lifecycle;
     }
 
-    public void phase( String phase )
-    {
-        this.phase = LifecyclePhase.valueOf( phase );
+    public void phase(String phase) {
+        this.phase = LifecyclePhase.valueOf(phase);
     }
 
-    public void customPhase( String customPhase )
-    {
+    public void customPhase(String customPhase) {
         this.customPhase = customPhase;
     }
 
-    public void goal( String goal )
-    {
+    public void goal(String goal) {
         this.goal = goal;
     }
 
-    public void lifecycle( String lifecycle )
-    {
+    public void lifecycle(String lifecycle) {
         this.lifecycle = lifecycle;
     }
 
-
     @Override
-    public Class<? extends Annotation> annotationType()
-    {
+    public Class<? extends Annotation> annotationType() {
         return null;
     }
 
     @Override
-    public String toString()
-    {
+    public String toString() {
         final StringBuilder sb = new StringBuilder();
-        sb.append( "ExecuteAnnotationContent" );
-        sb.append( "{goal='" ).append( goal ).append( '\'' );
-        sb.append( ", lifecycle='" ).append( lifecycle ).append( '\'' );
-        sb.append( ", phase=" ).append( phase );
-        sb.append( ", customPhase=" ).append( customPhase );
-        sb.append( '}' );
+        sb.append("ExecuteAnnotationContent");
+        sb.append("{goal='").append(goal).append('\'');
+        sb.append(", lifecycle='").append(lifecycle).append('\'');
+        sb.append(", phase=").append(phase);
+        sb.append(", customPhase=").append(customPhase);
+        sb.append('}');
         return sb.toString();
     }
-
-    
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/MojoAnnotationContent.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/MojoAnnotationContent.java
index 05bc092e..91a33bdd 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/MojoAnnotationContent.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/MojoAnnotationContent.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
 
 /*
@@ -19,21 +37,17 @@ package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
  * under the License.
  */
 
+import java.lang.annotation.Annotation;
 import org.apache.maven.plugins.annotations.InstantiationStrategy;
 import org.apache.maven.plugins.annotations.LifecyclePhase;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 
-import java.lang.annotation.Annotation;
-
 /**
  * @author Olivier Lamy
  * @since 3.0
  */
-public class MojoAnnotationContent
-    extends AnnotatedContent
-    implements Mojo
-{
+public class MojoAnnotationContent extends AnnotatedContent implements Mojo {
     private String name;
 
     private LifecyclePhase defaultPhase = LifecyclePhase.NONE;
@@ -63,185 +77,159 @@ public class MojoAnnotationContent
     private boolean threadSafe = false;
 
     @Override
-    public Class<? extends Annotation> annotationType()
-    {
+    public Class<? extends Annotation> annotationType() {
         return null;
     }
 
     @Override
-    public LifecyclePhase defaultPhase()
-    {
+    public LifecyclePhase defaultPhase() {
         return defaultPhase;
     }
 
-    public void defaultPhase( String phase )
-    {
-        this.defaultPhase = LifecyclePhase.valueOf( phase );
+    public void defaultPhase(String phase) {
+        this.defaultPhase = LifecyclePhase.valueOf(phase);
     }
 
     @Override
-    public ResolutionScope requiresDependencyResolution()
-    {
+    public ResolutionScope requiresDependencyResolution() {
         return requiresDependencyResolution;
     }
 
-    public void requiresDependencyResolution( String requiresDependencyResolution )
-    {
-        this.requiresDependencyResolution = ResolutionScope.valueOf( requiresDependencyResolution );
+    public void requiresDependencyResolution(String requiresDependencyResolution) {
+        this.requiresDependencyResolution = ResolutionScope.valueOf(requiresDependencyResolution);
     }
 
     @Override
-    public ResolutionScope requiresDependencyCollection()
-    {
+    public ResolutionScope requiresDependencyCollection() {
         return requiresDependencyCollection;
     }
 
-    public void requiresDependencyCollection( String requiresDependencyCollection )
-    {
-        this.requiresDependencyCollection = ResolutionScope.valueOf( requiresDependencyCollection );
+    public void requiresDependencyCollection(String requiresDependencyCollection) {
+        this.requiresDependencyCollection = ResolutionScope.valueOf(requiresDependencyCollection);
     }
 
     @Override
-    public InstantiationStrategy instantiationStrategy()
-    {
+    public InstantiationStrategy instantiationStrategy() {
         return instantiationStrategy;
     }
 
-    public void instantiationStrategy( String instantiationStrategy )
-    {
-        this.instantiationStrategy = InstantiationStrategy.valueOf( instantiationStrategy );
+    public void instantiationStrategy(String instantiationStrategy) {
+        this.instantiationStrategy = InstantiationStrategy.valueOf(instantiationStrategy);
     }
 
     @Override
-    public String executionStrategy()
-    {
+    public String executionStrategy() {
         return executionStrategy;
     }
 
-    public void executionStrategy( String executionStrategy )
-    {
+    public void executionStrategy(String executionStrategy) {
         this.executionStrategy = executionStrategy;
     }
 
     @Override
-    public boolean requiresProject()
-    {
+    public boolean requiresProject() {
         return requiresProject;
     }
 
-    public void requiresProject( boolean requiresProject )
-    {
+    public void requiresProject(boolean requiresProject) {
         this.requiresProject = requiresProject;
     }
 
     @Override
-    public boolean requiresReports()
-    {
+    public boolean requiresReports() {
         return requiresReports;
     }
 
-    public void requiresReports( boolean requiresReports )
-    {
+    public void requiresReports(boolean requiresReports) {
         this.requiresReports = requiresReports;
     }
 
     @Override
-    public boolean aggregator()
-    {
+    public boolean aggregator() {
         return aggregator;
     }
 
-    public void aggregator( boolean aggregator )
-    {
+    public void aggregator(boolean aggregator) {
         this.aggregator = aggregator;
     }
 
     @Override
-    public boolean requiresDirectInvocation()
-    {
+    public boolean requiresDirectInvocation() {
         return requiresDirectInvocation;
     }
 
-    public void requiresDirectInvocation( boolean requiresDirectInvocation )
-    {
+    public void requiresDirectInvocation(boolean requiresDirectInvocation) {
         this.requiresDirectInvocation = requiresDirectInvocation;
     }
 
     @Override
-    public boolean requiresOnline()
-    {
+    public boolean requiresOnline() {
         return requiresOnline;
     }
 
-    public void requiresOnline( boolean requiresOnline )
-    {
+    public void requiresOnline(boolean requiresOnline) {
         this.requiresOnline = requiresOnline;
     }
 
     @Override
-    public boolean inheritByDefault()
-    {
+    public boolean inheritByDefault() {
         return inheritByDefault;
     }
 
-    public void inheritByDefault( boolean inheritByDefault )
-    {
+    public void inheritByDefault(boolean inheritByDefault) {
         this.inheritByDefault = inheritByDefault;
     }
 
     @Override
-    public String configurator()
-    {
+    public String configurator() {
         return configurator;
     }
 
-    public void configurator( String configurator )
-    {
+    public void configurator(String configurator) {
         this.configurator = configurator;
     }
 
     @Override
-    public boolean threadSafe()
-    {
+    public boolean threadSafe() {
         return threadSafe;
     }
 
-    public void threadSafe( boolean threadSafe )
-    {
+    public void threadSafe(boolean threadSafe) {
         this.threadSafe = threadSafe;
     }
 
     @Override
-    public String name()
-    {
+    public String name() {
         return this.name;
     }
 
-    public void name( String name )
-    {
+    public void name(String name) {
         this.name = name;
     }
 
     @Override
-    public String toString()
-    {
+    public String toString() {
         final StringBuilder sb = new StringBuilder();
-        sb.append( "MojoAnnotationContent" );
-        sb.append( "{name='" ).append( name ).append( '\'' );
-        sb.append( ", defaultPhase=" ).append( defaultPhase );
-        sb.append( ", requiresDependencyResolution='" ).append( requiresDependencyResolution ).append( '\'' );
-        sb.append( ", requiresDependencyCollection='" ).append( requiresDependencyCollection ).append( '\'' );
-        sb.append( ", instantiationStrategy='" ).append( instantiationStrategy ).append( '\'' );
-        sb.append( ", executionStrategy='" ).append( executionStrategy ).append( '\'' );
-        sb.append( ", requiresProject=" ).append( requiresProject );
-        sb.append( ", requiresReports=" ).append( requiresReports );
-        sb.append( ", aggregator=" ).append( aggregator );
-        sb.append( ", requiresDirectInvocation=" ).append( requiresDirectInvocation );
-        sb.append( ", requiresOnline=" ).append( requiresOnline );
-        sb.append( ", inheritByDefault=" ).append( inheritByDefault );
-        sb.append( ", configurator='" ).append( configurator ).append( '\'' );
-        sb.append( ", threadSafe=" ).append( threadSafe );
-        sb.append( '}' );
+        sb.append("MojoAnnotationContent");
+        sb.append("{name='").append(name).append('\'');
+        sb.append(", defaultPhase=").append(defaultPhase);
+        sb.append(", requiresDependencyResolution='")
+                .append(requiresDependencyResolution)
+                .append('\'');
+        sb.append(", requiresDependencyCollection='")
+                .append(requiresDependencyCollection)
+                .append('\'');
+        sb.append(", instantiationStrategy='").append(instantiationStrategy).append('\'');
+        sb.append(", executionStrategy='").append(executionStrategy).append('\'');
+        sb.append(", requiresProject=").append(requiresProject);
+        sb.append(", requiresReports=").append(requiresReports);
+        sb.append(", aggregator=").append(aggregator);
+        sb.append(", requiresDirectInvocation=").append(requiresDirectInvocation);
+        sb.append(", requiresOnline=").append(requiresOnline);
+        sb.append(", inheritByDefault=").append(inheritByDefault);
+        sb.append(", configurator='").append(configurator).append('\'');
+        sb.append(", threadSafe=").append(threadSafe);
+        sb.append('}');
         return sb.toString();
     }
-}
\ No newline at end of file
+}
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ParameterAnnotationContent.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ParameterAnnotationContent.java
index 99f3c47b..41ac095f 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ParameterAnnotationContent.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/datamodel/ParameterAnnotationContent.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
 
 /*
@@ -19,20 +37,16 @@ package org.apache.maven.tools.plugin.extractor.annotations.datamodel;
  * under the License.
  */
 
-import org.apache.maven.plugins.annotations.Parameter;
-
 import java.lang.annotation.Annotation;
 import java.util.List;
 import java.util.Objects;
+import org.apache.maven.plugins.annotations.Parameter;
 
 /**
  * @author Olivier Lamy
  * @since 3.0
  */
-public class ParameterAnnotationContent
-    extends AnnotatedField
-    implements Parameter
-{
+public class ParameterAnnotationContent extends AnnotatedField implements Parameter {
 
     private String name;
 
@@ -52,20 +66,25 @@ public class ParameterAnnotationContent
 
     private final List<String> typeParameters;
 
-    public ParameterAnnotationContent( String fieldName, String className, List<String> typeParameters,
-                                       boolean annotationOnMethod )
-    {
-        super( fieldName );
+    public ParameterAnnotationContent(
+            String fieldName, String className, List<String> typeParameters, boolean annotationOnMethod) {
+        super(fieldName);
         this.className = className;
         this.typeParameters = typeParameters;
         this.annotationOnMethod = annotationOnMethod;
     }
 
-    public ParameterAnnotationContent( String fieldName, String alias, String property, String defaultValue,
-                                       boolean required, boolean readonly, String className,
-                                       List<String> typeParameters, boolean annotationOnMethod )
-    {
-        this( fieldName, className, typeParameters, annotationOnMethod );
+    public ParameterAnnotationContent(
+            String fieldName,
+            String alias,
+            String property,
+            String defaultValue,
+            boolean required,
+            boolean readonly,
+            String className,
+            List<String> typeParameters,
+            boolean annotationOnMethod) {
+        this(fieldName, className, typeParameters, annotationOnMethod);
         this.alias = alias;
         this.property = property;
         this.defaultValue = defaultValue;
@@ -74,170 +93,140 @@ public class ParameterAnnotationContent
     }
 
     @Override
-    public String name()
-    {
+    public String name() {
         return name;
     }
 
-    public void name( String name )
-    {
+    public void name(String name) {
         this.name = name;
     }
 
     @Override
-    public String alias()
-    {
+    public String alias() {
         return alias;
     }
 
-    public void alias( String alias )
-    {
+    public void alias(String alias) {
         this.alias = alias;
     }
 
     @Override
-    public String property()
-    {
+    public String property() {
         return property;
     }
 
-    public void property( String property )
-    {
+    public void property(String property) {
         this.property = property;
     }
 
     @Override
-    public String defaultValue()
-    {
+    public String defaultValue() {
         return defaultValue;
     }
 
-    public void defaultValue( String defaultValue )
-    {
+    public void defaultValue(String defaultValue) {
         this.defaultValue = defaultValue;
     }
 
     @Override
-    public boolean required()
-    {
+    public boolean required() {
         return required;
     }
 
-    public void required( boolean required )
-    {
+    public void required(boolean required) {
         this.required = required;
     }
 
     @Override
-    public boolean readonly()
-    {
+    public boolean readonly() {
         return readonly;
     }
 
-    public void readonly( boolean readonly )
-    {
+    public void readonly(boolean readonly) {
         this.readonly = readonly;
     }
 
     @Override
-    public Class<? extends Annotation> annotationType()
-    {
+    public Class<? extends Annotation> annotationType() {
         return null;
     }
 
-    public String getClassName()
-    {
+    public String getClassName() {
         return className;
     }
 
-    public void setClassName( String className )
-    {
+    public void setClassName(String className) {
         this.className = className;
     }
 
-    public List<String> getTypeParameters()
-    {
+    public List<String> getTypeParameters() {
         return typeParameters;
     }
 
-    public boolean isAnnotationOnMethod()
-    {
+    public boolean isAnnotationOnMethod() {
         return annotationOnMethod;
     }
 
     @Override
-    public String toString()
-    {
+    public String toString() {
         final StringBuilder sb = new StringBuilder();
-        sb.append( super.toString() );
-        sb.append( "ParameterAnnotationContent" );
-        sb.append( "{fieldName='" ).append( getFieldName() ).append( '\'' );
-        sb.append( ", className='" ).append( getClassName() ).append( '\'' );
-        sb.append( ", typeParameters='" ).append( getTypeParameters() ).append( '\'' );
-        sb.append( ", name='" ).append( name ).append( '\'' );
-        sb.append( ", alias='" ).append( alias ).append( '\'' );
-        sb.append( ", alias='" ).append( alias ).append( '\'' );
-        sb.append( ", property='" ).append( property ).append( '\'' );
-        sb.append( ", defaultValue='" ).append( defaultValue ).append( '\'' );
-        sb.append( ", required=" ).append( required );
-        sb.append( ", readonly=" ).append( readonly );
-        sb.append( ", methodSource=" ).append( annotationOnMethod );
-        sb.append( '}' );
+        sb.append(super.toString());
+        sb.append("ParameterAnnotationContent");
+        sb.append("{fieldName='").append(getFieldName()).append('\'');
+        sb.append(", className='").append(getClassName()).append('\'');
+        sb.append(", typeParameters='").append(getTypeParameters()).append('\'');
+        sb.append(", name='").append(name).append('\'');
+        sb.append(", alias='").append(alias).append('\'');
+        sb.append(", alias='").append(alias).append('\'');
+        sb.append(", property='").append(property).append('\'');
+        sb.append(", defaultValue='").append(defaultValue).append('\'');
+        sb.append(", required=").append(required);
+        sb.append(", readonly=").append(readonly);
+        sb.append(", methodSource=").append(annotationOnMethod);
+        sb.append('}');
         return sb.toString();
     }
 
     @Override
-    public boolean equals( Object o )
-    {
-        if ( this == o )
-        {
+    public boolean equals(Object o) {
+        if (this == o) {
             return true;
         }
-        if ( !( o instanceof ParameterAnnotationContent ) )
-        {
+        if (!(o instanceof ParameterAnnotationContent)) {
             return false;
         }
 
         ParameterAnnotationContent that = (ParameterAnnotationContent) o;
 
-        if ( readonly != that.readonly )
-        {
+        if (readonly != that.readonly) {
             return false;
         }
-        if ( required != that.required )
-        {
+        if (required != that.required) {
             return false;
         }
 
-        if ( annotationOnMethod != that.annotationOnMethod )
-        {
+        if (annotationOnMethod != that.annotationOnMethod) {
             return false;
         }
 
-        if ( getFieldName() != null ? !getFieldName().equals( that.getFieldName() ) : that.getFieldName() != null )
-        {
+        if (getFieldName() != null ? !getFieldName().equals(that.getFieldName()) : that.getFieldName() != null) {
             return false;
         }
 
-        if ( getClassName() != null ? !getClassName().equals( that.getClassName() ) : that.getClassName() != null )
-        {
+        if (getClassName() != null ? !getClassName().equals(that.getClassName()) : that.getClassName() != null) {
             return false;
         }
 
-        if ( !Objects.equals( typeParameters, that.typeParameters ) )
-        {
+        if (!Objects.equals(typeParameters, that.typeParameters)) {
             return false;
         }
-        if ( !Objects.equals( alias, that.alias ) )
-        {
+        if (!Objects.equals(alias, that.alias)) {
             return false;
         }
-        if ( !Objects.equals( defaultValue, that.defaultValue ) )
-        {
+        if (!Objects.equals(defaultValue, that.defaultValue)) {
             return false;
         }
-        if ( !Objects.equals( property, that.property ) )
-        {
+        if (!Objects.equals(property, that.property)) {
             return false;
         }
 
@@ -245,9 +234,16 @@ public class ParameterAnnotationContent
     }
 
     @Override
-    public int hashCode()
-    {
-        return Objects.hash( alias, getFieldName(), getClassName(), typeParameters, property, defaultValue, required,
-                             readonly, annotationOnMethod );
+    public int hashCode() {
+        return Objects.hash(
+                alias,
+                getFieldName(),
+                getClassName(),
+                typeParameters,
+                property,
+                defaultValue,
+                required,
+                readonly,
+                annotationOnMethod);
     }
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/DefaultMojoAnnotationsScanner.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/DefaultMojoAnnotationsScanner.java
index 1d850e4c..cec5d825 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/DefaultMojoAnnotationsScanner.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/DefaultMojoAnnotationsScanner.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.scanner;
 
 /*
@@ -19,9 +37,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.scanner;
  * under the License.
  */
 
-import javax.inject.Named;
-import javax.inject.Singleton;
-
 import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -35,7 +50,8 @@ import java.util.Map;
 import java.util.regex.Pattern;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
-
+import javax.inject.Named;
+import javax.inject.Singleton;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Execute;
@@ -66,10 +82,7 @@ import org.objectweb.asm.Type;
  */
 @Named
 @Singleton
-public class DefaultMojoAnnotationsScanner
-    extends AbstractLogEnabled
-    implements MojoAnnotationsScanner
-{
+public class DefaultMojoAnnotationsScanner extends AbstractLogEnabled implements MojoAnnotationsScanner {
     public static final String MVN4_API = "org.apache.maven.api.plugin.annotations.";
     public static final String MOJO_V4 = MVN4_API + "Mojo";
     public static final String EXECUTE_V4 = MVN4_API + "Execute";
@@ -82,66 +95,60 @@ public class DefaultMojoAnnotationsScanner
     public static final String COMPONENT_V3 = Component.class.getName();
 
     // classes with a dash must be ignored
-    private static final Pattern SCANNABLE_CLASS = Pattern.compile( "[^-]+\\.class" );
+    private static final Pattern SCANNABLE_CLASS = Pattern.compile("[^-]+\\.class");
     private static final String EMPTY = "";
 
     private Reflector reflector = new Reflector();
 
     @Override
-    public Map<String, MojoAnnotatedClass> scan( MojoAnnotationsScannerRequest request )
-        throws ExtractionException
-    {
+    public Map<String, MojoAnnotatedClass> scan(MojoAnnotationsScannerRequest request) throws ExtractionException {
         Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = new HashMap<>();
 
-        try
-        {
-            for ( Artifact dependency : request.getDependencies() )
-            {
-                scan( mojoAnnotatedClasses, dependency.getFile(), request.getIncludePatterns(), dependency, true );
-                if ( request.getMavenApiVersion() == null
-                     && dependency.getGroupId().equals( "org.apache.maven" )
-                     && ( dependency.getArtifactId().equals( "maven-plugin-api" )
-                        || dependency.getArtifactId().equals( "maven-api-core" ) ) )
-                {
-                    request.setMavenApiVersion( dependency.getVersion() );
+        try {
+            for (Artifact dependency : request.getDependencies()) {
+                scan(mojoAnnotatedClasses, dependency.getFile(), request.getIncludePatterns(), dependency, true);
+                if (request.getMavenApiVersion() == null
+                        && dependency.getGroupId().equals("org.apache.maven")
+                        && (dependency.getArtifactId().equals("maven-plugin-api")
+                                || dependency.getArtifactId().equals("maven-api-core"))) {
+                    request.setMavenApiVersion(dependency.getVersion());
                 }
             }
 
-            for ( File classDirectory : request.getClassesDirectories() )
-            {
-                scan( mojoAnnotatedClasses, classDirectory, request.getIncludePatterns(),
-                      request.getProject().getArtifact(), false );
-                
+            for (File classDirectory : request.getClassesDirectories()) {
+                scan(
+                        mojoAnnotatedClasses,
+                        classDirectory,
+                        request.getIncludePatterns(),
+                        request.getProject().getArtifact(),
+                        false);
             }
-        }
-        catch ( IOException e )
-        {
-            throw new ExtractionException( e.getMessage(), e );
+        } catch (IOException e) {
+            throw new ExtractionException(e.getMessage(), e);
         }
 
         return mojoAnnotatedClasses;
     }
 
-    protected void scan( Map<String, MojoAnnotatedClass> mojoAnnotatedClasses, File source,
-                         List<String> includePatterns, Artifact artifact, boolean excludeMojo )
-        throws IOException, ExtractionException
-    {
-        if ( source == null || ! source.exists() )
-        {
+    protected void scan(
+            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
+            File source,
+            List<String> includePatterns,
+            Artifact artifact,
+            boolean excludeMojo)
+            throws IOException, ExtractionException {
+        if (source == null || !source.exists()) {
             return;
         }
 
         Map<String, MojoAnnotatedClass> scanResult;
-        if ( source.isDirectory() )
-        {
-            scanResult = scanDirectory( source, includePatterns, artifact, excludeMojo );
-        }
-        else
-        {
-            scanResult = scanArchive( source, artifact, excludeMojo );
+        if (source.isDirectory()) {
+            scanResult = scanDirectory(source, includePatterns, artifact, excludeMojo);
+        } else {
+            scanResult = scanArchive(source, artifact, excludeMojo);
         }
 
-        mojoAnnotatedClasses.putAll( scanResult );
+        mojoAnnotatedClasses.putAll(scanResult);
     }
 
     /**
@@ -152,32 +159,32 @@ public class DefaultMojoAnnotationsScanner
      * @throws IOException
      * @throws ExtractionException
      */
-    protected Map<String, MojoAnnotatedClass> scanArchive( File archiveFile, Artifact artifact, boolean excludeMojo )
-        throws IOException, ExtractionException
-    {
+    protected Map<String, MojoAnnotatedClass> scanArchive(File archiveFile, Artifact artifact, boolean excludeMojo)
+            throws IOException, ExtractionException {
         Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = new HashMap<>();
 
         String zipEntryName = null;
-        try ( ZipInputStream archiveStream = new ZipInputStream( new FileInputStream( archiveFile ) ) )
-        {
+        try (ZipInputStream archiveStream = new ZipInputStream(new FileInputStream(archiveFile))) {
             String archiveFilename = archiveFile.getAbsolutePath();
-            for ( ZipEntry zipEntry = archiveStream.getNextEntry(); zipEntry != null;
-                  zipEntry = archiveStream.getNextEntry() )
-            {
+            for (ZipEntry zipEntry = archiveStream.getNextEntry();
+                    zipEntry != null;
+                    zipEntry = archiveStream.getNextEntry()) {
                 zipEntryName = zipEntry.getName();
-                if ( !SCANNABLE_CLASS.matcher( zipEntryName ).matches() )
-                {
+                if (!SCANNABLE_CLASS.matcher(zipEntryName).matches()) {
                     continue;
                 }
-                analyzeClassStream( mojoAnnotatedClasses, archiveStream, artifact, excludeMojo, archiveFilename,
-                                    zipEntry.getName() );
+                analyzeClassStream(
+                        mojoAnnotatedClasses,
+                        archiveStream,
+                        artifact,
+                        excludeMojo,
+                        archiveFilename,
+                        zipEntry.getName());
             }
-        }
-        catch ( IllegalArgumentException e )
-        {
+        } catch (IllegalArgumentException e) {
             // In case of a class with newer specs an IllegalArgumentException can be thrown
-            getLogger().error( "Failed to analyze " + archiveFile.getAbsolutePath() + "!/" + zipEntryName );
-            
+            getLogger().error("Failed to analyze " + archiveFile.getAbsolutePath() + "!/" + zipEntryName);
+
             throw e;
         }
 
@@ -193,214 +200,189 @@ public class DefaultMojoAnnotationsScanner
      * @throws IOException
      * @throws ExtractionException
      */
-    protected Map<String, MojoAnnotatedClass> scanDirectory( File classDirectory, List<String> includePatterns,
-                                                             Artifact artifact, boolean excludeMojo )
-        throws IOException, ExtractionException
-    {
+    protected Map<String, MojoAnnotatedClass> scanDirectory(
+            File classDirectory, List<String> includePatterns, Artifact artifact, boolean excludeMojo)
+            throws IOException, ExtractionException {
         Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = new HashMap<>();
 
         DirectoryScanner scanner = new DirectoryScanner();
-        scanner.setBasedir( classDirectory );
+        scanner.setBasedir(classDirectory);
         scanner.addDefaultExcludes();
-        if ( includePatterns != null )
-        {
-            scanner.setIncludes( includePatterns.toArray( new String[includePatterns.size()] ) );
+        if (includePatterns != null) {
+            scanner.setIncludes(includePatterns.toArray(new String[includePatterns.size()]));
         }
         scanner.scan();
         String[] classFiles = scanner.getIncludedFiles();
         String classDirname = classDirectory.getAbsolutePath();
 
-        for ( String classFile : classFiles )
-        {
-            if ( !SCANNABLE_CLASS.matcher( classFile ).matches() )
-            {
+        for (String classFile : classFiles) {
+            if (!SCANNABLE_CLASS.matcher(classFile).matches()) {
                 continue;
             }
 
-            try ( InputStream is = //
-                    new BufferedInputStream( new FileInputStream( new File( classDirectory, classFile ) ) ) )
-            {
-                analyzeClassStream( mojoAnnotatedClasses, is, artifact, excludeMojo, classDirname, classFile );
+            try (InputStream is = //
+                    new BufferedInputStream(new FileInputStream(new File(classDirectory, classFile)))) {
+                analyzeClassStream(mojoAnnotatedClasses, is, artifact, excludeMojo, classDirname, classFile);
             }
         }
         return mojoAnnotatedClasses;
     }
 
-    private void analyzeClassStream( Map<String, MojoAnnotatedClass> mojoAnnotatedClasses, InputStream is,
-                                     Artifact artifact, boolean excludeMojo, String source, String file )
-        throws IOException, ExtractionException
-    {
-        MojoClassVisitor mojoClassVisitor = new MojoClassVisitor( );
-        try
-        {
-            ClassReader rdr = new ClassReader( is );
-            rdr.accept( mojoClassVisitor, ClassReader.SKIP_FRAMES | ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG );
-        }
-        catch ( ArrayIndexOutOfBoundsException aiooe )
-        {
-            getLogger().warn( "Error analyzing class " + file + " in " + source + ": ignoring class",
-                              getLogger().isDebugEnabled() ? aiooe : null );
+    private void analyzeClassStream(
+            Map<String, MojoAnnotatedClass> mojoAnnotatedClasses,
+            InputStream is,
+            Artifact artifact,
+            boolean excludeMojo,
+            String source,
+            String file)
+            throws IOException, ExtractionException {
+        MojoClassVisitor mojoClassVisitor = new MojoClassVisitor();
+        try {
+            ClassReader rdr = new ClassReader(is);
+            rdr.accept(mojoClassVisitor, ClassReader.SKIP_FRAMES | ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG);
+        } catch (ArrayIndexOutOfBoundsException aiooe) {
+            getLogger()
+                    .warn(
+                            "Error analyzing class " + file + " in " + source + ": ignoring class",
+                            getLogger().isDebugEnabled() ? aiooe : null);
             return;
-        }
-        catch ( IllegalArgumentException iae )
-        {
-            if ( iae.getMessage() == null )
-            {
-                getLogger().warn( "Error analyzing class " + file + " in " + source + ": ignoring class",
-                        getLogger().isDebugEnabled() ? iae : null );
+        } catch (IllegalArgumentException iae) {
+            if (iae.getMessage() == null) {
+                getLogger()
+                        .warn(
+                                "Error analyzing class " + file + " in " + source + ": ignoring class",
+                                getLogger().isDebugEnabled() ? iae : null);
                 return;
-            }
-            else
-            {
+            } else {
                 throw iae;
             }
         }
 
-        analyzeVisitors( mojoClassVisitor );
+        analyzeVisitors(mojoClassVisitor);
 
         MojoAnnotatedClass mojoAnnotatedClass = mojoClassVisitor.getMojoAnnotatedClass();
 
-        if ( excludeMojo )
-        {
-            mojoAnnotatedClass.setMojo( null );
+        if (excludeMojo) {
+            mojoAnnotatedClass.setMojo(null);
         }
 
-        if ( mojoAnnotatedClass != null ) // see MPLUGIN-206 we can have intermediate classes without annotations
+        if (mojoAnnotatedClass != null) // see MPLUGIN-206 we can have intermediate classes without annotations
         {
-            if ( getLogger().isDebugEnabled() && mojoAnnotatedClass.hasAnnotations() )
-            {
-                getLogger().debug( "found MojoAnnotatedClass:" + mojoAnnotatedClass.getClassName() + ":"
-                                       + mojoAnnotatedClass );
+            if (getLogger().isDebugEnabled() && mojoAnnotatedClass.hasAnnotations()) {
+                getLogger()
+                        .debug("found MojoAnnotatedClass:" + mojoAnnotatedClass.getClassName() + ":"
+                                + mojoAnnotatedClass);
             }
-            mojoAnnotatedClass.setArtifact( artifact );
-            mojoAnnotatedClasses.put( mojoAnnotatedClass.getClassName(), mojoAnnotatedClass );
-            mojoAnnotatedClass.setClassVersion( mojoClassVisitor.getVersion() );
+            mojoAnnotatedClass.setArtifact(artifact);
+            mojoAnnotatedClasses.put(mojoAnnotatedClass.getClassName(), mojoAnnotatedClass);
+            mojoAnnotatedClass.setClassVersion(mojoClassVisitor.getVersion());
         }
     }
 
-    protected void populateAnnotationContent( Object content, MojoAnnotationVisitor mojoAnnotationVisitor )
-        throws ReflectorException
-    {
-        for ( Map.Entry<String, Object> entry : mojoAnnotationVisitor.getAnnotationValues().entrySet() )
-        {
-            reflector.invoke( content, entry.getKey(), new Object[] { entry.getValue() } );
+    protected void populateAnnotationContent(Object content, MojoAnnotationVisitor mojoAnnotationVisitor)
+            throws ReflectorException {
+        for (Map.Entry<String, Object> entry :
+                mojoAnnotationVisitor.getAnnotationValues().entrySet()) {
+            reflector.invoke(content, entry.getKey(), new Object[] {entry.getValue()});
         }
     }
 
-    protected void analyzeVisitors( MojoClassVisitor mojoClassVisitor )
-        throws ExtractionException
-    {
+    protected void analyzeVisitors(MojoClassVisitor mojoClassVisitor) throws ExtractionException {
         final MojoAnnotatedClass mojoAnnotatedClass = mojoClassVisitor.getMojoAnnotatedClass();
 
-        try
-        {
+        try {
             // @Mojo annotation
-            MojoAnnotationVisitor mojoAnnotationVisitor = mojoClassVisitor.getAnnotationVisitor( MOJO_V3 );
-            if ( mojoAnnotationVisitor == null )
-            {
-                mojoAnnotationVisitor = mojoClassVisitor.getAnnotationVisitor( MOJO_V4 );
+            MojoAnnotationVisitor mojoAnnotationVisitor = mojoClassVisitor.getAnnotationVisitor(MOJO_V3);
+            if (mojoAnnotationVisitor == null) {
+                mojoAnnotationVisitor = mojoClassVisitor.getAnnotationVisitor(MOJO_V4);
             }
-            if ( mojoAnnotationVisitor != null )
-            {
+            if (mojoAnnotationVisitor != null) {
                 MojoAnnotationContent mojoAnnotationContent = new MojoAnnotationContent();
-                populateAnnotationContent( mojoAnnotationContent, mojoAnnotationVisitor );
+                populateAnnotationContent(mojoAnnotationContent, mojoAnnotationVisitor);
 
-                if ( mojoClassVisitor.getAnnotationVisitor( Deprecated.class ) != null )
-                {
-                    mojoAnnotationContent.setDeprecated( EMPTY );
+                if (mojoClassVisitor.getAnnotationVisitor(Deprecated.class) != null) {
+                    mojoAnnotationContent.setDeprecated(EMPTY);
                 }
 
-                mojoAnnotatedClass.setMojo( mojoAnnotationContent );
+                mojoAnnotatedClass.setMojo(mojoAnnotationContent);
             }
 
             // @Execute annotation
-            mojoAnnotationVisitor = mojoClassVisitor.getAnnotationVisitor( EXECUTE_V3 );
-            if ( mojoAnnotationVisitor == null )
-            {
-                mojoAnnotationVisitor = mojoClassVisitor.getAnnotationVisitor( EXECUTE_V4 );
+            mojoAnnotationVisitor = mojoClassVisitor.getAnnotationVisitor(EXECUTE_V3);
+            if (mojoAnnotationVisitor == null) {
+                mojoAnnotationVisitor = mojoClassVisitor.getAnnotationVisitor(EXECUTE_V4);
             }
-            if ( mojoAnnotationVisitor != null )
-            {
+            if (mojoAnnotationVisitor != null) {
                 ExecuteAnnotationContent executeAnnotationContent = new ExecuteAnnotationContent();
-                populateAnnotationContent( executeAnnotationContent, mojoAnnotationVisitor );
-                mojoAnnotatedClass.setExecute( executeAnnotationContent );
+                populateAnnotationContent(executeAnnotationContent, mojoAnnotationVisitor);
+                mojoAnnotatedClass.setExecute(executeAnnotationContent);
             }
 
             // @Parameter annotations
-            List<MojoParameterVisitor> mojoParameterVisitors = mojoClassVisitor.findParameterVisitors(
-                    new HashSet<>( Arrays.asList( PARAMETER_V3, PARAMETER_V4 ) ) );
-            for ( MojoParameterVisitor parameterVisitor : mojoParameterVisitors )
-            {
-                ParameterAnnotationContent parameterAnnotationContent =
-                    new ParameterAnnotationContent( parameterVisitor.getFieldName(), parameterVisitor.getClassName(),
-                                                    parameterVisitor.getTypeParameters(),
-                                                    parameterVisitor.isAnnotationOnMethod() );
+            List<MojoParameterVisitor> mojoParameterVisitors =
+                    mojoClassVisitor.findParameterVisitors(new HashSet<>(Arrays.asList(PARAMETER_V3, PARAMETER_V4)));
+            for (MojoParameterVisitor parameterVisitor : mojoParameterVisitors) {
+                ParameterAnnotationContent parameterAnnotationContent = new ParameterAnnotationContent(
+                        parameterVisitor.getFieldName(),
+                        parameterVisitor.getClassName(),
+                        parameterVisitor.getTypeParameters(),
+                        parameterVisitor.isAnnotationOnMethod());
 
                 Map<String, MojoAnnotationVisitor> annotationVisitorMap = parameterVisitor.getAnnotationVisitorMap();
-                MojoAnnotationVisitor fieldAnnotationVisitor = annotationVisitorMap.get( PARAMETER_V3 );
-                if ( fieldAnnotationVisitor == null )
-                {
-                    fieldAnnotationVisitor = annotationVisitorMap.get( PARAMETER_V4 );
+                MojoAnnotationVisitor fieldAnnotationVisitor = annotationVisitorMap.get(PARAMETER_V3);
+                if (fieldAnnotationVisitor == null) {
+                    fieldAnnotationVisitor = annotationVisitorMap.get(PARAMETER_V4);
                 }
 
-                if ( fieldAnnotationVisitor != null )
-                {
-                    populateAnnotationContent( parameterAnnotationContent, fieldAnnotationVisitor );
+                if (fieldAnnotationVisitor != null) {
+                    populateAnnotationContent(parameterAnnotationContent, fieldAnnotationVisitor);
                 }
 
-                if ( annotationVisitorMap.containsKey( Deprecated.class.getName() ) )
-                {
-                    parameterAnnotationContent.setDeprecated( EMPTY );
+                if (annotationVisitorMap.containsKey(Deprecated.class.getName())) {
+                    parameterAnnotationContent.setDeprecated(EMPTY);
                 }
 
-                mojoAnnotatedClass.getParameters().put( parameterAnnotationContent.getFieldName(),
-                                                        parameterAnnotationContent );
+                mojoAnnotatedClass
+                        .getParameters()
+                        .put(parameterAnnotationContent.getFieldName(), parameterAnnotationContent);
             }
 
             // @Component annotations
-            List<MojoFieldVisitor> mojoFieldVisitors = mojoClassVisitor.findFieldWithAnnotation(
-                    new HashSet<>( Arrays.asList( COMPONENT_V3, COMPONENT_V4 ) ) );
-            for ( MojoFieldVisitor mojoFieldVisitor : mojoFieldVisitors )
-            {
+            List<MojoFieldVisitor> mojoFieldVisitors =
+                    mojoClassVisitor.findFieldWithAnnotation(new HashSet<>(Arrays.asList(COMPONENT_V3, COMPONENT_V4)));
+            for (MojoFieldVisitor mojoFieldVisitor : mojoFieldVisitors) {
                 ComponentAnnotationContent componentAnnotationContent =
-                    new ComponentAnnotationContent( mojoFieldVisitor.getFieldName() );
+                        new ComponentAnnotationContent(mojoFieldVisitor.getFieldName());
 
                 Map<String, MojoAnnotationVisitor> annotationVisitorMap = mojoFieldVisitor.getAnnotationVisitorMap();
-                MojoAnnotationVisitor annotationVisitor = annotationVisitorMap.get( COMPONENT_V3 );
-                if ( annotationVisitor == null )
-                {
-                    annotationVisitor = annotationVisitorMap.get( COMPONENT_V4 );
+                MojoAnnotationVisitor annotationVisitor = annotationVisitorMap.get(COMPONENT_V3);
+                if (annotationVisitor == null) {
+                    annotationVisitor = annotationVisitorMap.get(COMPONENT_V4);
                 }
 
-                if ( annotationVisitor != null )
-                {
-                    for ( Map.Entry<String, Object> entry : annotationVisitor.getAnnotationValues().entrySet() )
-                    {
+                if (annotationVisitor != null) {
+                    for (Map.Entry<String, Object> entry :
+                            annotationVisitor.getAnnotationValues().entrySet()) {
                         String methodName = entry.getKey();
-                        if ( "role".equals( methodName ) )
-                        {
+                        if ("role".equals(methodName)) {
                             Type type = (Type) entry.getValue();
-                            componentAnnotationContent.setRoleClassName( type.getClassName() );
-                        }
-                        else
-                        {
-                            reflector.invoke( componentAnnotationContent, entry.getKey(),
-                                              new Object[]{ entry.getValue() } );
+                            componentAnnotationContent.setRoleClassName(type.getClassName());
+                        } else {
+                            reflector.invoke(
+                                    componentAnnotationContent, entry.getKey(), new Object[] {entry.getValue()});
                         }
                     }
 
-                    if ( StringUtils.isEmpty( componentAnnotationContent.getRoleClassName() ) )
-                    {
-                        componentAnnotationContent.setRoleClassName( mojoFieldVisitor.getClassName() );
+                    if (StringUtils.isEmpty(componentAnnotationContent.getRoleClassName())) {
+                        componentAnnotationContent.setRoleClassName(mojoFieldVisitor.getClassName());
                     }
                 }
-                mojoAnnotatedClass.getComponents().put( componentAnnotationContent.getFieldName(),
-                                                        componentAnnotationContent );
+                mojoAnnotatedClass
+                        .getComponents()
+                        .put(componentAnnotationContent.getFieldName(), componentAnnotationContent);
             }
-        }
-        catch ( ReflectorException e )
-        {
-            throw new ExtractionException( e.getMessage(), e );
+        } catch (ReflectorException e) {
+            throw new ExtractionException(e.getMessage(), e);
         }
     }
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/MojoAnnotatedClass.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/MojoAnnotatedClass.java
index f3a0d7cb..b866768a 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/MojoAnnotatedClass.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/MojoAnnotatedClass.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.scanner;
 
 /*
@@ -21,7 +39,6 @@ package org.apache.maven.tools.plugin.extractor.annotations.scanner;
 
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.tools.plugin.extractor.annotations.datamodel.ComponentAnnotationContent;
 import org.apache.maven.tools.plugin.extractor.annotations.datamodel.ExecuteAnnotationContent;
@@ -32,8 +49,7 @@ import org.apache.maven.tools.plugin.extractor.annotations.datamodel.ParameterAn
  * @author Olivier Lamy
  * @since 3.0
  */
-public class MojoAnnotatedClass
-{
+public class MojoAnnotatedClass {
     private String className;
 
     private int classVersion;
@@ -61,136 +77,112 @@ public class MojoAnnotatedClass
 
     private boolean v4Api;
 
-    public MojoAnnotatedClass()
-    {
+    public MojoAnnotatedClass() {
         // no op
     }
 
-    public String getClassName()
-    {
+    public String getClassName() {
         return className;
     }
 
-    public MojoAnnotatedClass setClassName( String className )
-    {
+    public MojoAnnotatedClass setClassName(String className) {
         this.className = className;
         return this;
     }
 
-    public int getClassVersion()
-    {
+    public int getClassVersion() {
         return classVersion;
     }
 
-    public MojoAnnotatedClass setClassVersion( int classVersion )
-    {
+    public MojoAnnotatedClass setClassVersion(int classVersion) {
         this.classVersion = classVersion;
         return this;
     }
 
-    public MojoAnnotationContent getMojo()
-    {
+    public MojoAnnotationContent getMojo() {
         return mojo;
     }
 
-    public MojoAnnotatedClass setMojo( MojoAnnotationContent mojo )
-    {
+    public MojoAnnotatedClass setMojo(MojoAnnotationContent mojo) {
         this.mojo = mojo;
         return this;
     }
 
-    public ExecuteAnnotationContent getExecute()
-    {
+    public ExecuteAnnotationContent getExecute() {
         return execute;
     }
 
-    public MojoAnnotatedClass setExecute( ExecuteAnnotationContent execute )
-    {
+    public MojoAnnotatedClass setExecute(ExecuteAnnotationContent execute) {
         this.execute = execute;
         return this;
     }
 
-    public Map<String, ParameterAnnotationContent> getParameters()
-    {
-        if ( this.parameters == null )
-        {
+    public Map<String, ParameterAnnotationContent> getParameters() {
+        if (this.parameters == null) {
             this.parameters = new HashMap<>();
         }
         return parameters;
     }
 
-    public MojoAnnotatedClass setParameters( Map<String, ParameterAnnotationContent> parameters )
-    {
+    public MojoAnnotatedClass setParameters(Map<String, ParameterAnnotationContent> parameters) {
         this.parameters = parameters;
         return this;
     }
 
-    public Map<String, ComponentAnnotationContent> getComponents()
-    {
-        if ( this.components == null )
-        {
+    public Map<String, ComponentAnnotationContent> getComponents() {
+        if (this.components == null) {
             this.components = new HashMap<>();
         }
         return components;
     }
 
-    public MojoAnnotatedClass setComponents( Map<String, ComponentAnnotationContent> components )
-    {
+    public MojoAnnotatedClass setComponents(Map<String, ComponentAnnotationContent> components) {
         this.components = components;
         return this;
     }
 
-    public String getParentClassName()
-    {
+    public String getParentClassName() {
         return parentClassName;
     }
 
-    public MojoAnnotatedClass setParentClassName( String parentClassName )
-    {
+    public MojoAnnotatedClass setParentClassName(String parentClassName) {
         this.parentClassName = parentClassName;
         return this;
     }
 
-    public Artifact getArtifact()
-    {
+    public Artifact getArtifact() {
         return artifact;
     }
 
-    public void setArtifact( Artifact artifact )
-    {
+    public void setArtifact(Artifact artifact) {
         this.artifact = artifact;
     }
 
-    public boolean hasAnnotations()
-    {
-        return !( getComponents().isEmpty() && getParameters().isEmpty() && execute == null && mojo == null );
+    public boolean hasAnnotations() {
+        return !(getComponents().isEmpty() && getParameters().isEmpty() && execute == null && mojo == null);
     }
 
-    public boolean isV4Api()
-    {
+    public boolean isV4Api() {
         return v4Api;
     }
 
-    public void setV4Api( boolean v4Api )
-    {
+    public void setV4Api(boolean v4Api) {
         this.v4Api = v4Api;
     }
 
     @Override
-    public String toString()
-    {
+    public String toString() {
         final StringBuilder sb = new StringBuilder();
-        sb.append( "MojoAnnotatedClass" );
-        sb.append( "{className='" ).append( className ).append( '\'' );
-        sb.append( ", classVersion=" ).append( classVersion );
-        sb.append( ", parentClassName='" ).append( parentClassName ).append( '\'' );
-        sb.append( ", mojo=" ).append( mojo );
-        sb.append( ", execute=" ).append( execute );
-        sb.append( ", parameters=" ).append( parameters );
-        sb.append( ", components=" ).append( components );
-        sb.append( ", v4api=" ).append( v4Api );
-        sb.append( '}' );
+        sb.append("MojoAnnotatedClass");
+        sb.append("{className='").append(className).append('\'');
+        sb.append(", classVersion=").append(classVersion);
+        sb.append(", parentClassName='").append(parentClassName).append('\'');
+        sb.append(", mojo=").append(mojo);
+        sb.append(", execute=").append(execute);
+        sb.append(", parameters=").append(parameters);
+        sb.append(", components=").append(components);
+        sb.append(", v4api=").append(v4Api);
+        sb.append('}');
         return sb.toString();
     }
-
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/MojoAnnotationsScanner.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/MojoAnnotationsScanner.java
index 3795afe9..a82b2907 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/MojoAnnotationsScanner.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/MojoAnnotationsScanner.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.apache.maven.tools.plugin.extractor.annotations.scanner;
 
 /*
@@ -19,51 +37,49 @@ package org.apache.maven.tools.plugin.extractor.annotations.scanner;
  * under the License.
  */
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Execute;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.tools.plugin.extractor.ExtractionException;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
 /**
  * @author Olivier Lamy
  * @since 3.0
  */
-public interface MojoAnnotationsScanner
-{
+public interface MojoAnnotationsScanner {
     String ROLE = MojoAnnotationsScanner.class.getName();
 
     String V4_API_PLUGIN_PACKAGE = "org.apache.maven.api.plugin";
 
     String V4_API_ANNOTATIONS_PACKAGE = V4_API_PLUGIN_PACKAGE + ".annotations";
 
-    List<String> CLASS_LEVEL_ANNOTATIONS = Arrays.asList( Mojo.class.getName(),
-                                                          Execute.class.getName(),
-                                                          Deprecated.class.getName(),
-                                                          V4_API_ANNOTATIONS_PACKAGE + ".Mojo",
-                                                          V4_API_ANNOTATIONS_PACKAGE + ".Execute" );
+    List<String> CLASS_LEVEL_ANNOTATIONS = Arrays.asList(
+            Mojo.class.getName(),
+            Execute.class.getName(),
... 17745 lines suppressed ...