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

claude pushed a commit to branch feature/restructure
in repository https://gitbox.apache.org/repos/asf/creadur-rat.git

commit 9e445c9c559468b5bcdb349dbfe39fd563d7179e
Author: Claude Warren <[email protected]>
AuthorDate: Thu Dec 25 10:44:40 2025 +0000

    Maven source generated
---
 .../main/java/org/apache/rat/cli/CLIOption.java    |   5 +-
 apache-rat-core-tests/pom.xml                      | 116 ---------------------
 .../main/java/org/apache/rat/commandline/Arg.java  |   8 +-
 .../org/apache/rat/commandline/StyleSheets.java    |   6 +-
 .../apache/rat/documentation/velocity/RatTool.java |   3 +-
 .../java/org/apache/rat/ui/AbstractOption.java     |  14 +--
 .../rat/ui/{SetArgs.java => ArgumentTracker.java}  |  33 ++++--
 .../main/java/org/apache/rat/ui/OptionFactory.java |   4 +-
 apache-rat-plugin-parent/impl/pom.xml              |  22 +++-
 .../apache/rat/{mp => maven}/AbstractRatMojo.java  |  11 +-
 .../rat/{mp => maven}/RatCheckException.java       |   2 +-
 .../org/apache/rat/{mp => maven}/RatCheckMojo.java |  36 +++----
 .../apache/rat/{mp => maven}/RatReportMojo.java    |   2 +-
 .../org/apache/rat/{mp => maven}/package-info.java |   2 +-
 .../java/org/apache/rat/mp/OptionMojoTest.java     |   1 +
 .../java/org/apache/rat/mp/RatCheckMojoTest.java   |   4 +
 .../java/org/apache/rat/maven/TestGenerator.java   |   5 +-
 .../org/apache/rat/maven/AbstractMaven.vm          |  30 ++----
 .../org/apache/rat/maven/AbstractMavenFunc.vm      |  10 +-
 .../resources/org/apache/rat/maven/TestJava.vm     |   4 +
 20 files changed, 111 insertions(+), 207 deletions(-)

