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

pkarwasz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/logging-log4j-transform.git

commit 4923d808e40a5c9eef686d663f9a581d3e078bcf
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Tue May 2 13:23:12 2023 +0200

    Add include/exclude setting to Maven plugin
---
 .../log4j/transform/maven/LocationMojo.java        | 28 +++++++++++++++++++++-
 .../maven/scan/ClassFileInclusionScanner.java      |  5 ++++
 .../maven/scan/SimpleInclusionScanner.java         |  3 ---
 3 files changed, 32 insertions(+), 4 deletions(-)

diff --git 
a/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/LocationMojo.java
 
b/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/LocationMojo.java
index 7e583a3..97af70c 100644
--- 
a/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/LocationMojo.java
+++ 
b/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/LocationMojo.java
@@ -26,6 +26,8 @@ import java.net.URLClassLoader;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -77,6 +79,18 @@ public class LocationMojo extends AbstractMojo {
     @Parameter(defaultValue = "${project.build.outputDirectory}", required = 
true, readonly = false)
     private File outputDirectory;
 
+    /**
+     * A list of inclusion filters for the processor.
+     */
+    @Parameter
+    private Set<String> includes = new HashSet<>();
+
+    /**
+     * A list of exclusion filters for the processor.
+     */
+    @Parameter
+    private Set<String> excludes = new HashSet<>();
+
     /**
      * Sets the granularity in milliseconds of the last modification date for
      * testing whether a class file needs weaving.
@@ -149,7 +163,19 @@ public class LocationMojo extends AbstractMojo {
     }
 
     protected ClassFileInclusionScanner getClassFileInclusionScanner() {
-        return new SimpleInclusionScanner(staleMillis, getLog());
+        if (includes.isEmpty() && excludes.isEmpty()) {
+            return new SimpleInclusionScanner(staleMillis, getLog());
+        }
+
+        final Set<String> actualIncludes = includes.isEmpty()
+                ? 
Collections.singleton(ClassFileInclusionScanner.DEFAULT_INCLUSION_PATTERN)
+                : includes;
+
+        // We always exclude Log4j2 cache files
+        final Set<String> actualExcludes = new HashSet<>(excludes);
+        
actualExcludes.add(ClassFileInclusionScanner.DEFAULT_EXCLUSION_PATTERN);
+
+        return new SimpleInclusionScanner(staleMillis, actualIncludes, 
actualExcludes, getLog());
     }
 
     private static class WrappedIOException extends RuntimeException {
diff --git 
a/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/scan/ClassFileInclusionScanner.java
 
b/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/scan/ClassFileInclusionScanner.java
index ea973ff..73e90a1 100644
--- 
a/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/scan/ClassFileInclusionScanner.java
+++ 
b/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/scan/ClassFileInclusionScanner.java
@@ -19,8 +19,13 @@ package org.apache.logging.log4j.transform.maven.scan;
 import java.nio.file.Path;
 import java.util.Set;
 
+import org.apache.logging.log4j.weaver.Constants;
+
 public interface ClassFileInclusionScanner {
 
+    static final String DEFAULT_INCLUSION_PATTERN = "**/*.class";
+    static final String DEFAULT_EXCLUSION_PATTERN = "**/*" + 
Constants.LOCATION_CACHE_SUFFIX + ".class";
+
     /**
      * Finds class files matching a specific condition.
      *
diff --git 
a/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/scan/SimpleInclusionScanner.java
 
b/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/scan/SimpleInclusionScanner.java
index 39837f2..bbaa7d3 100644
--- 
a/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/scan/SimpleInclusionScanner.java
+++ 
b/log4j-transform-maven-plugin/src/main/java/org/apache/logging/log4j/transform/maven/scan/SimpleInclusionScanner.java
@@ -26,15 +26,12 @@ import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import org.apache.logging.log4j.weaver.Constants;
 import org.apache.logging.log4j.weaver.LocationCacheGenerator;
 import org.apache.maven.plugin.logging.Log;
 import org.codehaus.plexus.util.DirectoryScanner;
 
 public class SimpleInclusionScanner implements ClassFileInclusionScanner {
 
-    private static final String DEFAULT_INCLUSION_PATTERN = "**/*.class";
-    private static final String DEFAULT_EXCLUSION_PATTERN = "**/*" + 
Constants.LOCATION_CACHE_SUFFIX + ".class";
     private static final String[] EMPTY_ARRAY = new String[0];
 
     private final long lastUpdatedWithinMsecs;

Reply via email to