This is an automated email from the ASF dual-hosted git repository. mattsicker pushed a commit to branch release-2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 1655041df222c80956c5ed304b975d57a5553fbb Author: Matt Sicker <boa...@gmail.com> AuthorDate: Sun Sep 13 20:09:36 2020 -0500 Support clean up annotations on methods Signed-off-by: Matt Sicker <boa...@gmail.com> --- .../logging/log4j/junit/CleanUpDirectories.java | 2 +- .../apache/logging/log4j/junit/CleanUpFiles.java | 2 +- .../logging/log4j/junit/DirectoryCleaner.java | 21 +++++++++++++++------ .../org/apache/logging/log4j/junit/FileCleaner.java | 21 +++++++++++++++------ 4 files changed, 32 insertions(+), 14 deletions(-) diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/junit/CleanUpDirectories.java b/log4j-api/src/test/java/org/apache/logging/log4j/junit/CleanUpDirectories.java index 3cdceda..6c398e6 100644 --- a/log4j-api/src/test/java/org/apache/logging/log4j/junit/CleanUpDirectories.java +++ b/log4j-api/src/test/java/org/apache/logging/log4j/junit/CleanUpDirectories.java @@ -35,7 +35,7 @@ import java.lang.annotation.Target; * @since 2.14.0 */ @Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) +@Target({ElementType.TYPE, ElementType.METHOD}) @Documented @Inherited @ExtendWith(DirectoryCleaner.class) diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/junit/CleanUpFiles.java b/log4j-api/src/test/java/org/apache/logging/log4j/junit/CleanUpFiles.java index b58d8f8..a3b9ca6 100644 --- a/log4j-api/src/test/java/org/apache/logging/log4j/junit/CleanUpFiles.java +++ b/log4j-api/src/test/java/org/apache/logging/log4j/junit/CleanUpFiles.java @@ -35,7 +35,7 @@ import java.lang.annotation.Target; * @since 2.14.0 */ @Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) +@Target({ElementType.TYPE, ElementType.METHOD}) @Documented @Inherited @ExtendWith(FileCleaner.class) diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/junit/DirectoryCleaner.java b/log4j-api/src/test/java/org/apache/logging/log4j/junit/DirectoryCleaner.java index efa971b..26f5518 100644 --- a/log4j-api/src/test/java/org/apache/logging/log4j/junit/DirectoryCleaner.java +++ b/log4j-api/src/test/java/org/apache/logging/log4j/junit/DirectoryCleaner.java @@ -26,17 +26,26 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; -import java.util.Arrays; import java.util.Collection; -import java.util.Collections; -import java.util.stream.Collectors; +import java.util.HashSet; class DirectoryCleaner extends AbstractFileCleaner { @Override Collection<Path> getPathsForTest(final ExtensionContext context) { - final CleanUpDirectories cleanUpDirectories = context.getRequiredTestClass().getAnnotation(CleanUpDirectories.class); - return cleanUpDirectories == null ? Collections.emptySet() : - Arrays.stream(cleanUpDirectories.value()).map(Paths::get).collect(Collectors.toSet()); + final Collection<Path> paths = new HashSet<>(); + final CleanUpDirectories testClassAnnotation = context.getRequiredTestClass().getAnnotation(CleanUpDirectories.class); + if (testClassAnnotation != null) { + for (final String path : testClassAnnotation.value()) { + paths.add(Paths.get(path)); + } + } + final CleanUpDirectories testMethodAnnotation = context.getRequiredTestMethod().getAnnotation(CleanUpDirectories.class); + if (testMethodAnnotation != null) { + for (final String path : testMethodAnnotation.value()) { + paths.add(Paths.get(path)); + } + } + return paths; } @Override diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/junit/FileCleaner.java b/log4j-api/src/test/java/org/apache/logging/log4j/junit/FileCleaner.java index 64ae0df..1858666 100644 --- a/log4j-api/src/test/java/org/apache/logging/log4j/junit/FileCleaner.java +++ b/log4j-api/src/test/java/org/apache/logging/log4j/junit/FileCleaner.java @@ -23,17 +23,26 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Arrays; import java.util.Collection; -import java.util.Collections; -import java.util.stream.Collectors; +import java.util.HashSet; class FileCleaner extends AbstractFileCleaner { @Override Collection<Path> getPathsForTest(final ExtensionContext context) { - final CleanUpFiles cleanUpFiles = context.getRequiredTestClass().getAnnotation(CleanUpFiles.class); - return cleanUpFiles == null ? Collections.emptySet() : - Arrays.stream(cleanUpFiles.value()).map(Paths::get).collect(Collectors.toSet()); + final Collection<Path> paths = new HashSet<>(); + final CleanUpFiles testClassAnnotation = context.getRequiredTestClass().getAnnotation(CleanUpFiles.class); + if (testClassAnnotation != null) { + for (final String path : testClassAnnotation.value()) { + paths.add(Paths.get(path)); + } + } + final CleanUpFiles testMethodAnnotation = context.getRequiredTestMethod().getAnnotation(CleanUpFiles.class); + if (testMethodAnnotation != null) { + for (final String path : testMethodAnnotation.value()) { + paths.add(Paths.get(path)); + } + } + return paths; } @Override