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

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


The following commit(s) were added to refs/heads/master by this push:
     new 51dc4198 RAT-107: fix excludes working recursively in submodules and 
add tests (#401)
51dc4198 is described below

commit 51dc4198388c18e8583048f767ca6e07ea8ce523
Author: Claude Warren <[email protected]>
AuthorDate: Tue Nov 26 08:06:21 2024 +0000

    RAT-107: fix excludes working recursively in submodules and add tests (#401)
    
    * Fixes for SCM style excludes
    
    * Fixes additional SCM excludes
    
    * RAT-107: Minor fixes, changelog and docs
    
    * RAT-107: Make log output more explicit
    
    ---------
    
    Co-authored-by: P. Ottlinger <[email protected]>
---
 .../rat/config/exclusion/ExclusionProcessor.java   | 23 +++++++++--
 .../rat/config/exclusion/StandardCollection.java   | 38 +++++++++----------
 apache-rat-plugin/pom.xml                          |  1 -
 apache-rat-plugin/src/it/RAT-107/.idea/dummy       |  1 +
 apache-rat-plugin/src/it/RAT-107/covertura.ser     |  1 +
 apache-rat-plugin/src/it/RAT-107/pom.xml           | 44 ++++++++++++++++++++++
 .../src/it/RAT-107/release.properties              |  1 +
 .../src/it/RAT-107/submodule/.idea/dummy           |  1 +
 .../src/it/RAT-107/submodule/covertura.ser         |  1 +
 .../it/{it4_RAT-168 => RAT-107/submodule}/pom.xml  | 19 ++--------
 .../src/it/RAT-107/submodule/release.properties    |  1 +
 .../it/{it4_RAT-168 => RAT-168}/invoker.properties |  0
 .../src/it/{it4_RAT-168 => RAT-168}/pom.xml        |  0
 .../src/it/{it4_RAT-168 => RAT-168}/verify.groovy  |  0
 .../java/org/apache/rat/mp/RatCheckMojoTest.java   | 21 ++++++++++-
 .../src/test/resources/unit/RAT-107/.idea/dummy    |  1 +
 .../src/test/resources/unit/RAT-107/cobertura.ser  |  1 +
 .../src/test/resources/unit/RAT-107/pom.xml        | 38 +++++++++++++++++++
 .../test/resources/unit/RAT-107/release.properties |  1 +
 .../resources/unit/RAT-107/submodule/.idea/dummy   |  1 +
 .../resources/unit/RAT-107/submodule/cobertura.ser |  1 +
 .../resources/unit/RAT-107/submodule}/pom.xml      | 18 +--------
 .../unit/RAT-107/submodule/release.properties      |  1 +
 src/changes/changes.xml                            |  3 ++
 24 files changed, 159 insertions(+), 58 deletions(-)

diff --git 
a/apache-rat-core/src/main/java/org/apache/rat/config/exclusion/ExclusionProcessor.java
 
b/apache-rat-core/src/main/java/org/apache/rat/config/exclusion/ExclusionProcessor.java
index 390faf6b..74434179 100644
--- 
a/apache-rat-core/src/main/java/org/apache/rat/config/exclusion/ExclusionProcessor.java
+++ 
b/apache-rat-core/src/main/java/org/apache/rat/config/exclusion/ExclusionProcessor.java
@@ -64,7 +64,7 @@ public class ExclusionProcessor {
     /** The base dir for the last PathMatcher */
     private DocumentName lastMatcherBaseDir;
 
-    /** Reset the pathmatcher to start again */
+    /** Reset the path matcher to start again */
     private void resetLastMatcher() {
         lastMatcher = null;
         lastMatcherBaseDir = null;
@@ -197,7 +197,12 @@ public class ExclusionProcessor {
 
             // add the file processors
             for (StandardCollection sc : fileProcessors) {
-                sc.fileProcessor().forEachRemaining(fp -> segregateList(excl, 
incl, fp.apply(basedir)));
+                ExtendedIterator<FileProcessor> iter =  sc.fileProcessor();
+                if (iter.hasNext()) {
+                    sc.fileProcessor().forEachRemaining(fp -> 
segregateList(excl, incl, fp.apply(basedir)));
+                } else {
+                    DefaultLog.getInstance().info(String.format("%s does not 
have a fileProcessor.", sc));
+                }
             }
 
             // add the standard patterns
@@ -206,10 +211,20 @@ public class ExclusionProcessor {
 
             // add the collection patterns
             for (StandardCollection sc : includedCollections) {
-                segregateList(incl, excl, 
FileProcessor.from(sc.patterns()).apply(basedir));
+                Set<String> patterns = sc.patterns();
+                if (patterns.isEmpty()) {
+                    DefaultLog.getInstance().info(String.format("%s does not 
have a defined collection for inclusion.", sc));
+                } else {
+                    segregateList(incl, excl, 
FileProcessor.from(sc.patterns()).apply(basedir));
+                }
             }
             for (StandardCollection sc : excludedCollections) {
-                segregateList(excl, incl, 
FileProcessor.from(sc.patterns()).apply(basedir));
+                Set<String> patterns = sc.patterns();
+                if (patterns.isEmpty()) {
+                    DefaultLog.getInstance().info(String.format("%s does not 
have a defined collection for exclusion.", sc));
+                } else {
+                    segregateList(excl, incl, 
FileProcessor.from(sc.patterns()).apply(basedir));
+                }
             }
 
             // add the matchers
diff --git 
a/apache-rat-core/src/main/java/org/apache/rat/config/exclusion/StandardCollection.java
 
b/apache-rat-core/src/main/java/org/apache/rat/config/exclusion/StandardCollection.java
index 184423a6..97d3ae79 100644
--- 
a/apache-rat-core/src/main/java/org/apache/rat/config/exclusion/StandardCollection.java
+++ 
b/apache-rat-core/src/main/java/org/apache/rat/config/exclusion/StandardCollection.java
@@ -36,9 +36,13 @@ import org.apache.rat.document.DocumentNameMatcherSupplier;
 import org.apache.rat.document.TraceableDocumentNameMatcher;
 import org.apache.rat.utils.ExtendedIterator;
 
+/**
+ * Collection of standard excludes.
+ * HINT: In order to work recursively each entry is prefixed with {@code 
"**\/"}.
+ */
 public enum StandardCollection {
     /**
-     * All the standard excludes combined
+     * All the standard excludes combined.
      */
     // see getCollections() for loading
     ALL("All of the Standard Excludes combined.", null, null, null),
@@ -51,7 +55,7 @@ public enum StandardCollection {
      * The files and directories created by a Bazaar source code control based 
tool.
      */
     BAZAAR("The files and directories created by a Bazaar source code control 
based tool.",
-            Arrays.asList("**/.bzr/**", ".bzrignore"), null, new 
BazaarIgnoreProcessor()),
+            Arrays.asList("**/.bzr/**", "**/.bzrignore"), null, new 
BazaarIgnoreProcessor()),
     /**
      * The files and directories created by a Bitkeeper source code control 
based tool.
      */
@@ -80,7 +84,7 @@ public enum StandardCollection {
      * The files and directories created by an Eclipse IDE based tool.
      */
     ECLIPSE("The files and directories created by an Eclipse IDE based tool.",
-            Arrays.asList(".checkstyle", ".classpath", ".factorypath", 
".project", ".settings/**"),
+            Arrays.asList("**/.checkstyle", "**/.classpath", 
"**/.factorypath", "**/.project", "**/.settings/**"),
             null, null),
     /**
      * The files and directories created by GIT source code control to support 
GIT, also processes files listed in '.gitignore'.
@@ -114,11 +118,7 @@ public enum StandardCollection {
      * The files and directories created by an IDEA IDE based tool.
      */
     IDEA("The files and directories created by an IDEA IDE based tool.",
-            Arrays.asList(
-                    "*.iml",
-                    "*.ipr",
-                    "*.iws",
-                    ".idea/**"), null, null),
+            Arrays.asList("**/*.iml", "**/*.ipr", "**/*.iws", "**/.idea/**"), 
null, null),
     /**
      * The .DS_Store files MAC computer.
      */
@@ -128,20 +128,20 @@ public enum StandardCollection {
      * The files and directories created by Maven build system based project.
      */
     MAVEN("The files and directories created by Maven build system based 
project.",
-            Arrays.asList(//
-                    "target/**", //
-                    "cobertura.ser", //
+            Arrays.asList(
+                    "**/target/**", //
+                    "**/cobertura.ser", //
                     "**/MANIFEST.MF", // a MANIFEST.MF file cannot contain 
comment lines. In other words: It is not possible, to include a license.
-                    "release.properties", //
-                    ".repository", // Used by Jenkins when a Maven job uses a 
private repository that is "Local to the workspace"
-                    "build.log", // RAT-160: until now maven-invoker-plugin 
runs create a build.log that is not part of a release
-                    ".mvn/**", // Project configuration since Maven 3.3.1 
which contains maven.config, jvm.config, extensions.xml
-                    "pom.xml.releaseBackup"), null, null),
+                    "**/release.properties", //
+                    "**/.repository", // Used by Jenkins when a Maven job uses 
a private repository that is "Local to the workspace"
+                    "**/build.log", // RAT-160: until now maven-invoker-plugin 
runs create a build.log that is not part of a release
+                    "**/.mvn/**", // Project configuration since Maven 3.3.1 
which contains maven.config, jvm.config, extensions.xml
+                    "**/pom.xml.releaseBackup"), null, null),
     /**
      * The files and directories created by a Mercurial source code control 
based tool.
      */
     MERCURIAL("The files and directories created by a Mercurial source code 
control based tool.",
-            Arrays.asList("**/.hg/**", ".hgignore"), null, new 
HgIgnoreProcessor()),
+            Arrays.asList("**/.hg/**", "**/.hgignore"), null, new 
HgIgnoreProcessor()),
     /**
      * The set of miscellaneous files generally left by editors and the like.
      */
@@ -154,7 +154,7 @@ public enum StandardCollection {
     MKS("The files and directories created by an MKS source code control based 
tool.",
             Collections.singletonList("**/project.pj"), null, null),
     /**
-     * The files and directories created by a RCS source code control based 
tool.
+     * The files and directories created by an RCS source code control based 
tool.
      */
     RCS("The files and directories created by a RCS source code control based 
tool.",
             Collections.singletonList("**/RCS/**"), null, null),
@@ -245,7 +245,7 @@ public enum StandardCollection {
     /**
      * @return the combined and deduped collection of patterns in the given 
collection.
      */
-    public Collection<String> patterns() {
+    public Set<String> patterns() {
         Set<String> result = new HashSet<>();
         getCollections().forEach(sc -> result.addAll(sc.patterns));
         return result;
diff --git a/apache-rat-plugin/pom.xml b/apache-rat-plugin/pom.xml
index 951614fd..739982a2 100644
--- a/apache-rat-plugin/pom.xml
+++ b/apache-rat-plugin/pom.xml
@@ -221,7 +221,6 @@
           
<localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
           <settingsFile>src/it/settings.xml</settingsFile>
           <postBuildHookScript>verify</postBuildHookScript>
-          <debug>true</debug>
         </configuration>
         <executions>
           <execution>
diff --git a/apache-rat-plugin/src/it/RAT-107/.idea/dummy 
b/apache-rat-plugin/src/it/RAT-107/.idea/dummy
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/it/RAT-107/.idea/dummy
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/it/RAT-107/covertura.ser 
b/apache-rat-plugin/src/it/RAT-107/covertura.ser
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/it/RAT-107/covertura.ser
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/it/RAT-107/pom.xml 
b/apache-rat-plugin/src/it/RAT-107/pom.xml
new file mode 100644
index 00000000..81226068
--- /dev/null
+++ b/apache-rat-plugin/src/it/RAT-107/pom.xml
@@ -0,0 +1,44 @@
+<?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 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.
+-->
+<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/maven-v4_0_0.xsd";>
+  <groupId>org.apache.rat.test</groupId>
+  <artifactId>RAT-107</artifactId>
+  <version>1.0</version>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>pom</packaging>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>@pom.version@</version>
+        <configuration>
+          <excludeSubProjects>false</excludeSubProjects>
+          <inputExcludeParsedScms>
+            <inputExcludeParsedScm>MAVEN</inputExcludeParsedScm>
+            <inputExcludeParsedScm>idea</inputExcludeParsedScm>
+            <inputExcludeParsedScm>eclipse</inputExcludeParsedScm>
+          </inputExcludeParsedScms>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <modules>
+    <module>submodule</module>
+  </modules>
+</project>
diff --git a/apache-rat-plugin/src/it/RAT-107/release.properties 
b/apache-rat-plugin/src/it/RAT-107/release.properties
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/it/RAT-107/release.properties
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/it/RAT-107/submodule/.idea/dummy 
b/apache-rat-plugin/src/it/RAT-107/submodule/.idea/dummy
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/it/RAT-107/submodule/.idea/dummy
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/it/RAT-107/submodule/covertura.ser 
b/apache-rat-plugin/src/it/RAT-107/submodule/covertura.ser
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/it/RAT-107/submodule/covertura.ser
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/it/it4_RAT-168/pom.xml 
b/apache-rat-plugin/src/it/RAT-107/submodule/pom.xml
similarity index 73%
copy from apache-rat-plugin/src/it/it4_RAT-168/pom.xml
copy to apache-rat-plugin/src/it/RAT-107/submodule/pom.xml
index c570d26a..05fb8d23 100644
--- a/apache-rat-plugin/src/it/it4_RAT-168/pom.xml
+++ b/apache-rat-plugin/src/it/RAT-107/submodule/pom.xml
@@ -16,10 +16,10 @@
   limitations 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/maven-v4_0_0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.rat.test</groupId>
-  <artifactId>it4rat168</artifactId>
+  <artifactId>submodule</artifactId>
   <version>1.0</version>
+  <modelVersion>4.0.0</modelVersion>
   <build>
     <plugins>
       <plugin>
@@ -27,21 +27,8 @@
         <artifactId>apache-rat-plugin</artifactId>
         <version>@pom.version@</version>
         <configuration>
-          <includes>
-            <include>pom.xml</include>
-          </includes>
-        </configuration>
+                </configuration>
       </plugin>
     </plugins>
-    <!-- RAT-354: prevent warning about missing version property of 
maven-clean-plugin -->
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-clean-plugin</artifactId>
-          <version>3.3.2</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
   </build>
 </project>
diff --git a/apache-rat-plugin/src/it/RAT-107/submodule/release.properties 
b/apache-rat-plugin/src/it/RAT-107/submodule/release.properties
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/it/RAT-107/submodule/release.properties
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/it/it4_RAT-168/invoker.properties 
b/apache-rat-plugin/src/it/RAT-168/invoker.properties
similarity index 100%
rename from apache-rat-plugin/src/it/it4_RAT-168/invoker.properties
rename to apache-rat-plugin/src/it/RAT-168/invoker.properties
diff --git a/apache-rat-plugin/src/it/it4_RAT-168/pom.xml 
b/apache-rat-plugin/src/it/RAT-168/pom.xml
similarity index 100%
copy from apache-rat-plugin/src/it/it4_RAT-168/pom.xml
copy to apache-rat-plugin/src/it/RAT-168/pom.xml
diff --git a/apache-rat-plugin/src/it/it4_RAT-168/verify.groovy 
b/apache-rat-plugin/src/it/RAT-168/verify.groovy
similarity index 100%
rename from apache-rat-plugin/src/it/it4_RAT-168/verify.groovy
rename to apache-rat-plugin/src/it/RAT-168/verify.groovy
diff --git 
a/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java 
b/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
index 213b2620..0690c1ce 100644
--- a/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
+++ b/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
@@ -27,7 +27,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.io.File;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.maven.plugin.MojoFailureException;
 import org.apache.rat.ReportConfiguration;
 import org.apache.rat.ReportConfigurationTest;
 import org.apache.rat.ReporterTestUtils;
@@ -265,7 +264,7 @@ public class RatCheckMojoTest extends 
BetterAbstractMojoTestCase {
     /**
      * Tests verifying gitignore parsing
      */
-    public void testRAT335GitIgnore() throws Exception {
+    public void testRAT_335GitIgnoreParsing() throws Exception {
         final RatCheckMojo mojo = newRatCheckMojo("RAT-335-GitIgnore");
         final File ratTxtFile = mojo.getRatTxtFile();
         final String[] expected = {
@@ -323,6 +322,7 @@ public class RatCheckMojoTest extends 
BetterAbstractMojoTestCase {
 
         // Create the test file with a content on which it must fail
         File barFile = new File(dir, "bar.md");
+        assertThat(barFile).exists();
         final String[] expected = {
                 ReporterTestUtils.counterText(ClaimStatistic.Counter.NOTICES, 
0),
                 ReporterTestUtils.counterText(ClaimStatistic.Counter.BINARIES, 
0),
@@ -344,4 +344,21 @@ public class RatCheckMojoTest extends 
BetterAbstractMojoTestCase {
             ensureRatReportIsCorrect(ratTxtFile, expected, TextUtils.EMPTY);
         }
     }
+
+    /**
+    * Tests implicit excludes apply to submodules too
+    */
+   public void testRAT_107() throws Exception {
+       final RatCheckMojo mojo = (RatCheckMojo) newRatMojo("RAT-107", "check", 
true);
+       final File ratTxtFile = mojo.getRatTxtFile();
+       final String[] expected = {};
+       final String[] notExpected = {};
+       setVariableValueToObject(mojo, "excludeSubProjects", Boolean.FALSE);
+       mojo.setInputExcludeParsedScm("MAVEN");
+       mojo.setInputExcludeParsedScm("idea");
+       mojo.setInputExcludeParsedScm("eclipse");
+       mojo.execute();
+
+       ensureRatReportIsCorrect(ratTxtFile, expected, notExpected);
+   }
 }
diff --git a/apache-rat-plugin/src/test/resources/unit/RAT-107/.idea/dummy 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/.idea/dummy
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/test/resources/unit/RAT-107/.idea/dummy
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/test/resources/unit/RAT-107/cobertura.ser 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/cobertura.ser
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/test/resources/unit/RAT-107/cobertura.ser
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/test/resources/unit/RAT-107/pom.xml 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/pom.xml
new file mode 100644
index 00000000..14060ae4
--- /dev/null
+++ b/apache-rat-plugin/src/test/resources/unit/RAT-107/pom.xml
@@ -0,0 +1,38 @@
+<?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 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.
+-->
+<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/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.rat.test</groupId>
+  <artifactId>RAT-107</artifactId>
+  <packaging>pom</packaging>
+  <version>1.0</version>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>@pom.version@</version>
+        <configuration>
+                </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <modules>
+    <module>submodule</module>
+  </modules>
+</project>
diff --git 
a/apache-rat-plugin/src/test/resources/unit/RAT-107/release.properties 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/release.properties
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/test/resources/unit/RAT-107/release.properties
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git 
a/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/.idea/dummy 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/.idea/dummy
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/.idea/dummy
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git 
a/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/cobertura.ser 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/cobertura.ser
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ b/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/cobertura.ser
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/apache-rat-plugin/src/it/it4_RAT-168/pom.xml 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/pom.xml
similarity index 71%
rename from apache-rat-plugin/src/it/it4_RAT-168/pom.xml
rename to apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/pom.xml
index c570d26a..f3bf511d 100644
--- a/apache-rat-plugin/src/it/it4_RAT-168/pom.xml
+++ b/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/pom.xml
@@ -16,9 +16,8 @@
   limitations 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/maven-v4_0_0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.rat.test</groupId>
-  <artifactId>it4rat168</artifactId>
+  <artifactId>submodule</artifactId>
   <version>1.0</version>
   <build>
     <plugins>
@@ -27,21 +26,8 @@
         <artifactId>apache-rat-plugin</artifactId>
         <version>@pom.version@</version>
         <configuration>
-          <includes>
-            <include>pom.xml</include>
-          </includes>
-        </configuration>
+                </configuration>
       </plugin>
     </plugins>
-    <!-- RAT-354: prevent warning about missing version property of 
maven-clean-plugin -->
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-clean-plugin</artifactId>
-          <version>3.3.2</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
   </build>
 </project>
diff --git 
a/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/release.properties
 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/release.properties
new file mode 100644
index 00000000..b77e339f
--- /dev/null
+++ 
b/apache-rat-plugin/src/test/resources/unit/RAT-107/submodule/release.properties
@@ -0,0 +1 @@
+This file intentionally has no Apache License Header.
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 986def59..e6b8100c 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -72,6 +72,9 @@ The <action> type attribute can be one of:
     </release>
     -->
     <release version="0.17-SNAPSHOT" date="xxxx-yy-zz" description="Current 
SNAPSHOT - release to be done">
+      <action issue="RAT-107" type="fix" dev="claudenw">
+        Exclusions of defaults should work recursively and in submodules now. 
Added unit and integration tests.
+      </action>
       <action issue="RAT-2" type="add" dev="claudenw">
         Added --input-exclude-size as an option to skip the scanning of very 
small files.
       </action>

Reply via email to