You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2022/05/17 20:27:36 UTC

[tika] branch main updated: TIKA-3767 -- use @TempDir more often to simplify unit tests

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

tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new d6c34c919 TIKA-3767 -- use @TempDir more often to simplify unit tests
d6c34c919 is described below

commit d6c34c91996dd39c5c99c3155e6435391c1d7cc1
Author: tballison <ta...@apache.org>
AuthorDate: Tue May 17 16:27:28 2022 -0400

    TIKA-3767 -- use @TempDir more often to simplify unit tests
---
 .../org/apache/tika/batch/fs/FSBatchTestBase.java  | 29 +++---------
 .../org/apache/tika/TestRereadableInputStream.java | 25 ++++++-----
 .../java/org/apache/tika/fork/ForkParserTest.java  | 52 +++++++++++-----------
 .../apache/tika/fork/ForkParserTikaBinTest.java    | 13 ++----
 .../org/apache/tika/io/TikaInputStreamTest.java    |  7 ++-
 .../tika/pipes/async/AsyncProcessorTest.java       | 17 +++----
 .../apache/tika/eval/app/ComparerBatchTest.java    |  7 ++-
 .../apache/tika/eval/app/ProfilerBatchTest.java    |  2 +-
 .../org/apache/tika/eval/app/TikaEvalCLITest.java  | 22 ++++-----
 .../eval/app/tools/TopCommonTokenCounterTest.java  | 10 ++---
 .../tika/detect/TestContainerAwareDetector.java    |  3 ++
 .../tika/pipes/fetcher/s3/TestGCSFetcher.java      | 11 +++--
 .../pipesiterator/jdbc/TestJDBCPipesIterator.java  |  6 +--
 .../org/apache/tika/server/core/CXFTestBase.java   | 26 ++++++-----
 .../tika/server/core/IntegrationTestBase.java      | 16 +++----
 .../core/TikaServerAsyncIntegrationTest.java       |  9 ++--
 .../server/core/TikaServerIntegrationTest.java     | 16 +++----
 .../core/TikaServerPipesIntegrationTest.java       | 27 +++++------
 .../apache/tika/server/standard/TikaPipesTest.java | 22 +++++----
 19 files changed, 140 insertions(+), 180 deletions(-)

diff --git a/tika-batch/src/test/java/org/apache/tika/batch/fs/FSBatchTestBase.java b/tika-batch/src/test/java/org/apache/tika/batch/fs/FSBatchTestBase.java
index 24c7cadac..933f66da2 100644
--- a/tika-batch/src/test/java/org/apache/tika/batch/fs/FSBatchTestBase.java
+++ b/tika-batch/src/test/java/org/apache/tika/batch/fs/FSBatchTestBase.java
@@ -18,7 +18,6 @@
 package org.apache.tika.batch.fs;
 
 import java.io.BufferedReader;
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URISyntaxException;
@@ -37,10 +36,9 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.TikaTest;
 import org.apache.tika.batch.BatchProcess;
