You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2020/09/15 18:57:58 UTC
[logging-log4j2] 05/10: Support clean up annotations on methods
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 <bo...@gmail.com>
AuthorDate: Sun Sep 13 20:09:36 2020 -0500
Support clean up annotations on methods
Signed-off-by: Matt Sicker <bo...@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