You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/11/16 13:12:34 UTC

(camel) branch main updated (2f960676277 -> 20644e05dad)

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

orpiske pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from 2f960676277 Upgrade Commons-compress to version 1.25.0 (#12015)
     new 940ad8bb22e Making use of junit5 @TempDir in TestSupport to control lifecycle of a temporary directory needed for testing. Removed deleteDirectory methods and their usage. Adapted test classes where needed, to propagate temp directory path to a spring or camel context, so it can be used in a file endpoint.
     new a4148675e30  Fix TestSupport code that resolved fileUri and fix ResourceLoaderTest
     new 1307b92fe6c Fix TestSupport fileUri method to use provided directory as root
     new 335c3c9f965 Increasing timeouts in FileConsumerFailureHandledTest as the test seems flaky
     new 20644e05dad Revert timeout values in FileConsumerFailureHandledTest, revert deleted methods and mark them as deprecated

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../spring/SendMessageOnRouteStartAndStopTest.java | 15 ++++-
 .../org/apache/camel/spring/SpringTestSupport.java |  2 -
 .../camel/spring/StartAndStopEventNotifier.java    |  4 +-
 .../file/SpringFileConsumerPreMoveIssueTest.java   |  6 +-
 .../spring/file/SpringFileLanguageCBRTest.java     | 13 ++--
 .../camel/spring/file/SpringFileRouteTest.java     | 24 ++++++-
 .../file/SpringSimpleFileNameWithQuoteTest.java    | 26 +++++++-
 .../issues/FileWireTapWithXMLPayloadIssueTest.java | 12 ++--
 ...ngPropertyPlaceholderFileEndpointIssueTest.java | 15 +++--
 .../issues/SpringRenameFileOnCommitIssueTest.java  | 13 ++--
 ...uageWithSpringPropertyPlaceholderRouteTest.java | 24 ++++++-
 .../FileConsumerSpringSchedulerTest.java           | 13 ++--
 .../camel/spring/processor/SpringTestHelper.java   | 10 ++-
 .../FileConsumerIdempotentLoadStoreTest.java       |  1 -
 .../file/SpringFileConsumerPreMoveIssueTest.xml    |  2 +-
 .../spring/file/SpringFileConsumerPreMoveTest.xml  |  2 +-
 .../spring/file/SpringFileLanguageCBRTest.xml      |  2 +-
 .../spring/file/SpringFileRouteTest-context.xml    |  2 +-
 .../SpringSimpleFileNameWithQuoteTest-context.xml  |  2 +-
 .../issues/FileWireTapWithXMLPayloadIssueTest.xml  |  2 +-
 .../issues/SpringPropertyPlaceholderIssueTest.xml  |  2 +-
 .../issues/SpringRenameFileOnCommitIssueTest.xml   |  2 +-
 .../apache/camel/spring/issues/myprop.properties   |  2 +-
 .../spring/placeholder/bundle-context.properties   |  4 +-
 .../FileConsumerSpringSchedulerTest.xml            |  2 +-
 .../processor/ShutdownCompleteAllTasksTest.xml     |  2 +-
 .../ShutdownCompleteCurrentTaskOnlyTest.xml        |  2 +-
 ...etterChannelUseOriginalExchangeWithFileTest.xml |  2 +-
 .../FileConsumerIdempotentLoadStoreTest.xml        |  4 +-
 .../idempotent/fileConsumerIdempotentTest.xml      |  4 +-
 .../test/java/org/apache/camel/TestSupport.java    | 78 ++++++++++------------
 .../file/FileConsumeMaxMessagesPerPollTest.java    | 12 ++--
 .../file/FileConsumeMoveRelativeNameTest.java      |  6 +-
 .../file/FileConsumeMultipleDirectoriesTest.java   | 12 ++--
 .../FileConsumeNotEagerMaxMessagesPerPollTest.java | 14 ++--
 ...ileConsumeSimpleAbsoluteMoveToAbsoluteTest.java | 10 +--
 ...ileConsumeSimpleAbsoluteMoveToRelativeTest.java | 17 ++---
 ...ileConsumeSimpleRelativeMoveToRelativeTest.java |  4 +-
 ...erDirectoryMustExistBridgeErrorHandlerTest.java |  4 +-
 .../file/FileConsumerExtendedAttributesTest.java   | 22 +++---
 .../component/file/FileConsumerFileFilterTest.java |  5 +-
 .../file/FileConsumerFileNameFilterTest.java       |  4 +-
 .../component/file/FileConsumerFilterFileTest.java | 10 +--
 ...rPreMoveCopyAndDeleteOnRenameFailFalseTest.java |  1 +
 .../file/FileConsumerPreMoveIssueTest.java         | 13 ++--
 .../file/FileConsumerPreMoveNoopTest.java          |  8 +--
 .../component/file/FileConsumerPreMoveTest.java    | 10 ++-
 .../file/FileConsumerRelativeFileNameTest.java     |  8 +--
 .../file/FileConsumerSkipDotFilesTest.java         |  9 +--
 .../file/FileExclusiveReadLockCopyTest.java        |  6 +-
 ...lTest.java => FileExclusiveReadManualTest.java} |  7 +-
 .../file/FileExclusiveReadNoneStrategyTest.java    |  2 +-
 .../file/FileHeaderFileNameProducedTest.java       |  4 +-
 .../file/FileIdempotentReadSameFileAgainTest.java  |  6 +-
 .../file/FileProduceTempFileNameTest.java          | 18 ++---
 .../component/file/FileProduceTempPrefixTest.java  | 10 +--
 .../file/FileProducerCharsetUTFOptimizedTest.java  |  6 --
 .../file/FileProducerDirectoryChmodOptionTest.java | 13 ++--
 .../component/file/FileRecursiveNoopTest.java      |  2 -
 .../component/file/FileSplitXPathCharsetTest.java  | 11 ++-
 .../component/file/FilerProducerAbsoluteTest.java  |  3 +-
 .../FileLockClusteredRoutePolicyFactoryTest.java   |  8 ++-
 .../cluster/FileLockClusteredRoutePolicyTest.java  |  8 ++-
 ...ponentLoadPropertiesFromFileTrimValuesTest.java |  1 -
 .../seda/FileSedaShutdownCompleteAllTasksTest.java |  4 +-
 .../XsltIncludeClasspathDotInDirectoryTest.java    |  3 +-
 .../component/xslt/XsltOutputFileDeleteTest.java   |  2 -
 .../camel/component/xslt/XsltOutputFileTest.java   |  2 -
 .../converter/stream/CachedOutputStreamTest.java   |  2 +-
 .../apache/camel/impl/FileStateRepositoryTest.java |  8 ++-
 .../camel/processor/FileIdempotentClearTest.java   |  2 +-
 .../FileIdempotentConsumerLoadStoreTest.java       |  3 +-
 .../processor/FileIdempotentConsumerTest.java      |  2 +-
 .../camel/processor/FileIdempotentRemoveTest.java  |  3 +-
 .../processor/FileIdempotentTrunkStoreTest.java    |  3 +-
 .../camel/processor/RouteFormattedUriTest.java     |  2 +-
 .../processor/ShutdownCompleteAllTasksTest.java    |  7 +-
 .../ShutdownCompleteCurrentTaskOnlyTest.java       |  5 +-
 .../FileIdempotentStoreOrderingTest.java           |  6 +-
 .../org/apache/camel/util/ResourceLoaderTest.java  |  8 +--
 .../management/ManagedFileIdempotentClearTest.java |  2 +-
 .../ManagedFileIdempotentConsumerTest.java         |  2 +-
 .../management/ManagedRouteDumpStrategyTest.java   |  1 -
 83 files changed, 359 insertions(+), 276 deletions(-)
 rename core/camel-core/src/test/java/org/apache/camel/component/file/{FileExclusiveReadManuelTest.java => FileExclusiveReadManualTest.java} (90%)


(camel) 03/05: Fix TestSupport fileUri method to use provided directory as root

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1307b92fe6ca77108c64371625a640ba018bf359
Author: Anton Goncharov <go...@gmail.com>
AuthorDate: Tue Nov 7 22:16:37 2023 +0100

    Fix TestSupport fileUri method to use provided directory as root
---
 core/camel-core/src/test/java/org/apache/camel/TestSupport.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/camel-core/src/test/java/org/apache/camel/TestSupport.java b/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
index fc53971b7b3..29604c205f3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
+++ b/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
@@ -125,7 +125,7 @@ public abstract class TestSupport {
     }
 
     protected String fileUri(Path directory, String query) {
-        return "file:" + testDirectory().resolve(directory) + (query.startsWith("?") ? "" : "/") + query;
+        return "file:" + directory + (query.startsWith("?") ? "" : "/") + query;
     }
 
     protected boolean canRunOnThisPlatform() {


(camel) 04/05: Increasing timeouts in FileConsumerFailureHandledTest as the test seems flaky

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 335c3c9f96553114de957e727e6938fc107bbbd8
Author: Anton Goncharov <go...@gmail.com>
AuthorDate: Wed Nov 8 00:36:53 2023 +0100

    Increasing timeouts in FileConsumerFailureHandledTest as the test seems flaky
---
 .../apache/camel/component/file/FileConsumerFailureHandledTest.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFailureHandledTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFailureHandledTest.java
index d8d4cbd3778..70d79372256 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFailureHandledTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFailureHandledTest.java
@@ -57,7 +57,7 @@ public class FileConsumerFailureHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("London");
 
         template.sendBodyAndHeader(fileUri(), "London", Exchange.FILE_NAME, "london.txt");
-        mock.assertIsSatisfied(1000);
+        mock.assertIsSatisfied(3000);
 
         oneExchangeDone.matchesWaitTime();
 
@@ -72,7 +72,7 @@ public class FileConsumerFailureHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("Dublin");
 
         template.sendBodyAndHeader(fileUri(), "Dublin", Exchange.FILE_NAME, "dublin.txt");
-        mock.assertIsSatisfied(1000);
+        mock.assertIsSatisfied(3000);
 
         oneExchangeDone.matchesWaitTime();
 
@@ -87,7 +87,7 @@ public class FileConsumerFailureHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("Madrid");
 
         template.sendBodyAndHeader(fileUri(), "Madrid", Exchange.FILE_NAME, "madrid.txt");
-        mock.assertIsSatisfied(1000);
+        mock.assertIsSatisfied(3000);
 
         oneExchangeDone.matchesWaitTime();
 


(camel) 01/05: Making use of junit5 @TempDir in TestSupport to control lifecycle of a temporary directory needed for testing. Removed deleteDirectory methods and their usage. Adapted test classes where needed, to propagate temp directory path to a spring or camel context, so it can be used in a file endpoint.

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 940ad8bb22e0f36a59e678810eb9871f4410f991
Author: Anton Goncharov <go...@gmail.com>
AuthorDate: Tue Nov 7 18:25:26 2023 +0100

    Making use of junit5 @TempDir in TestSupport to control lifecycle of a temporary directory needed for testing. Removed deleteDirectory methods and their usage. Adapted test classes where needed, to propagate temp directory path to a spring or camel context, so it can be used in a file endpoint.
---
 .../spring/SendMessageOnRouteStartAndStopTest.java |  15 ++-
 .../org/apache/camel/spring/SpringTestSupport.java |   2 -
 .../camel/spring/StartAndStopEventNotifier.java    |   4 +-
 .../file/SpringFileConsumerPreMoveIssueTest.java   |   6 +-
 .../spring/file/SpringFileLanguageCBRTest.java     |  13 +--
 .../camel/spring/file/SpringFileRouteTest.java     |  24 ++++-
 .../file/SpringSimpleFileNameWithQuoteTest.java    |  24 ++++-
 .../issues/FileWireTapWithXMLPayloadIssueTest.java |  12 +--
 ...ngPropertyPlaceholderFileEndpointIssueTest.java |  15 +--
 .../issues/SpringRenameFileOnCommitIssueTest.java  |  13 +--
 ...uageWithSpringPropertyPlaceholderRouteTest.java |  24 ++++-
 .../FileConsumerSpringSchedulerTest.java           |  13 +--
 .../camel/spring/processor/SpringTestHelper.java   |  10 +-
 .../FileConsumerIdempotentLoadStoreTest.java       |   1 -
 .../file/SpringFileConsumerPreMoveIssueTest.xml    |   2 +-
 .../spring/file/SpringFileConsumerPreMoveTest.xml  |   2 +-
 .../spring/file/SpringFileLanguageCBRTest.xml      |   2 +-
 .../spring/file/SpringFileRouteTest-context.xml    |   2 +-
 .../SpringSimpleFileNameWithQuoteTest-context.xml  |   2 +-
 .../issues/FileWireTapWithXMLPayloadIssueTest.xml  |   2 +-
 .../issues/SpringPropertyPlaceholderIssueTest.xml  |   2 +-
 .../issues/SpringRenameFileOnCommitIssueTest.xml   |   2 +-
 .../apache/camel/spring/issues/myprop.properties   |   2 +-
 .../spring/placeholder/bundle-context.properties   |   4 +-
 .../FileConsumerSpringSchedulerTest.xml            |   2 +-
 .../processor/ShutdownCompleteAllTasksTest.xml     |   2 +-
 .../ShutdownCompleteCurrentTaskOnlyTest.xml        |   2 +-
 ...etterChannelUseOriginalExchangeWithFileTest.xml |   2 +-
 .../FileConsumerIdempotentLoadStoreTest.xml        |   4 +-
 .../idempotent/fileConsumerIdempotentTest.xml      |   4 +-
 .../test/java/org/apache/camel/TestSupport.java    | 102 +++++----------------
 .../file/FileConsumeMaxMessagesPerPollTest.java    |  12 +--
 .../file/FileConsumeMoveRelativeNameTest.java      |   6 +-
 .../file/FileConsumeMultipleDirectoriesTest.java   |  12 +--
 .../FileConsumeNotEagerMaxMessagesPerPollTest.java |  14 ++-
 ...ileConsumeSimpleAbsoluteMoveToAbsoluteTest.java |  10 +-
 ...ileConsumeSimpleAbsoluteMoveToRelativeTest.java |  17 ++--
 ...ileConsumeSimpleRelativeMoveToRelativeTest.java |   4 +-
 ...erDirectoryMustExistBridgeErrorHandlerTest.java |   4 +-
 .../file/FileConsumerExtendedAttributesTest.java   |  22 ++---
 .../component/file/FileConsumerFileFilterTest.java |   5 +-
 .../file/FileConsumerFileNameFilterTest.java       |   4 +-
 .../component/file/FileConsumerFilterFileTest.java |  10 +-
 ...rPreMoveCopyAndDeleteOnRenameFailFalseTest.java |   1 +
 .../file/FileConsumerPreMoveIssueTest.java         |  13 ++-
 .../file/FileConsumerPreMoveNoopTest.java          |   8 +-
 .../component/file/FileConsumerPreMoveTest.java    |  10 +-
 .../file/FileConsumerRelativeFileNameTest.java     |   8 +-
 .../file/FileConsumerSkipDotFilesTest.java         |   9 +-
 .../file/FileExclusiveReadLockCopyTest.java        |   6 +-
 ...lTest.java => FileExclusiveReadManualTest.java} |   7 +-
 .../file/FileExclusiveReadNoneStrategyTest.java    |   2 +-
 .../file/FileHeaderFileNameProducedTest.java       |   4 +-
 .../file/FileIdempotentReadSameFileAgainTest.java  |   6 +-
 .../file/FileProduceTempFileNameTest.java          |  18 ++--
 .../component/file/FileProduceTempPrefixTest.java  |  10 +-
 .../file/FileProducerCharsetUTFOptimizedTest.java  |   6 --
 .../file/FileProducerDirectoryChmodOptionTest.java |  13 ++-
 .../component/file/FileRecursiveNoopTest.java      |   2 -
 .../component/file/FileSplitXPathCharsetTest.java  |  11 ++-
 .../component/file/FilerProducerAbsoluteTest.java  |   3 +-
 .../FileLockClusteredRoutePolicyFactoryTest.java   |   8 +-
 .../cluster/FileLockClusteredRoutePolicyTest.java  |   8 +-
 ...ponentLoadPropertiesFromFileTrimValuesTest.java |   1 -
 .../seda/FileSedaShutdownCompleteAllTasksTest.java |   4 +-
 .../XsltIncludeClasspathDotInDirectoryTest.java    |   3 +-
 .../component/xslt/XsltOutputFileDeleteTest.java   |   2 -
 .../camel/component/xslt/XsltOutputFileTest.java   |   2 -
 .../converter/stream/CachedOutputStreamTest.java   |   2 +-
 .../apache/camel/impl/FileStateRepositoryTest.java |   8 +-
 .../camel/processor/FileIdempotentClearTest.java   |   2 +-
 .../FileIdempotentConsumerLoadStoreTest.java       |   3 +-
 .../processor/FileIdempotentConsumerTest.java      |   2 +-
 .../camel/processor/FileIdempotentRemoveTest.java  |   3 +-
 .../processor/FileIdempotentTrunkStoreTest.java    |   3 +-
 .../camel/processor/RouteFormattedUriTest.java     |   2 +-
 .../processor/ShutdownCompleteAllTasksTest.java    |   7 +-
 .../ShutdownCompleteCurrentTaskOnlyTest.java       |   5 +-
 .../FileIdempotentStoreOrderingTest.java           |   6 +-
 .../org/apache/camel/util/ResourceLoaderTest.java  |   2 +-
 .../management/ManagedFileIdempotentClearTest.java |   2 +-
 .../ManagedFileIdempotentConsumerTest.java         |   2 +-
 .../management/ManagedRouteDumpStrategyTest.java   |   1 -
 83 files changed, 339 insertions(+), 312 deletions(-)

diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/SendMessageOnRouteStartAndStopTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/SendMessageOnRouteStartAndStopTest.java
index 82066637f2f..c47a0df98ed 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/SendMessageOnRouteStartAndStopTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/SendMessageOnRouteStartAndStopTest.java
@@ -16,10 +16,13 @@
  */
 package org.apache.camel.spring;
 
+import java.nio.file.Path;
+
 import org.apache.camel.component.mock.MockEndpoint;
 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.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
@@ -28,6 +31,9 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
  */
 public class SendMessageOnRouteStartAndStopTest extends SpringTestSupport {
 
+    @TempDir
+    private static Path testDirectory;
+
     @Override
     protected AbstractXmlApplicationContext createApplicationContext() {
         return new ClassPathXmlApplicationContext("org/apache/camel/spring/SendMessageOnRouteStartAndStopTest.xml");
@@ -37,10 +43,9 @@ public class SendMessageOnRouteStartAndStopTest extends SpringTestSupport {
     @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
-
         // the event notifier should have send a message to the file endpoint
         // so the start file is created on startup
-        assertFileExists(testFile("start.txt"));
+        assertFileExists(testDirectory.resolve("start.txt"));
     }
 
     @Override
@@ -50,7 +55,7 @@ public class SendMessageOnRouteStartAndStopTest extends SpringTestSupport {
 
         // the event notifier should have send a message to the file endpoint
         // so the stop file is created on shutdown
-        assertFileExists(testFile("stop.txt"));
+        assertFileExists(testDirectory.resolve("stop.txt"));
     }
 
     @Test
@@ -64,4 +69,8 @@ public class SendMessageOnRouteStartAndStopTest extends SpringTestSupport {
         assertMockEndpointsSatisfied();
     }
 
+    public static Path getTestDirectory() {
+        return testDirectory;
+    }
+
 }
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/SpringTestSupport.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/SpringTestSupport.java
index b6a55c3e675..0f1617d2dc9 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/SpringTestSupport.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/SpringTestSupport.java
@@ -62,8 +62,6 @@ public abstract class SpringTestSupport extends ContextTestSupport {
     @BeforeEach
     @Override
     public void setUp() throws Exception {
-        deleteTestDirectory();
-
         DefaultCamelContext.setDisableJmx(!useJmx());
         Class<?>[] excluded = excludeRoutes();
         if (excluded != null && excluded.length > 0) {
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/StartAndStopEventNotifier.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/StartAndStopEventNotifier.java
index 172d871cc7c..590b7523a0e 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/StartAndStopEventNotifier.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/StartAndStopEventNotifier.java
@@ -21,7 +21,6 @@ import java.nio.file.Path;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.ProducerTemplate;
-import org.apache.camel.TestSupport;
 import org.apache.camel.spi.CamelEvent;
 import org.apache.camel.spi.CamelEvent.Type;
 import org.apache.camel.support.EventNotifierSupport;
@@ -53,7 +52,8 @@ public class StartAndStopEventNotifier extends EventNotifierSupport implements C
         // Note: there is also a CamelContextStartingEvent which is send first
         // and then Camel is starting. And when all that is done this event
         // (CamelContextStartedEvent) is send
-        Path directory = TestSupport.testDirectory(SendMessageOnRouteStartAndStopTest.class, false);
+        Path directory = SendMessageOnRouteStartAndStopTest.getTestDirectory();
+        //        Path directory = SpringTestSupport.testDirectory(SendMessageOnRouteStartAndStopTest.class, false);
         if (event.getType() == Type.CamelContextStarted) {
             LOG.info("Sending a message on startup...");
             template.sendBody("file:" + directory + "?fileName=start.txt", "Starting");
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.java
index 6d4c6607d47..3a567170e23 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.spring.file;
 
+import java.util.Map;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.file.FileConsumerPreMoveIssueTest;
 
@@ -25,7 +27,9 @@ public class SpringFileConsumerPreMoveIssueTest extends FileConsumerPreMoveIssue
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
-        return createSpringCamelContext(this, "org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.xml");
+
+        return createSpringCamelContext(this, "org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.xml",
+                Map.of("testDirectory", testDirectory()));
     }
 
     static class MyPreMoveCheckerProcessor extends FileConsumerPreMoveIssueTest.MyPreMoveCheckerProcessor {
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileLanguageCBRTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileLanguageCBRTest.java
index 31f12779df1..ccb1042aa90 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileLanguageCBRTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileLanguageCBRTest.java
@@ -16,17 +16,18 @@
  */
 package org.apache.camel.spring.file;
 
+import org.apache.camel.CamelContext;
+import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
-import org.apache.camel.spring.SpringTestSupport;
 import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class SpringFileLanguageCBRTest extends SpringTestSupport {
+import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+
+public class SpringFileLanguageCBRTest extends ContextTestSupport {
 
     @Override
-    protected AbstractXmlApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext("org/apache/camel/spring/file/SpringFileLanguageCBRTest.xml");
+    protected CamelContext createCamelContext() throws Exception {
+        return createSpringCamelContext(this, "org/apache/camel/spring/file/SpringFileLanguageCBRTest.xml");
     }
 
     @Test
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileRouteTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileRouteTest.java
index bed77dda3e8..003c17d26b9 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileRouteTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringFileRouteTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.spring.file;
 
+import java.nio.file.Path;
+
 import org.apache.camel.Endpoint;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
@@ -23,13 +25,17 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.file.FileEndpoint;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spring.SpringRunWithTestSupport;
+import org.apache.camel.spring.file.SpringFileRouteTest.TestDirectoryContextInitializer;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.test.context.ContextConfiguration;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-@ContextConfiguration
+@ContextConfiguration(initializers = TestDirectoryContextInitializer.class)
 public class SpringFileRouteTest extends SpringRunWithTestSupport {
     protected String expectedBody = "Hello World!";
     @Autowired
@@ -38,6 +44,8 @@ public class SpringFileRouteTest extends SpringRunWithTestSupport {
     protected Endpoint inputFile;
     @EndpointInject("mock:result")
     protected MockEndpoint result;
+    @TempDir
+    private static Path tempDir;
 
     @Test
     public void testMocksAreValid() throws Exception {
@@ -53,4 +61,18 @@ public class SpringFileRouteTest extends SpringRunWithTestSupport {
         result.assertIsSatisfied();
     }
 
+    @Override
+    public Path testDirectory() {
+        return tempDir;
+    }
+
+    static class TestDirectoryContextInitializer
+            implements
+            ApplicationContextInitializer<ConfigurableApplicationContext> {
+        @Override
+        public void initialize(ConfigurableApplicationContext context) {
+            context.getEnvironment().getSystemProperties().put("testDirectory", tempDir.toString());
+        }
+    }
+
 }
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java
index e7670f80483..9d7491ee4a1 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java
@@ -16,22 +16,30 @@
  */
 package org.apache.camel.spring.file;
 
+import java.nio.file.Path;
+
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spring.SpringRunWithTestSupport;
+import org.apache.camel.spring.file.SpringSimpleFileNameWithQuoteTest.TestDirectoryContextInitializer;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.test.context.ContextConfiguration;
 
-@ContextConfiguration
+@ContextConfiguration(initializers = TestDirectoryContextInitializer.class)
 public class SpringSimpleFileNameWithQuoteTest extends SpringRunWithTestSupport {
     protected String expectedBody = "Hello World!";
     @Autowired
     protected ProducerTemplate template;
     @EndpointInject("mock:result")
     protected MockEndpoint result;
+    @TempDir
+    private static Path tempDir;
 
     @Test
     public void testMocksAreValid() throws Exception {
@@ -43,4 +51,18 @@ public class SpringSimpleFileNameWithQuoteTest extends SpringRunWithTestSupport
         result.assertIsSatisfied();
     }
 
+    @Override
+    public Path testDirectory() {
+        return tempDir;
+    }
+
+    static class TestDirectoryContextInitializer
+            implements
+            ApplicationContextInitializer<ConfigurableApplicationContext> {
+        @Override
+        public void initialize(ConfigurableApplicationContext context) {
+            context.getEnvironment().getSystemProperties().put("testDirectory", tempDir.toString());
+        }
+    }
+
 }
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.java
index ff5cd78a687..0e69f585fa6 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.java
@@ -16,17 +16,17 @@
  */
 package org.apache.camel.spring.issues;
 
+import org.apache.camel.CamelContext;
+import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.spring.SpringTestSupport;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
+import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-public class FileWireTapWithXMLPayloadIssueTest extends SpringTestSupport {
+public class FileWireTapWithXMLPayloadIssueTest extends ContextTestSupport {
 
     @Override
     @BeforeEach
@@ -55,7 +55,7 @@ public class FileWireTapWithXMLPayloadIssueTest extends SpringTestSupport {
     }
 
     @Override
-    protected AbstractXmlApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext("org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.xml");
+    protected CamelContext createCamelContext() throws Exception {
+        return createSpringCamelContext(this, "org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.xml");
     }
 }
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/SpringPropertyPlaceholderFileEndpointIssueTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/SpringPropertyPlaceholderFileEndpointIssueTest.java
index 5c1d5b332f3..fe0a6e1cafb 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/SpringPropertyPlaceholderFileEndpointIssueTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/SpringPropertyPlaceholderFileEndpointIssueTest.java
@@ -16,24 +16,25 @@
  */
 package org.apache.camel.spring.issues;
 
+import org.apache.camel.CamelContext;
+import org.apache.camel.ContextTestSupport;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.spring.SpringTestSupport;
 import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class SpringPropertyPlaceholderFileEndpointIssueTest extends SpringTestSupport {
+import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+
+public class SpringPropertyPlaceholderFileEndpointIssueTest extends ContextTestSupport {
 
     @Override
-    protected AbstractXmlApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext("org/apache/camel/spring/issues/SpringPropertyPlaceholderIssueTest.xml");
+    protected CamelContext createCamelContext() throws Exception {
+        return createSpringCamelContext(this, "org/apache/camel/spring/issues/SpringPropertyPlaceholderIssueTest.xml");
     }
 
     @Test
     public void testSpring() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
-        mock.expectedFileExists(testFile("foo.txt"));
+        mock.expectedFileExists(testFile("target/foo.txt"));
 
         template.sendBodyAndHeader("direct:start", "Hello World", "foo", "foo.txt");
 
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.java
index 18d48ad4608..83618bede27 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.java
@@ -16,14 +16,15 @@
  */
 package org.apache.camel.spring.issues;
 
+import org.apache.camel.CamelContext;
+import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.spring.SpringTestSupport;
 import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class SpringRenameFileOnCommitIssueTest extends SpringTestSupport {
+import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+
+public class SpringRenameFileOnCommitIssueTest extends ContextTestSupport {
 
     @Test
     public void testFileRenameFileOnCommitIssue() throws Exception {
@@ -40,8 +41,8 @@ public class SpringRenameFileOnCommitIssueTest extends SpringTestSupport {
     }
 
     @Override
-    protected AbstractXmlApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext("org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.xml");
+    protected CamelContext createCamelContext() throws Exception {
+        return createSpringCamelContext(this, "org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.xml");
     }
 
 }
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/placeholder/SimpleLanguageWithSpringPropertyPlaceholderRouteTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/placeholder/SimpleLanguageWithSpringPropertyPlaceholderRouteTest.java
index acb5fd8078d..62b814e2160 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/placeholder/SimpleLanguageWithSpringPropertyPlaceholderRouteTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/placeholder/SimpleLanguageWithSpringPropertyPlaceholderRouteTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.spring.placeholder;
 
+import java.nio.file.Path;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
@@ -23,19 +24,26 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.spring.SpringRunWithTestSupport;
+import org.apache.camel.spring.placeholder.SimpleLanguageWithSpringPropertyPlaceholderRouteTest.TestDirectoryContextInitializer;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+import org.springframework.context.ApplicationContextInitializer;
+import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.ContextConfiguration;
 
 import static org.awaitility.Awaitility.await;
 
-@ContextConfiguration
+@ContextConfiguration(initializers = TestDirectoryContextInitializer.class)
 public class SimpleLanguageWithSpringPropertyPlaceholderRouteTest extends SpringRunWithTestSupport {
 
     @Produce("direct:startSimple")
     protected ProducerTemplate template;
 
+    @TempDir
+    private static Path tempDir;
+
     @Test
     @DirtiesContext
     public void replaceSimpleExpression() throws Exception {
@@ -60,4 +68,18 @@ public class SimpleLanguageWithSpringPropertyPlaceholderRouteTest extends Spring
         return "test-" + s + ".txt";
     }
 
+    @Override
+    public Path testDirectory() {
+        return tempDir;
+    }
+
+    static class TestDirectoryContextInitializer
+            implements
+            ApplicationContextInitializer<ConfigurableApplicationContext> {
+        @Override
+        public void initialize(ConfigurableApplicationContext context) {
+            context.getEnvironment().getSystemProperties().put("testDirectory", tempDir.toString());
+        }
+    }
+
 }
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.java
index def3d4218c2..1e69d70d9e8 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.java
@@ -16,17 +16,18 @@
  */
 package org.apache.camel.spring.pollingconsumer;
 
+import org.apache.camel.CamelContext;
+import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
-import org.apache.camel.spring.SpringTestSupport;
 import org.junit.jupiter.api.Test;
-import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class FileConsumerSpringSchedulerTest extends SpringTestSupport {
+import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+
+public class FileConsumerSpringSchedulerTest extends ContextTestSupport {
 
     @Override
-    protected AbstractXmlApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext(
+    protected CamelContext createCamelContext() throws Exception {
+        return createSpringCamelContext(this,
                 "org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.xml");
     }
 
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTestHelper.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTestHelper.java
index 5c2615c75b0..a57b10e124a 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTestHelper.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTestHelper.java
@@ -29,6 +29,8 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public final class SpringTestHelper {
 
+    public static final String PROPERTY_TEST_DIR = "testDirectory";
+
     private SpringTestHelper() {
     }
 
@@ -44,7 +46,10 @@ public final class SpringTestHelper {
         final AbstractXmlApplicationContext applicationContext;
         try {
             DefaultCamelContext.setNoStart(true);
-            applicationContext = new ClassPathXmlApplicationContext(classpathUri);
+            applicationContext = new ClassPathXmlApplicationContext(new String[] { classpathUri }, false);
+            applicationContext.getEnvironment().getSystemProperties().put(
+                PROPERTY_TEST_DIR, test.testDirectory().toString());
+            applicationContext.refresh();
         } finally {
             DefaultCamelContext.setNoStart(isNoStart);
         }
@@ -57,11 +62,12 @@ public final class SpringTestHelper {
                 applicationContext.stop();
             }
         });
-
         SpringCamelContext context = SpringCamelContext.springCamelContext(applicationContext, false);
         for (Map.Entry<String, Object> entry : beans.entrySet()) {
             context.getCamelContextExtension().getRegistry().bind(entry.getKey(), entry.getValue());
         }
+        context.getCamelContextExtension().getRegistry().bind(PROPERTY_TEST_DIR, test.testDirectory());
+        context.getPropertiesComponent().addInitialProperty(PROPERTY_TEST_DIR, test.testDirectory().toString());
         if (!isNoStart) {
             context.start();
         }
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/idempotent/FileConsumerIdempotentLoadStoreTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/idempotent/FileConsumerIdempotentLoadStoreTest.java
index f7b24c38491..51a1ec4080e 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/idempotent/FileConsumerIdempotentLoadStoreTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/idempotent/FileConsumerIdempotentLoadStoreTest.java
@@ -47,7 +47,6 @@ public class FileConsumerIdempotentLoadStoreTest extends ContextTestSupport {
     @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
-
         Path file = testFile(".filestore.dat");
         try (Writer w = Files.newBufferedWriter(file)) {
             w.write(testFile("report.txt").toAbsolutePath().toString() + LS);
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.xml
index 1ac2f0e1152..19ad95c3d3e 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileConsumerPreMoveIssueTest.xml
@@ -27,7 +27,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
         <route>
-            <from uri="file://target/data/SpringFileConsumerPreMoveIssueTest?initialDelay=0&amp;delay=10&amp;preMove=before/${file:name.noext}-moved.${file:ext}"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;preMove=before/${file:name.noext}-moved.${file:ext}"/>
             <process ref="checker"/>
             <to uri="mock:result"/>
         </route>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.xml
index 25efa10b2bd..1789e01d98e 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileConsumerPreMoveTest.xml
@@ -27,7 +27,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
         <route>
-            <from uri="file://target/data/SpringFileConsumerPreMoveTest?initialDelay=0&amp;delay=10&amp;preMove=work/work-${file:name}"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;preMove=work/work-${file:name}"/>
             <process ref="checker"/>
             <to uri="mock:result"/>
         </route>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileLanguageCBRTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileLanguageCBRTest.xml
index 5829f0fbca0..0dba3adc38c 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileLanguageCBRTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileLanguageCBRTest.xml
@@ -28,7 +28,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
         <route>
-            <from uri="file://target/data/SpringFileLanguageCBRTest?initialDelay=0&amp;delay=10&amp;delete=true"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;delete=true"/>
             <choice>
                 <when>
                     <simple>${file:ext} == 'txt'</simple>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileRouteTest-context.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileRouteTest-context.xml
index 8fbc6a45bea..3a494b7112a 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileRouteTest-context.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringFileRouteTest-context.xml
@@ -36,7 +36,7 @@
     </camelContext>
 
     <bean id="inputFile" class="org.apache.camel.component.file.FileEndpoint">
-        <property name="file" value="target/data/SpringFileRouteTest"/>
+        <property name="file" value="#{systemProperties['testDirectory']}"/>
     </bean>
     <!-- END SNIPPET: example -->
 
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest-context.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest-context.xml
index 7395df31595..db723ee7b91 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest-context.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest-context.xml
@@ -27,7 +27,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
         <route>
-            <from uri="file://target/data/SpringSimpleFileNameWithQuoteTest?initialDelay=0&amp;delay=10"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10"/>
             <setHeader name="foo">
                 <simple>"${file:name}" abc</simple>
             </setHeader>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.xml
index 54d80f19421..12539dcb971 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/FileWireTapWithXMLPayloadIssueTest.xml
@@ -27,7 +27,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
         <route>
-            <from uri="file://target/data/FileWireTapWithXMLPayloadIssueTest?initialDelay=0&amp;delay=10"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10"/>
             <convertBodyTo type="java.lang.String"/>
             <wireTap uri="mock:wiretap"/>
             <to uri="mock:result"/>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/SpringPropertyPlaceholderIssueTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/SpringPropertyPlaceholderIssueTest.xml
index 62fd3be8584..13a0c3084e3 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/SpringPropertyPlaceholderIssueTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/SpringPropertyPlaceholderIssueTest.xml
@@ -35,7 +35,7 @@
         <!-- use $simple{ start token in the fileName parameter
              to avoid clash with spring property placeholder. However we can still use
              spring property placeholders for the output folder -->
-        <endpoint id="myFile" uri="file://${outputFolder}?fileName=$simple{header.foo}"/>
+        <endpoint id="myFile" uri="file:{{testDirectory}}/${outputFolder}?fileName=$simple{header.foo}"/>
 
         <route>
             <from uri="direct:start"/>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.xml
index b21c213e78f..3519157cbdb 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/SpringRenameFileOnCommitIssueTest.xml
@@ -27,7 +27,7 @@
 
     <camelContext trace="true" xmlns="http://camel.apache.org/schema/spring">
         <route>
-            <from uri="file://target/data/SpringRenameFileOnCommitIssueTest?initialDelay=0&amp;delay=10&amp;noop=false"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;noop=false"/>
             <setProperty name="PartitionID">
                 <xpath>//persons/person[1]/@name</xpath>
             </setProperty>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/myprop.properties b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/myprop.properties
index f00b49c4278..c2f066a8f4e 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/myprop.properties
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/issues/myprop.properties
@@ -17,6 +17,6 @@
 
 inputQueue=direct:start
 
-outputFolder=target/data/SpringPropertyPlaceholderFileEndpointIssueTest
+outputFolder=target
 
 myCharset=utf-8
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/placeholder/bundle-context.properties b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/placeholder/bundle-context.properties
index 2e0b1405f5f..64a91f5b494 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/placeholder/bundle-context.properties
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/placeholder/bundle-context.properties
@@ -16,7 +16,7 @@
 ## ---------------------------------------------------------------------------
 
 fromEndpoint=direct:start
-toEndpoint=file://target/data/SimpleLanguageWithSpringPropertyPlaceholderRouteTest/outBox?fileName=test-${date:now:yyyyMMdd}.txt
+toEndpoint=file:{{testDirectory}}/outBox?fileName=test-${date:now:yyyyMMdd}.txt
 
 fromEndpointSimple=direct:startSimple
-toEndpointSimple=file://target/data/SimpleLanguageWithSpringPropertyPlaceholderRouteTest/outBoxSimple?fileName=test-$simple{date:now:yyyyMMdd}.txt
+toEndpointSimple=file:{{testDirectory}}/outBoxSimple?fileName=test-$simple{date:now:yyyyMMdd}.txt
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.xml
index 40259e361a5..edbff3679c1 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/pollingconsumer/FileConsumerSpringSchedulerTest.xml
@@ -29,7 +29,7 @@
   <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
     <route id="foo" autoStartup="false">
-      <from uri="file:target/data/FileConsumerSpringSchedulerTest?scheduler=spring&amp;scheduler.cron=0/2+*+*+*+*+?"/>
+      <from uri="file:{{testDirectory}}?scheduler=spring&amp;scheduler.cron=0/2+*+*+*+*+?"/>
       <to uri="log:result"/>
       <to uri="mock:result"/>
     </route>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/ShutdownCompleteAllTasksTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/ShutdownCompleteAllTasksTest.xml
index 8d824afd0b4..b28da3b744e 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/ShutdownCompleteAllTasksTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/ShutdownCompleteAllTasksTest.xml
@@ -34,7 +34,7 @@
     <jmxAgent id="jmx" disabled="true"/>
         <!-- let this route complete all its pending messages when asked to shutdown -->
         <route id="foo" autoStartup="false" shutdownRunningTask="CompleteAllTasks">
-            <from uri="file:target/data/SpringShutdownCompleteAllTasksTest?initialDelay=0&amp;delay=10&amp;synchronous=true"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;synchronous=true"/>
             <delay><constant>1000</constant></delay>
             <process ref="myProcessor"/>
             <to uri="mock:bar"/>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/ShutdownCompleteCurrentTaskOnlyTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/ShutdownCompleteCurrentTaskOnlyTest.xml
index 118e35b3699..3300ce1cd20 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/ShutdownCompleteCurrentTaskOnlyTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/ShutdownCompleteCurrentTaskOnlyTest.xml
@@ -32,7 +32,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
         <route startupOrder="1" shutdownRunningTask="CompleteCurrentTaskOnly">
-            <from uri="file:target/data/SpringShutdownCompleteCurrentTaskOnlyTest?initialDelay=0&amp;delay=10&amp;synchronous=true"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;synchronous=true"/>
             <delay><constant>1000</constant></delay>
             <to uri="seda:foo"/>
         </route>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/SpringDeadLetterChannelUseOriginalExchangeWithFileTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/SpringDeadLetterChannelUseOriginalExchangeWithFileTest.xml
index b1ff909e160..281124792ba 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/SpringDeadLetterChannelUseOriginalExchangeWithFileTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/SpringDeadLetterChannelUseOriginalExchangeWithFileTest.xml
@@ -57,7 +57,7 @@
 
     <camelContext xmlns="http://camel.apache.org/schema/spring" errorHandlerRef="dead">
         <route>
-            <from uri="file://target/data/SpringDeadLetterChannelUseOriginalBodyWithFileTest?initialDelay=0&amp;delay=10&amp;noop=true"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;noop=true"/>
             <transform><simple>${in.body} World</simple></transform>
             <process ref="myThrowProcessor"/>
         </route>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/idempotent/FileConsumerIdempotentLoadStoreTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/idempotent/FileConsumerIdempotentLoadStoreTest.xml
index 5b02d61266d..b857746d515 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/idempotent/FileConsumerIdempotentLoadStoreTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/idempotent/FileConsumerIdempotentLoadStoreTest.xml
@@ -28,7 +28,7 @@
     <!-- this is our file based idempotent store configured to use the .filestore.dat as file -->
     <bean id="fileStore" class="org.apache.camel.support.processor.idempotent.FileIdempotentRepository">
         <!-- the filename for the store -->
-        <property name="fileStore" value="target/data/FileConsumerIdempotentLoadStoreTest/.filestore.dat"/>
+        <property name="fileStore" value="#{systemProperties['testDirectory']}/.filestore.dat"/>
         <!-- the max filesize in bytes for the file. Camel will trunk and flush the cache
              if the file gets bigger -->
         <property name="maxFileStoreSize" value="512000"/>
@@ -39,7 +39,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
         <route>
-            <from uri="file://target/data/FileConsumerIdempotentLoadStoreTest/?initialDelay=0&amp;delay=10&amp;idempotent=true&amp;idempotentRepository=#fileStore&amp;move=done/${file:name}"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;idempotent=true&amp;idempotentRepository=#fileStore&amp;move=done/${file:name}"/>
             <to uri="mock:result"/>
         </route>
     </camelContext>
diff --git a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/idempotent/fileConsumerIdempotentTest.xml b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/idempotent/fileConsumerIdempotentTest.xml
index d852cb9f94b..b857746d515 100644
--- a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/idempotent/fileConsumerIdempotentTest.xml
+++ b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/idempotent/fileConsumerIdempotentTest.xml
@@ -28,7 +28,7 @@
     <!-- this is our file based idempotent store configured to use the .filestore.dat as file -->
     <bean id="fileStore" class="org.apache.camel.support.processor.idempotent.FileIdempotentRepository">
         <!-- the filename for the store -->
-        <property name="fileStore" value="target/data/FileConsumerIdempotentTest/.filestore.dat"/>
+        <property name="fileStore" value="#{systemProperties['testDirectory']}/.filestore.dat"/>
         <!-- the max filesize in bytes for the file. Camel will trunk and flush the cache
              if the file gets bigger -->
         <property name="maxFileStoreSize" value="512000"/>
@@ -39,7 +39,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring">
     <jmxAgent id="jmx" disabled="true"/>
         <route>
-            <from uri="file://target/data/FileConsumerIdempotentTest/?initialDelay=0&amp;delay=10&amp;idempotent=true&amp;idempotentRepository=#fileStore&amp;move=done/${file:name}"/>
+            <from uri="file:{{testDirectory}}?initialDelay=0&amp;delay=10&amp;idempotent=true&amp;idempotentRepository=#fileStore&amp;move=done/${file:name}"/>
             <to uri="mock:result"/>
         </route>
     </camelContext>
diff --git a/core/camel-core/src/test/java/org/apache/camel/TestSupport.java b/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
index 69096982481..29604c205f3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
+++ b/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.lang.reflect.Method;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.Collection;
 import java.util.List;
 import java.util.Locale;
@@ -40,6 +39,7 @@ import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assumptions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.TestInfo;
+import org.junit.jupiter.api.io.TempDir;
 import org.junit.jupiter.api.parallel.ResourceAccessMode;
 import org.junit.jupiter.api.parallel.ResourceLock;
 import org.junit.jupiter.api.parallel.Resources;
@@ -61,10 +61,12 @@ public abstract class TestSupport {
     private static final Logger LOG = LoggerFactory.getLogger(TestSupport.class);
 
     protected TestInfo info;
-    protected boolean testDirectoryCleaned;
 
     protected Logger log = LoggerFactory.getLogger(getClass());
 
+    @TempDir
+    private Path tempDirectory;
+
     @Override
     public String toString() {
         return getName() + "(" + getClass().getName() + ")";
@@ -82,73 +84,48 @@ public abstract class TestSupport {
     @BeforeEach
     public void setUp() throws Exception {
         Assumptions.assumeTrue(canRunOnThisPlatform());
-        deleteTestDirectory();
-    }
-
-    public void deleteTestDirectory() {
-        if (!testDirectoryCleaned) {
-            deleteDirectory(testDirectory().toFile());
-            testDirectoryCleaned = true;
-        }
     }
 
     @AfterEach
     public void tearDown() throws Exception {
         // make sure we cleanup the platform mbean server
         TestSupportJmxCleanup.removeMBeans(null);
-        testDirectoryCleaned = false;
-    }
-
-    protected Path testDirectory() {
-        return testDirectory(false);
-    }
-
-    protected Path testDirectory(boolean create) {
-        Class<?> testClass = getClass();
-        if (create) {
-            deleteTestDirectory();
-        }
-        return testDirectory(testClass, create);
     }
 
-    public static Path testDirectory(Class<?> testClass, boolean create) {
-        Path dir = Paths.get("target", "data", testClass.getSimpleName());
-        if (create) {
-            try {
-                Files.createDirectories(dir);
-            } catch (IOException e) {
-                throw new IllegalStateException("Unable to create test directory: " + dir, e);
-            }
-        }
-        return dir;
+    public Path testDirectory() {
+        return tempDirectory;
     }
 
-    protected Path testFile(String dir) {
-        return testDirectory().resolve(dir);
+    protected Path testFile(String file) {
+        return testDirectory().resolve(file);
     }
 
-    protected Path testDirectory(String dir) {
-        return testDirectory(dir, false);
+    protected Path testDirectory(String path) {
+        return testDirectory(path, false);
     }
 
-    protected Path testDirectory(String dir, boolean create) {
-        Path f = testDirectory().resolve(dir);
+    protected Path testDirectory(String path, boolean create) {
+        Path resolvedPath = testDirectory().resolve(path);
         if (create) {
             try {
-                Files.createDirectories(f);
+                Files.createDirectories(resolvedPath);
             } catch (IOException e) {
-                throw new IllegalStateException("Unable to create test directory: " + dir, e);
+                throw new IllegalStateException("Unable to create test directory: " + resolvedPath, e);
             }
         }
-        return f;
+        return resolvedPath;
     }
 
     protected String fileUri() {
-        return "file:" + testDirectory();
+        return "file:" + tempDirectory;
     }
 
     protected String fileUri(String query) {
-        return "file:" + testDirectory() + (query.startsWith("?") ? "" : "/") + query;
+        return fileUri(tempDirectory, query);
+    }
+
+    protected String fileUri(Path directory, String query) {
+        return "file:" + directory + (query.startsWith("?") ? "" : "/") + query;
     }
 
     protected boolean canRunOnThisPlatform() {
@@ -445,43 +422,6 @@ public abstract class TestSupport {
         }
     }
 
-    /**
-     * Recursively delete a directory, useful to zapping test data
-     *
-     * @param file the directory to be deleted
-     */
-    public static void deleteDirectory(String file) {
-        deleteDirectory(new File(file));
-    }
-
-    /**
-     * Recursively delete a directory, useful to zapping test data
-     *
-     * @param file the directory to be deleted
-     */
-    public static void deleteDirectory(File file) {
-        if (file.isDirectory()) {
-            File[] files = file.listFiles();
-            if (files != null) {
-                for (File child : files) {
-                    deleteDirectory(child);
-                }
-            }
-        }
-
-        file.delete();
-    }
-
-    /**
-     * create the directory
-     *
-     * @param file the directory to be created
-     */
-    public static void createDirectory(String file) {
-        File dir = new File(file);
-        dir.mkdirs();
-    }
-
     /**
      * To be used for folder/directory comparison that works across different platforms such as Window, Mac and Linux.
      */
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMaxMessagesPerPollTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMaxMessagesPerPollTest.java
index c36087d7d73..d9223fe0a92 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMaxMessagesPerPollTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMaxMessagesPerPollTest.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.Test;
  */
 public class FileConsumeMaxMessagesPerPollTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri("?initialDelay=0&delay=10&maxMessagesPerPoll=2");
+    public static final String FILE_QUERY = "?initialDelay=0&delay=10&maxMessagesPerPoll=2";
 
     @Test
     public void testMaxMessagesPerPoll() throws Exception {
@@ -36,10 +36,10 @@ public class FileConsumeMaxMessagesPerPollTest extends ContextTestSupport {
         mock.expectedMinimumMessageCount(2);
         mock.message(0).exchangeProperty(Exchange.BATCH_SIZE).isEqualTo(2);
         mock.message(1).exchangeProperty(Exchange.BATCH_SIZE).isEqualTo(2);
-
-        template.sendBodyAndHeader(fileUrl, "Bye World", Exchange.FILE_NAME, "bye.txt");
-        template.sendBodyAndHeader(fileUrl, "Hello World", Exchange.FILE_NAME, "hello.txt");
-        template.sendBodyAndHeader(fileUrl, "Godday World", Exchange.FILE_NAME, "godday.txt");
+        String fileUri = fileUri(FILE_QUERY);
+        template.sendBodyAndHeader(fileUri, "Bye World", Exchange.FILE_NAME, "bye.txt");
+        template.sendBodyAndHeader(fileUri, "Hello World", Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri, "Godday World", Exchange.FILE_NAME, "godday.txt");
 
         // start route
         context.getRouteController().startRoute("foo");
@@ -51,7 +51,7 @@ public class FileConsumeMaxMessagesPerPollTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).routeId("foo").noAutoStartup().convertBodyTo(String.class).to("mock:result");
+                from(fileUri(FILE_QUERY)).routeId("foo").noAutoStartup().convertBodyTo(String.class).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java
index aeabcc74f6f..768b55728a0 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMoveRelativeNameTest.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.Test;
  */
 public class FileConsumeMoveRelativeNameTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri("?initialDelay=0&delay=10&recursive=true&move=.done/${file:name}.old");
+    public static final String FILE_QUERY = "?initialDelay=0&delay=10&recursive=true&move=.done/${file:name}.old";
 
     @Test
     public void testMultiDir() throws Exception {
@@ -37,7 +37,7 @@ public class FileConsumeMoveRelativeNameTest extends ContextTestSupport {
         mock.expectedFileExists(testFile(".done/bye.txt.old"));
         mock.expectedFileExists(testFile(".done/sub/hello.txt.old"));
         mock.expectedFileExists(testFile(".done/sub/sub2/goodday.txt.old"));
-
+        String fileUrl = fileUri(FILE_QUERY);
         template.sendBodyAndHeader(fileUrl, "Bye World", Exchange.FILE_NAME, "bye.txt");
         template.sendBodyAndHeader(fileUrl, "Hello World", Exchange.FILE_NAME, "sub/hello.txt");
         template.sendBodyAndHeader(fileUrl, "Goodday World", Exchange.FILE_NAME, "sub/sub2/goodday.txt");
@@ -51,7 +51,7 @@ public class FileConsumeMoveRelativeNameTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).routeId("foo").noAutoStartup().convertBodyTo(String.class).to("mock:result");
+                from(fileUri(FILE_QUERY)).routeId("foo").noAutoStartup().convertBodyTo(String.class).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMultipleDirectoriesTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMultipleDirectoriesTest.java
index f26063916a0..e293dcde412 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMultipleDirectoriesTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeMultipleDirectoriesTest.java
@@ -31,17 +31,17 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
  */
 public class FileConsumeMultipleDirectoriesTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri("?initialDelay=0&delay=10&recursive=true&delete=true&sortBy=file:path");
+    public static final String FILE_QUERY = "?initialDelay=0&delay=10&recursive=true&delete=true&sortBy=file:path";
 
     @SuppressWarnings("unchecked")
     @Test
     public void testMultiDir() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Bye World", "Hello World", "Godday World");
-
-        template.sendBodyAndHeader(fileUrl, "Bye World", Exchange.FILE_NAME, "bye.txt");
-        template.sendBodyAndHeader(fileUrl, "Hello World", Exchange.FILE_NAME, "sub/hello.txt");
-        template.sendBodyAndHeader(fileUrl, "Godday World", Exchange.FILE_NAME, "sub/sub2/godday.txt");
+        String fileUri = fileUri(FILE_QUERY);
+        template.sendBodyAndHeader(fileUri, "Bye World", Exchange.FILE_NAME, "bye.txt");
+        template.sendBodyAndHeader(fileUri, "Hello World", Exchange.FILE_NAME, "sub/hello.txt");
+        template.sendBodyAndHeader(fileUri, "Godday World", Exchange.FILE_NAME, "sub/sub2/godday.txt");
 
         assertMockEndpointsSatisfied();
 
@@ -68,7 +68,7 @@ public class FileConsumeMultipleDirectoriesTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).convertBodyTo(String.class).to("mock:result");
+                from(fileUri(FILE_QUERY)).convertBodyTo(String.class).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeNotEagerMaxMessagesPerPollTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeNotEagerMaxMessagesPerPollTest.java
index b63a26f4093..d9476e8b2ff 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeNotEagerMaxMessagesPerPollTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeNotEagerMaxMessagesPerPollTest.java
@@ -29,18 +29,14 @@ import org.junit.jupiter.api.parallel.Isolated;
 @Isolated
 public class FileConsumeNotEagerMaxMessagesPerPollTest extends ContextTestSupport {
 
-    // sort by name and not eager, then we should pickup the files in order
-    private String fileUrl = fileUri("?initialDelay=0&delay=10&"
-                                     + "maxMessagesPerPoll=2&eagerMaxMessagesPerPoll=false&sortBy=file:name");
-
     @Test
     public void testMaxMessagesPerPoll() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("AAA", "BBB");
 
-        template.sendBodyAndHeader(fileUrl, "CCC", Exchange.FILE_NAME, "ccc.FileConsumeNotEagerMaxMessagesPerPollTest.txt");
-        template.sendBodyAndHeader(fileUrl, "AAA", Exchange.FILE_NAME, "aaa.FileConsumeNotEagerMaxMessagesPerPollTest.txt");
-        template.sendBodyAndHeader(fileUrl, "BBB", Exchange.FILE_NAME, "bbb.FileConsumeNotEagerMaxMessagesPerPollTest.txt");
+        template.sendBodyAndHeader(fileUri(), "CCC", Exchange.FILE_NAME, "ccc.FileConsumeNotEagerMaxMessagesPerPollTest.txt");
+        template.sendBodyAndHeader(fileUri(), "AAA", Exchange.FILE_NAME, "aaa.FileConsumeNotEagerMaxMessagesPerPollTest.txt");
+        template.sendBodyAndHeader(fileUri(), "BBB", Exchange.FILE_NAME, "bbb.FileConsumeNotEagerMaxMessagesPerPollTest.txt");
 
         // start route
         context.getRouteController().startRoute("foo");
@@ -60,7 +56,9 @@ public class FileConsumeNotEagerMaxMessagesPerPollTest extends ContextTestSuppor
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).routeId("foo").noAutoStartup().convertBodyTo(String.class).to("mock:result");
+                from(fileUri("?initialDelay=0&delay=10&"
+                             + "maxMessagesPerPoll=2&eagerMaxMessagesPerPoll=false&sortBy=file:name"))
+                        .routeId("foo").noAutoStartup().convertBodyTo(String.class).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleAbsoluteMoveToAbsoluteTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleAbsoluteMoveToAbsoluteTest.java
index 3c414986906..22f67d3aa52 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleAbsoluteMoveToAbsoluteTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleAbsoluteMoveToAbsoluteTest.java
@@ -24,8 +24,7 @@ import org.junit.jupiter.api.Test;
 
 public class FileConsumeSimpleAbsoluteMoveToAbsoluteTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri();
-    private String base = testDirectory().toAbsolutePath().toString();
+    private String base;
 
     @Test
     public void testMoveToSubDir() throws Exception {
@@ -37,15 +36,16 @@ public class FileConsumeSimpleAbsoluteMoveToAbsoluteTest extends ContextTestSupp
         mock.expectedFileExists(base + "/.done/hello.txt");
         mock.expectedFileExists(base + "/.done/goodday.txt");
 
-        template.sendBodyAndHeader(fileUrl, "Bye World", Exchange.FILE_NAME, "bye.txt");
-        template.sendBodyAndHeader(fileUrl, "Hello World", Exchange.FILE_NAME, "sub/hello.txt");
-        template.sendBodyAndHeader(fileUrl, "Goodday World", Exchange.FILE_NAME, "sub/sub2/goodday.txt");
+        template.sendBodyAndHeader(fileUri(), "Bye World", Exchange.FILE_NAME, "bye.txt");
+        template.sendBodyAndHeader(fileUri(), "Hello World", Exchange.FILE_NAME, "sub/hello.txt");
+        template.sendBodyAndHeader(fileUri(), "Goodday World", Exchange.FILE_NAME, "sub/sub2/goodday.txt");
 
         assertMockEndpointsSatisfied();
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
+        base = testDirectory().toAbsolutePath().toString();
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleAbsoluteMoveToRelativeTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleAbsoluteMoveToRelativeTest.java
index 23a134254c8..ad2ad6bbace 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleAbsoluteMoveToRelativeTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleAbsoluteMoveToRelativeTest.java
@@ -24,20 +24,17 @@ import org.junit.jupiter.api.Test;
 
 public class FileConsumeSimpleAbsoluteMoveToRelativeTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri();
-    private String base = testDirectory().toAbsolutePath().toString();
-
     @Test
     public void testMoveToSubDir() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(3);
-        mock.expectedFileExists(base + "/.done/bye.txt");
-        mock.expectedFileExists(base + "/sub/.done/hello.txt");
-        mock.expectedFileExists(base + "/sub/sub2/.done/goodday.txt");
+        mock.expectedFileExists(testDirectory() + "/.done/bye.txt");
+        mock.expectedFileExists(testDirectory() + "/sub/.done/hello.txt");
+        mock.expectedFileExists(testDirectory() + "/sub/sub2/.done/goodday.txt");
 
-        template.sendBodyAndHeader(fileUrl, "Bye World", Exchange.FILE_NAME, "bye.txt");
-        template.sendBodyAndHeader(fileUrl, "Hello World", Exchange.FILE_NAME, "sub/hello.txt");
-        template.sendBodyAndHeader(fileUrl, "Goodday World", Exchange.FILE_NAME, "sub/sub2/goodday.txt");
+        template.sendBodyAndHeader(fileUri(), "Bye World", Exchange.FILE_NAME, "bye.txt");
+        template.sendBodyAndHeader(fileUri(), "Hello World", Exchange.FILE_NAME, "sub/hello.txt");
+        template.sendBodyAndHeader(fileUri(), "Goodday World", Exchange.FILE_NAME, "sub/sub2/goodday.txt");
 
         assertMockEndpointsSatisfied();
     }
@@ -47,7 +44,7 @@ public class FileConsumeSimpleAbsoluteMoveToRelativeTest extends ContextTestSupp
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("file://" + base + "?recursive=true&move=.done&initialDelay=0&delay=10").convertBodyTo(String.class)
+                from(fileUri() + "?recursive=true&move=.done&initialDelay=0&delay=10").convertBodyTo(String.class)
                         .to("mock:result");
             }
         };
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleRelativeMoveToRelativeTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleRelativeMoveToRelativeTest.java
index 3b7bdeb1c73..907214bb417 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleRelativeMoveToRelativeTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumeSimpleRelativeMoveToRelativeTest.java
@@ -24,8 +24,6 @@ import org.junit.jupiter.api.Test;
 
 public class FileConsumeSimpleRelativeMoveToRelativeTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri();
-
     @Test
     public void testMoveToSubDir() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
@@ -33,7 +31,7 @@ public class FileConsumeSimpleRelativeMoveToRelativeTest extends ContextTestSupp
         mock.expectedFileExists(testFile(".done/bye.txt"));
         mock.expectedFileExists(testFile("sub/.done/hello.txt"));
         mock.expectedFileExists(testFile("sub/sub2/.done/goodday.txt"));
-
+        String fileUrl = fileUri();
         template.sendBodyAndHeader(fileUrl, "Bye World", Exchange.FILE_NAME, "bye.txt");
         template.sendBodyAndHeader(fileUrl, "Hello World", Exchange.FILE_NAME, "sub/hello.txt");
         template.sendBodyAndHeader(fileUrl, "Goodday World", Exchange.FILE_NAME, "sub/sub2/goodday.txt");
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerDirectoryMustExistBridgeErrorHandlerTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerDirectoryMustExistBridgeErrorHandlerTest.java
index 0f363d9109f..ae13ddfa20e 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerDirectoryMustExistBridgeErrorHandlerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerDirectoryMustExistBridgeErrorHandlerTest.java
@@ -39,8 +39,8 @@ public class FileConsumerDirectoryMustExistBridgeErrorHandlerTest extends Contex
             public void configure() throws Exception {
                 errorHandler(deadLetterChannel("mock:dead"));
 
-                from(fileUri("?initialDelay=1&delay=1"
-                             + "&autoCreate=false&directoryMustExist=true&bridgeErrorHandler=true"))
+                from(fileUri(testDirectory("new", false), "?initialDelay=1&delay=1"
+                                                          + "&autoCreate=false&directoryMustExist=true&bridgeErrorHandler=true"))
                         .routeId("foo")
                         .noAutoStartup()
                         .to("mock:result");
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerExtendedAttributesTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerExtendedAttributesTest.java
index df983a98a11..ed590e44557 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerExtendedAttributesTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerExtendedAttributesTest.java
@@ -17,7 +17,7 @@
 package org.apache.camel.component.file;
 
 import java.nio.file.Files;
-import java.nio.file.Paths;
+import java.nio.file.Path;
 import java.util.Map;
 
 import org.apache.camel.ContextTestSupport;
@@ -36,31 +36,31 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
  */
 public class FileConsumerExtendedAttributesTest extends ContextTestSupport {
     private static final String FILE = "attributes.txt";
-    private final String root = testDirectory().toString();
 
     @Override
     @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
-
-        Files.createFile(Paths.get(root, "basic", FILE));
-        Files.createFile(Paths.get(root, "basic-as-default", FILE));
-        Files.createFile(Paths.get(root, "basic-as-default-with-filter", FILE));
-        Files.createFile(Paths.get(root, "posix", FILE));
+        Files.createFile(testDirectory().resolve(Path.of("basic", FILE)));
+        Files.createFile(testDirectory().resolve(Path.of("basic-as-default", FILE)));
+        Files.createFile(testDirectory().resolve(Path.of("basic-as-default-with-filter", FILE)));
+        Files.createFile(testDirectory().resolve(Path.of("posix", FILE)));
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                fromF("file://%s/basic?initialDelay=0&delay=10&extendedAttributes=basic:*", root).convertBodyTo(String.class)
+                fromF("file://%s/basic?initialDelay=0&delay=10&extendedAttributes=basic:*", testDirectory())
+                        .convertBodyTo(String.class)
                         .to("mock:basic");
-                fromF("file://%s/basic-as-default?initialDelay=0&delay=10&extendedAttributes=*", root)
+                fromF("file://%s/basic-as-default?initialDelay=0&delay=10&extendedAttributes=*", testDirectory())
                         .convertBodyTo(String.class).to("mock:basic-as-default");
                 fromF("file://%s/basic-as-default-with-filter?initialDelay=0&delay=10&extendedAttributes=size,lastModifiedTime,lastAccessTime",
-                        root).convertBodyTo(String.class)
+                        testDirectory()).convertBodyTo(String.class)
                         .to("mock:basic-as-default-with-filter");
-                fromF("file://%s/posix?initialDelay=0&delay=10&extendedAttributes=posix:*", root).convertBodyTo(String.class)
+                fromF("file://%s/posix?initialDelay=0&delay=10&extendedAttributes=posix:*", testDirectory())
+                        .convertBodyTo(String.class)
                         .to("mock:posix");
             }
         };
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java
index d7c1ad4aac8..388b118a9a1 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileFilterTest.java
@@ -28,8 +28,6 @@ import org.junit.jupiter.api.Test;
  */
 public class FileConsumerFileFilterTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri("?initialDelay=0&delay=10&filter=#myFilter");
-
     @Override
     protected Registry createRegistry() throws Exception {
         Registry jndi = super.createRegistry();
@@ -69,7 +67,8 @@ public class FileConsumerFileFilterTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).convertBodyTo(String.class).to("mock:result");
+                from(fileUri("?initialDelay=0&delay=10&filter=#myFilter"))
+                        .convertBodyTo(String.class).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileNameFilterTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileNameFilterTest.java
index 6dd6040d5e6..41b295a6b17 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileNameFilterTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileNameFilterTest.java
@@ -24,13 +24,11 @@ import org.junit.jupiter.api.Test;
 
 public class FileConsumerFileNameFilterTest extends ContextTestSupport {
 
-    private final String fileUri = fileUri();
-
     @Test
     public void testFileConsumer() throws Exception {
         final MockEndpoint mockEndpoint = getMockEndpoint("mock:txt");
         mockEndpoint.expectedBodiesReceivedInAnyOrder("Hello World", "Bye World");
-
+        String fileUri = fileUri();
         template.sendBodyAndHeader(fileUri, "Hello World", Exchange.FILE_NAME, "hello.txt");
         template.sendBodyAndHeader(fileUri, "<customer>123</customer>", Exchange.FILE_NAME, "customer.xml");
         template.sendBodyAndHeader(fileUri, "<book>Camel Rocks</book>", Exchange.FILE_NAME, "book.xml");
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFilterFileTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFilterFileTest.java
index 75d0503b615..248b8247afe 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFilterFileTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFilterFileTest.java
@@ -27,8 +27,10 @@ import org.junit.jupiter.api.Test;
  */
 public class FileConsumerFilterFileTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri("?initialDelay=0&delay=10&filterFile=${bodyAs(String)} contains 'World'");
-    private String fileUrl2 = fileUri("?initialDelay=0&delay=10&filterFile=${file:modified} < ${date:now-2s}");
+    public static final String FILE_URL_1 = "?initialDelay=0&delay=10&"
+                                            + "filterFile=${bodyAs(String)} contains 'World'";
+    public static final String FILE_URL_2 = "?initialDelay=0&delay=10&"
+                                            + "filterFile=${file:modified} < ${date:now-2s}";
 
     @Test
     public void testFilterFiles() throws Exception {
@@ -67,8 +69,8 @@ public class FileConsumerFilterFileTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).convertBodyTo(String.class).to("mock:result");
-                from(fileUrl2).convertBodyTo(String.class).to("mock:result2");
+                from(fileUri(FILE_URL_1)).convertBodyTo(String.class).to("mock:result");
+                from(fileUri(FILE_URL_2)).convertBodyTo(String.class).to("mock:result2");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveCopyAndDeleteOnRenameFailFalseTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveCopyAndDeleteOnRenameFailFalseTest.java
index 43009ab3f87..da5812d3a03 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveCopyAndDeleteOnRenameFailFalseTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveCopyAndDeleteOnRenameFailFalseTest.java
@@ -22,6 +22,7 @@ public class FileConsumerPreMoveCopyAndDeleteOnRenameFailFalseTest extends FileC
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
+        context.getRegistry().bind("testDirectory", testDirectory());
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveIssueTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveIssueTest.java
index 5664089d919..b602d6eeacb 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveIssueTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveIssueTest.java
@@ -22,7 +22,6 @@ import java.nio.file.Path;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
-import org.apache.camel.TestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
@@ -43,10 +42,12 @@ public class FileConsumerPreMoveIssueTest extends ContextTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
+        context.getRegistry().bind("testDirectory", testDirectory());
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(fileUri("?preMove=before/${file:name.noext}-moved.${file:ext}&initialDelay=0&delay=10"))
+                from(fileUri(
+                        "?preMove=before/${file:name.noext}-moved.${file:ext}&initialDelay=0&delay=10"))
                         .process(new MyPreMoveCheckerProcessor())
                         .to("mock:result");
             }
@@ -57,11 +58,9 @@ public class FileConsumerPreMoveIssueTest extends ContextTestSupport {
 
         @Override
         public void process(Exchange exchange) throws Exception {
-            Class<?> cl = getClass();
-            while (cl.getEnclosingClass() != null) {
-                cl = cl.getEnclosingClass();
-            }
-            Path file = TestSupport.testDirectory(cl, false).resolve("before/hello-moved.txt");
+            Path testDirectory = (Path) exchange.getContext().getRegistry()
+                    .lookupByName("testDirectory");
+            Path file = testDirectory.resolve("before/hello-moved.txt");
             assertTrue(Files.exists(file), "Pre move file should exist");
         }
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveNoopTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveNoopTest.java
index 65ea7399225..699cd606002 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveNoopTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveNoopTest.java
@@ -29,14 +29,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class FileConsumerPreMoveNoopTest extends ContextTestSupport {
 
-    private final String endpointUri = fileUri();
-
     @Test
     public void testPreMoveNoop() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
 
-        template.sendBodyAndHeader(endpointUri, "Hello World", Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri(), "Hello World", Exchange.FILE_NAME, "hello.txt");
 
         assertMockEndpointsSatisfied();
 
@@ -50,7 +48,7 @@ public class FileConsumerPreMoveNoopTest extends ContextTestSupport {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Hello World");
 
-        template.sendBodyAndHeader(endpointUri, "Hello World", Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri(), "Hello World", Exchange.FILE_NAME, "hello.txt");
 
         assertMockEndpointsSatisfied();
         oneExchangeDone.matchesWaitTime();
@@ -60,7 +58,7 @@ public class FileConsumerPreMoveNoopTest extends ContextTestSupport {
         oneExchangeDone.reset();
         mock.expectedBodiesReceived("Hello Again World");
 
-        template.sendBodyAndHeader(endpointUri, "Hello Again World", Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri(), "Hello Again World", Exchange.FILE_NAME, "hello.txt");
 
         assertMockEndpointsSatisfied();
         oneExchangeDone.matchesWaitTime();
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java
index 87a33cf2ad0..761627b550f 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerPreMoveTest.java
@@ -22,7 +22,6 @@ import java.nio.file.Path;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
-import org.apache.camel.TestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
@@ -61,6 +60,7 @@ public class FileConsumerPreMoveTest extends ContextTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
+        context.getRegistry().bind("testDirectory", testDirectory());
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -74,11 +74,9 @@ public class FileConsumerPreMoveTest extends ContextTestSupport {
 
         @Override
         public void process(Exchange exchange) throws Exception {
-            Class<?> cl = getClass();
-            while (cl.getEnclosingClass() != null) {
-                cl = cl.getEnclosingClass();
-            }
-            Path file = TestSupport.testDirectory(cl, false).resolve("work/work-hello.txt");
+            Path testDirectory = (Path) exchange.getContext().getRegistry()
+                    .lookupByName("testDirectory");
+            Path file = testDirectory.resolve("work/work-hello.txt");
             assertTrue(Files.exists(file), "Pre move file should exist");
         }
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerRelativeFileNameTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerRelativeFileNameTest.java
index 482a02e8e95..c7f390c5023 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerRelativeFileNameTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerRelativeFileNameTest.java
@@ -33,18 +33,18 @@ public class FileConsumerRelativeFileNameTest extends ContextTestSupport {
 
         // the file name is also starting with filename-consumer
         template.sendBodyAndHeader(fileUri("filename-consumer"), "Hello World", Exchange.FILE_NAME,
-                testFile("filename-consumer-hello.txt").toString());
+                testFile("filename-consumer-hello.txt").getFileName().toString());
         template.sendBodyAndHeader(fileUri("filename-consumer"), "Bye World", Exchange.FILE_NAME,
-                testFile("filename-consumer-bye.txt").toString());
+                testFile("filename-consumer-bye.txt").getFileName().toString());
 
         context.getRouteController().startAllRoutes();
 
         assertMockEndpointsSatisfied();
 
         // and expect name to contain filename-consumer-XXX.txt
-        assertDirectoryEquals(testFile("filename-consumer-bye.txt").toString(),
+        assertDirectoryEquals(testFile("filename-consumer-bye.txt").getFileName().toString(),
                 mock.getReceivedExchanges().get(0).getIn().getHeader(Exchange.FILE_NAME, String.class));
-        assertDirectoryEquals(testFile("filename-consumer-hello.txt").toString(),
+        assertDirectoryEquals(testFile("filename-consumer-hello.txt").getFileName().toString(),
                 mock.getReceivedExchanges().get(1).getIn().getHeader(Exchange.FILE_NAME, String.class));
     }
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSkipDotFilesTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSkipDotFilesTest.java
index b78484f1d65..006e8920a17 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSkipDotFilesTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSkipDotFilesTest.java
@@ -28,12 +28,9 @@ import org.junit.jupiter.api.Test;
  */
 public class FileConsumerSkipDotFilesTest extends ContextTestSupport {
 
-    private final String baseUrl = fileUri();
-    private final String fileUrl = fileUri("?initialDelay=0&delay=10");
-
     @BeforeEach
     void sendDotFile() {
-        template.sendBodyAndHeader(baseUrl, "This is a dot file", Exchange.FILE_NAME, ".skipme");
+        template.sendBodyAndHeader(fileUri(), "This is a dot file", Exchange.FILE_NAME, ".skipme");
     }
 
     @Test
@@ -50,7 +47,7 @@ public class FileConsumerSkipDotFilesTest extends ContextTestSupport {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Hello World");
 
-        template.sendBodyAndHeader(baseUrl, "Hello World", Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri(), "Hello World", Exchange.FILE_NAME, "hello.txt");
 
         mock.assertIsSatisfied();
     }
@@ -59,7 +56,7 @@ public class FileConsumerSkipDotFilesTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).convertBodyTo(String.class).to("mock:result");
+                from(fileUri("?initialDelay=0&delay=10")).convertBodyTo(String.class).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadLockCopyTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadLockCopyTest.java
index aef048aa304..b7546ed3065 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadLockCopyTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadLockCopyTest.java
@@ -26,7 +26,7 @@ import org.junit.jupiter.api.condition.OS;
 
 public class FileExclusiveReadLockCopyTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri("?readLock=fileLock&initialDelay=0&delay=10");
+    public static final String FILE_QUERY = "?readLock=fileLock&initialDelay=0&delay=10";
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
@@ -35,7 +35,7 @@ public class FileExclusiveReadLockCopyTest extends ContextTestSupport {
         mock.expectedMessageCount(1);
         mock.expectedFileExists(testFile("out/hello.txt"), "Hello World");
 
-        template.sendBodyAndHeader(fileUrl, "Hello World", Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri(FILE_QUERY), "Hello World", Exchange.FILE_NAME, "hello.txt");
 
         mock.assertIsSatisfied();
     }
@@ -44,7 +44,7 @@ public class FileExclusiveReadLockCopyTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).to(fileUri("out")).to("mock:result");
+                from(fileUri(FILE_QUERY)).to(fileUri("out")).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadManuelTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadManualTest.java
similarity index 90%
rename from core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadManuelTest.java
rename to core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadManualTest.java
index bf291db09d8..74675ffbd4d 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadManuelTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadManualTest.java
@@ -26,9 +26,7 @@ import org.junit.jupiter.api.condition.OS;
 /**
  * Unit test to verify exclusive read by for manual testing.
  */
-public class FileExclusiveReadManuelTest extends ContextTestSupport {
-
-    private String fileUrl = fileUri("?readLock=fileLock&initialDelay=0&delay=10");
+public class FileExclusiveReadManualTest extends ContextTestSupport {
 
     @Test
     @DisabledOnOs(OS.WINDOWS)
@@ -47,7 +45,8 @@ public class FileExclusiveReadManuelTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from(fileUrl).to("mock:result");
+                from(fileUri("?readLock=fileLock&initialDelay=0&delay=10"))
+                        .to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadNoneStrategyTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadNoneStrategyTest.java
index 663a515ad9b..296a8ab1885 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadNoneStrategyTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileExclusiveReadNoneStrategyTest.java
@@ -36,10 +36,10 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 public class FileExclusiveReadNoneStrategyTest extends ContextTestSupport {
 
     private static final Logger LOG = LoggerFactory.getLogger(FileExclusiveReadNoneStrategyTest.class);
-    private String fileUrl = fileUri("slowfile?noop=true&initialDelay=0&delay=10&readLock=none");
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
+        String fileUrl = fileUri("slowfile?noop=true&initialDelay=0&delay=10&readLock=none");
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileHeaderFileNameProducedTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileHeaderFileNameProducedTest.java
index bfefd2f7131..b83fcffdc15 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileHeaderFileNameProducedTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileHeaderFileNameProducedTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.file;
 
+import java.nio.file.Path;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
@@ -44,7 +46,7 @@ public class FileHeaderFileNameProducedTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from("direct:in").to(fileUri("?fileExist=Override")).to("mock:result");
+                from("direct:in").to(fileUri(Path.of("target"), "?fileExist=Override")).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileIdempotentReadSameFileAgainTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileIdempotentReadSameFileAgainTest.java
index f0a3473c7e9..31b4537c44e 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileIdempotentReadSameFileAgainTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileIdempotentReadSameFileAgainTest.java
@@ -24,8 +24,8 @@ import org.junit.jupiter.api.Test;
 
 public class FileIdempotentReadSameFileAgainTest extends ContextTestSupport {
 
-    private String uri = fileUri("?idempotent=false&move=../done&moveFailed=../error"
-                                 + "&preMove=working/${date:now:yyyyMMddHHmmssSSS}-${file:name}&readLock=none&initialDelay=0&delay=10");
+    public static final String FILE_QUERY = "?idempotent=false&move=../done&moveFailed=../error"
+                                            + "&preMove=working/${date:now:yyyyMMddHHmmssSSS}-${file:name}&readLock=none&initialDelay=0&delay=10";
 
     @Test
     public void testConsumeSameFileAgain() throws Exception {
@@ -51,7 +51,7 @@ public class FileIdempotentReadSameFileAgainTest extends ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from(uri).convertBodyTo(String.class).to("mock:result");
+                from(fileUri(FILE_QUERY)).convertBodyTo(String.class).to("mock:result");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileProduceTempFileNameTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileProduceTempFileNameTest.java
index 28e44d0bf46..207cb83d319 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileProduceTempFileNameTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileProduceTempFileNameTest.java
@@ -27,13 +27,13 @@ import org.junit.jupiter.api.Test;
  */
 public class FileProduceTempFileNameTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri("tempandrename?tempFileName=inprogress-${file:name.noext}.tmp");
-    private String parentFileUrl = fileUri("tempandrename?tempFileName=../work/${file:name.noext}.tmp");
-    private String childFileUrl = fileUri("tempandrename?tempFileName=work/${file:name.noext}.tmp");
+    public static final String FILE_URL_QUERY = "tempandrename?tempFileName=inprogress-${file:name.noext}.tmp";
+    public static final String PARENT_FILE_URL_QUERY = "tempandrename?tempFileName=../work/${file:name.noext}.tmp";
+    public static final String CHILD_FILE_URL_QUERY = "tempandrename?tempFileName=work/${file:name.noext}.tmp";
 
     @Test
     public void testCreateTempFileName() throws Exception {
-        Endpoint endpoint = context.getEndpoint(fileUrl);
+        Endpoint endpoint = context.getEndpoint(fileUri(FILE_URL_QUERY));
         GenericFileProducer<?> producer = (GenericFileProducer<?>) endpoint.createProducer();
         Exchange exchange = endpoint.createExchange();
         exchange.getIn().setHeader(Exchange.FILE_NAME, "claus.txt");
@@ -44,7 +44,7 @@ public class FileProduceTempFileNameTest extends ContextTestSupport {
 
     @Test
     public void testNoPathCreateTempFileName() throws Exception {
-        Endpoint endpoint = context.getEndpoint(fileUrl);
+        Endpoint endpoint = context.getEndpoint(fileUri(FILE_URL_QUERY));
         GenericFileProducer<?> producer = (GenericFileProducer<?>) endpoint.createProducer();
         Exchange exchange = endpoint.createExchange();
         exchange.getIn().setHeader(Exchange.FILE_NAME, "claus.txt");
@@ -76,7 +76,7 @@ public class FileProduceTempFileNameTest extends ContextTestSupport {
 
     @Test
     public void testCreateParentTempFileName() throws Exception {
-        Endpoint endpoint = context.getEndpoint(parentFileUrl);
+        Endpoint endpoint = context.getEndpoint(fileUri(PARENT_FILE_URL_QUERY));
         GenericFileProducer<?> producer = (GenericFileProducer<?>) endpoint.createProducer();
         Exchange exchange = endpoint.createExchange();
         exchange.getIn().setHeader(Exchange.FILE_NAME, "claus.txt");
@@ -89,9 +89,9 @@ public class FileProduceTempFileNameTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from("direct:a").to(fileUrl);
-                from("direct:b").to(parentFileUrl);
-                from("direct:c").to(childFileUrl);
+                from("direct:a").to(fileUri(FILE_URL_QUERY));
+                from("direct:b").to(fileUri(PARENT_FILE_URL_QUERY));
+                from("direct:c").to(fileUri(CHILD_FILE_URL_QUERY));
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileProduceTempPrefixTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileProduceTempPrefixTest.java
index 508b5d64e11..0cb180c4886 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileProduceTempPrefixTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileProduceTempPrefixTest.java
@@ -27,11 +27,11 @@ import org.junit.jupiter.api.Test;
  */
 public class FileProduceTempPrefixTest extends ContextTestSupport {
 
-    private String fileUrl = fileUri("?tempPrefix=inprogress.");
+    public static final String FILE_QUERY = "?tempPrefix=inprogress.";
 
     @Test
     public void testCreateTempFileName() throws Exception {
-        Endpoint endpoint = context.getEndpoint(fileUrl);
+        Endpoint endpoint = context.getEndpoint(fileUri(FILE_QUERY));
         GenericFileProducer<?> producer = (GenericFileProducer<?>) endpoint.createProducer();
         Exchange exchange = endpoint.createExchange();
         exchange.getIn().setHeader(Exchange.FILE_NAME, "claus.txt");
@@ -42,7 +42,7 @@ public class FileProduceTempPrefixTest extends ContextTestSupport {
 
     @Test
     public void testCreateTempFileNameUsingComplexName() throws Exception {
-        Endpoint endpoint = context.getEndpoint(fileUrl);
+        Endpoint endpoint = context.getEndpoint(fileUri(FILE_QUERY));
         GenericFileProducer<?> producer = (GenericFileProducer<?>) endpoint.createProducer();
         Exchange exchange = endpoint.createExchange();
         exchange.getIn().setHeader(Exchange.FILE_NAME, "foo/claus.txt");
@@ -53,7 +53,7 @@ public class FileProduceTempPrefixTest extends ContextTestSupport {
 
     @Test
     public void testNoPathCreateTempFileName() throws Exception {
-        Endpoint endpoint = context.getEndpoint(fileUrl);
+        Endpoint endpoint = context.getEndpoint(fileUri(FILE_QUERY));
         GenericFileProducer<?> producer = (GenericFileProducer<?>) endpoint.createProducer();
         Exchange exchange = endpoint.createExchange();
         exchange.getIn().setHeader(Exchange.FILE_NAME, "claus.txt");
@@ -78,7 +78,7 @@ public class FileProduceTempPrefixTest extends ContextTestSupport {
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                from("direct:a").to(fileUrl);
+                from("direct:a").to(fileUri(FILE_QUERY));
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileProducerCharsetUTFOptimizedTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileProducerCharsetUTFOptimizedTest.java
index 198d4aeebab..cd60294a4c6 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileProducerCharsetUTFOptimizedTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileProducerCharsetUTFOptimizedTest.java
@@ -23,7 +23,6 @@ import java.nio.file.Files;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
-import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -62,11 +61,6 @@ public class FileProducerCharsetUTFOptimizedTest extends ContextTestSupport {
         assertArrayEquals(utf, data);
     }
 
-    @AfterEach
-    public void deleteData() {
-        deleteDirectory(testDirectory().toFile());
-    }
-
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileProducerDirectoryChmodOptionTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileProducerDirectoryChmodOptionTest.java
index beeb1adfa1b..b99c613c5b1 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileProducerDirectoryChmodOptionTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileProducerDirectoryChmodOptionTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.file;
 
 import java.nio.file.Files;
 import java.nio.file.LinkOption;
+import java.nio.file.Path;
 import java.nio.file.attribute.PosixFilePermission;
 import java.nio.file.attribute.PosixFilePermissions;
 import java.util.Date;
@@ -36,6 +37,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 @DisabledOnOs(OS.WINDOWS)
 public class FileProducerDirectoryChmodOptionTest extends ContextTestSupport {
 
+    private static final String SUBDIR_NAME = "testdir";
+
     @Test
     public void testWriteValidNoDir() throws Exception {
         runChmodCheck("NoDir", null, "rwxr-xr-x");
@@ -57,19 +60,21 @@ public class FileProducerDirectoryChmodOptionTest extends ContextTestSupport {
         mock.expectedMessageCount(1);
         String testFileName = "chmod" + routeSuffix + ".txt";
         String testFileContent = "Writing file with chmod " + routeSuffix + " option at " + new Date();
-        mock.expectedFileExists(testFile(testFileName), testFileContent);
+        String testFilePath = Path.of(SUBDIR_NAME, testFileName).toString();
+        mock.expectedFileExists(testFile(testFilePath), testFileContent);
 
-        template.sendBodyAndHeader("direct:write" + routeSuffix, testFileContent, Exchange.FILE_NAME, testFileName);
+        template.sendBodyAndHeader("direct:write" + routeSuffix, testFileContent, Exchange.FILE_NAME, testFilePath);
 
         if (expectedDirectoryPermissions != null) {
-            Set<PosixFilePermission> permissions = Files.getPosixFilePermissions(testDirectory(), LinkOption.NOFOLLOW_LINKS);
+            Set<PosixFilePermission> permissions
+                    = Files.getPosixFilePermissions(testDirectory(SUBDIR_NAME), LinkOption.NOFOLLOW_LINKS);
             assertEquals(expectedDirectoryPermissions, PosixFilePermissions.toString(permissions));
             assertEquals(expectedDirectoryPermissions.replace("-", "").length(), permissions.size());
         }
 
         if (expectedPermissions != null) {
             Set<PosixFilePermission> permissions
-                    = Files.getPosixFilePermissions(testFile(testFileName), LinkOption.NOFOLLOW_LINKS);
+                    = Files.getPosixFilePermissions(testFile(testFilePath), LinkOption.NOFOLLOW_LINKS);
             assertEquals(expectedPermissions, PosixFilePermissions.toString(permissions));
             assertEquals(expectedPermissions.replace("-", "").length(), permissions.size());
         }
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileRecursiveNoopTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileRecursiveNoopTest.java
index 8e5a109ac12..da7c956b28c 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileRecursiveNoopTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileRecursiveNoopTest.java
@@ -27,8 +27,6 @@ public class FileRecursiveNoopTest extends ContextTestSupport {
 
     @BeforeEach
     void sendMessages() {
-        testDirectory(true);
-
         template.sendBodyAndHeader(fileUri(), "a", Exchange.FILE_NAME, "a.txt");
         template.sendBodyAndHeader(fileUri(), "b", Exchange.FILE_NAME, "b.txt");
         template.sendBodyAndHeader(fileUri("foo"), "a2", Exchange.FILE_NAME, "a.txt");
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileSplitXPathCharsetTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileSplitXPathCharsetTest.java
index 2453653bcb9..d969f6eff4b 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileSplitXPathCharsetTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileSplitXPathCharsetTest.java
@@ -23,12 +23,19 @@ import java.nio.file.Path;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 public class FileSplitXPathCharsetTest extends ContextTestSupport {
 
-    private final Path inputCsv = testFile("input.csv");
-    private final Path inputXml = testFile("input.xml");
+    private Path inputCsv;
+    private Path inputXml;
+
+    @BeforeEach
+    public void setUpTemporaryFiles() {
+        inputXml = testFile("input.xml");
+        inputCsv = testFile("input.csv");
+    }
 
     @Test
     public void testCsv() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FilerProducerAbsoluteTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FilerProducerAbsoluteTest.java
index 4df0060e82e..8b0079d962e 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FilerProducerAbsoluteTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FilerProducerAbsoluteTest.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.Test;
  */
 public class FilerProducerAbsoluteTest extends ContextTestSupport {
 
-    private String path = testDirectory("absolute").toAbsolutePath().toString();
+    private String path;
 
     @Test
     public void testProduceAbsoluteFile() throws Exception {
@@ -42,6 +42,7 @@ public class FilerProducerAbsoluteTest extends ContextTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
+        path = testDirectory("absolute").toAbsolutePath().toString();
         return new RouteBuilder() {
             public void configure() throws Exception {
                 from("direct:report").to("file://" + path, "mock:result");
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/cluster/FileLockClusteredRoutePolicyFactoryTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/cluster/FileLockClusteredRoutePolicyFactoryTest.java
index 3d9a2ae905e..87589ad79cf 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/cluster/FileLockClusteredRoutePolicyFactoryTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/cluster/FileLockClusteredRoutePolicyFactoryTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.file.cluster;
 
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
@@ -24,11 +25,11 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.camel.TestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.cluster.ClusteredRoutePolicyFactory;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,6 +43,9 @@ public final class FileLockClusteredRoutePolicyFactoryTest {
     private static final ScheduledExecutorService SCHEDULER = Executors.newScheduledThreadPool(CLIENTS.size());
     private static final CountDownLatch LATCH = new CountDownLatch(CLIENTS.size());
 
+    @TempDir
+    private static Path tempDir;
+
     // ************************************
     // Test
     // ************************************
@@ -70,7 +74,7 @@ public final class FileLockClusteredRoutePolicyFactoryTest {
 
             FileLockClusterService service = new FileLockClusterService();
             service.setId("node-" + id);
-            service.setRoot(TestSupport.testDirectory(FileLockClusteredRoutePolicyTest.class, true).toString());
+            service.setRoot(tempDir.toString());
             service.setAcquireLockDelay(100, TimeUnit.MILLISECONDS);
             service.setAcquireLockInterval(100, TimeUnit.MILLISECONDS);
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/cluster/FileLockClusteredRoutePolicyTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/cluster/FileLockClusteredRoutePolicyTest.java
index 17c4f4d9e0a..09950d99189 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/cluster/FileLockClusteredRoutePolicyTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/cluster/FileLockClusteredRoutePolicyTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.file.cluster;
 
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
@@ -24,11 +25,11 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.camel.TestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.impl.cluster.ClusteredRoutePolicy;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,6 +43,9 @@ public final class FileLockClusteredRoutePolicyTest {
     private static final ScheduledExecutorService SCHEDULER = Executors.newScheduledThreadPool(CLIENTS.size());
     private static final CountDownLatch LATCH = new CountDownLatch(CLIENTS.size());
 
+    @TempDir
+    private static Path tempDir;
+
     // ************************************
     // Test
     // ************************************
@@ -70,7 +74,7 @@ public final class FileLockClusteredRoutePolicyTest {
 
             FileLockClusterService service = new FileLockClusterService();
             service.setId("node-" + id);
-            service.setRoot(TestSupport.testDirectory(FileLockClusteredRoutePolicyTest.class, false).toString());
+            service.setRoot(tempDir.toString());
             service.setAcquireLockDelay(1, TimeUnit.SECONDS);
             service.setAcquireLockInterval(1, TimeUnit.SECONDS);
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentLoadPropertiesFromFileTrimValuesTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentLoadPropertiesFromFileTrimValuesTest.java
index 9bc9fbab400..3782ecfa876 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentLoadPropertiesFromFileTrimValuesTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/PropertiesComponentLoadPropertiesFromFileTrimValuesTest.java
@@ -32,7 +32,6 @@ public class PropertiesComponentLoadPropertiesFromFileTrimValuesTest extends Con
         CamelContext context = super.createCamelContext();
 
         // create space.properties file
-        testDirectory(true);
         try (Writer w = Files.newBufferedWriter(testFile("space.properties"))) {
             String cool = "cool.leading= Leading space" + LS + "cool.trailing=Trailing space " + LS
                           + "cool.both= Both leading and trailing space " + LS;
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/seda/FileSedaShutdownCompleteAllTasksTest.java b/core/camel-core/src/test/java/org/apache/camel/component/seda/FileSedaShutdownCompleteAllTasksTest.java
index b0687f4c0d5..4a889609c76 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/seda/FileSedaShutdownCompleteAllTasksTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/seda/FileSedaShutdownCompleteAllTasksTest.java
@@ -31,10 +31,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class FileSedaShutdownCompleteAllTasksTest extends ContextTestSupport {
 
-    private String url = fileUri("?initialDelay=0&delay=10");
-
     @Test
     public void testShutdownCompleteAllTasks() throws Exception {
+        String url = fileUri("?initialDelay=0&delay=10");
+
         // prepare 5 files to begin with
         template.sendBodyAndHeader(url, "A", Exchange.FILE_NAME, "a.txt");
         template.sendBodyAndHeader(url, "B", Exchange.FILE_NAME, "b.txt");
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java
index 245c01ac9d5..196bbbb290f 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltIncludeClasspathDotInDirectoryTest.java
@@ -35,7 +35,6 @@ public class XsltIncludeClasspathDotInDirectoryTest extends ContextTestSupport {
     @Override
     @AfterEach
     public void tearDown() throws Exception {
-        deleteDirectory("target/classes/com.mycompany");
         super.tearDown();
     }
 
@@ -55,7 +54,7 @@ public class XsltIncludeClasspathDotInDirectoryTest extends ContextTestSupport {
             @Override
             public void configure() throws Exception {
                 // copy templates to this directory
-                createDirectory("target/classes/com.mycompany");
+                testDirectory("target/classes/com.mycompany", true);
                 FileUtil.copyFile(new File("src/test/resources/org/apache/camel/component/xslt/staff_include_classpath2.xsl"),
                         new File("target/classes/com.mycompany/staff_include_classpath2.xsl"));
                 FileUtil.copyFile(new File("src/test/resources/org/apache/camel/component/xslt/staff_template.xsl"),
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltOutputFileDeleteTest.java b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltOutputFileDeleteTest.java
index 6dcfbb0aa82..ec4c47a725a 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltOutputFileDeleteTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltOutputFileDeleteTest.java
@@ -29,8 +29,6 @@ public class XsltOutputFileDeleteTest extends ContextTestSupport {
 
     @Test
     public void testXsltOutputDeleteFile() throws Exception {
-        testDirectory(true);
-
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("<?xml version=\"1.0\" encoding=\"UTF-8\"?><goodbye>world!</goodbye>");
         template.sendBodyAndHeader("direct:start", "<hello>world!</hello>", Exchange.XSLT_FILE_NAME,
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltOutputFileTest.java b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltOutputFileTest.java
index a03aad8c2b5..5cf06502db3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltOutputFileTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/xslt/XsltOutputFileTest.java
@@ -36,8 +36,6 @@ public class XsltOutputFileTest extends ContextTestSupport {
 
     @Test
     public void testXsltOutput() throws Exception {
-        testDirectory(true);
-
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("<?xml version=\"1.0\" encoding=\"UTF-8\"?><goodbye>world!</goodbye>");
         mock.expectedFileExists(testFile("xsltme.xml"));
diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java
index 77dc1639d72..6ce529dafaa 100644
--- a/core/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java
@@ -53,7 +53,7 @@ public class CachedOutputStreamTest extends ContextTestSupport {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
         context.setStreamCaching(true);
-        context.getStreamCachingStrategy().setSpoolDirectory(testDirectory(true).toFile());
+        context.getStreamCachingStrategy().setSpoolDirectory(testDirectory().toFile());
         context.getStreamCachingStrategy().setSpoolEnabled(true);
         context.getStreamCachingStrategy().setSpoolThreshold(16);
         return context;
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/FileStateRepositoryTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/FileStateRepositoryTest.java
index 4aa882e913f..af51264d4de 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/FileStateRepositoryTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/FileStateRepositoryTest.java
@@ -20,6 +20,7 @@ import java.io.File;
 
 import org.apache.camel.TestSupport;
 import org.apache.camel.impl.engine.FileStateRepository;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.impl.engine.FileStateRepository.fileStateRepository;
@@ -29,7 +30,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class FileStateRepositoryTest extends TestSupport {
 
-    private final File repositoryStore = testFile("file-state-repository.dat").toFile();
+    private File repositoryStore;
+
+    @BeforeEach
+    public void setUpTemporaryFile() {
+        repositoryStore = testFile("file-state-repository.dat").toFile();
+    }
 
     @Test
     public void shouldPreventUsingDelimiterInKey() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentClearTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentClearTest.java
index abf712b2f71..1b9316e0b54 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentClearTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentClearTest.java
@@ -30,12 +30,12 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 
 public class FileIdempotentClearTest extends ContextTestSupport {
 
-    private File store = testFile("idempotentfilestore.dat").toFile();
     private IdempotentRepository repo;
 
     @Override
     @BeforeEach
     public void setUp() throws Exception {
+        File store = testFile("idempotentfilestore.dat").toFile();
         // delete file store before testing
         if (store.exists()) {
             store.delete();
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentConsumerLoadStoreTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentConsumerLoadStoreTest.java
index 154a890cb9b..315a3b5f150 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentConsumerLoadStoreTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentConsumerLoadStoreTest.java
@@ -35,7 +35,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class FileIdempotentConsumerLoadStoreTest extends ContextTestSupport {
 
-    private File store = testFile("idempotentfilestore.dat").toFile();
     private IdempotentRepository repo;
 
     @Test
@@ -79,7 +78,7 @@ public class FileIdempotentConsumerLoadStoreTest extends ContextTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
-        testDirectory(true);
+        File store = testFile("idempotentfilestore.dat").toFile();
         try (FileOutputStream fos = new FileOutputStream(store)) {
             fos.write("4\n".getBytes());
         }
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentConsumerTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentConsumerTest.java
index 361a28d2191..e1db9ce91dc 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentConsumerTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentConsumerTest.java
@@ -34,7 +34,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class FileIdempotentConsumerTest extends ContextTestSupport {
 
-    private File store = testFile("idempotentfilestore.dat").toFile();
     private IdempotentRepository repo;
 
     @Test
@@ -78,6 +77,7 @@ public class FileIdempotentConsumerTest extends ContextTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() {
+        File store = testFile("idempotentfilestore.dat").toFile();
         return new RouteBuilder() {
             public void configure() {
                 repo = FileIdempotentRepository.fileIdempotentRepository(store);
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentRemoveTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentRemoveTest.java
index a307a2f4ca0..0d855ac6fc3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentRemoveTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentRemoveTest.java
@@ -30,12 +30,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class FileIdempotentRemoveTest extends ContextTestSupport {
 
-    private File store = testFile("idempotentfilestore.dat").toFile();
     private IdempotentRepository repo;
+    private File store;
 
     @Override
     @BeforeEach
     public void setUp() throws Exception {
+        store = testFile("idempotentfilestore.dat").toFile();
         // delete file store before testing
         if (store.exists()) {
             store.delete();
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentTrunkStoreTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentTrunkStoreTest.java
index 4abbe6041d8..56f15452699 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentTrunkStoreTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/FileIdempotentTrunkStoreTest.java
@@ -40,8 +40,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 public class FileIdempotentTrunkStoreTest extends ContextTestSupport {
     protected Endpoint startEndpoint;
     protected MockEndpoint resultEndpoint;
-    private File store = testFile("idempotentfilestore.dat").toFile();
     private IdempotentRepository repo;
+    private File store;
 
     @Test
     public void testTrunkFileStore() throws Exception {
@@ -90,6 +90,7 @@ public class FileIdempotentTrunkStoreTest extends ContextTestSupport {
     @Override
     @BeforeEach
     public void setUp() throws Exception {
+        store = testFile("idempotentfilestore.dat").toFile();
         // delete file store before testing
         if (store.exists()) {
             store.delete();
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/RouteFormattedUriTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/RouteFormattedUriTest.java
index 55442b7f99e..59f754c6726 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/RouteFormattedUriTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/RouteFormattedUriTest.java
@@ -23,7 +23,6 @@ import org.junit.jupiter.api.Test;
 
 public class RouteFormattedUriTest extends ContextTestSupport {
 
-    private String path = testDirectory().toString();
     private String name = "hello.txt";
     private String pattern = ".*txt$";
     private String result = "result";
@@ -40,6 +39,7 @@ public class RouteFormattedUriTest extends ContextTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
+        String path = testDirectory().toString();
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java
index 18268ea1bdf..9263d402c76 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteAllTasksTest.java
@@ -33,7 +33,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class ShutdownCompleteAllTasksTest extends ContextTestSupport {
 
-    private String url = fileUri("?initialDelay=0&delay=10&synchronous=true");
+    public static final String FILE_URI_QUERY = "?initialDelay=0&delay=10&synchronous=true";
+
     private AtomicInteger counter = new AtomicInteger();
     private CountDownLatch latch = new CountDownLatch(2);
 
@@ -41,7 +42,7 @@ public class ShutdownCompleteAllTasksTest extends ContextTestSupport {
     @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
-
+        String url = fileUri(FILE_URI_QUERY);
         template.sendBodyAndHeader(url, "A", Exchange.FILE_NAME, "a.txt");
         template.sendBodyAndHeader(url, "B", Exchange.FILE_NAME, "b.txt");
         template.sendBodyAndHeader(url, "C", Exchange.FILE_NAME, "c.txt");
@@ -80,7 +81,7 @@ public class ShutdownCompleteAllTasksTest extends ContextTestSupport {
             @Override
             // START SNIPPET: e1
             public void configure() throws Exception {
-                from(url).routeId("foo").noAutoStartup()
+                from(fileUri(FILE_URI_QUERY)).routeId("foo").noAutoStartup()
                         // let it complete all tasks during shutdown
                         .shutdownRunningTask(ShutdownRunningTask.CompleteAllTasks).process(new MyProcessor()).to("mock:bar");
             }
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteCurrentTaskOnlyTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteCurrentTaskOnlyTest.java
index 34fa700a992..a44660034e7 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteCurrentTaskOnlyTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/ShutdownCompleteCurrentTaskOnlyTest.java
@@ -28,13 +28,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class ShutdownCompleteCurrentTaskOnlyTest extends ContextTestSupport {
 
-    private String url = fileUri("?initialDelay=0&delay=10&synchronous=true");
+    public static final String FILE_QUERY = "?initialDelay=0&delay=10&synchronous=true";
 
     @Override
     @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
-
+        String url = fileUri(FILE_QUERY);
         template.sendBodyAndHeader(url, "A", Exchange.FILE_NAME, "a.txt");
         template.sendBodyAndHeader(url, "B", Exchange.FILE_NAME, "b.txt");
         template.sendBodyAndHeader(url, "C", Exchange.FILE_NAME, "c.txt");
@@ -61,6 +61,7 @@ public class ShutdownCompleteCurrentTaskOnlyTest extends ContextTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
+        String url = fileUri(FILE_QUERY);
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git a/core/camel-core/src/test/java/org/apache/camel/support/processor/idempotent/FileIdempotentStoreOrderingTest.java b/core/camel-core/src/test/java/org/apache/camel/support/processor/idempotent/FileIdempotentStoreOrderingTest.java
index e82ad4b77de..e6837ab669c 100644
--- a/core/camel-core/src/test/java/org/apache/camel/support/processor/idempotent/FileIdempotentStoreOrderingTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/support/processor/idempotent/FileIdempotentStoreOrderingTest.java
@@ -46,7 +46,7 @@ public class FileIdempotentStoreOrderingTest extends TestSupport {
     @Test
     public void testTrunkStoreNotMaxHit() throws Exception {
         // given
-        File fileStore = testDirectory(true).resolve("data.dat").toFile();
+        File fileStore = testDirectory().resolve("data.dat").toFile();
         fileIdempotentRepository.setFileStore(fileStore);
         fileIdempotentRepository.setCacheSize(10);
         fileIdempotentRepository.start();
@@ -70,7 +70,7 @@ public class FileIdempotentStoreOrderingTest extends TestSupport {
     @Test
     public void testTrunkStoreFirstLevelMaxHit() throws Exception {
         // given
-        File fileStore = testDirectory(true).resolve("data.dat").toFile();
+        File fileStore = testDirectory().resolve("data.dat").toFile();
         fileIdempotentRepository.setFileStore(fileStore);
         fileIdempotentRepository.setCacheSize(5);
         fileIdempotentRepository.start();
@@ -94,7 +94,7 @@ public class FileIdempotentStoreOrderingTest extends TestSupport {
     @Test
     public void testTrunkStoreFileMaxHit() throws Exception {
         // given
-        File fileStore = testDirectory(true).resolve("data.dat").toFile();
+        File fileStore = testDirectory().resolve("data.dat").toFile();
         fileIdempotentRepository.setFileStore(fileStore);
         fileIdempotentRepository.setCacheSize(5);
         fileIdempotentRepository.setMaxFileStoreSize(128);
diff --git a/core/camel-core/src/test/java/org/apache/camel/util/ResourceLoaderTest.java b/core/camel-core/src/test/java/org/apache/camel/util/ResourceLoaderTest.java
index 101c76924ad..fc999690339 100644
--- a/core/camel-core/src/test/java/org/apache/camel/util/ResourceLoaderTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/util/ResourceLoaderTest.java
@@ -62,7 +62,7 @@ public class ResourceLoaderTest extends TestSupport {
 
     @Test
     public void testLoadFileWithSpace() throws Exception {
-        createDirectory("target/data/my space");
+        testDirectory("target/data/my space", true);
         copyFile(new File("src/test/resources/log4j2.properties"), new File("target/data/my space/log4j2.properties"));
 
         DefaultCamelContext context = new DefaultCamelContext();
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedFileIdempotentClearTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedFileIdempotentClearTest.java
index 9322087b5f7..4c698708394 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedFileIdempotentClearTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedFileIdempotentClearTest.java
@@ -41,7 +41,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 @DisabledOnOs(OS.AIX)
 public class ManagedFileIdempotentClearTest extends ManagementTestSupport {
 
-    private File store = testFile("idempotentfilestore.dat").toFile();
     private IdempotentRepository repo;
 
     @Test
@@ -119,6 +118,7 @@ public class ManagedFileIdempotentClearTest extends ManagementTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() {
+        File store = testFile("idempotentfilestore.dat").toFile();
         return new RouteBuilder() {
             public void configure() {
                 repo = FileIdempotentRepository.fileIdempotentRepository(store);
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedFileIdempotentConsumerTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedFileIdempotentConsumerTest.java
index 13fbbcf6a44..5949e25429a 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedFileIdempotentConsumerTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedFileIdempotentConsumerTest.java
@@ -40,7 +40,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 @DisabledOnOs(OS.AIX)
 public class ManagedFileIdempotentConsumerTest extends ManagementTestSupport {
 
-    private File store = testFile("idempotentfilestore.dat").toFile();
     private IdempotentRepository repo;
 
     @Test
@@ -119,6 +118,7 @@ public class ManagedFileIdempotentConsumerTest extends ManagementTestSupport {
 
     @Override
     protected RouteBuilder createRouteBuilder() {
+        File store = testFile("idempotentfilestore.dat").toFile();
         return new RouteBuilder() {
             public void configure() {
                 repo = FileIdempotentRepository.fileIdempotentRepository(store);
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpStrategyTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpStrategyTest.java
index 0f405340a14..e1cb9b47baa 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpStrategyTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedRouteDumpStrategyTest.java
@@ -39,7 +39,6 @@ public class ManagedRouteDumpStrategyTest extends ManagementTestSupport {
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
-        testDirectory(true);
         String dir = testDirectory().toString();
 
         CamelContext context = super.createCamelContext();


(camel) 02/05: Fix TestSupport code that resolved fileUri and fix ResourceLoaderTest

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a4148675e309e18a3f2479c3bc7f0631c494c21a
Author: Anton Goncharov <go...@gmail.com>
AuthorDate: Tue Nov 7 20:45:38 2023 +0100

     Fix TestSupport code that resolved fileUri and fix ResourceLoaderTest
---
 .../apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java | 2 +-
 .../java/org/apache/camel/spring/processor/SpringTestHelper.java    | 2 +-
 core/camel-core/src/test/java/org/apache/camel/TestSupport.java     | 2 +-
 .../src/test/java/org/apache/camel/util/ResourceLoaderTest.java     | 6 +++---
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java
index 9d7491ee4a1..6da35580391 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/file/SpringSimpleFileNameWithQuoteTest.java
@@ -46,7 +46,7 @@ public class SpringSimpleFileNameWithQuoteTest extends SpringRunWithTestSupport
         result.expectedBodiesReceived(expectedBody);
         result.expectedHeaderReceived("foo", "\"hello.txt\" abc");
 
-        template.sendBodyAndHeader(fileUri(), expectedBody, Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri(tempDir, ""), expectedBody, Exchange.FILE_NAME, "hello.txt");
 
         result.assertIsSatisfied();
     }
diff --git a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTestHelper.java b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTestHelper.java
index a57b10e124a..77966561679 100644
--- a/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTestHelper.java
+++ b/components/camel-spring-xml/src/test/java/org/apache/camel/spring/processor/SpringTestHelper.java
@@ -48,7 +48,7 @@ public final class SpringTestHelper {
             DefaultCamelContext.setNoStart(true);
             applicationContext = new ClassPathXmlApplicationContext(new String[] { classpathUri }, false);
             applicationContext.getEnvironment().getSystemProperties().put(
-                PROPERTY_TEST_DIR, test.testDirectory().toString());
+                    PROPERTY_TEST_DIR, test.testDirectory().toString());
             applicationContext.refresh();
         } finally {
             DefaultCamelContext.setNoStart(isNoStart);
diff --git a/core/camel-core/src/test/java/org/apache/camel/TestSupport.java b/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
index 29604c205f3..fc53971b7b3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
+++ b/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
@@ -125,7 +125,7 @@ public abstract class TestSupport {
     }
 
     protected String fileUri(Path directory, String query) {
-        return "file:" + directory + (query.startsWith("?") ? "" : "/") + query;
+        return "file:" + testDirectory().resolve(directory) + (query.startsWith("?") ? "" : "/") + query;
     }
 
     protected boolean canRunOnThisPlatform() {
diff --git a/core/camel-core/src/test/java/org/apache/camel/util/ResourceLoaderTest.java b/core/camel-core/src/test/java/org/apache/camel/util/ResourceLoaderTest.java
index fc999690339..4ac6bc041ae 100644
--- a/core/camel-core/src/test/java/org/apache/camel/util/ResourceLoaderTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/util/ResourceLoaderTest.java
@@ -63,11 +63,11 @@ public class ResourceLoaderTest extends TestSupport {
     @Test
     public void testLoadFileWithSpace() throws Exception {
         testDirectory("target/data/my space", true);
-        copyFile(new File("src/test/resources/log4j2.properties"), new File("target/data/my space/log4j2.properties"));
+        copyFile(new File("src/test/resources/log4j2.properties"), testFile("target/data/my space/log4j2.properties").toFile());
 
         DefaultCamelContext context = new DefaultCamelContext();
-        Resource resource
-                = PluginHelper.getResourceLoader(context).resolveResource("file:target/data/my%20space/log4j2.properties");
+        Resource resource = PluginHelper.getResourceLoader(context).resolveResource(
+                "file:" + testDirectory().toString() + "/target/data/my%20space/log4j2.properties");
 
         try (InputStream is = resource.getInputStream()) {
             assertNotNull(is);


(camel) 05/05: Revert timeout values in FileConsumerFailureHandledTest, revert deleted methods and mark them as deprecated

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 20644e05dad0626bd94c9f25586df2097619ebec
Author: Anton Goncharov <go...@gmail.com>
AuthorDate: Wed Nov 15 21:00:49 2023 +0100

    Revert timeout values in FileConsumerFailureHandledTest, revert deleted methods and mark them as deprecated
---
 .../test/java/org/apache/camel/TestSupport.java    | 56 ++++++++++++++++++++++
 .../file/FileConsumerFailureHandledTest.java       |  6 +--
 2 files changed, 59 insertions(+), 3 deletions(-)

diff --git a/core/camel-core/src/test/java/org/apache/camel/TestSupport.java b/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
index 29604c205f3..986b6fae3a0 100644
--- a/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
+++ b/core/camel-core/src/test/java/org/apache/camel/TestSupport.java
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.lang.reflect.Method;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.Collection;
 import java.util.List;
 import java.util.Locale;
@@ -86,6 +87,10 @@ public abstract class TestSupport {
         Assumptions.assumeTrue(canRunOnThisPlatform());
     }
 
+    @Deprecated
+    public void deleteTestDirectory() {
+    }
+
     @AfterEach
     public void tearDown() throws Exception {
         // make sure we cleanup the platform mbean server
@@ -104,6 +109,24 @@ public abstract class TestSupport {
         return testDirectory(path, false);
     }
 
+    @Deprecated
+    protected Path testDirectory(boolean create) {
+        return testDirectory();
+    }
+
+    @Deprecated
+    public static Path testDirectory(Class<?> testClass, boolean create) {
+        Path dir = Paths.get("target", "data", testClass.getSimpleName());
+        if (create) {
+            try {
+                Files.createDirectories(dir);
+            } catch (IOException e) {
+                throw new IllegalStateException("Unable to create test directory: " + dir, e);
+            }
+        }
+        return dir;
+    }
+
     protected Path testDirectory(String path, boolean create) {
         Path resolvedPath = testDirectory().resolve(path);
         if (create) {
@@ -422,6 +445,39 @@ public abstract class TestSupport {
         }
     }
 
+    /**
+     * Recursively delete a directory, useful to zapping test data
+     *
+     * @param      file the directory to be deleted
+     * @deprecated      since updating the class to use junit5 @TempDir, it no longer should control temp directory
+     *                  lifecycle
+     */
+    @Deprecated
+    public static void deleteDirectory(String file) {
+        deleteDirectory(new File(file));
+    }
+
+    /**
+     * Recursively delete a directory, useful to zapping test data
+     *
+     * @param      file the directory to be deleted
+     * @deprecated      since updating the class to use junit5 @TempDir, it no longer should control temp directory
+     *                  lifecycle
+     */
+    @Deprecated
+    public static void deleteDirectory(File file) {
+        if (file.isDirectory()) {
+            File[] files = file.listFiles();
+            if (files != null) {
+                for (File child : files) {
+                    deleteDirectory(child);
+                }
+            }
+        }
+
+        file.delete();
+    }
+
     /**
      * To be used for folder/directory comparison that works across different platforms such as Window, Mac and Linux.
      */
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFailureHandledTest.java b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFailureHandledTest.java
index 70d79372256..d8d4cbd3778 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFailureHandledTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFailureHandledTest.java
@@ -57,7 +57,7 @@ public class FileConsumerFailureHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("London");
 
         template.sendBodyAndHeader(fileUri(), "London", Exchange.FILE_NAME, "london.txt");
-        mock.assertIsSatisfied(3000);
+        mock.assertIsSatisfied(1000);
 
         oneExchangeDone.matchesWaitTime();
 
@@ -72,7 +72,7 @@ public class FileConsumerFailureHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("Dublin");
 
         template.sendBodyAndHeader(fileUri(), "Dublin", Exchange.FILE_NAME, "dublin.txt");
-        mock.assertIsSatisfied(3000);
+        mock.assertIsSatisfied(1000);
 
         oneExchangeDone.matchesWaitTime();
 
@@ -87,7 +87,7 @@ public class FileConsumerFailureHandledTest extends ContextTestSupport {
         mock.expectedBodiesReceived("Madrid");
 
         template.sendBodyAndHeader(fileUri(), "Madrid", Exchange.FILE_NAME, "madrid.txt");
-        mock.assertIsSatisfied(3000);
+        mock.assertIsSatisfied(1000);
 
         oneExchangeDone.matchesWaitTime();