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 {