diff --git a/apache-rat-cli/src/main/java/org/apache/rat/cli/CLIOption.java 
b/apache-rat-cli/src/main/java/org/apache/rat/cli/CLIOption.java
index f53b56a9..b59f1dbf 100644
--- a/apache-rat-cli/src/main/java/org/apache/rat/cli/CLIOption.java
+++ b/apache-rat-cli/src/main/java/org/apache/rat/cli/CLIOption.java
@@ -22,6 +22,7 @@ import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.rat.ui.AbstractOption;
+import org.apache.rat.ui.ArgumentTracker;
 
 /**
  * The CLI option definition.
@@ -38,7 +39,7 @@ public class CLIOption extends AbstractOption<CLIOption> {
     }
 
     public CLIOption(final Option option) {
-        super(option, extractBaseName(option));
+        super(option, ArgumentTracker.extractKey(option));
     }
 
     @Override
@@ -57,7 +58,7 @@ public class CLIOption extends AbstractOption<CLIOption> {
 
     @Override
     protected String cleanupName(final Option option) {
-        return extractBaseName(option);
+        return ArgumentTracker.extractKey(option);
     }
 
     @Override
diff --git a/apache-rat-core-tests/pom.xml b/apache-rat-core-tests/pom.xml
index 861db32d..c4b31557 100644
--- a/apache-rat-core-tests/pom.xml
+++ b/apache-rat-core-tests/pom.xml
@@ -52,31 +52,9 @@
       </plugins>
     </pluginManagement>
     <plugins>
-<!--      <plugin>-->
-<!--        <artifactId>maven-clean-plugin</artifactId>-->
-<!--        <configuration>-->
-<!--        <filesets>-->
-<!--          <fileset>-->
-<!--            <directory>src/main/java</directory>-->
-<!--            <includes>-->
-<!--              <include>**</include>-->
-<!--            </includes>-->
-<!--          </fileset>-->
-<!--          <fileset>-->
-<!--            <directory>src/main/resources</directory>-->
-<!--            <includes>-->
-<!--              <include>**</include>-->
-<!--            </includes>-->
-<!--          </fileset>-->
-<!--        </filesets>-->
-<!--        </configuration>-->
-<!--      </plugin>-->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
-        <configuration>
-<!--          
<finalName>apache-rat-core-${project.parent.version}-test</finalName>-->
-        </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -85,24 +63,6 @@
           <skip>true</skip>
         </configuration>
       </plugin>
-<!--      <plugin>-->
-<!--        <groupId>org.apache.maven.plugins</groupId>-->
-<!--        <artifactId>maven-source-plugin</artifactId>-->
-<!--        <executions>-->
-<!--          <execution>-->
-<!--            <id>attach-sources</id>-->
-<!--            <phase>compile</phase>-->
-<!--            <goals>-->
-<!--              <goal>jar</goal>-->
-<!--            </goals>-->
-<!--            <configuration>-->
-<!--              <archive>-->
-<!--                <addMavenDescriptor>false</addMavenDescriptor>-->
-<!--              </archive>-->
-<!--            </configuration>-->
-<!--          </execution>-->
-<!--        </executions>-->
-<!--      </plugin>-->
       <plugin>
       <groupId>org.codehaus.mojo</groupId>
       <artifactId>animal-sniffer-maven-plugin</artifactId>
@@ -124,62 +84,6 @@
           <skip>true</skip>
         </configuration>
       </plugin>
-<!--      <plugin>-->
-<!--        <artifactId>maven-resources-plugin</artifactId>-->
-<!--        <executions>-->
-<!--          <execution>-->
-<!--            <id>copy core test code</id>-->
-<!--            <phase>generate-resources</phase>-->
-<!--            <goals>-->
-<!--              <goal>copy-resources</goal>-->
-<!--            </goals>-->
-<!--            <configuration>-->
-<!--              <outputDirectory>src/main</outputDirectory>-->
-<!--              <addDefaultExcludes>false</addDefaultExcludes>-->
-<!--              <overwrite>true</overwrite>-->
-<!--              <resources>-->
-<!--                <resource>-->
-<!--                  <directory>../apache-rat-core/src/test</directory>-->
-<!--                </resource>-->
-<!--              </resources>-->
-<!--            </configuration>-->
-<!--          </execution>-->
-<!--          <execution>-->
-<!--            <id>copy filtered test resources</id>-->
-<!--            <phase>generate-resources</phase>-->
-<!--            <goals>-->
-<!--              <goal>copy-resources</goal>-->
-<!--            </goals>-->
-<!--            <configuration>-->
-<!--              
<outputDirectory>src/main/filtered-resources</outputDirectory>-->
-<!--              <addDefaultExcludes>false</addDefaultExcludes>-->
-<!--              <overwrite>true</overwrite>-->
-<!--              <resources>-->
-<!--                <resource>-->
-<!--                  
<directory>../apache-rat-core/src/test/filtered-resources</directory>-->
-<!--                </resource>-->
-<!--              </resources>-->
-<!--            </configuration>-->
-<!--          </execution>-->
-<!--          <execution>-->
-<!--            <id>copy source code</id>-->
-<!--            <phase>generate-sources</phase>-->
-<!--            <goals>-->
-<!--              <goal>copy-resources</goal>-->
-<!--            </goals>-->
-<!--            <configuration>-->
-<!--              <outputDirectory>src/main/java</outputDirectory>-->
-<!--              <addDefaultExcludes>false</addDefaultExcludes>-->
-<!--              <overwrite>true</overwrite>-->
-<!--              <resources>-->
-<!--                <resource>-->
-<!--                  
<directory>../apache-rat-core/src/test/java</directory>-->
-<!--                </resource>-->
-<!--              </resources>-->
-<!--            </configuration>-->
-<!--          </execution>-->
-<!--        </executions>-->
-<!--      </plugin>-->
     </plugins>
   </build>
   <dependencies>
@@ -194,22 +98,6 @@
       <version>${project.parent.version}</version>
       <scope>provided</scope>
     </dependency>
-<!--    <dependency>-->
-<!--      <groupId>org.apache.commons</groupId>-->
-<!--      <artifactId>commons-collections4</artifactId>-->
-<!--    </dependency>-->
-<!--    <dependency>-->
-<!--      <groupId>org.apache.commons</groupId>-->
-<!--      <artifactId>commons-lang3</artifactId>-->
-<!--    </dependency>-->
-<!--    <dependency>-->
-<!--      <groupId>commons-io</groupId>-->
-<!--      <artifactId>commons-io</artifactId>-->
-<!--    </dependency>-->
-<!--    <dependency>-->
-<!--      <groupId>org.apache.commons</groupId>-->
-<!--      <artifactId>commons-text</artifactId>-->
-<!--    </dependency>-->
     <dependency>
       <groupId>org.junit.jupiter</groupId>
       <artifactId>junit-jupiter-api</artifactId>
@@ -220,10 +108,6 @@
       <artifactId>junit-jupiter-params</artifactId>
       <scope>compile</scope>
     </dependency>
-<!--    <dependency>-->
-<!--      <groupId>commons-cli</groupId>-->
-<!--      <artifactId>commons-cli</artifactId>-->
-<!--    </dependency>-->
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
diff --git a/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java 
b/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
index 81b57dcc..2c536a18 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/commandline/Arg.java
@@ -558,15 +558,19 @@ public enum Arg {
     /**
      * Returns the first non-deprecated option from the group.
      *
-     * @return the first non-deprecated option or {@code null} if no 
non-deprecated option is available.
+     * @return the first non-deprecated option or, if no non-deprecated option 
is available, the first option.
      */
     public Option option() {
+        Option first = null;
         for (Option result : group.getOptions()) {
+            if (first == null) {
+                first = result;
+            }
             if (!result.isDeprecated()) {
                 return result;
             }
         }
-        return null;
+        return first;
     }
 
     /**
diff --git 
a/apache-rat-core/src/main/java/org/apache/rat/commandline/StyleSheets.java 
b/apache-rat-core/src/main/java/org/apache/rat/commandline/StyleSheets.java
index 8675f06e..0a2983f1 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/commandline/StyleSheets.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/commandline/StyleSheets.java
@@ -48,7 +48,11 @@ public enum StyleSheets {
     /**
      * The plain style sheet. The current default.
      */
