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;
