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

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


The following commit(s) were added to refs/heads/master by this push:
     new e7f272a  Make camel-quartz tests run in parallel
e7f272a is described below

commit e7f272a9969cb46144ffb3620eb739ba41a15bff
Author: Guillaume Nodet <[email protected]>
AuthorDate: Thu Mar 18 15:14:37 2021 +0100

    Make camel-quartz tests run in parallel
---
 components/camel-quartz/pom.xml                    | 16 ++---
 ...uartzAddRoutesAfterCamelContextStartedTest.java |  2 +-
 ...tzComponentCamelContextSharedSchedulerTest.java |  2 -
 .../quartz/QuartzEndpointConfigureTest.java        |  2 +-
 .../component/quartz/QuartzNameCollisionTest.java  |  6 --
 .../quartz/QuartzOneCamelContextRestartTest.java   |  1 -
 .../QuartzOneCamelContextSuspendResumeTest.java    |  1 -
 .../quartz/QuartzRouteFireNowOnlyOnceTest.java     |  2 +-
 .../component/quartz/QuartzRouteFireNowTest.java   |  2 +-
 .../component/quartz/QuartzSimpleRouteTest.java    |  4 +-
 .../quartz/QuartzTwoCamelContextRestartTest.java   |  3 +-
 .../QuartzTwoCamelContextSuspendResumeTest.java    |  2 -
 .../quartz/QuartzTwoCamelContextTest.java          |  3 -
 ...QuartzConsumerTwoAppsClusteredFailoverTest.java | 24 +++----
 ...QuartzConsumerTwoAppsClusteredRecoveryTest.java | 19 +++---
 .../quartz/SpringQuartzCronRouteTest.java          |  3 +-
 ...PersistentStoreRestartAppChangeOptionsTest.java | 42 ++++++------
 .../SpringQuartzPersistentStoreRestartAppTest.java | 15 ++--
 ...pringQuartzPersistentStoreRestartRouteTest.java |  3 +-
 .../quartz/SpringQuartzPersistentStoreTest.java    |  3 +-
 .../FileConsumerQuartzSchedulerRestartTest.java    | 21 ++----
 .../quartz/FileConsumerQuartzSchedulerTest.java    | 14 +---
 .../quartz/CronScheduledRoutePolicyTest.java       | 25 ++++---
 .../camel/routepolicy/quartz/NoBuilderTest.java    | 15 ++++
 .../quartz/SimpleScheduledRoutePolicyTest.java     | 24 ++++---
 .../quartz/SpringCronScheduledRoutePolicyTest.java | 22 ++++--
 .../SpringQuartzTwoAppsClusteredFailoverTest.java  | 23 ++++---
 .../quartz/SpringScheduledRoutePolicyTest.java     | 26 ++++---
 .../SpringSimpleScheduledRoutePolicyTest.java      | 22 ++++--
 .../SpringQuartzConsumerClusteredAppDatabase.xml   |  2 +-
 .../quartz/SpringQuartzConsumerClusteredAppOne.xml | 10 +--
 .../quartz/SpringQuartzConsumerClusteredAppTwo.xml | 10 +--
 ...SpringQuartzConsumerRecoveryClusteredAppOne.xml | 10 +--
 ...SpringQuartzConsumerRecoveryClusteredAppTwo.xml | 10 +--
 ...entStoreRestartAppChangeCronExpressionTest1.xml |  8 +--
 ...entStoreRestartAppChangeCronExpressionTest2.xml |  8 +--
 ...entStoreRestartAppChangeCronExpressionTest3.xml |  4 +-
 ...PersistentStoreRestartAppChangeOptionsTest1.xml |  8 +--
 ...PersistentStoreRestartAppChangeOptionsTest2.xml |  8 +--
 .../SpringQuartzPersistentStoreRestartTest.xml     | 10 +--
 .../quartz/SpringQuartzPersistentStoreTest.xml     | 10 +--
 .../quartz/SpringQuartzClusteredAppDatabase.xml    |  2 +-
 .../quartz/SpringQuartzClusteredAppOne.xml         | 10 +--
 .../quartz/SpringQuartzClusteredAppTwo.xml         | 10 +--
 .../test/spring/junit5/CamelSpringTestSupport.java | 79 ++++++++++++++++++++++
 parent/pom.xml                                     |  3 +
 46 files changed, 321 insertions(+), 228 deletions(-)

diff --git a/components/camel-quartz/pom.xml b/components/camel-quartz/pom.xml
index 83e2989..d5e511a 100644
--- a/components/camel-quartz/pom.xml
+++ b/components/camel-quartz/pom.xml
@@ -31,6 +31,11 @@
     <name>Camel :: Quartz</name>
     <description>Camel Quartz support</description>
 
+    <properties>
+        <camel.surefire.parallel>true</camel.surefire.parallel>
+        <camel.surefire.parallel.factor>4</camel.surefire.parallel.factor>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.camel</groupId>
@@ -108,15 +113,4 @@
         </dependency>
     </dependencies>
 
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <forkCount>1</forkCount>
-                    <reuseForks>false</reuseForks>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
 </project>
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java
index fc167af..796ed9c 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java
@@ -36,7 +36,7 @@ public class QuartzAddRoutesAfterCamelContextStartedTest 
extends BaseQuartzTest
         context.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                