-    XML("xml", "Produces output in pretty-printed XML.");
+    XML("xml", "Produces output in pretty-printed XML."),
+    /**
+     * Official HTML5 stylesheet.
+     */
+    XHTML5("xhtml5", "Produces a HTML5 report");
     /**
      * The name of the style sheet. Must map to bundled resource xslt file
      */
diff --git 
a/apache-rat-core/src/main/java/org/apache/rat/documentation/velocity/RatTool.java
 
b/apache-rat-core/src/main/java/org/apache/rat/documentation/velocity/RatTool.java
index f743e8e3..a48f2a11 100644
--- 
a/apache-rat-core/src/main/java/org/apache/rat/documentation/velocity/RatTool.java
+++ 
b/apache-rat-core/src/main/java/org/apache/rat/documentation/velocity/RatTool.java
@@ -46,6 +46,7 @@ import org.apache.rat.help.AbstractHelp;
 import org.apache.rat.license.ILicense;
 import org.apache.rat.license.LicenseSetFactory;
 import org.apache.rat.ui.AbstractOption;
+import org.apache.rat.ui.ArgumentTracker;
 import org.apache.rat.ui.OptionFactory;
 import org.apache.rat.ui.UI;
 import org.apache.rat.ui.spi.UIProvider;
@@ -107,7 +108,7 @@ public class RatTool {
      */
     public List<Option> options() {
         List<Option> lst = new ArrayList<>(OptionCollection.buildOptions(new 
Options()).getOptions());
-        lst.sort(Comparator.comparing(AbstractOption::extractBaseName));
+        lst.sort(Comparator.comparing(ArgumentTracker::extractKey));
         return lst;
     }
 
diff --git 
a/apache-rat-core/src/main/java/org/apache/rat/ui/AbstractOption.java 
b/apache-rat-core/src/main/java/org/apache/rat/ui/AbstractOption.java
index f714f866..8a5bc9c2 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/ui/AbstractOption.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/ui/AbstractOption.java
@@ -48,16 +48,6 @@ public abstract class AbstractOption<T extends 
AbstractOption<T>> {
     /** The argument type for this option */
     protected final OptionCollection.ArgumentType argumentType;
 
-    /**
-     * Extract the core name from the option.  This is the {@link 
Option#getLongOpt()} if defined, otherwise
-     * the {@link Option#getOpt()}.
-     * @param option the commons cli option.
-     * @return the common cli based name.
-     */
-    public static String extractBaseName(final Option option) {
-        return StringUtils.defaultIfBlank(option.getLongOpt(), 
option.getOpt());
-    }
-
     /**
      * Constructor.
      *
@@ -266,7 +256,7 @@ public abstract class AbstractOption<T extends 
AbstractOption<T>> {
          * @param option The CLI option
          */
         BaseOption(final org.apache.commons.cli.Option option) {
-            super(option, AbstractOption.extractBaseName(option));
+            super(option, ArgumentTracker.extractKey(option));
         }
 
         @Override
@@ -276,7 +266,7 @@ public abstract class AbstractOption<T extends 
AbstractOption<T>> {
 
         @Override
         protected String cleanupName(final org.apache.commons.cli.Option 
option) {
-            return AbstractOption.extractBaseName(option);
+            return ArgumentTracker.extractKey(option);
         }
 
         @Override
diff --git a/apache-rat-core/src/main/java/org/apache/rat/ui/SetArgs.java 
b/apache-rat-core/src/main/java/org/apache/rat/ui/ArgumentTracker.java
similarity index 85%
rename from apache-rat-core/src/main/java/org/apache/rat/ui/SetArgs.java
rename to apache-rat-core/src/main/java/org/apache/rat/ui/ArgumentTracker.java
index d4d09cab..97a193d2 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/ui/SetArgs.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/ui/ArgumentTracker.java
@@ -34,7 +34,11 @@ import org.apache.rat.commandline.Arg;
 import org.apache.rat.utils.DefaultLog;
 import org.apache.rat.utils.Log;
 
-public final class SetArgs {
+/**
+ * Tracks arguments that are set and their values for conversion from native 
UI to
+ * Apache commons command line values.  Native values
+ */
+public final class ArgumentTracker {
 
     /**
      * List of deprecated arguments and their deprecation notice.
@@ -48,18 +52,27 @@ public final class SetArgs {
 
     /**
      * The arguments set by the UI for the current report execution.
-     * @param renameMap the map of renamed options.
      * @param uiOptionList the list of AbstractOption implementations for this 
UI.
      */
-    public SetArgs(final Map<String, String> renameMap, final List<? extends 
AbstractOption<?>> uiOptionList) {
-        for (AbstractOption<?> option : uiOptionList) {
-            if (option.isDeprecated()) {
-                deprecatedArgs.put(option.getName(),
-                        String.format("Use of deprecated option '%s'. %s", 
option.getName(), option.getDeprecated()));
+    public ArgumentTracker(final List<? extends AbstractOption<?>> 
uiOptionList) {
+        for (AbstractOption<?> abstractOption : uiOptionList) {
+            if (abstractOption.isDeprecated()) {
+                deprecatedArgs.put(abstractOption.getName(),
+                        String.format("Use of deprecated option '%s'. %s", 
abstractOption.getName(), abstractOption.getDeprecated()));
             }
         }
     }
 
+    /**
+     * Extract the core name from the option.  This is the {@link 
Option#getLongOpt()} if defined, otherwise
+     * the {@link Option#getOpt()}.
+     * @param option the commons cli option.
+     * @return the common cli based name.
+     */
+    public static String extractKey(final Option option) {
+        return StringUtils.defaultIfBlank(option.getLongOpt(), 
option.getOpt());
+    }
+
     public Set<Map.Entry<String, List<String>>> entrySet() {
         return args.entrySet();
     }
@@ -69,7 +82,7 @@ public final class SetArgs {
      */
     private void setDeprecationReporter() {
         DeprecationReporter.setLogReporter(opt -> {
-            String msg = 
deprecatedArgs.get(AbstractOption.extractBaseName(opt));
+            String msg = deprecatedArgs.get(extractKey(opt));
             if (msg == null) {
                 DeprecationReporter.getDefault().accept(opt);
             } else {
@@ -97,14 +110,14 @@ public final class SetArgs {
             final Option opt = arg.find(key);
             final Option main = arg.option();
             if (opt.isDeprecated()) {
-                args.remove(AbstractOption.extractBaseName(main));
+                args.remove(extractKey(main));
                 // deprecated options must be explicitly set so let it go.
                 return true;
             }
             // non-deprecated options may have default so ignore it if another 
option has already been set.
             for (Option o : arg.group().getOptions()) {
                 if (!o.equals(main)) {
-                    if (args.containsKey(AbstractOption.extractBaseName(o))) {
+                    if (args.containsKey(extractKey(o))) {
                         return false;
                     }
                 }
diff --git a/apache-rat-core/src/main/java/org/apache/rat/ui/OptionFactory.java 
b/apache-rat-core/src/main/java/org/apache/rat/ui/OptionFactory.java
index cc77680a..51479b19 100644
--- a/apache-rat-core/src/main/java/org/apache/rat/ui/OptionFactory.java
+++ b/apache-rat-core/src/main/java/org/apache/rat/ui/OptionFactory.java
@@ -60,7 +60,7 @@ public final class OptionFactory {
         if (config.filter != null) {
             lst.removeIf(config.filter);
         }
-        lst.sort(Comparator.comparing(AbstractOption::extractBaseName));
+        lst.sort(Comparator.comparing(ArgumentTracker::extractKey));
         return lst;
     }
 
@@ -72,7 +72,7 @@ public final class OptionFactory {
      */
     public static <T extends AbstractOption<T>> Map<String, T> 
getOptionMap(final Config<T> config) {
         Map<String, T> result = new TreeMap<>();
-        getOptions(config).forEach(option -> 
result.put(AbstractOption.extractBaseName(option.getOption()), option));
+        getOptions(config).forEach(option -> 
result.put(ArgumentTracker.extractKey(option.getOption()), option));
         return result;
     }
 
diff --git a/apache-rat-plugin-parent/impl/pom.xml 
b/apache-rat-plugin-parent/impl/pom.xml
index 4a2bdf95..48cc1e69 100644
--- a/apache-rat-plugin-parent/impl/pom.xml
+++ b/apache-rat-plugin-parent/impl/pom.xml
@@ -187,6 +187,24 @@
               </arguments>
             </configuration>
           </execution>
+          <execution>
+            <id>generate-rat-tests</id>
+            <goals>
+              <goal>java</goal>
+            </goals>
+            <phase>generate-test-sources</phase>
+            <configuration>
+              <mainClass>org.apache.rat.maven.TestGenerator</mainClass>
+              <arguments>
+                <argument>-t</argument>
+                <argument>${project.build.testSourceDirectory}</argument>
+                <argument>-r</argument>
+                
<argument>${project.build.testSourceDirectory}/../resources</argument>
+                <argument>-p</argument>
+                <argument>org.apache.rat.maven</argument>
+              </arguments>
+            </configuration>
+          </execution>
           <execution>
             <id>Initial site generation</id>
             <phase>pre-site</phase>
@@ -242,9 +260,9 @@
               <followSymlinks>false</followSymlinks>
             </fileset>
             <fileset>
-              <directory>src/main/java/org/apache/rat/plugin/</directory>
+              <directory>src/main/java/org/apache/rat/maven/</directory>
               <includes>
-                <include>BaseRatMojo.java</include>
+                <include>AbstractMaven.java</include>
               </includes>
               <followSymlinks>false</followSymlinks>
             </fileset>
diff --git 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/AbstractRatMojo.java
similarity index 97%
rename from 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
rename to 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/AbstractRatMojo.java
index 2e2ce3b2..81283928 100644
--- 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/AbstractRatMojo.java
+++ 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/AbstractRatMojo.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.rat.mp;
+package org.apache.rat.maven;
 
 import java.io.File;
 import java.io.IOException;
@@ -38,7 +38,6 @@ import org.apache.rat.commandline.ArgumentContext;
 import org.apache.rat.document.DocumentName;
 import org.apache.rat.document.FileDocument;
 import org.apache.rat.license.ILicense;
-import org.apache.rat.maven.AbstractMaven;
 import org.apache.rat.utils.DefaultLog;
 import org.apache.rat.utils.Log;
 import org.apache.rat.walker.DirectoryWalker;
@@ -127,7 +126,7 @@ public abstract class AbstractRatMojo extends AbstractMaven 
{
         List<String> result = new ArrayList<>();
         for (Option option : arg.group().getOptions()) {
             if (option.getLongOpt() != null) {
-                List<String> args = setArgs.getArg(option.getLongOpt());
+                List<String> args = 
argumentTracker.getArg(option.getLongOpt());
                 if (args != null) {
                     result.addAll(args);
                 }
@@ -143,7 +142,7 @@ public abstract class AbstractRatMojo extends AbstractMaven 
{
     protected void removeKey(final Arg arg) {
         for (Option option : arg.group().getOptions()) {
             if (option.getLongOpt() != null) {
-                setArgs.removeArg(option.getLongOpt());
+                argumentTracker.removeArg(option.getLongOpt());
             }
         }
     }
@@ -245,7 +244,7 @@ public abstract class AbstractRatMojo extends AbstractMaven 
{
             try {
                 if (getLog().isDebugEnabled()) {
                     log.debug("Start BaseRatMojo Configuration options");
-                    for (Map.Entry<String, List<String>> entry : 
setArgs.entrySet()) {
+                    for (Map.Entry<String, List<String>> entry : 
argumentTracker.entrySet()) {
                         log.debug(format(" * %s %s", entry.getKey(), 
String.join(", ", entry.getValue())));
                     }
                     log.debug("End BaseRatMojo Configuration options");
@@ -255,7 +254,7 @@ public abstract class AbstractRatMojo extends AbstractMaven 
{
                 removeKey(Arg.HELP_LICENSES);
                 setIncludeExclude();
 
-                ArgumentContext ctxt = OptionCollection.parseCommands(basedir, 
setArgs.args().toArray(new String[0]));
+                ArgumentContext ctxt = OptionCollection.parseCommands(basedir, 
argumentTracker.args().toArray(new String[0]));
                 DocumentName dirName = DocumentName.builder(basedir).build();
                 ctxt.getConfiguration().addSource(new DirectoryWalker(new 
FileDocument(dirName, basedir,
                         
ctxt.getConfiguration().getDocumentExcluder(dirName))));
diff --git 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatCheckException.java
 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatCheckException.java
similarity index 97%
rename from 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatCheckException.java
rename to 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatCheckException.java
index 8faf78a9..9e670e2a 100644
--- 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatCheckException.java
+++ 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatCheckException.java
@@ -1,4 +1,4 @@
-package org.apache.rat.mp;
+package org.apache.rat.maven;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
diff --git 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatCheckMojo.java
 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatCheckMojo.java
similarity index 87%
rename from 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatCheckMojo.java
rename to 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatCheckMojo.java
index e4686adf..b4112320 100644
--- 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatCheckMojo.java
+++ 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatCheckMojo.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.rat.mp;
+package org.apache.rat.maven;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -40,6 +40,7 @@ import org.apache.rat.commandline.StyleSheets;
 import org.apache.rat.config.exclusion.StandardCollection;
 import org.apache.rat.license.LicenseSetFactory.LicenseFilter;
 import org.apache.rat.report.claim.ClaimStatistic;
+import org.apache.rat.ui.ArgumentTracker;
 import org.apache.rat.utils.DefaultLog;
 import org.apache.rat.utils.Log;
 
@@ -52,7 +53,7 @@ import static java.lang.String.format;
  * </p>
  */
 @Mojo(name = "check", defaultPhase = LifecyclePhase.VALIDATE, threadSafe = 
true)
-public class RatCheckMojo extends AbstractRatMojo {
+public final class RatCheckMojo extends AbstractRatMojo {
 
     public RatCheckMojo() {
         super();
@@ -80,27 +81,21 @@ public class RatCheckMojo extends AbstractRatMojo {
     @Parameter(property = "rat.consoleOutput", defaultValue = "true")
     private boolean consoleOutput;
 
-    /** The reporter that this mojo uses */
-    private Reporter reporter;
-
-    Reporter.Output output;
-        /**
-         * Invoked by Maven to execute the Mojo.
-         *
-         * @throws MojoFailureException if an error in the plugin 
configuration was
-         * detected.
-         * @throws MojoExecutionException if another error occurred while 
executing the
-         * plugin.
-         */
+    /**
+     * Invoked by Maven to execute the Mojo.
+     *
+     * @throws MojoExecutionException if another error occurred while 
executing the
+     * plugin.
+     */
     @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
+    public void execute() throws MojoExecutionException {
         if (skip) {
             getLog().info("RAT will not execute since it is configured to be 
skipped via system property 'rat.skip'.");
             return;
         }
 
         if (getValues(Arg.OUTPUT_FILE).isEmpty()) {
-            setArgs.setArg(Arg.OUTPUT_FILE.option().getLongOpt(), 
defaultReportFile.getAbsolutePath());
+            
argumentTracker.setArg(ArgumentTracker.extractKey(Arg.OUTPUT_FILE.option()), 
defaultReportFile.getAbsolutePath());
         }
 
         try (Writer logWriter = DefaultLog.getInstance().asWriter()) {
@@ -110,10 +105,9 @@ public class RatCheckMojo extends AbstractRatMojo {
                 config.reportExclusions(logWriter);
             }
             try {
-                this.reporter = new Reporter(config);
-                output = reporter.execute();
-                writeMojoRatReport(output);
-                if (verbose) {
+                final Reporter reporter = new Reporter(config);
+            final Reporter.Output output = reporter.execute();
+            writeMojoRatReport(output);if (verbose) {
                     output.writeSummary(DefaultLog.getInstance().asWriter());
                 }
                 // produce the requested output.
@@ -144,7 +138,7 @@ public class RatCheckMojo extends AbstractRatMojo {
         }
     }
 
-    protected void check(final ReportConfiguration config, final 
Reporter.Output output) throws MojoFailureException {
+    private void check(final ReportConfiguration config, final Reporter.Output 
output) throws MojoFailureException {
         ClaimStatistic statistics = output.getStatistic();
 
         if (config.getClaimValidator().hasErrors()) {
diff --git 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatReportMojo.java
 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatReportMojo.java
similarity index 99%
rename from 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatReportMojo.java
rename to 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatReportMojo.java
index 717a53c1..2c29be6c 100644
--- 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/RatReportMojo.java
+++ 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/RatReportMojo.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.rat.mp;
+package org.apache.rat.maven;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
diff --git 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/package-info.java
 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/package-info.java
similarity index 97%
rename from 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/package-info.java
rename to 
apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/package-info.java
index 8876b3f8..6f7f65fd 100644
--- 
a/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/mp/package-info.java
+++ 
b/apache-rat-plugin-parent/impl/src/main/java/org/apache/rat/maven/package-info.java
@@ -20,4 +20,4 @@
 /**
  * The base package for the RAT Maven plugin.
  */
-package org.apache.rat.mp;
+package org.apache.rat.maven;
diff --git 
a/apache-rat-plugin-parent/impl/src/test/java/org/apache/rat/mp/OptionMojoTest.java
 
b/apache-rat-plugin-parent/impl/src/test/java/org/apache/rat/mp/OptionMojoTest.java
index 03a49fc5..bc77a78f 100644
--- 
a/apache-rat-plugin-parent/impl/src/test/java/org/apache/rat/mp/OptionMojoTest.java
+++ 
b/apache-rat-plugin-parent/impl/src/test/java/org/apache/rat/mp/OptionMojoTest.java
@@ -25,6 +25,7 @@ import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.rat.maven.RatCheckMojo;
 import org.apache.rat.test.AbstractConfigurationOptionsProvider;
 import org.apache.rat.OptionCollectionTest;
 import org.apache.rat.ReportConfiguration;
diff --git 
a/apache-rat-plugin-parent/impl/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
 
b/apache-rat-plugin-parent/impl/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
index 0d10e37f..7c8dfd9a 100644
--- 
a/apache-rat-plugin-parent/impl/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
+++ 
b/apache-rat-plugin-parent/impl/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
@@ -43,6 +43,10 @@ import org.apache.rat.commandline.Arg;
 import org.apache.rat.license.ILicenseFamily;
 import org.apache.rat.license.LicenseSetFactory;
 import org.apache.rat.license.LicenseSetFactory.LicenseFilter;
+import org.apache.rat.maven.AbstractRatMojo;
+import org.apache.rat.maven.RatCheckException;
+import org.apache.rat.maven.RatCheckMojo;
+import org.apache.rat.maven.RatReportMojo;
 import org.apache.rat.report.claim.ClaimStatistic;
 import org.apache.rat.test.AbstractConfigurationOptionsProvider;
 import org.apache.rat.test.utils.Resources;
diff --git 
a/apache-rat-plugin-parent/tools/src/main/java/org/apache/rat/maven/TestGenerator.java
 
b/apache-rat-plugin-parent/tools/src/main/java/org/apache/rat/maven/TestGenerator.java
index a44a915a..92387149 100644
--- 
a/apache-rat-plugin-parent/tools/src/main/java/org/apache/rat/maven/TestGenerator.java
+++ 
b/apache-rat-plugin-parent/tools/src/main/java/org/apache/rat/maven/TestGenerator.java
@@ -50,8 +50,6 @@ import org.apache.velocity.runtime.RuntimeConstants;
 public final class TestGenerator {
     /** They syntax for this command */
     private static final String SYNTAX = String.format("java -cp ... %s 
[options]", TestGenerator.class.getName());
-    /** The velocity engine to generated files */
-    private final VelocityEngine velocityEngine;
     /** The package name as a cased string */
     private final CasedString packageName;
     /** The resource directory where the test resources will be written */
@@ -70,7 +68,7 @@ public final class TestGenerator {
         this.resourceDirectory = resourceDirectory;
         this.testDirectory = testDirectory;
 
-        velocityEngine = new VelocityEngine();
+        VelocityEngine velocityEngine = new VelocityEngine();
         velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, 
"classpath");
         velocityEngine.setProperty("classpath.resource.loader.class", 
"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
         velocityEngine.init();
@@ -157,6 +155,7 @@ public final class TestGenerator {
     private void writeTestFile(final VelocityContext context) throws 
IOException {
         File javaFile = 
Paths.get(testDirectory).resolve(packageName.toCase(CasedString.StringCase.SLASH))
                 .resolve("MavenTest.java").toFile();
+        FileUtils.mkDir(javaFile.getParentFile());
         try (FileWriter fileWriter = new FileWriter(javaFile)) {
             javaTemplate.merge(context, fileWriter);
         }
diff --git 
a/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/AbstractMaven.vm
 
b/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/AbstractMaven.vm
index cdc14c26..0976e13e 100644
--- 
a/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/AbstractMaven.vm
+++ 
b/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/AbstractMaven.vm
@@ -19,39 +19,27 @@
 
 package org.apache.rat.maven;
 
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.rat.ui.OptionFactory;
-import org.apache.rat.ui.SetArgs;
-import org.apache.rat.utils.CasedString;
-
 import java.util.List;
 import java.util.stream.Collectors;
 
-/* DO NOT EDIT - GENERATED FILE */
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.rat.ui.ArgumentTracker;
+import org.apache.rat.ui.OptionFactory;
 
 /**
  * Generated class to provide Maven support for standard RAT command line 
options
+ * DO NOT EDIT - GENERATED FILE
  */
+@SuppressWarnings("checkstyle:LineLength")
 public abstract class AbstractMaven extends AbstractMojo {
+    /** The arguments that have been set */
+    protected final ArgumentTracker argumentTracker;
 
-    protected final SetArgs setArgs;
-    
     protected AbstractMaven() {
         List<MavenOption> mavenList = 
OptionFactory.getOptions(MavenOption.FACTORY_CONFIG).collect(Collectors.toList());
-        setArgs = new SetArgs(MavenOption.RENAME_MAP, mavenList);
+        argumentTracker = new ArgumentTracker(mavenList);
     }
-    
-
-    /**
-     * Creates a kebab case name from a camel case name.
-     * @param camelCase the camel case name to convert.
-     * @return the kebab format.
-     */
-    public static String toKebabForm(String camelCase) {
-        return new CasedString(CasedString.StringCase.CAMEL, 
camelCase).toCase(CasedString.StringCase.KEBAB);
-    }
-
 
     /*  GENERATED METHODS */
 
diff --git 
a/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/AbstractMavenFunc.vm
 
b/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/AbstractMavenFunc.vm
index e7a940d2..0ff12218 100644
--- 
a/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/AbstractMavenFunc.vm
+++ 
b/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/AbstractMavenFunc.vm
@@ -27,18 +27,18 @@
     @Deprecated
 #end
     ${parameterAnnotation}
-    public void set${fname}(${args} ${option.getName}) {
+    public void set${fname}(final ${args} ${option.getName}) {
 #if (${option.hasArg})
   #if (${option.hasArgs})
-        setArgs.addArg("${option.keyValue}", ${option.getName});
+        argumentTracker.addArg("${option.keyValue}", ${option.getName});
   #else
-        setArgs.setArg("${option.keyValue}", ${option.getName});
+        argumentTracker.setArg("${option.keyValue}", ${option.getName});
   #end
 #else
         if (${option.getName}) {
-            setArgs.setArg("${option.keyValue}", null);
+            argumentTracker.setArg("${option.keyValue}", null);
         } else {
-            setArgs.removeArg("${option.keyValue}");
+            argumentTracker.removeArg("${option.keyValue}");
         }
 #end
     }
diff --git 
a/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/TestJava.vm
 
b/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/TestJava.vm
index edcaa77c..10a64614 100644
--- 
a/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/TestJava.vm
+++ 
b/apache-rat-plugin-parent/tools/src/main/resources/org/apache/rat/maven/TestJava.vm
@@ -34,6 +34,10 @@ import org.junit.jupiter.api.condition.EnabledOnOs;
 import org.junit.jupiter.api.condition.OS;
 import org.junit.jupiter.api.io.TempDir;
 
+/**
+ * Tests extracted from {@link ReportTestDataProvider}.
+ * DO NOT EDIT - GENERATED FILE
+ */
 @MojoTest
 public class MavenTest {
 


Reply via email to