@@ -66,31 +64,14 @@ import org.apache.tika.utils.ProcessUtils;
  */
 public abstract class FSBatchTestBase extends TikaTest {
 
-    private static Path outputRoot = null;
+    @TempDir
+    private static Path OUTPUT_ROOT = null;
 
     @BeforeAll
     public static void setUp() throws Exception {
         Path testOutput = Paths.get("target/test-classes/test-output");
         Files.createDirectories(testOutput);
-        outputRoot = Files.createTempDirectory(testOutput, "tika-batch-output-root-");
-    }
-
-    @AfterAll
-    public static void tearDown() throws Exception {
-        //not ideal, but should be ok for testing
-        //see caveat in TikaCLITest's textExtract
-
-        File outputDir = outputRoot.toFile();
-        try {
-            FileUtils.deleteDirectory(outputDir);
-        } catch (IOException e1) {
-            // Delete on exit if delete fail
-            try {
-                FileUtils.forceDeleteOnExit(outputDir);
-            } catch (IOException e2) {
-                e2.printStackTrace();
-            }
-        }
+        OUTPUT_ROOT = Files.createTempDirectory(testOutput, "tika-batch-output-root-");
     }
 
     /**
@@ -153,7 +134,7 @@ public abstract class FSBatchTestBase extends TikaTest {
     }
 
     Path getNewOutputDir(String subdirPrefix) throws IOException {
-        Path outputDir = Files.createTempDirectory(outputRoot, subdirPrefix);
+        Path outputDir = Files.createTempDirectory(OUTPUT_ROOT, subdirPrefix);
         assert (countChildren(outputDir) == 0);
         return outputDir;
     }
diff --git a/tika-core/src/test/java/org/apache/tika/TestRereadableInputStream.java b/tika-core/src/test/java/org/apache/tika/TestRereadableInputStream.java
index 5d665de3f..05fdb53f4 100644
--- a/tika-core/src/test/java/org/apache/tika/TestRereadableInputStream.java
+++ b/tika-core/src/test/java/org/apache/tika/TestRereadableInputStream.java
@@ -20,13 +20,14 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
 
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.utils.RereadableInputStream;
 
@@ -47,6 +48,9 @@ public class TestRereadableInputStream {
     // This size of data exactly equals memory threshold
     private final int TEST_SIZE_MAX = MEMORY_THRESHOLD;
 
+    @TempDir
+    private Path tempDir;
+
     @Test
     public void testInMemory() throws IOException {
         readEntireStream((TEST_SIZE_MEMORY));
@@ -135,17 +139,16 @@ public class TestRereadableInputStream {
 
     private TestInputStream createTestInputStream(int testSize) throws IOException {
         return new TestInputStream(
-                new BufferedInputStream(new FileInputStream(createTestFile(testSize))));
+                new BufferedInputStream(Files.newInputStream(createTestFile(testSize))));
     }
 
-    private File createTestFile(int testSize) throws IOException {
-        File testfile = File.createTempFile("TIKA_ris_test", ".tmp");
-        testfile.deleteOnExit();
-        FileOutputStream fos = new FileOutputStream(testfile);
-        for (int i = 0; i < testSize; i++) {
-            fos.write(i);
+    private Path createTestFile(int testSize) throws IOException {
+        Path testfile = Files.createTempFile(tempDir, "TIKA_ris_test", ".tmp");
+        try (OutputStream fos = Files.newOutputStream(testfile)) {
+            for (int i = 0; i < testSize; i++) {
+                fos.write(i);
+            }
         }
-        fos.close();
         return testfile;
     }
 
diff --git a/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java b/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java
index 8db917a3e..0b83c99f7 100644
--- a/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java
+++ b/tika-core/src/test/java/org/apache/tika/fork/ForkParserTest.java
@@ -43,6 +43,7 @@ import java.util.concurrent.Semaphore;
 
 import org.apache.commons.io.IOUtils;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
@@ -64,6 +65,9 @@ import org.apache.tika.sax.RecursiveParserWrapperHandler;
 
 public class ForkParserTest extends TikaTest {
 
+    @TempDir
+    Path tempDir;
+
     @Test
     public void testHelloWorld() throws Exception {
         try (ForkParser parser = new ForkParser(ForkParserTest.class.getClassLoader(),
@@ -329,39 +333,33 @@ public class ForkParserTest extends TikaTest {
     public void testToFileHandler() throws Exception {
         //test that a server-side write-to-file works without proxying back the
         //AbstractContentHandlerFactory
-        Path target = Files.createTempFile("fork-to-file-handler-", ".txt");
-        try {
-            ForkParser forkParser = null;
-            try (InputStream is = getResourceAsStream("/test-documents/basic_embedded.xml")) {
-                RecursiveParserWrapper wrapper = new RecursiveParserWrapper(new AutoDetectParser());
-                ToFileHandler toFileHandler =
-                        new ToFileHandler(new SBContentHandlerFactory(), target.toFile());
-                forkParser = new ForkParser(ForkParserTest.class.getClassLoader(), wrapper);
+        Path target = Files.createTempFile(tempDir, "fork-to-file-handler-", ".txt");
+        try (InputStream is = getResourceAsStream("/test-documents/basic_embedded.xml")) {
+            RecursiveParserWrapper wrapper = new RecursiveParserWrapper(new AutoDetectParser());
+            ToFileHandler toFileHandler =
+                    new ToFileHandler(new SBContentHandlerFactory(), target.toFile());
+            try (ForkParser forkParser = new ForkParser(ForkParserTest.class.getClassLoader(),
+                    wrapper)) {
                 Metadata m = new Metadata();
                 ParseContext context = new ParseContext();
                 forkParser.parse(is, toFileHandler, m, context);
-            } finally {
-                if (forkParser != null) {
-                    forkParser.close();
-                }
             }
+        }
 
-            String contents = null;
-            try (Reader reader = Files.newBufferedReader(target, StandardCharsets.UTF_8)) {
-                contents = IOUtils.toString(reader);
-            }
-            assertContainsCount(TikaCoreProperties.TIKA_PARSED_BY.getName() +
-                    " : org.apache.tika.parser.DefaultParser", contents, 2);
-            assertContainsCount(TikaCoreProperties.TIKA_PARSED_BY.getName() +
-                    " : org.apache.tika.parser.mock.MockParser", contents, 2);
-            assertContains("Nikolai Lobachevsky", contents);
-            assertContains("embeddedAuthor", contents);
-            assertContains("main_content", contents);
-            assertContains("some_embedded_content", contents);
-            assertContains("X-TIKA:embedded_resource_path : /embed1.xml", contents);
-        } finally {
-            Files.delete(target);
+        String contents = null;
+        try (Reader reader = Files.newBufferedReader(target, StandardCharsets.UTF_8)) {
+            contents = IOUtils.toString(reader);
         }
+        assertContainsCount(TikaCoreProperties.TIKA_PARSED_BY.getName() +
+                " : org.apache.tika.parser.DefaultParser", contents, 2);
+        assertContainsCount(TikaCoreProperties.TIKA_PARSED_BY.getName() +
+                " : org.apache.tika.parser.mock.MockParser", contents, 2);
+        assertContains("Nikolai Lobachevsky", contents);
+        assertContains("embeddedAuthor", contents);
+        assertContains("main_content", contents);
+        assertContains("some_embedded_content", contents);
+        assertContains("X-TIKA:embedded_resource_path : /embed1.xml", contents);
+
     }
 
     @Test
diff --git a/tika-core/src/test/java/org/apache/tika/fork/ForkParserTikaBinTest.java b/tika-core/src/test/java/org/apache/tika/fork/ForkParserTikaBinTest.java
index 0300a7f35..e484e8f39 100644
--- a/tika-core/src/test/java/org/apache/tika/fork/ForkParserTikaBinTest.java
+++ b/tika-core/src/test/java/org/apache/tika/fork/ForkParserTikaBinTest.java
@@ -35,9 +35,9 @@ import java.util.jar.JarOutputStream;
 
 import com.google.common.reflect.ClassPath;
 import org.apache.commons.io.IOUtils;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
@@ -52,12 +52,13 @@ import org.apache.tika.sax.ToXMLContentHandler;
 public class ForkParserTikaBinTest extends TikaTest {
     private static final String JAR_FILE_NAME = "mock-tika-app.jar";
     private static final Map<String, String> EMPTY_MAP = Collections.emptyMap();
+
+    @TempDir
     private static Path JAR_DIR;
     private static Path JAR_FILE;
 
     @BeforeAll
     public static void bootstrapJar() throws Exception {
-        JAR_DIR = Files.createTempDirectory("tika-fork-tikabin-");
         JAR_FILE = JAR_DIR.resolve(JAR_FILE_NAME);
 
         try (JarOutputStream jarOs = new JarOutputStream(Files.newOutputStream(JAR_FILE))) {
@@ -104,14 +105,6 @@ public class ForkParserTikaBinTest extends TikaTest {
         }
     }
 
-
-    @AfterAll
-    public static void tearDown() throws Exception {
-        Files.delete(JAR_DIR.resolve("TIKA_2653-iou.xml"));
-        Files.delete(JAR_FILE);
-        Files.delete(JAR_DIR);
-    }
-
     private static void addClasses(JarOutputStream jarOs, ClassPath classPath,
                                    Predicate<ClassPath.ClassInfo> predicate) throws IOException {
         for (ClassPath.ClassInfo classInfo : classPath.getAllClasses()) {
diff --git a/tika-core/src/test/java/org/apache/tika/io/TikaInputStreamTest.java b/tika-core/src/test/java/org/apache/tika/io/TikaInputStreamTest.java
index c4b6041b8..1f8943e68 100644
--- a/tika-core/src/test/java/org/apache/tika/io/TikaInputStreamTest.java
+++ b/tika-core/src/test/java/org/apache/tika/io/TikaInputStreamTest.java
@@ -32,12 +32,16 @@ import java.nio.file.Paths;
 
 import org.apache.commons.io.IOUtils;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.TikaCoreProperties;
 
 public class TikaInputStreamTest {
 
+    @TempDir
+    Path tempDir;
+
     @Test
     public void testFileBased() throws IOException {
         Path path = createTempFile("Hello, World!");
@@ -59,7 +63,6 @@ public class TikaInputStreamTest {
                 "The close() method must not remove the file used to" +
                 " instantiate a TikaInputStream");
 
-        Files.delete(path);
     }
 
     @Test
@@ -103,7 +106,7 @@ public class TikaInputStreamTest {
     }
 
     private Path createTempFile(String data) throws IOException {
-        Path file = Files.createTempFile("tika-", ".tmp");
+        Path file = Files.createTempFile(tempDir, "tika-", ".tmp");
         Files.write(file, data.getBytes(UTF_8));
         return file;
     }
diff --git a/tika-core/src/test/java/org/apache/tika/pipes/async/AsyncProcessorTest.java b/tika-core/src/test/java/org/apache/tika/pipes/async/AsyncProcessorTest.java
index ccab5b0bf..b6caba76d 100644
--- a/tika-core/src/test/java/org/apache/tika/pipes/async/AsyncProcessorTest.java
+++ b/tika-core/src/test/java/org/apache/tika/pipes/async/AsyncProcessorTest.java
@@ -27,10 +27,9 @@ import java.util.HashSet;
 import java.util.Random;
 import java.util.Set;
 
-import org.apache.commons.io.FileUtils;
-import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.pipes.FetchEmitTuple;
@@ -60,8 +59,15 @@ public class AsyncProcessorTest {
             "<system_exit/>" + "</mock>";
 
     private final int totalFiles = 100;
+
     private Path tikaConfigPath;
+
+    @TempDir
     private Path inputDir;
+
+    @TempDir
+    private Path configDir;
+
     private int ok = 0;
     private int oom = 0;
     private int timeouts = 0;
@@ -71,7 +77,7 @@ public class AsyncProcessorTest {
     @BeforeEach
     public void setUp() throws SQLException, IOException {
         inputDir = Files.createTempDirectory("tika-async-");
-        tikaConfigPath = Files.createTempFile("tika-config-", ".xml");
+        tikaConfigPath = Files.createTempFile(configDir, "tika-config-", ".xml");
         String xml =
                 "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" + "<properties>" + "  <emitters>" +
                 "  <emitter class=\"org.apache.tika.pipes.async.MockEmitter\">\n" +
@@ -120,11 +126,6 @@ public class AsyncProcessorTest {
         }
     }
 */
-    @AfterEach
-    public void tearDown() throws SQLException, IOException {
-        Files.delete(tikaConfigPath);
-        FileUtils.deleteDirectory(inputDir.toFile());
-    }
 
     @Test
     public void testBasic() throws Exception {
diff --git a/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/ComparerBatchTest.java b/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/ComparerBatchTest.java
index 43827d294..8e0655b83 100644
--- a/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/ComparerBatchTest.java
+++ b/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/ComparerBatchTest.java
@@ -35,11 +35,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.io.FileUtils;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.batch.fs.FSBatchTestBase;
 import org.apache.tika.eval.app.db.Cols;
@@ -50,6 +50,8 @@ public class ComparerBatchTest extends FSBatchTestBase {
     public final static String COMPARER_PROCESS_CLASS =
             "org.apache.tika.batch.fs.FSBatchProcessCLI";
     private final static String compJoinCont = "";
+
+    @TempDir
     private static Path dbDir;
     private static Connection conn;
     /*ExtractComparer.COMPARISONS_TABLE+" cmp " +
@@ -80,10 +82,7 @@ public class ComparerBatchTest extends FSBatchTestBase {
 
     @AfterAll
     public static void tearDown() throws Exception {
-
         conn.close();
-
-        FileUtils.deleteDirectory(dbDir.toFile());
     }
 
 
diff --git a/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/ProfilerBatchTest.java b/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/ProfilerBatchTest.java
index dde4c45bc..9f8a20011 100644
--- a/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/ProfilerBatchTest.java
+++ b/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/ProfilerBatchTest.java
@@ -85,7 +85,7 @@ public class ProfilerBatchTest {
         } catch (SQLException e) {
             throw new RuntimeException(e);
         }
-
+        //TODO: if/when we turn this back on, use @TempDir instead of this
 
         DirectoryStream<Path> dStream = Files.newDirectoryStream(dbDir);
         for (Path p : dStream) {
diff --git a/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/TikaEvalCLITest.java b/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/TikaEvalCLITest.java
index ef4369dc6..0af1a2833 100644
--- a/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/TikaEvalCLITest.java
+++ b/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/TikaEvalCLITest.java
@@ -32,11 +32,10 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.io.FileUtils;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.TikaTest;
 import org.apache.tika.utils.ProcessUtils;
@@ -45,6 +44,9 @@ public class TikaEvalCLITest extends TikaTest {
     //TODO: these barely reach the minimal acceptable stage for unit tests
 
     private final static String dbName = "testdb";
+
+    @TempDir
+    private static Path TEMP_DIR;
     private static Path extractsDir = Paths.get("src/test/resources/test-dirs");
     private static Path compareDBDir;
     private static Path profileDBDir;
@@ -53,24 +55,16 @@ public class TikaEvalCLITest extends TikaTest {
 
     @BeforeAll
     public static void setUp() throws Exception {
-        compareDBDir = Files.createTempDirectory("tika-eval-cli-compare-db-");
-        profileDBDir = Files.createTempDirectory("tika-eval-cli-profile-db-");
-        compareReportsDir = Files.createTempDirectory("tika-eval-cli-compare-reports-");
-        profileReportsDir = Files.createTempDirectory("tika-eval-cli-profile-reports-");
+        compareDBDir = Files.createTempDirectory(TEMP_DIR, "tika-eval-cli-compare-db-");
+        profileDBDir = Files.createTempDirectory(TEMP_DIR, "tika-eval-cli-profile-db-");
+        compareReportsDir = Files.createTempDirectory(TEMP_DIR, "tika-eval-cli-compare-reports-");
+        profileReportsDir = Files.createTempDirectory(TEMP_DIR, "tika-eval-cli-profile-reports-");
         compare();
         profile();
         reportCompare();
         reportProfile();
     }
 
-    @AfterAll
-    public static void tearDown() throws Exception {
-        FileUtils.deleteDirectory(compareDBDir.toFile());
-        FileUtils.deleteDirectory(profileDBDir.toFile());
-        FileUtils.deleteDirectory(compareReportsDir.toFile());
-        FileUtils.deleteDirectory(profileReportsDir.toFile());
-    }
-
     private static void compare() throws IOException {
         List<String> args = new ArrayList<>();
         args.add("Compare");
diff --git a/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/tools/TopCommonTokenCounterTest.java b/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/tools/TopCommonTokenCounterTest.java
index e38faf590..f2ea6e57b 100644
--- a/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/tools/TopCommonTokenCounterTest.java
+++ b/tika-eval/tika-eval-app/src/test/java/org/apache/tika/eval/app/tools/TopCommonTokenCounterTest.java
@@ -26,9 +26,9 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.TikaTest;
 import org.apache.tika.utils.ProcessUtils;
@@ -36,8 +36,9 @@ import org.apache.tika.utils.ProcessUtils;
 public class TopCommonTokenCounterTest extends TikaTest {
     private final static String INPUT_FILE = "lang_file.txt";
     private final static String COMMON_TOKENS_FILE = "common_tokens";
+
+    @TempDir
     private static Path WORKING_DIR;
-//    private static Path LUCENE_DIR;
 
     @BeforeAll
     public static void setUp() throws Exception {
@@ -46,7 +47,6 @@ public class TopCommonTokenCounterTest extends TikaTest {
                         "\u666e\u6797\u65af\u987f\u5927\u5b66",
                         "\u666e\u6797\u65af\u987f\u5927\u5b66"};
 
-        WORKING_DIR = Files.createTempDirectory("tika-eval-common-tokens");
         try (BufferedWriter writer = Files
                 .newBufferedWriter(WORKING_DIR.resolve(INPUT_FILE), StandardCharsets.UTF_8)) {
             //do this 10 times to bump the numbers above the TopCommonTokenCounter's MIN_DOC_FREQ
@@ -64,10 +64,6 @@ public class TopCommonTokenCounterTest extends TikaTest {
                         WORKING_DIR.resolve(INPUT_FILE).toAbsolutePath().toString())});
     }
 
-    @AfterAll
-    public static void tearDown() throws Exception {
-        FileUtils.deleteDirectory(WORKING_DIR.toFile());
-    }
 
     @Test
     public void testSimple() throws Exception {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java
index fc8c14371..0f8026450 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/detect/TestContainerAwareDetector.java
@@ -382,6 +382,9 @@ public class TestContainerAwareDetector extends MultiThreadedTikaTest {
     }
 
     private int countTemporaryFiles() {
+        //TODO: fix this.  This can prevent multiple parallel builds
+        //from running at the same time because there can be more than one
+        //process writing to apache-tika-*
         return Objects.requireNonNull(new File(System.getProperty("java.io.tmpdir"))
                 .listFiles((dir, name) -> name.startsWith("apache-tika-"))).length;
     }
diff --git a/tika-pipes/tika-fetchers/tika-fetcher-gcs/src/test/java/org/apache/tika/pipes/fetcher/s3/TestGCSFetcher.java b/tika-pipes/tika-fetchers/tika-fetcher-gcs/src/test/java/org/apache/tika/pipes/fetcher/s3/TestGCSFetcher.java
index 35aabbee7..0d25cd1e5 100644
--- a/tika-pipes/tika-fetchers/tika-fetcher-gcs/src/test/java/org/apache/tika/pipes/fetcher/s3/TestGCSFetcher.java
+++ b/tika-pipes/tika-fetchers/tika-fetcher-gcs/src/test/java/org/apache/tika/pipes/fetcher/s3/TestGCSFetcher.java
@@ -24,10 +24,10 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
 
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.pipes.fetcher.Fetcher;
@@ -37,17 +37,16 @@ import org.apache.tika.pipes.fetcher.FetcherManager;
 public class TestGCSFetcher {
 
     private static final String FETCH_STRING = "testExtraSpaces.pdf";
+
+    @TempDir
+    private static Path TEMP_DIR;
     private static Path outputFile;
 
     @BeforeAll
     public static void setUp() throws Exception {
-        outputFile = Files.createTempFile("tika-test", ".pdf");
+        outputFile = Files.createTempFile(TEMP_DIR, "tika-test", ".pdf");
     }
 
-    @AfterAll
-    public static void tearDown() throws Exception {
-        Files.delete(outputFile);
-    }
 
     @Test
     public void testConfig() throws Exception {
diff --git a/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-jdbc/src/test/java/org/apache/tika/pipes/pipesiterator/jdbc/TestJDBCPipesIterator.java b/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-jdbc/src/test/java/org/apache/tika/pipes/pipesiterator/jdbc/TestJDBCPipesIterator.java
index 08bfbebdf..042c66160 100644
--- a/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-jdbc/src/test/java/org/apache/tika/pipes/pipesiterator/jdbc/TestJDBCPipesIterator.java
+++ b/tika-pipes/tika-pipes-iterators/tika-pipes-iterator-jdbc/src/test/java/org/apache/tika/pipes/pipesiterator/jdbc/TestJDBCPipesIterator.java
@@ -38,10 +38,10 @@ import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.io.FileUtils;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.pipes.FetchEmitTuple;
 import org.apache.tika.pipes.pipesiterator.PipesIterator;
@@ -52,11 +52,12 @@ public class TestJDBCPipesIterator {
     static final String db = "mydb";
     private static final int NUM_ROWS = 1000;
     static Connection CONNECTION;
+
+    @TempDir
     static Path DB_DIR;
 
     @BeforeAll
     public static void setUp() throws Exception {
-        DB_DIR = Files.createTempDirectory("tika-jdbc-pipesiterator-test-");
 
         CONNECTION =
                 DriverManager.getConnection("jdbc:h2:file:" +
@@ -82,7 +83,6 @@ public class TestJDBCPipesIterator {
     @AfterAll
     public static void tearDown() throws Exception {
         CONNECTION.close();
-        FileUtils.deleteDirectory(DB_DIR.toFile());
     }
 
     @Test
diff --git a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/CXFTestBase.java b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/CXFTestBase.java
index fbe8042f3..8d927cb7c 100644
--- a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/CXFTestBase.java
+++ b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/CXFTestBase.java
@@ -164,17 +164,23 @@ public abstract class CXFTestBase {
 
     protected Map<String, String> readZipArchive(InputStream inputStream) throws IOException {
         Map<String, String> data = new HashMap<>();
-        Path tempFile = writeTemporaryArchiveFile(inputStream, "zip");
-        ZipFile zip = new ZipFile(tempFile.toFile());
-        Enumeration<ZipArchiveEntry> entries = zip.getEntries();
-        while (entries.hasMoreElements()) {
-            ZipArchiveEntry entry = entries.nextElement();
-            ByteArrayOutputStream bos = new ByteArrayOutputStream();
-            IOUtils.copy(zip.getInputStream(entry), bos);
-            data.put(entry.getName(), DigestUtils.md5Hex(bos.toByteArray()));
+        Path tempFile = null;
+        try {
+            tempFile = writeTemporaryArchiveFile(inputStream, "zip");
+            ZipFile zip = new ZipFile(tempFile.toFile());
+            Enumeration<ZipArchiveEntry> entries = zip.getEntries();
+            while (entries.hasMoreElements()) {
+                ZipArchiveEntry entry = entries.nextElement();
+                ByteArrayOutputStream bos = new ByteArrayOutputStream();
+                IOUtils.copy(zip.getInputStream(entry), bos);
+                data.put(entry.getName(), DigestUtils.md5Hex(bos.toByteArray()));
+            }
+            zip.close();
+        } finally {
+            if (tempFile != null ) {
+                Files.delete(tempFile);
+            }
         }
-        zip.close();
-        Files.delete(tempFile);
         return data;
     }
 
diff --git a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/IntegrationTestBase.java b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/IntegrationTestBase.java
index 90adf0acc..86d964e30 100644
--- a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/IntegrationTestBase.java
+++ b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/IntegrationTestBase.java
@@ -29,13 +29,12 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import javax.ws.rs.core.Response;
 
-import org.apache.commons.io.FileUtils;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.jaxrs.client.WebClient;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.io.TempDir;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -59,6 +58,9 @@ public class IntegrationTestBase extends TikaTest {
     static final String INTEGRATION_TEST_PORT = "9999";
     protected static final String endPoint = "http://localhost:" + INTEGRATION_TEST_PORT;
     private static final Logger LOG = LoggerFactory.getLogger(IntegrationTestBase.class);
+
+    @TempDir
+    static Path TEMP_WORKING_DIR;
     static Path LOG_FILE;
     static Path STREAMS_DIR;
     private SecurityManager existingSecurityManager = null;
@@ -67,18 +69,14 @@ public class IntegrationTestBase extends TikaTest {
     @BeforeAll
     public static void staticSetup() throws Exception {
         LogUtils.setLoggerClass(NullWebClientLogger.class);
-        LOG_FILE = Files.createTempFile("tika-server-integration", ".xml");
+
+        LOG_FILE = Files.createTempFile(TEMP_WORKING_DIR, "tika-server-integration", ".xml");
         Files.copy(
                 TikaServerIntegrationTest.class.getResourceAsStream("/logging/log4j2_forked.xml"),
                 LOG_FILE, StandardCopyOption.REPLACE_EXISTING);
-        STREAMS_DIR = Files.createTempDirectory("tika-server-integration");
+        STREAMS_DIR = Files.createTempDirectory(TEMP_WORKING_DIR, "tika-server-integration");
     }
 
-    @AfterAll
-    public static void staticTearDown() throws Exception {
-        Files.delete(LOG_FILE);
-        FileUtils.deleteDirectory(STREAMS_DIR.toFile());
-    }
 
     @BeforeEach
     public void setUp() throws Exception {
diff --git a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerAsyncIntegrationTest.java b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerAsyncIntegrationTest.java
index 90523cd9e..eeaf09449 100644
--- a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerAsyncIntegrationTest.java
+++ b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerAsyncIntegrationTest.java
@@ -36,11 +36,11 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.io.FileUtils;
 import org.apache.cxf.jaxrs.client.WebClient;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,6 +61,8 @@ public class TikaServerAsyncIntegrationTest extends IntegrationTestBase {
     private static final String FETCHER_NAME = "fsf";
     private static FetchEmitTuple.ON_PARSE_EXCEPTION ON_PARSE_EXCEPTION =
             FetchEmitTuple.ON_PARSE_EXCEPTION.EMIT;
+
+    @TempDir
     private static Path TMP_DIR;
     private static Path TMP_OUTPUT_DIR;
     private static String TIKA_CONFIG_XML;
@@ -75,7 +77,6 @@ public class TikaServerAsyncIntegrationTest extends IntegrationTestBase {
 
     @BeforeAll
     public static void setUpBeforeClass() throws Exception {
-        TMP_DIR = Files.createTempDirectory("tika-emitter-test-");
         Path inputDir = TMP_DIR.resolve("input");
         TMP_OUTPUT_DIR = TMP_DIR.resolve("output");
         Files.createDirectories(inputDir);
@@ -125,10 +126,6 @@ public class TikaServerAsyncIntegrationTest extends IntegrationTestBase {
         FileUtils.write(TIKA_CONFIG.toFile(), TIKA_CONFIG_XML, UTF_8);
     }
 
-    @AfterAll
-    public static void tearDownAfterClass() throws Exception {
-        FileUtils.deleteDirectory(TMP_DIR.toFile());
-    }
 
     @BeforeEach
     public void setUpEachTest() throws Exception {
diff --git a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java
index bffbb0ed7..6eebd92cc 100644
--- a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java
+++ b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerIntegrationTest.java
@@ -47,11 +47,11 @@ import org.apache.cxf.configuration.security.KeyStoreType;
 import org.apache.cxf.configuration.security.TrustManagersType;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.cxf.transport.http.HTTPConduit;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.Timeout;
+import org.junit.jupiter.api.io.TempDir;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,6 +64,10 @@ public class TikaServerIntegrationTest extends IntegrationTestBase {
 
     private static final Logger LOG = LoggerFactory.getLogger(TikaServerIntegrationTest.class);
     private static Path TLS_KEYS;
+
+    @TempDir
+    private static Path TLS_CONFIG;
+
     private static Path TIKA_TLS_ONE_WAY_CONFIG;
     private static Path TIKA_TLS_TWO_WAY_CONFIG;
     @BeforeAll
@@ -76,7 +80,7 @@ public class TikaServerIntegrationTest extends IntegrationTestBase {
                 UTF_8);
         xml = xml.replace("{SSL_KEYS}", TLS_KEYS.toAbsolutePath().toString());
 
-        TIKA_TLS_TWO_WAY_CONFIG = Files.createTempFile("tika-config-tls-", ".xml");
+        TIKA_TLS_TWO_WAY_CONFIG = Files.createTempFile(TLS_CONFIG, "tika-config-tls-", ".xml");
         Files.write(TIKA_TLS_TWO_WAY_CONFIG, xml.getBytes(UTF_8));
 
         xml = IOUtils.resourceToString(
@@ -84,17 +88,11 @@ public class TikaServerIntegrationTest extends IntegrationTestBase {
                 UTF_8);
         xml = xml.replace("{SSL_KEYS}", TLS_KEYS.toAbsolutePath().toString());
 
-        TIKA_TLS_ONE_WAY_CONFIG = Files.createTempFile("tika-config-tls-", ".xml");
+        TIKA_TLS_ONE_WAY_CONFIG = Files.createTempFile(TLS_CONFIG, "tika-config-tls-", ".xml");
         Files.write(TIKA_TLS_ONE_WAY_CONFIG, xml.getBytes(UTF_8));
 
     }
 
-    @AfterAll
-    public static void cleanUpSSL() throws IOException {
-        Files.delete(TIKA_TLS_TWO_WAY_CONFIG);
-        Files.delete(TIKA_TLS_ONE_WAY_CONFIG);
-    }
-
     @Test
     public void testBasic() throws Exception {
 
diff --git a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerPipesIntegrationTest.java b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerPipesIntegrationTest.java
index 2b84825bc..c59eaea6d 100644
--- a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerPipesIntegrationTest.java
+++ b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/TikaServerPipesIntegrationTest.java
@@ -35,7 +35,6 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.io.FileUtils;
 import org.apache.cxf.jaxrs.client.WebClient;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
@@ -57,8 +56,8 @@ public class TikaServerPipesIntegrationTest extends IntegrationTestBase {
             LoggerFactory.getLogger(TikaServerPipesIntegrationTest.class);
     private static final String EMITTER_NAME = "fse";
     private static final String FETCHER_NAME = "fsf";
-    private static Path TMP_DIR;
-    private static Path TMP_OUTPUT_DIR;
+
+    private static Path TEMP_OUTPUT_DIR;
     private static Path TIKA_CONFIG;
     private static Path TIKA_CONFIG_TIMEOUT;
     private static String[] FILES =
@@ -67,19 +66,18 @@ public class TikaServerPipesIntegrationTest extends IntegrationTestBase {
 
     @BeforeAll
     public static void setUpBeforeClass() throws Exception {
-        TMP_DIR = Files.createTempDirectory("tika-emitter-test-");
-        Path inputDir = TMP_DIR.resolve("input");
-        TMP_OUTPUT_DIR = TMP_DIR.resolve("output");
+        Path inputDir = TEMP_WORKING_DIR.resolve("input");
+        TEMP_OUTPUT_DIR = TEMP_WORKING_DIR.resolve("output");
         Files.createDirectories(inputDir);
-        Files.createDirectories(TMP_OUTPUT_DIR);
+        Files.createDirectories(TEMP_OUTPUT_DIR);
 
         for (String mockFile : FILES) {
             Files.copy(
                     TikaPipesTest.class.getResourceAsStream("/test-documents/mock/" + mockFile),
                     inputDir.resolve(mockFile));
         }
-        TIKA_CONFIG = TMP_DIR.resolve("tika-config.xml");
-        TIKA_CONFIG_TIMEOUT = TMP_DIR.resolve("tika-config-timeout.xml");
+        TIKA_CONFIG = TEMP_WORKING_DIR.resolve("tika-config.xml");
+        TIKA_CONFIG_TIMEOUT = TEMP_WORKING_DIR.resolve("tika-config-timeout.xml");
         //TODO -- clean this up so that port is sufficient and we don't need portString
         String xml1 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<properties>" + "<fetchers>" +
                 "<fetcher class=\"org.apache.tika.pipes.fetcher.fs.FileSystemFetcher\">" + "<params>" +
@@ -88,7 +86,7 @@ public class TikaServerPipesIntegrationTest extends IntegrationTestBase {
                 "</basePath>" + "</params>" + "</fetcher>" + "</fetchers>" + "<emitters>" +
                 "<emitter class=\"org.apache.tika.pipes.emitter.fs.FileSystemEmitter\">" +
                 "<params>" + "<name>" + EMITTER_NAME + "</name>" +
-                "<basePath>" + TMP_OUTPUT_DIR.toAbsolutePath() +
+                "<basePath>" + TEMP_OUTPUT_DIR.toAbsolutePath() +
                 "</basePath>" + "</params>" + "</emitter>" + "</emitters>" + "<server><params>" +
                 "<enableUnsecureFeatures>true</enableUnsecureFeatures>" + "<port>9999</port>" +
                 "<endpoints>" + "<endpoint>pipes</endpoint>" + "<endpoint>status</endpoint>" +
@@ -111,11 +109,6 @@ public class TikaServerPipesIntegrationTest extends IntegrationTestBase {
 
     }
 
-    @AfterAll
-    public static void tearDownAfterClass() throws Exception {
-        FileUtils.deleteDirectory(TMP_DIR.toFile());
-    }
-
     @AfterEach
     public void tear() throws Exception {
         Thread.sleep(500);
@@ -125,7 +118,7 @@ public class TikaServerPipesIntegrationTest extends IntegrationTestBase {
     public void setUpEachTest() throws Exception {
 
         for (String problemFile : FILES) {
-            Path targ = TMP_OUTPUT_DIR.resolve(problemFile + ".json");
+            Path targ = TEMP_OUTPUT_DIR.resolve(problemFile + ".json");
 
             if (Files.exists(targ)) {
                 Files.delete(targ);
@@ -212,7 +205,7 @@ public class TikaServerPipesIntegrationTest extends IntegrationTestBase {
                 .accept("application/json")
                 .post(getJsonString(fileName, onParseException));
         if (response.getStatus() == 200) {
-            Path targFile = TMP_OUTPUT_DIR.resolve(fileName + ".json");
+            Path targFile = TEMP_OUTPUT_DIR.resolve(fileName + ".json");
             if (shouldFileExist) {
                 assertTrue(Files.size(targFile) > 1);
             } else {
diff --git a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/TikaPipesTest.java b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/TikaPipesTest.java
index 03eab2b35..e48455b43 100644
--- a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/TikaPipesTest.java
+++ b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/TikaPipesTest.java
@@ -32,15 +32,14 @@ import java.util.ArrayList;
 import java.util.List;
 import javax.ws.rs.core.Response;
 
-import org.apache.commons.io.FileUtils;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import org.apache.tika.exception.TikaConfigException;
 import org.apache.tika.metadata.Metadata;
@@ -68,8 +67,12 @@ import org.apache.tika.utils.ProcessUtils;
 public class TikaPipesTest extends CXFTestBase {
 
     private static final String PIPES_PATH = "/pipes";
-    private static Path TMP_DIR;
+
+    @TempDir
+    private static Path TMP_WORKING_DIR;
+
     private static Path TMP_OUTPUT_DIR;
+
     private static Path TMP_OUTPUT_FILE;
     private static Path TIKA_PIPES_LOG4j2_PATH;
     private static Path TIKA_CONFIG_PATH;
@@ -79,9 +82,8 @@ public class TikaPipesTest extends CXFTestBase {
 
     @BeforeAll
     public static void setUpBeforeClass() throws Exception {
-        TMP_DIR = Files.createTempDirectory("tika-pipes-test-");
-        Path inputDir = TMP_DIR.resolve("input");
-        TMP_OUTPUT_DIR = TMP_DIR.resolve("output");
+        Path inputDir = TMP_WORKING_DIR.resolve("input");
+        TMP_OUTPUT_DIR = TMP_WORKING_DIR.resolve("output");
         TMP_OUTPUT_FILE = TMP_OUTPUT_DIR.resolve(TEST_RECURSIVE_DOC + ".json");
 
         Files.createDirectories(inputDir);
@@ -90,8 +92,8 @@ public class TikaPipesTest extends CXFTestBase {
                 inputDir.resolve("test_recursive_embedded.docx"),
                 StandardCopyOption.REPLACE_EXISTING);
 
-        TIKA_CONFIG_PATH = Files.createTempFile(TMP_DIR, "tika-pipes-", ".xml");
-        TIKA_PIPES_LOG4j2_PATH = Files.createTempFile(TMP_DIR, "log4j2-", ".xml");
+        TIKA_CONFIG_PATH = Files.createTempFile(TMP_WORKING_DIR, "tika-pipes-", ".xml");
+        TIKA_PIPES_LOG4j2_PATH = Files.createTempFile(TMP_WORKING_DIR, "log4j2-", ".xml");
         Files.copy(TikaPipesTest.class.getResourceAsStream("/log4j2.xml"), TIKA_PIPES_LOG4j2_PATH,
                 StandardCopyOption.REPLACE_EXISTING);
 
@@ -119,10 +121,6 @@ public class TikaPipesTest extends CXFTestBase {
         Files.write(TIKA_CONFIG_PATH, TIKA_CONFIG_XML.getBytes(StandardCharsets.UTF_8));
     }
 
-    @AfterAll
-    public static void tearDownAfterClass() throws Exception {
-        FileUtils.deleteDirectory(TMP_DIR.toFile());
-    }
 
     @BeforeEach
     public void setUpEachTest() throws Exception {