from("quartz://myGroup/myTimerName?trigger.repeatInterval=1000&trigger.repeatCount=1").to("mock:result");
+                
from("quartz://myGroup/myTimerName?trigger.repeatInterval=100&trigger.repeatCount=1").to("mock:result");
             }
         });
 
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzComponentCamelContextSharedSchedulerTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzComponentCamelContextSharedSchedulerTest.java
index ce9269a..e87c76e 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzComponentCamelContextSharedSchedulerTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzComponentCamelContextSharedSchedulerTest.java
@@ -36,7 +36,6 @@ public class QuartzComponentCamelContextSharedSchedulerTest {
     @BeforeEach
     public void setUp() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -46,7 +45,6 @@ public class QuartzComponentCamelContextSharedSchedulerTest {
         camel1.start();
 
         camel2 = new DefaultCamelContext();
-        camel2.setName("camel-2");
 
         Scheduler camel1Scheduler = camel1.getComponent("quartz", 
QuartzComponent.class).getScheduler();
         QuartzComponent camel2QuartzComponent = camel2.getComponent("quartz", 
QuartzComponent.class);
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
index 378c0aa..17e9479 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
@@ -36,7 +36,7 @@ public class QuartzEndpointConfigureTest extends 
BaseQuartzTest {
     @Test
     public void testConfigureGroupAndName() throws Exception {
         QuartzEndpoint endpoint
-                = 
resolveMandatoryEndpoint("quartz://myGroup/myName?trigger.repeatCount=3&trigger.repeatInterval=1000");
+                = 
resolveMandatoryEndpoint("quartz://myGroup/myName?trigger.repeatCount=3&trigger.repeatInterval=100");
 
         Scheduler scheduler = endpoint.getComponent().getScheduler();
         TriggerKey triggerKey = endpoint.getTriggerKey();
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzNameCollisionTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzNameCollisionTest.java
index 579115f..cd42d98 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzNameCollisionTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzNameCollisionTest.java
@@ -40,7 +40,6 @@ public class QuartzNameCollisionTest {
     @Test
     public void testDupeName() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -64,7 +63,6 @@ public class QuartzNameCollisionTest {
     @Test
     public void testDupeNameMultiContext() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -74,7 +72,6 @@ public class QuartzNameCollisionTest {
         camel1.start();
 
         camel2 = new DefaultCamelContext();
-        camel2.setName("camel-2");
         camel2.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -90,7 +87,6 @@ public class QuartzNameCollisionTest {
     @Test
     public void testNoStatefulCollisionError() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -100,7 +96,6 @@ public class QuartzNameCollisionTest {
         camel1.start();
 
         camel2 = new DefaultCamelContext();
-        camel2.setName("camel-2");
         camel2.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -145,7 +140,6 @@ public class QuartzNameCollisionTest {
     @Test
     public void testRemoveJob() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzOneCamelContextRestartTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzOneCamelContextRestartTest.java
index c19f5ae..5d56015 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzOneCamelContextRestartTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzOneCamelContextRestartTest.java
@@ -30,7 +30,6 @@ public class QuartzOneCamelContextRestartTest {
     @BeforeEach
     public void setUp() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzOneCamelContextSuspendResumeTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzOneCamelContextSuspendResumeTest.java
index a714f44..0265b8c 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzOneCamelContextSuspendResumeTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzOneCamelContextSuspendResumeTest.java
@@ -30,7 +30,6 @@ public class QuartzOneCamelContextSuspendResumeTest {
     @BeforeEach
     public void setUp() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteFireNowOnlyOnceTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteFireNowOnlyOnceTest.java
index d901937..9d84e7b 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteFireNowOnlyOnceTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteFireNowOnlyOnceTest.java
@@ -40,7 +40,7 @@ public class QuartzRouteFireNowOnlyOnceTest extends 
BaseQuartzTest {
         return new RouteBuilder() {
             public void configure() {
                 // START SNIPPET: example
-                
from("quartz://myGroup/myTimerName?fireNow=true&trigger.repeatInterval=2000&trigger.repeatCount=0")
+                
from("quartz://myGroup/myTimerName?fireNow=true&trigger.repeatInterval=100&trigger.repeatCount=0")
                         .to("log:quartz")
                         .to("mock:result");
                 // END SNIPPET: example
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteFireNowTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteFireNowTest.java
index 98236e9..8beb6b4 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteFireNowTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteFireNowTest.java
@@ -40,7 +40,7 @@ public class QuartzRouteFireNowTest extends BaseQuartzTest {
         return new RouteBuilder() {
             public void configure() {
                 // START SNIPPET: example
-                
from("quartz://myGroup/myTimerName?fireNow=true&trigger.repeatInterval=2000&trigger.repeatCount=2")
+                
from("quartz://myGroup/myTimerName?fireNow=true&trigger.repeatInterval=100&trigger.repeatCount=2")
                         .to("log:quartz")
                         .to("mock:result");
                 // END SNIPPET: example
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzSimpleRouteTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzSimpleRouteTest.java
index 854107ce..924ec40 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzSimpleRouteTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzSimpleRouteTest.java
@@ -46,7 +46,7 @@ public class QuartzSimpleRouteTest extends BaseQuartzTest {
         
assertThat(detail.getJobDataMap().get(QuartzConstants.QUARTZ_TRIGGER_TYPE).equals("simple"),
 CoreMatchers.is(true));
         
assertThat(detail.getJobDataMap().get(QuartzConstants.QUARTZ_TRIGGER_SIMPLE_REPEAT_COUNTER).equals(-1),
                 CoreMatchers.is(true));
-        
assertThat(detail.getJobDataMap().get(QuartzConstants.QUARTZ_TRIGGER_SIMPLE_REPEAT_INTERVAL).equals(2000L),
+        
assertThat(detail.getJobDataMap().get(QuartzConstants.QUARTZ_TRIGGER_SIMPLE_REPEAT_INTERVAL).equals(100L),
                 CoreMatchers.is(true));
     }
 
@@ -54,7 +54,7 @@ public class QuartzSimpleRouteTest extends BaseQuartzTest {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                
from("quartz://myGroup/myTimerName?trigger.repeatInterval=2000&trigger.repeatCount=-1").to("mock:result");
+                
from("quartz://myGroup/myTimerName?trigger.repeatInterval=100&trigger.repeatCount=-1").to("mock:result");
             }
         };
     }
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextRestartTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextRestartTest.java
index 7a76ac1..1844a9c 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextRestartTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextRestartTest.java
@@ -31,7 +31,6 @@ public class QuartzTwoCamelContextRestartTest {
     @BeforeEach
     public void setUp() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -41,7 +40,7 @@ public class QuartzTwoCamelContextRestartTest {
         camel1.start();
 
         camel2 = new DefaultCamelContext();
-        camel2.setName("camel-2");
+        camel2.getComponent("quartz", 
QuartzComponent.class).setEnableJmx(false);
         camel2.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextSuspendResumeTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextSuspendResumeTest.java
index fec64eb..0616203 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextSuspendResumeTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextSuspendResumeTest.java
@@ -31,7 +31,6 @@ public class QuartzTwoCamelContextSuspendResumeTest {
     @BeforeEach
     public void setUp() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -41,7 +40,6 @@ public class QuartzTwoCamelContextSuspendResumeTest {
         camel1.start();
 
         camel2 = new DefaultCamelContext();
-        camel2.setName("camel-2");
         camel2.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextTest.java
index 998344e..2f24d4c 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzTwoCamelContextTest.java
@@ -31,7 +31,6 @@ public class QuartzTwoCamelContextTest {
     @BeforeEach
     public void setUp() throws Exception {
         camel1 = new DefaultCamelContext();
-        camel1.setName("camel-1");
         camel1.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -41,7 +40,6 @@ public class QuartzTwoCamelContextTest {
         camel1.start();
 
         camel2 = new DefaultCamelContext();
-        camel2.setName("camel-2");
         camel2.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
@@ -80,7 +78,6 @@ public class QuartzTwoCamelContextTest {
         camel2.stop();
 
         DefaultCamelContext camel3 = new DefaultCamelContext();
-        camel3.setName("camel-3");
         camel3.addRoutes(new RouteBuilder() {
             @Override
             public void configure() throws Exception {
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzConsumerTwoAppsClusteredFailoverTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzConsumerTwoAppsClusteredFailoverTest.java
index a3ccd0a..50cf0b2 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzConsumerTwoAppsClusteredFailoverTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzConsumerTwoAppsClusteredFailoverTest.java
@@ -20,12 +20,12 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Predicate;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.camel.util.IOHelper;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 /**
  * Tests a Quartz based cluster setup of two Camel Apps being triggered 
through {@link QuartzConsumer}.
@@ -37,29 +37,23 @@ public class 
SpringQuartzConsumerTwoAppsClusteredFailoverTest {
     @Test
     public void testQuartzPersistentStoreClusteredApp() throws Exception {
         // boot up the database the two apps are going to share inside a 
clustered quartz setup
-        AbstractXmlApplicationContext db = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppDatabase.xml");
+        AbstractXmlApplicationContext db = 
newAppContext("SpringQuartzConsumerClusteredAppDatabase.xml");
         db.start();
 
         // now launch the first clustered app which will acquire the quartz 
database lock and become the master
-        AbstractXmlApplicationContext app = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppOne.xml");
+        AbstractXmlApplicationContext app = 
newAppContext("SpringQuartzConsumerClusteredAppOne.xml");
         app.start();
 
         // as well as the second one which will run in slave mode as it will 
not be able to acquire the same lock
-        AbstractXmlApplicationContext app2 = new 
ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppTwo.xml");
+        AbstractXmlApplicationContext app2 = 
newAppContext("SpringQuartzConsumerClusteredAppTwo.xml");
         app2.start();
 
-        CamelContext camel = app.getBean("camelContext", CamelContext.class);
+        CamelContext camel = app.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
 
         MockEndpoint mock = camel.getEndpoint("mock:result", 
MockEndpoint.class);
         mock.expectedMinimumMessageCount(3);
         mock.expectedMessagesMatches(new ClusteringPredicate(true));
 
-        // let the route run a bit...
-        Thread.sleep(5000);
-
         mock.assertIsSatisfied();
 
         // now let's simulate a crash of the first app (the quartz instance 
'app-one')
@@ -71,7 +65,7 @@ public class SpringQuartzConsumerTwoAppsClusteredFailoverTest 
{
         log.warn("Crashed...");
 
         // wait long enough until the second app takes it over...
-        Thread.sleep(20000);
+        Thread.sleep(2000);
         // inside the logs one can then clearly see how the route of the 
second app ('app-two') starts consuming:
         // 2013-09-30 11:22:20,349 [main           ] WARN  
erTwoAppsClusteredFailoverTest - Crashed...
         // 2013-09-30 11:22:20,349 [main           ] WARN  
erTwoAppsClusteredFailoverTest - Crashed...
@@ -80,7 +74,7 @@ public class SpringQuartzConsumerTwoAppsClusteredFailoverTest 
{
         // 2013-09-30 11:22:35,340 [_ClusterManager] INFO  
LocalDataSourceJobStore        - ClusterManager: Scanning for instance 
"app-one"'s failed in-progress jobs.
         // 2013-09-30 11:22:35,369 [eduler_Worker-1] INFO  triggered           
           - Exchange[ExchangePattern: InOnly, BodyType: String, Body: 
clustering PONGS!]
 
-        CamelContext camel2 = app2.getBean("camelContext2", 
CamelContext.class);
+        CamelContext camel2 = app2.getBean("camelContext2-" + 
getClass().getSimpleName(), CamelContext.class);
 
         MockEndpoint mock2 = camel2.getEndpoint("mock:result", 
MockEndpoint.class);
         mock2.expectedMinimumMessageCount(3);
@@ -92,6 +86,10 @@ public class 
SpringQuartzConsumerTwoAppsClusteredFailoverTest {
         IOHelper.close(app2, db);
     }
 
+    private AbstractXmlApplicationContext newAppContext(String config) {
+        return CamelSpringTestSupport.newAppContext(config, getClass());
+    }
+
     private static class ClusteringPredicate implements Predicate {
 
         private final String expectedPayload;
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzConsumerTwoAppsClusteredRecoveryTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzConsumerTwoAppsClusteredRecoveryTest.java
index 9735e7c..8e6f7f5 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzConsumerTwoAppsClusteredRecoveryTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzConsumerTwoAppsClusteredRecoveryTest.java
@@ -21,6 +21,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.camel.util.IOHelper;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
@@ -29,7 +30,6 @@ import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 /**
  * Tests a Quartz based cluster setup of two Camel Apps being triggered 
through with recoverableJob option is true
@@ -42,12 +42,10 @@ public class 
SpringQuartzConsumerTwoAppsClusteredRecoveryTest {
     @Test
     public void testQuartzPersistentStoreClusteredApp() throws Exception {
         // boot up the database the two apps are going to share inside a 
clustered quartz setup
-        AbstractXmlApplicationContext db = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppDatabase.xml");
+        AbstractXmlApplicationContext db = 
newAppContext("SpringQuartzConsumerClusteredAppDatabase.xml");
 
         // now launch the first clustered app which will acquire the quartz 
database lock and become the master
-        AbstractXmlApplicationContext app = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppOne.xml");
+        AbstractXmlApplicationContext app = 
newAppContext("SpringQuartzConsumerRecoveryClusteredAppOne.xml");
 
         // now let's simulate a crash of the first app (the quartz instance 
'app-one')
         log.warn("The first app is going to crash NOW!");
@@ -60,12 +58,11 @@ public class 
SpringQuartzConsumerTwoAppsClusteredRecoveryTest {
         Thread.sleep(2000);
 
         // as well as the second one which will run in slave mode as it will 
not be able to acquire the same lock
-        AbstractXmlApplicationContext app2 = new 
ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppTwo.xml");
+        AbstractXmlApplicationContext app2 = 
newAppContext("SpringQuartzConsumerRecoveryClusteredAppTwo.xml");
         app2.start();
 
         // wait long enough until the second app takes it over...
-        Thread.sleep(20000);
+        Thread.sleep(2000);
         // inside the logs one can then clearly see how the route of the 
second app ('app-two') starts consuming:
         // 2013-09-30 11:22:20,349 [main           ] WARN  
erTwoAppsClusteredFailoverTest - Crashed...
         // 2013-09-30 11:22:20,349 [main           ] WARN  
erTwoAppsClusteredFailoverTest - Crashed...
@@ -74,7 +71,7 @@ public class SpringQuartzConsumerTwoAppsClusteredRecoveryTest 
{
         // 2013-09-30 11:22:35,340 [_ClusterManager] INFO  
LocalDataSourceJobStore        - ClusterManager: Scanning for instance 
"app-one"'s failed in-progress jobs.
         // 2013-09-30 11:22:35,369 [eduler_Worker-1] INFO  triggered           
           - Exchange[ExchangePattern: InOnly, BodyType: String, Body: 
clustering PONGS!]
 
-        CamelContext camel2 = app2.getBean("camelContext2", 
CamelContext.class);
+        CamelContext camel2 = app2.getBean("camelContext2-" + 
getClass().getSimpleName(), CamelContext.class);
 
         MockEndpoint mock2 = camel2.getEndpoint("mock:result", 
MockEndpoint.class);
         mock2.expectedMinimumMessageCount(2);
@@ -86,6 +83,10 @@ public class 
SpringQuartzConsumerTwoAppsClusteredRecoveryTest {
         IOHelper.close(app2, db);
     }
 
+    private AbstractXmlApplicationContext newAppContext(String config) {
+        return CamelSpringTestSupport.newAppContext(config, getClass());
+    }
+
     private static class ClusteringPredicate implements Predicate {
 
         private final String expectedPayload;
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzCronRouteTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzCronRouteTest.java
index e2aeb07..e83b6d1 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzCronRouteTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzCronRouteTest.java
@@ -20,13 +20,12 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class SpringQuartzCronRouteTest extends CamelSpringTestSupport {
 
     @Override
     protected AbstractXmlApplicationContext createApplicationContext() {
-        return new 
ClassPathXmlApplicationContext("org/apache/camel/component/quartz/SpringQuartzCronRouteTest.xml");
+        return newAppContext("SpringQuartzCronRouteTest.xml");
     }
 
     @Test
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest.java
index 671b543..fdd647b 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.quartz;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.camel.util.IOHelper;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
@@ -30,7 +31,6 @@ import org.quartz.Trigger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@ -50,8 +50,7 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
     @BeforeAll
     public static void prepareDB() {
         // boot up the database the two invocations are going to share inside 
a clustered quartz setup
-        db = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppDatabase.xml");
+        db = newAppContext("SpringQuartzConsumerClusteredAppDatabase.xml");
         db.start();
     }
 
@@ -76,10 +75,9 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
         // After that it asserts that two cron expressions are not equal.
 
         // load spring app
-        app = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest1.xml");
+        app = 
newAppContext("SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest1.xml");
         app.start();
-        CamelContext camel = app.getBean("camelContext", CamelContext.class);
+        CamelContext camel = app.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
         assertNotNull(camel);
         String cronExpression = ((CronTrigger) getTrigger(camel, 
"quartzRoute")).getCronExpression();
         app.stop();
@@ -89,10 +87,9 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
         log.info("Restarting ...");
 
         // load spring app
-        app2 = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest2.xml");
+        app2 = 
newAppContext("SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest2.xml");
         app2.start();
-        CamelContext camel2 = app2.getBean("camelContext", CamelContext.class);
+        CamelContext camel2 = app2.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
         assertNotNull(camel2);
         String cronExpression2 = ((CronTrigger) getTrigger(camel2, 
"quartzRoute")).getCronExpression();
         app2.stop();
@@ -100,8 +97,7 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
         assertNotEquals(cronExpression, cronExpression2);
 
         // load spring app
-        app3 = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest3.xml");
+        app3 = 
newAppContext("SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest3.xml");
         app3.start();
         CamelContext camel3 = app3.getBean("camelContext3", 
CamelContext.class);
         assertNotNull(camel3);
@@ -119,10 +115,9 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
         // After that it asserts that two options are not equal.
 
         // load spring app
-        AbstractXmlApplicationContext app = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest1.xml");
+        AbstractXmlApplicationContext app = 
newAppContext("SpringQuartzPersistentStoreRestartAppChangeOptionsTest1.xml");
         app.start();
-        CamelContext camel = app.getBean("camelContext", CamelContext.class);
+        CamelContext camel = app.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
         assertNotNull(camel);
         SimpleTrigger trigger = (SimpleTrigger) getTrigger(camel, 
"quartzRoute");
         long repeatInterval = trigger.getRepeatInterval();
@@ -133,10 +128,9 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
         log.info("Restarting ...");
 
         // load spring app
-        AbstractXmlApplicationContext app2 = new 
ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest2.xml");
+        AbstractXmlApplicationContext app2 = 
newAppContext("SpringQuartzPersistentStoreRestartAppChangeOptionsTest2.xml");
         app2.start();
-        CamelContext camel2 = app2.getBean("camelContext", CamelContext.class);
+        CamelContext camel2 = app2.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
         assertNotNull(camel2);
         SimpleTrigger trigger2 = (SimpleTrigger) getTrigger(camel2, 
"quartzRoute");
         long repeatInterval2 = trigger2.getRepeatInterval();
@@ -158,10 +152,9 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
         // After that it asserts that two options are not equal.
 
         // load spring app
-        app = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest1.xml");
+        app = 
newAppContext("SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest1.xml");
         app.start();
-        CamelContext camel = app.getBean("camelContext", CamelContext.class);
+        CamelContext camel = app.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
         assertNotNull(camel);
         assertTrue(getTrigger(camel, "quartzRoute") instanceof CronTrigger);
         app.stop();
@@ -171,10 +164,9 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
         log.info("Restarting ...");
 
         // load spring app
-        AbstractXmlApplicationContext app2 = new 
ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest2.xml");
+        AbstractXmlApplicationContext app2 = 
newAppContext("SpringQuartzPersistentStoreRestartAppChangeOptionsTest2.xml");
         app2.start();
-        CamelContext camel2 = app2.getBean("camelContext", CamelContext.class);
+        CamelContext camel2 = app2.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
         assertNotNull(camel2);
         assertTrue(getTrigger(camel2, "quartzRoute") instanceof SimpleTrigger);
         app2.stop();
@@ -192,4 +184,8 @@ public class 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest {
         return scheduler.getTrigger(endpoint.getTriggerKey());
     }
 
+    private static AbstractXmlApplicationContext newAppContext(String config) {
+        return CamelSpringTestSupport.newAppContext(config, 
SpringQuartzPersistentStoreRestartAppChangeOptionsTest.class);
+    }
+
 }
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppTest.java
index dfe774d..2765ae8 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppTest.java
@@ -18,12 +18,12 @@ package org.apache.camel.component.quartz;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.camel.util.IOHelper;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
@@ -35,11 +35,11 @@ public class SpringQuartzPersistentStoreRestartAppTest {
     public void testQuartzPersistentStoreRestart() throws Exception {
         // load spring app
         AbstractXmlApplicationContext app
-                = new 
ClassPathXmlApplicationContext("org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.xml");
+                = newAppContext("SpringQuartzPersistentStoreTest.xml");
 
         app.start();
 
-        CamelContext camel = app.getBean("camelContext", CamelContext.class);
+        CamelContext camel = app.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
         assertNotNull(camel);
 
         MockEndpoint mock = camel.getEndpoint("mock:result", 
MockEndpoint.class);
@@ -61,12 +61,11 @@ public class SpringQuartzPersistentStoreRestartAppTest {
         // is supposed to handle and start again
 
         // load spring app
-        AbstractXmlApplicationContext app2 = new 
ClassPathXmlApplicationContext(
-                
"org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartTest.xml");
+        AbstractXmlApplicationContext app2 = 
newAppContext("SpringQuartzPersistentStoreRestartTest.xml");
 
         app2.start();
 
-        CamelContext camel2 = app2.getBean("camelContext", CamelContext.class);
+        CamelContext camel2 = app2.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
         assertNotNull(camel2);
 
         MockEndpoint mock2 = camel2.getEndpoint("mock:result", 
MockEndpoint.class);
@@ -82,4 +81,8 @@ public class SpringQuartzPersistentStoreRestartAppTest {
         IOHelper.close(app2, app);
     }
 
+    private AbstractXmlApplicationContext newAppContext(String config) {
+        return CamelSpringTestSupport.newAppContext(config, getClass());
+    }
+
 }
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartRouteTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartRouteTest.java
index 36831a4..a4f302f 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartRouteTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartRouteTest.java
@@ -20,7 +20,6 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 import static org.apache.camel.test.junit5.TestSupport.isPlatform;
 import static org.junit.jupiter.api.Assumptions.assumeFalse;
@@ -29,7 +28,7 @@ public class SpringQuartzPersistentStoreRestartRouteTest 
extends CamelSpringTest
 
     @Override
     protected AbstractXmlApplicationContext createApplicationContext() {
-        return new 
ClassPathXmlApplicationContext("org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.xml");
+        return newAppContext("SpringQuartzPersistentStoreTest.xml");
     }
 
     @Test
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.java
index 996a946..81af4d1 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.java
@@ -20,13 +20,12 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class SpringQuartzPersistentStoreTest extends CamelSpringTestSupport {
 
     @Override
     protected AbstractXmlApplicationContext createApplicationContext() {
-        return new 
ClassPathXmlApplicationContext("org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.xml");
+        return newAppContext("SpringQuartzPersistentStoreTest.xml");
     }
 
     @Test
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/pollconsumer/quartz/FileConsumerQuartzSchedulerRestartTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/pollconsumer/quartz/FileConsumerQuartzSchedulerRestartTest.java
index f9896fb..e7c9de2 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/pollconsumer/quartz/FileConsumerQuartzSchedulerRestartTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/pollconsumer/quartz/FileConsumerQuartzSchedulerRestartTest.java
@@ -19,24 +19,14 @@ package org.apache.camel.pollconsumer.quartz;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
-
 public class FileConsumerQuartzSchedulerRestartTest extends CamelTestSupport {
 
-    @Override
-    @BeforeEach
-    public void setUp() throws Exception {
-        deleteDirectory("target/file/quartz");
-        super.setUp();
-    }
-
     @Test
     public void testQuartzSchedulerRestart() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
-        template.sendBodyAndHeader("file:target/file/quartz", "Hello World", 
Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri(), "Hello World", 
Exchange.FILE_NAME, "hello.txt");
         context.getRouteController().startRoute("foo");
         assertMockEndpointsSatisfied();
 
@@ -44,7 +34,7 @@ public class FileConsumerQuartzSchedulerRestartTest extends 
CamelTestSupport {
         resetMocks();
 
         getMockEndpoint("mock:result").expectedMessageCount(1);
-        template.sendBodyAndHeader("file:target/file/quartz", "Bye World", 
Exchange.FILE_NAME, "bye.txt");
+        template.sendBodyAndHeader(fileUri(), "Bye World", Exchange.FILE_NAME, 
"bye.txt");
         context.getRouteController().startRoute("foo");
         assertMockEndpointsSatisfied();
     }
@@ -54,9 +44,10 @@ public class FileConsumerQuartzSchedulerRestartTest extends 
CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                
from("file:target/file/quartz?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?&scheduler.triggerGroup=myGroup&scheduler.triggerId=myId")
-                        .routeId("foo").noAutoStartup()
-                        .to("mock:result");
+                from(fileUri(
+                        
"?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?&scheduler.triggerGroup=myGroup&scheduler.triggerId=myId"))
+                                .routeId("foo").noAutoStartup()
+                                .to("mock:result");
             }
         };
     }
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/pollconsumer/quartz/FileConsumerQuartzSchedulerTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/pollconsumer/quartz/FileConsumerQuartzSchedulerTest.java
index 57f3281..dd7a1ee 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/pollconsumer/quartz/FileConsumerQuartzSchedulerTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/pollconsumer/quartz/FileConsumerQuartzSchedulerTest.java
@@ -19,25 +19,15 @@ package org.apache.camel.pollconsumer.quartz;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
-
 public class FileConsumerQuartzSchedulerTest extends CamelTestSupport {
 
-    @Override
-    @BeforeEach
-    public void setUp() throws Exception {
-        deleteDirectory("target/file/quartz");
-        super.setUp();
-    }
-
     @Test
     public void testQuartzScheduler() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
-        template.sendBodyAndHeader("file:target/file/quartz", "Hello World", 
Exchange.FILE_NAME, "hello.txt");
+        template.sendBodyAndHeader(fileUri(), "Hello World", 
Exchange.FILE_NAME, "hello.txt");
 
         context.getRouteController().startRoute("foo");
 
@@ -49,7 +39,7 @@ public class FileConsumerQuartzSchedulerTest extends 
CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                
from("file:target/file/quartz?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?").routeId("foo").noAutoStartup()
+                
from(fileUri("?scheduler=quartz&scheduler.cron=0/2+*+*+*+*+?")).routeId("foo").noAutoStartup()
                         .to("mock:result");
             }
         };
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java
index 470c94c..dafee85 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicyTest.java
@@ -28,19 +28,15 @@ import org.apache.camel.component.direct.DirectComponent;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.quartz.QuartzComponent;
 import org.apache.camel.support.service.ServiceHelper;
-import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 
 import static org.junit.jupiter.api.Assertions.assertSame;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-public class CronScheduledRoutePolicyTest extends CamelTestSupport {
-
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
+public class CronScheduledRoutePolicyTest {
+}
 
+class CronTest1 extends NoBuilderTest {
     @Test
     public void testScheduledStartRoutePolicyWithTwoRoutes() throws Exception {
         MockEndpoint success1 = context.getEndpoint("mock:success1", 
MockEndpoint.class);
@@ -81,7 +77,9 @@ public class CronScheduledRoutePolicyTest extends 
CamelTestSupport {
         success1.assertIsSatisfied();
         success2.assertIsSatisfied();
     }
+}
 
+class CronTest2 extends NoBuilderTest {
     @Test
     public void testScheduledStopRoutePolicyWithTwoRoutes() throws Exception {
         context.getComponent("direct", DirectComponent.class).setBlock(false);
@@ -112,7 +110,9 @@ public class CronScheduledRoutePolicyTest extends 
CamelTestSupport {
         assertSame(ServiceStatus.Stopped, 
context.getRouteController().getRouteStatus("test1"));
         assertSame(ServiceStatus.Stopped, 
context.getRouteController().getRouteStatus("test2"));
     }
+}
 
+class CronTest3 extends NoBuilderTest {
     @Test
     public void testScheduledStartRoutePolicy() throws Exception {
         MockEndpoint success = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -143,7 +143,9 @@ public class CronScheduledRoutePolicyTest extends 
CamelTestSupport {
         context.getComponent("quartz", QuartzComponent.class).stop();
         success.assertIsSatisfied();
     }
+}
 
+class CronTest4 extends NoBuilderTest {
     @Test
     public void testScheduledStopRoutePolicy() throws Exception {
         context.getComponent("direct", DirectComponent.class).setBlock(false);
@@ -167,7 +169,9 @@ public class CronScheduledRoutePolicyTest extends 
CamelTestSupport {
         Thread.sleep(5000);
         assertSame(ServiceStatus.Stopped, 
context.getRouteController().getRouteStatus("test"));
     }
+}
 
+class CronTest5 extends NoBuilderTest {
     @Test
     public void testScheduledStartAndStopRoutePolicy() throws Exception {
         MockEndpoint success = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -223,7 +227,9 @@ public class CronScheduledRoutePolicyTest extends 
CamelTestSupport {
 
         success.assertIsSatisfied();
     }
+}
 
+class CronTest6 extends NoBuilderTest {
     @Test
     public void testScheduledStopRoutePolicyWithExtraPolicy() throws Exception 
{
         final MyRoutePolicy myPolicy = new MyRoutePolicy();
@@ -252,7 +258,9 @@ public class CronScheduledRoutePolicyTest extends 
CamelTestSupport {
         assertTrue(myPolicy.isStart(), "Should have called onStart");
         assertTrue(myPolicy.isStop(), "Should have called onStop");
     }
+}
 
+class CronTest7 extends NoBuilderTest {
     @Test
     public void testScheduledSuspendRoutePolicy() throws Exception {
         context.getComponent("direct", DirectComponent.class).setBlock(false);
@@ -279,7 +287,9 @@ public class CronScheduledRoutePolicyTest extends 
CamelTestSupport {
         SuspendableService ss = (SuspendableService) consumer;
         assertTrue(ss.isSuspended(), "Consumer should be suspended");
     }
+}
 
+class CronTest8 extends NoBuilderTest {
     @Test
     public void testScheduledResumeRoutePolicy() throws Exception {
         MockEndpoint success = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -310,5 +320,4 @@ public class CronScheduledRoutePolicyTest extends 
CamelTestSupport {
 
         success.assertIsSatisfied();
     }
-
 }
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/NoBuilderTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/NoBuilderTest.java
new file mode 100644
index 0000000..1b465a3
--- /dev/null
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/NoBuilderTest.java
@@ -0,0 +1,15 @@
+package org.apache.camel.routepolicy.quartz;
+
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+class NoBuilderTest extends CamelTestSupport {
+
+    static final Logger LOG = 
LoggerFactory.getLogger(SimpleScheduledRoutePolicyTest.class);
+
+    @Override
+    public boolean isUseRouteBuilder() {
+        return false;
+    }
+}
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
index ace5c24..06edac4 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicyTest.java
@@ -26,23 +26,16 @@ import org.apache.camel.component.direct.DirectComponent;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.component.quartz.QuartzComponent;
 import org.apache.camel.support.service.ServiceHelper;
-import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import static org.junit.jupiter.api.Assertions.assertSame;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
-public class SimpleScheduledRoutePolicyTest extends CamelTestSupport {
-    private static final Logger LOG = 
LoggerFactory.getLogger(SimpleScheduledRoutePolicyTest.class);
-
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
+public class SimpleScheduledRoutePolicyTest {
+}
 
+class SimpleTest1 extends NoBuilderTest {
     @Test
     public void testScheduledStartRoutePolicy() throws Exception {
         MockEndpoint success = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -75,7 +68,9 @@ public class SimpleScheduledRoutePolicyTest extends 
CamelTestSupport {
         context.getComponent("quartz", QuartzComponent.class).stop();
         success.assertIsSatisfied();
     }
+}
 
+class SimpleTest2 extends NoBuilderTest {
     @Test
     public void testScheduledStopRoutePolicy() throws Exception {
         context.getComponent("direct", DirectComponent.class).setBlock(false);
@@ -110,7 +105,9 @@ public class SimpleScheduledRoutePolicyTest extends 
CamelTestSupport {
         assertTrue(consumerStopped);
         context.getComponent("quartz", QuartzComponent.class).stop();
     }
+}
 
+class SimpleTest3 extends NoBuilderTest {
     @Test
     public void testScheduledSuspendRoutePolicy() throws Exception {
         context.getComponent("direct", DirectComponent.class).setBlock(false);
@@ -143,7 +140,9 @@ public class SimpleScheduledRoutePolicyTest extends 
CamelTestSupport {
         assertTrue(consumerSuspended);
         context.getComponent("quartz", QuartzComponent.class).stop();
     }
+}
 
+class SimpleTest4 extends NoBuilderTest {
     @Test
     public void testScheduledResumeRoutePolicy() throws Exception {
         MockEndpoint success = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -182,7 +181,9 @@ public class SimpleScheduledRoutePolicyTest extends 
CamelTestSupport {
         context.getComponent("quartz", QuartzComponent.class).stop();
         success.assertIsSatisfied();
     }
+}
 
+class SimpleTest5 extends NoBuilderTest {
     @Test
     public void testScheduledSuspendAndResumeRoutePolicy() throws Exception {
         MockEndpoint success = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -225,7 +226,9 @@ public class SimpleScheduledRoutePolicyTest extends 
CamelTestSupport {
         context.getComponent("quartz", QuartzComponent.class).stop();
         success.assertIsSatisfied();
     }
+}
 
+class SimpleTest6 extends NoBuilderTest {
     @Test
     public void testScheduledSuspendAndRestartPolicy() throws Exception {
         MockEndpoint success = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -267,5 +270,4 @@ public class SimpleScheduledRoutePolicyTest extends 
CamelTestSupport {
         context.getComponent("quartz", QuartzComponent.class).stop();
         success.assertIsSatisfied();
     }
-
 }
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringCronScheduledRoutePolicyTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringCronScheduledRoutePolicyTest.java
index 841d990..1ee1c8f 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringCronScheduledRoutePolicyTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringCronScheduledRoutePolicyTest.java
@@ -16,36 +16,46 @@
  */
 package org.apache.camel.routepolicy.quartz;
 
-import org.junit.jupiter.api.BeforeEach;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.junit.jupiter.api.Test;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
 
-public class SpringCronScheduledRoutePolicyTest extends 
SpringScheduledRoutePolicyTest {
+public abstract class SpringCronScheduledRoutePolicyTest extends 
SpringScheduledRoutePolicyTest {
 
-    @BeforeEach
     public void setUp() {
-        setApplicationContext(new 
ClassPathXmlApplicationContext("org/apache/camel/routepolicy/quartz/CronPolicies.xml"));
+        setApplicationContext(newAppContext("CronPolicies.xml"));
         setTestType(TestType.CRON);
     }
 
+    private AbstractXmlApplicationContext newAppContext(String config) {
+        return CamelSpringTestSupport.newAppContext(config, getClass());
+    }
+}
+
+class Test1SpringCronScheduledRoutePolicyTest extends 
SpringCronScheduledRoutePolicyTest {
     @Test
     public void testScheduledStartRoutePolicy() throws Exception {
         startTest();
     }
+}
 
+class Test2SpringCronScheduledRoutePolicyTest extends 
SpringCronScheduledRoutePolicyTest {
     @Test
     public void testScheduledStopRoutePolicy() throws Exception {
         stopTest();
     }
+}
 
+class Test3SpringCronScheduledRoutePolicyTest extends 
SpringCronScheduledRoutePolicyTest {
     @Test
     public void testScheduledSuspendRoutePolicy() throws Exception {
         suspendTest();
     }
+}
 
+class Test4SpringCronScheduledRoutePolicyTest extends 
SpringCronScheduledRoutePolicyTest {
     @Test
     public void testScheduledResumeRoutePolicy() throws Exception {
         resumeTest();
     }
-
 }
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringQuartzTwoAppsClusteredFailoverTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringQuartzTwoAppsClusteredFailoverTest.java
index 9cd04e2..02cf342 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringQuartzTwoAppsClusteredFailoverTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringQuartzTwoAppsClusteredFailoverTest.java
@@ -19,13 +19,13 @@ package org.apache.camel.routepolicy.quartz;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.camel.util.IOHelper;
 import org.junit.jupiter.api.Test;
 import org.quartz.Scheduler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.support.AbstractXmlApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 /**
  * Tests a Quartz based cluster setup of two Camel Apps being triggered 
through {@link CronScheduledRoutePolicy}.
@@ -37,25 +37,22 @@ public class SpringQuartzTwoAppsClusteredFailoverTest {
     @Test
     public void testQuartzPersistentStoreClusteredApp() throws Exception {
         // boot up the database the two apps are going to share inside a 
clustered quartz setup
-        AbstractXmlApplicationContext db = new ClassPathXmlApplicationContext(
-                
"org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppDatabase.xml");
+        AbstractXmlApplicationContext db = 
newAppContext("SpringQuartzClusteredAppDatabase.xml");
 
         // now launch the first clustered app which will acquire the quartz 
database lock and become the master
-        AbstractXmlApplicationContext app
-                = new 
ClassPathXmlApplicationContext("org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppOne.xml");
+        AbstractXmlApplicationContext app = 
newAppContext("SpringQuartzClusteredAppOne.xml");
 
         // as well as the second one which will run in slave mode as it will 
not be able to acquire the same lock
-        AbstractXmlApplicationContext app2
-                = new 
ClassPathXmlApplicationContext("org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppTwo.xml");
+        AbstractXmlApplicationContext app2 = 
newAppContext("SpringQuartzClusteredAppTwo.xml");
 
-        CamelContext camel = app.getBean("camelContext", CamelContext.class);
+        CamelContext camel = app.getBean("camelContext-" + 
getClass().getSimpleName(), CamelContext.class);
 
         MockEndpoint mock = camel.getEndpoint("mock:result", 
MockEndpoint.class);
         mock.expectedMessageCount(1);
         mock.expectedBodiesReceived("clustering PINGS!");
 
         // wait a bit to make sure the route has already been properly started 
through the given route policy
-        Thread.sleep(5000);
+        Thread.sleep(500);
 
         app.getBean("template", 
ProducerTemplate.class).sendBody("direct:start", "clustering");
 
@@ -74,7 +71,7 @@ public class SpringQuartzTwoAppsClusteredFailoverTest {
         log.warn("Crashed...");
 
         // wait long enough until the second app takes it over...
-        Thread.sleep(20000);
+        Thread.sleep(2000);
         // inside the logs one can then clearly see how the route of the 
second app ('app-two') gets started:
         // 2013-09-29 08:15:17,038 [main           ] WARN  
tzTwoAppsClusteredFailoverTest:65   - Crashed...
         // 2013-09-29 08:15:17,038 [main           ] WARN  
tzTwoAppsClusteredFailoverTest:66   - Crashed...
@@ -83,7 +80,7 @@ public class SpringQuartzTwoAppsClusteredFailoverTest {
         // 2013-09-29 08:15:32,001 [_ClusterManager] INFO  
LocalDataSourceJobStore       :3426 - ClusterManager: Scanning for instance 
"app-one"'s failed in-progress jobs.
         // 2013-09-29 08:15:32,024 [eduler_Worker-1] INFO  SpringCamelContext  
          :2183 - Route: myRoute started and consuming from: 
Endpoint[direct://start]
 
-        CamelContext camel2 = app2.getBean("camelContext2", 
CamelContext.class);
+        CamelContext camel2 = app2.getBean("camelContext2-" + 
getClass().getSimpleName(), CamelContext.class);
 
         MockEndpoint mock2 = camel2.getEndpoint("mock:result", 
MockEndpoint.class);
         mock2.expectedMessageCount(1);
@@ -97,4 +94,8 @@ public class SpringQuartzTwoAppsClusteredFailoverTest {
         IOHelper.close(app2, db);
     }
 
+    private AbstractXmlApplicationContext newAppContext(String config) {
+        return CamelSpringTestSupport.newAppContext(config, getClass());
+    }
+
 }
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java
index 3dc6855..f038867 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java
@@ -28,7 +28,7 @@ import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.spi.RoutePolicy;
 import org.apache.camel.support.service.ServiceHelper;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
 
 import static org.junit.jupiter.api.Assertions.assertSame;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -39,10 +39,14 @@ public abstract class SpringScheduledRoutePolicyTest {
         CRON
     }
 
-    private ClassPathXmlApplicationContext applicationContext;
+    private AbstractXmlApplicationContext applicationContext;
     private TestType testType;
 
+    public abstract void setUp();
+
     public void startTest() throws Exception {
+        setUp();
+
         CamelContext context = startRouteWithPolicy("startPolicy");
 
         MockEndpoint mock = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -52,13 +56,15 @@ public abstract class SpringScheduledRoutePolicyTest {
 
         Thread.sleep(4000);
         assertSame(ServiceStatus.Started, 
context.getRouteController().getRouteStatus("testRoute"));
-        context.createProducerTemplate().sendBody("direct:start", "Ready or 
not, Here, I come");
+        context.createProducerTemplate().sendBody("direct:start?timeout=1000", 
"Ready or not, Here, I come");
 
         context.stop();
         mock.assertIsSatisfied();
     }
 
     public void stopTest() throws Exception {
+        setUp();
+
         boolean consumerStopped = false;
 
         CamelContext context = startRouteWithPolicy("stopPolicy");
@@ -66,7 +72,7 @@ public abstract class SpringScheduledRoutePolicyTest {
         Thread.sleep(4000);
         assertSame(ServiceStatus.Stopped, 
context.getRouteController().getRouteStatus("testRoute"));
         try {
-            context.createProducerTemplate().sendBody("direct:start", "Ready 
or not, Here, I come");
+            
context.createProducerTemplate().sendBody("direct:start?timeout=1000", "Ready 
or not, Here, I come");
         } catch (CamelExecutionException e) {
             consumerStopped = true;
         }
@@ -75,13 +81,15 @@ public abstract class SpringScheduledRoutePolicyTest {
     }
 
     public void suspendTest() throws Exception {
+        setUp();
+
         boolean consumerSuspended = false;
 
         CamelContext context = startRouteWithPolicy("suspendPolicy");
 
         Thread.sleep(4000);
         try {
-            context.createProducerTemplate().sendBody("direct:start", "Ready 
or not, Here, I come");
+            
context.createProducerTemplate().sendBody("direct:start?timeout=1000", "Ready 
or not, Here, I come");
         } catch (CamelExecutionException e) {
             consumerSuspended = true;
         }
@@ -91,6 +99,8 @@ public abstract class SpringScheduledRoutePolicyTest {
     }
 
     public void resumeTest() throws Exception {
+        setUp();
+
         CamelContext context = startRouteWithPolicy("resumePolicy");
 
         MockEndpoint mock = context.getEndpoint("mock:success", 
MockEndpoint.class);
@@ -99,7 +109,7 @@ public abstract class SpringScheduledRoutePolicyTest {
         
ServiceHelper.suspendService(context.getRoute("testRoute").getConsumer());
 
         Thread.sleep(4000);
-        context.createProducerTemplate().sendBody("direct:start", "Ready or 
not, Here, I come");
+        context.createProducerTemplate().sendBody("direct:start?timeout=1000", 
"Ready or not, Here, I come");
 
         context.stop();
         mock.assertIsSatisfied();
@@ -119,11 +129,11 @@ public abstract class SpringScheduledRoutePolicyTest {
         return context;
     }
 
-    public ClassPathXmlApplicationContext getApplicationContext() {
+    public AbstractXmlApplicationContext getApplicationContext() {
         return applicationContext;
     }
 
-    public void setApplicationContext(ClassPathXmlApplicationContext 
applicationContext) {
+    public void setApplicationContext(AbstractXmlApplicationContext 
applicationContext) {
         this.applicationContext = applicationContext;
     }
 
diff --git 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringSimpleScheduledRoutePolicyTest.java
 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringSimpleScheduledRoutePolicyTest.java
index c7d713d..ee81cb4 100644
--- 
a/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringSimpleScheduledRoutePolicyTest.java
+++ 
b/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringSimpleScheduledRoutePolicyTest.java
@@ -16,36 +16,46 @@
  */
 package org.apache.camel.routepolicy.quartz;
 
-import org.junit.jupiter.api.BeforeEach;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.junit.jupiter.api.Test;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
 
-public class SpringSimpleScheduledRoutePolicyTest extends 
SpringScheduledRoutePolicyTest {
+public abstract class SpringSimpleScheduledRoutePolicyTest extends 
SpringScheduledRoutePolicyTest {
 
-    @BeforeEach
     public void setUp() {
-        setApplicationContext(new 
ClassPathXmlApplicationContext("org/apache/camel/routepolicy/quartz/SimplePolicies.xml"));
+        setApplicationContext(newAppContext("SimplePolicies.xml"));
         setTestType(TestType.SIMPLE);
     }
 
+    private AbstractXmlApplicationContext newAppContext(String config) {
+        return CamelSpringTestSupport.newAppContext(config, getClass());
+    }
+}
+
+class Test1SpringScheduledRoutePolicyTest extends 
SpringSimpleScheduledRoutePolicyTest {
     @Test
     public void testScheduledStartRoutePolicy() throws Exception {
         startTest();
     }
+}
 
+class Test2SpringScheduledRoutePolicyTest extends 
SpringSimpleScheduledRoutePolicyTest {
     @Test
     public void testScheduledStopRoutePolicy() throws Exception {
         stopTest();
     }
+}
 
+class Test3SpringScheduledRoutePolicyTest extends 
SpringSimpleScheduledRoutePolicyTest {
     @Test
     public void testScheduledSuspendRoutePolicy() throws Exception {
         suspendTest();
     }
+}
 
+class Test4SpringScheduledRoutePolicyTest extends 
SpringSimpleScheduledRoutePolicyTest {
     @Test
     public void testScheduledResumeRoutePolicy() throws Exception {
         resumeTest();
     }
-
 }
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppDatabase.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppDatabase.xml
index 8b967e5..7873de9 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppDatabase.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppDatabase.xml
@@ -25,7 +25,7 @@
        http://www.springframework.org/schema/jdbc 
http://www.springframework.org/schema/jdbc/spring-jdbc.xsd";>
 
   <!-- the embedded persistent storage for quartz -->
-  <jdbc:embedded-database id="quartz-db" type="DERBY">
+  <jdbc:embedded-database id="{{testClassSimpleName}}" type="DERBY">
     <jdbc:script location="classpath:tables_derby.sql"/>
   </jdbc:embedded-database>
 
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppOne.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppOne.xml
index 2cc2325..8ff0887d 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppOne.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppOne.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -45,23 +45,23 @@
       <map>
         <!-- CamelJob makes use of the following key below to find the same 
Job as we failover to 'app-two' -->
         <!-- QuartzConstants.QUARTZ_CAMEL_CONTEXT + "-" + camelContextName  -->
-        <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext"/>
+        <entry 
key="CamelQuartzCamelContext-camelContext-{{testClassSimpleName}}" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">app-one</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
         <prop 
key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
         <prop key="org.quartz.jobStore.isClustered">true</prop>
-        <prop key="org.quartz.jobStore.clusterCheckinInterval">5000</prop>
+        <prop key="org.quartz.jobStore.clusterCheckinInterval">500</prop>
       </props>
     </property>
   </bean>
 
-  <camelContext id="camelContext" shutdownEager="false" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
shutdownEager="false" xmlns="http://camel.apache.org/schema/spring";>
     <template id="template" />
     <route id="myRoute">
       <from 
uri="quartz://app/test?trigger.repeatInterval=1000&amp;trigger.repeatCount=-1" 
/>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppTwo.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppTwo.xml
index 88e5366..4bd612a 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppTwo.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerClusteredAppTwo.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -43,23 +43,23 @@
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-        <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext2"/>
+        <entry 
key="CamelQuartzCamelContext-camelContext-{{testClassSimpleName}}" 
value-ref="camelContext2-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">app-two</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
         <prop 
key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
         <prop key="org.quartz.jobStore.isClustered">true</prop>
-        <prop key="org.quartz.jobStore.clusterCheckinInterval">5000</prop>
+        <prop key="org.quartz.jobStore.clusterCheckinInterval">500</prop>
       </props>
     </property>
   </bean>
 
-  <camelContext id="camelContext2" shutdownEager="false" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext2-{{testClassSimpleName}}" 
shutdownEager="false" xmlns="http://camel.apache.org/schema/spring";>
     <template id="template" />
     <route id="myRoute">
       <from 
uri="quartz://app/test?trigger.repeatInterval=1000&amp;trigger.repeatCount=-1" 
/>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppOne.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppOne.xml
index 04b9cf7..126c8be 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppOne.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppOne.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -45,25 +45,25 @@
       <map>
         <!-- CamelJob makes use of the following key below to find the same 
Job as we failover to 'app-two' -->
         <!-- QuartzConstants.QUARTZ_CAMEL_CONTEXT + "-" + camelContextName  -->
-        <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext"/>
+        <entry 
key="CamelQuartzCamelContext-camelContext-{{testClassSimpleName}}" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">app-one</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
         <prop 
key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
         <prop key="org.quartz.jobStore.isClustered">true</prop>
-        <prop key="org.quartz.jobStore.clusterCheckinInterval">5000</prop>
+        <prop key="org.quartz.jobStore.clusterCheckinInterval">500</prop>
       </props>
     </property>
   </bean>
 
   <bean id="myProcessor" 
class="org.apache.camel.component.quartz.SpringQuartzConsumerTwoAppsClusteredRecoveryTest$MyProcessor"
 />
 
-  <camelContext id="camelContext" shutdownEager="false" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
shutdownEager="false" xmlns="http://camel.apache.org/schema/spring";>
     <template id="template" />
     <route id="myRoute">
       <from 
uri="quartz://app/test?trigger.repeatInterval=1000&amp;trigger.repeatCount=2&amp;durableJob=true&amp;stateful=true&amp;recoverableJob=true"
 />
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppTwo.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppTwo.xml
index f7cfd15..c19d08c 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppTwo.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzConsumerRecoveryClusteredAppTwo.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -43,23 +43,23 @@
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-        <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext2"/>
+        <entry 
key="CamelQuartzCamelContext-camelContext-{{testClassSimpleName}}" 
value-ref="camelContext2-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">app-two</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
         <prop 
key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
         <prop key="org.quartz.jobStore.isClustered">true</prop>
-        <prop key="org.quartz.jobStore.clusterCheckinInterval">5000</prop>
+        <prop key="org.quartz.jobStore.clusterCheckinInterval">500</prop>
       </props>
     </property>
   </bean>
 
-  <camelContext id="camelContext2" shutdownEager="true" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext2-{{testClassSimpleName}}" 
shutdownEager="true" xmlns="http://camel.apache.org/schema/spring";>
     <template id="template" />
     <route id="myRoute">
       <from 
uri="quartz://app/test?trigger.repeatInterval=1000&amp;trigger.repeatCount=2&amp;durableJob=true&amp;stateful=true&amp;recoverableJob=true"
 />
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest1.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest1.xml
index 22c7a1d..fd9b5d4 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest1.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest1.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -45,12 +45,12 @@
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-          <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext"/>
+          <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
@@ -61,7 +61,7 @@
     </property>
   </bean>
 
-  <camelContext id="camelContext" managementNamePattern="#name#" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
managementNamePattern="#name#" xmlns="http://camel.apache.org/schema/spring";>
     <route id="quartzRoute">
       <from uri="quartzBean://app/test?cron=0+0/1+*+1/1+*+?+*"/>
       <to uri="log:trigger"/>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest2.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest2.xml
index f4bc022..d66ef12 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest2.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest2.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -45,12 +45,12 @@
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-          <entry key="CamelQuartzCamelContext-camelContext1" 
value-ref="camelContext"/>
+          <entry key="CamelQuartzCamelContext-camelContext1" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
@@ -61,7 +61,7 @@
     </property>
   </bean>
 
-  <camelContext id="camelContext" managementNamePattern="#name#1" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
managementNamePattern="#name#1" xmlns="http://camel.apache.org/schema/spring";>
     <route id="quartzRoute">
       <from uri="quartzBean://app/test?cron=0+0/2+*+1/1+*+?+*"/>
       <to uri="log:trigger"/>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest3.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest3.xml
index c39ece0..1cc9832 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest3.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeCronExpressionTest3.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -50,7 +50,7 @@
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest1.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest1.xml
index aabba79..7cc9906 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest1.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest1.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -45,12 +45,12 @@
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-          <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext"/>
+          <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
@@ -61,7 +61,7 @@
     </property>
   </bean>
 
-  <camelContext id="camelContext" managementNamePattern="#name#" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
managementNamePattern="#name#" xmlns="http://camel.apache.org/schema/spring";>
     <route id="quartzRoute">
       <from 
uri="quartzBean://app/test?trigger.repeatInterval=10&amp;trigger.repeatCount=1"/>
       <to uri="log:trigger"/>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest2.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest2.xml
index 8158f49..2a9e796 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest2.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartAppChangeOptionsTest2.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzConsumerClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" value="jdbc:derby:memory:{{testClassSimpleName}}" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -45,12 +45,12 @@
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-          <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext"/>
+          <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
@@ -61,7 +61,7 @@
     </property>
   </bean>
 
-  <camelContext id="camelContext" managementNamePattern="#name#" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
managementNamePattern="#name#" xmlns="http://camel.apache.org/schema/spring";>
     <route id="quartzRoute">
       <from 
uri="quartzBean://app/test?trigger.repeatInterval=20&amp;trigger.repeatCount=2"/>
       <to uri="log:trigger"/>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartTest.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartTest.xml
index c2bddae..88c5d43 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartTest.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreRestartTest.xml
@@ -27,7 +27,7 @@
     ">
 
   <!-- the persistent store for quartz -->
-  <jdbc:embedded-database id="camel_quartz" type="DERBY">
+  <jdbc:embedded-database id="{{testClassSimpleName}}" type="DERBY">
     <!-- do not load script as database alreaady exists -->
   </jdbc:embedded-database>
 
@@ -37,18 +37,18 @@
 
   <!-- jdbc:embedded-database must come before this so the job store exists -->
   <bean id="scheduler" 
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
-    <property name="dataSource" ref="camel_quartz"/>
+    <property name="dataSource" ref="{{testClassSimpleName}}"/>
     <property name="autoStartup" value="false"/>
     <!-- let Camel start -->
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-          <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext"/>
+          <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
@@ -58,7 +58,7 @@
     </property>
   </bean>
 
-  <camelContext id="camelContext" managementNamePattern="#name#" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
managementNamePattern="#name#" xmlns="http://camel.apache.org/schema/spring";>
     <route>
       <from 
uri="quartz://app/test?trigger.repeatInterval=1000&amp;trigger.repeatCount=-1&amp;stateful=true"/>
       <to uri="log:trigger"/>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.xml
index 16c1a7a..ba72230 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/SpringQuartzPersistentStoreTest.xml
@@ -27,7 +27,7 @@
     ">
 
   <!-- the persistent store for quartz -->
-  <jdbc:embedded-database id="camel_quartz" type="DERBY">
+  <jdbc:embedded-database id="{{testClassSimpleName}}" type="DERBY">
     <jdbc:script location="classpath:tables_derby.sql"/>
   </jdbc:embedded-database>
 
@@ -37,18 +37,18 @@
 
   <!-- jdbc:embedded-database must come before this so the job store exists -->
   <bean id="scheduler" 
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
-    <property name="dataSource" ref="camel_quartz"/>
+    <property name="dataSource" ref="{{testClassSimpleName}}"/>
     <property name="autoStartup" value="false"/>
     <!-- let Camel start -->
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-        <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext"/>
+        <entry key="CamelQuartzCamelContext-camelContext" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
@@ -58,7 +58,7 @@
     </property>
   </bean>
 
-  <camelContext id="camelContext" managementNamePattern="#name#" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
managementNamePattern="#name#" xmlns="http://camel.apache.org/schema/spring";>
     <route id="myRoute">
       <from 
uri="quartz://app/test?trigger.repeatInterval=1000&amp;trigger.repeatCount=-1&amp;stateful=true"/>
       <to uri="log:trigger"/>
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppDatabase.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppDatabase.xml
index 8b967e5..34c22f1 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppDatabase.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppDatabase.xml
@@ -25,7 +25,7 @@
        http://www.springframework.org/schema/jdbc 
http://www.springframework.org/schema/jdbc/spring-jdbc.xsd";>
 
   <!-- the embedded persistent storage for quartz -->
-  <jdbc:embedded-database id="quartz-db" type="DERBY">
+  <jdbc:embedded-database id="SpringQuartzTwoAppsClusteredFailoverTest" 
type="DERBY">
     <jdbc:script location="classpath:tables_derby.sql"/>
   </jdbc:embedded-database>
 
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppOne.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppOne.xml
index 4391af6..cf595e5 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppOne.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppOne.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" 
value="jdbc:derby:memory:SpringQuartzTwoAppsClusteredFailoverTest" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -43,18 +43,18 @@
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-        <entry key="CamelQuartzCamelContext" value-ref="camelContext"/>
+        <entry key="CamelQuartzCamelContext" 
value-ref="camelContext-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">app-one</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
         <prop 
key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
         <prop key="org.quartz.jobStore.isClustered">true</prop>
-        <prop key="org.quartz.jobStore.clusterCheckinInterval">5000</prop>
+        <prop key="org.quartz.jobStore.clusterCheckinInterval">500</prop>
       </props>
     </property>
   </bean>
@@ -63,7 +63,7 @@
     <property name="routeStartTime" value="0/3 * * * * ?" />
   </bean>
 
-  <camelContext id="camelContext" shutdownEager="false" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext-{{testClassSimpleName}}" 
shutdownEager="false" xmlns="http://camel.apache.org/schema/spring";>
     <template id="template" />
     <route id="myRoute" routePolicyRef="startPolicy" autoStartup="false">
       <from uri="direct:start" />
diff --git 
a/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppTwo.xml
 
b/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppTwo.xml
index 7211636..0e5a0e7 100644
--- 
a/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppTwo.xml
+++ 
b/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/SpringQuartzClusteredAppTwo.xml
@@ -28,7 +28,7 @@
   <bean id="quartzDataSource" class="org.apache.commons.dbcp2.BasicDataSource">
     <property name="driverClassName" 
value="org.apache.derby.jdbc.EmbeddedDriver" />
     <!-- refer the embedded database we setup inside 
SpringQuartzClusteredAppDatabase.xml -->
-    <property name="url" value="jdbc:derby:memory:quartz-db" />
+    <property name="url" 
value="jdbc:derby:memory:SpringQuartzTwoAppsClusteredFailoverTest" />
     <property name="username" value="sa" />
     <property name="password" value="" />
   </bean>
@@ -43,18 +43,18 @@
     <property name="schedulerContextAsMap">
       <!-- hook Camel into Quartz -->
       <map>
-        <entry key="CamelQuartzCamelContext" value-ref="camelContext2"/>
+        <entry key="CamelQuartzCamelContext" 
value-ref="camelContext2-{{testClassSimpleName}}"/>
       </map>
     </property>
     <property name="quartzProperties">
       <props>
-        <prop key="org.quartz.scheduler.instanceName">myscheduler</prop>
+        <prop 
key="org.quartz.scheduler.instanceName">myscheduler-{{testClassSimpleName}}</prop>
         <prop key="org.quartz.scheduler.instanceId">app-two</prop>
         <prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
         <prop key="org.terracotta.quartz.skipUpdateCheck">true</prop>
         <prop 
key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
         <prop key="org.quartz.jobStore.isClustered">true</prop>
-        <prop key="org.quartz.jobStore.clusterCheckinInterval">5000</prop>
+        <prop key="org.quartz.jobStore.clusterCheckinInterval">500</prop>
       </props>
     </property>
   </bean>
@@ -63,7 +63,7 @@
     <property name="routeStartTime" value="0/3 * * * * ?" />
   </bean>
 
-  <camelContext id="camelContext2" shutdownEager="false" 
xmlns="http://camel.apache.org/schema/spring";>
+  <camelContext id="camelContext2-{{testClassSimpleName}}" 
shutdownEager="false" xmlns="http://camel.apache.org/schema/spring";>
     <template id="template" />
     <route id="myRoute" routePolicyRef="startPolicy" autoStartup="false">
       <from uri="direct:start" />
diff --git 
a/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestSupport.java
 
b/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestSupport.java
index f1e10e64..b8e61c8 100644
--- 
a/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestSupport.java
+++ 
b/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestSupport.java
@@ -16,11 +16,21 @@
  */
 package org.apache.camel.test.spring.junit5;
 
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.component.properties.DefaultPropertiesParser;
+import org.apache.camel.component.properties.PropertiesParser;
 import org.apache.camel.spring.SpringCamelContext;
 import org.apache.camel.test.ExcludingPackageScanClassResolver;
 import org.apache.camel.test.junit5.CamelTestSupport;
@@ -29,10 +39,15 @@ import org.apache.camel.util.ObjectHelper;
 import org.junit.jupiter.api.AfterEach;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.support.RootBeanDefinition;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.GenericApplicationContext;
+import org.springframework.core.io.AbstractResource;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
 
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.fail;
@@ -218,4 +233,68 @@ public abstract class CamelSpringTestSupport extends 
CamelTestSupport {
         // don't start the springCamelContext if we
         return SpringCamelContext.springCamelContext(applicationContext, 
false);
     }
+
+    public static final String TEST_CLASS_NAME_PROPERTY = "testClassName";
+    public static final String TEST_CLASS_SIMPLE_NAME_PROPERTY = 
"testClassSimpleName";
+
+    public AbstractXmlApplicationContext newAppContext(String configLocation) 
throws BeansException {
+        return newAppContext(configLocation, getClass());
+    }
+
+    public static AbstractXmlApplicationContext newAppContext(String 
configLocation, Class<?> clazz) {
+        Map<String, String> props = new HashMap<>();
+        props.put(TEST_CLASS_NAME_PROPERTY, clazz.getName());
+        props.put(TEST_CLASS_SIMPLE_NAME_PROPERTY, clazz.getSimpleName());
+        return new MyXmlApplicationContext(configLocation, clazz, props);
+
+    }
+
+    public static class MyXmlApplicationContext extends 
AbstractXmlApplicationContext {
+        private final Resource[] configResources;
+
+        public MyXmlApplicationContext(String configLocation, Class<?> clazz, 
Map<String, String> properties) {
+            super(null);
+            configResources = new Resource[] {
+                    new TranslatedResource(new 
ClassPathResource(configLocation, clazz), properties)
+            };
+            refresh();
+        }
+
+        @Override
+        protected Resource[] getConfigResources() {
+            return configResources;
+        }
+    }
+
+    public static class TranslatedResource extends AbstractResource {
+
+        private final Resource delegate;
+        private final Map<String, String> properties;
+
+        public TranslatedResource(Resource delegate, Map<String, String> 
properties) {
+            this.delegate = delegate;
+            this.properties = properties;
+        }
+
+        @Override
+        public String getDescription() {
+            return delegate.getDescription();
+        }
+
+        @Override
+        public InputStream getInputStream() throws IOException {
+            StringWriter sw = new StringWriter();
+            try (InputStreamReader r = new 
InputStreamReader(delegate.getInputStream(), StandardCharsets.UTF_8)) {
+                char[] buf = new char[32768];
+                int l;
+                while ((l = r.read(buf)) > 0) {
+                    sw.write(buf, 0, l);
+                }
+            }
+            PropertiesParser parser = new DefaultPropertiesParser();
+            String before = sw.toString();
+            String after = parser.parseUri(before, properties::get, false, 
true);
+            return new 
ByteArrayInputStream(after.getBytes(StandardCharsets.UTF_8));
+        }
+    }
 }
diff --git a/parent/pom.xml b/parent/pom.xml
index cef6a26..85c8ebf 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml

Reply via email to