You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by al...@apache.org on 2020/06/26 16:41:41 UTC

[camel] branch master updated: CAMEL-11807: Migrated camel-itest to JUnit 5

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

aldettinger 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 ee931a8  CAMEL-11807: Migrated camel-itest to JUnit 5
ee931a8 is described below

commit ee931a8ff38003860be3fbe6d6c9aef767aff5f8
Author: aldettinger <al...@gmail.com>
AuthorDate: Fri Jun 26 18:25:10 2020 +0200

    CAMEL-11807: Migrated camel-itest to JUnit 5
---
 tests/camel-itest/pom.xml                          | 12 +--
 .../camel/itest/async/HttpAsyncCallbackTest.java   | 20 ++---
 .../apache/camel/itest/async/HttpAsyncDslTest.java | 18 +++--
 .../apache/camel/itest/async/HttpAsyncTest.java    | 10 ++-
 .../camel/itest/async/HttpAsyncTestSupport.java    |  8 +-
 .../camel/itest/async/HttpJmsAsyncTimeoutTest.java | 16 ++--
 .../org/apache/camel/itest/async/HttpSyncTest.java | 10 ++-
 .../apache/camel/itest/async/MyAsyncProducer.java  |  4 +-
 .../customerrelations/CustomerServicesTest.java    | 14 ++--
 .../CustomerServicesWsAddressingTest.java          | 13 ++--
 ...ComponentConfigurationAndDocumentationTest.java | 85 ++++++++++----------
 ...ComponentConfigurationAndDocumentationTest.java | 15 ++--
 .../camel/itest/doc/EipDocumentationTest.java      | 91 ++++++++++++----------
 ...yLanguageConfigurationAndDocumentationTest.java | 28 ++++---
 ...eLanguageConfigurationAndDocumentationTest.java | 32 +++++---
 ...ataFormatConfigurationAndDocumentationTest.java | 30 ++++---
 ...ipientListInterceptSendToEndpointIssueTest.java | 25 +++---
 .../itest/ftp/FtpInitialConnectTimeoutTest.java    | 18 ++---
 .../org/apache/camel/itest/ftp/FtpXQueryTest.java  | 25 +++---
 ...ringFileAntPathMatcherRemoteFileFilterTest.java | 43 ++++------
 .../camel/itest/ftp/SpringFtpEndpointTest.java     | 19 ++---
 .../itest/greeter/CamelFileGreeterOneWayTest.java  | 22 +++---
 .../itest/greeter/CamelGreeterConsumerTest.java    | 25 +++---
 .../itest/greeter/CamelGreeterFileDomTest.java     | 33 ++++----
 .../camel/itest/greeter/CamelGreeterTest.java      | 31 ++++----
 .../camel/itest/greeter/CxfToJmsInOutTest.java     | 13 ++--
 .../camel/itest/greeter/FilePrepareRequest.java    |  8 +-
 .../greeter/JettyRecipientListCxfIssueTest.java    | 26 ++++---
 .../camel/itest/greeter/JmsPrepareRequest.java     |  6 +-
 .../camel/itest/greeter/JmsPrepareResponse.java    |  8 +-
 .../camel/itest/greeter/JmsToCxfInOutTest.java     | 13 ++--
 .../camel/itest/greeter/MulticastCxfTest.java      |  8 +-
 .../apache/camel/itest/greeter/PrepareRequest.java |  6 +-
 .../camel/itest/greeter/PrepareResponse.java       |  4 +-
 .../camel/itest/greeter/RecipientListCxf2Test.java |  8 +-
 .../camel/itest/greeter/RecipientListCxfTest.java  |  8 +-
 .../apache/camel/itest/http/HttpEndpointTest.java  | 19 +++--
 .../itest/http/HttpMaxConnectionPerHostTest.java   | 18 ++---
 .../camel/itest/http/InterceptEndpointTest.java    |  9 ++-
 .../itest/idempotent/IdempotentConsumerTest.java   |  6 +-
 .../itest/issues/AdviceWithWeaveFirstLastTest.java | 18 +++--
 .../itest/issues/BeanCallDerivedClassTest.java     |  8 +-
 .../itest/issues/IntercepFromAndStrategyTest.java  | 10 +--
 ...it4Test.java => IsUseAdviceWithJUnit5Test.java} | 18 +++--
 .../camel/itest/issues/JettyHttpFileCacheTest.java | 32 ++++----
 .../apache/camel/itest/issues/JettyHttpTest.java   | 16 ++--
 .../camel/itest/issues/RemoveEndpointsTest.java    | 11 +--
 .../camel/itest/issues/RssToHttpIssueTest.java     | 12 +--
 .../itest/jaxb/JaxbFallbackTypeConverterTest.java  | 23 +++---
 .../itest/jaxb/SpringLoadRouteFromXmlTest.java     | 15 ++--
 .../jetty/JettyBridgeHostHeaderIssueTest.java      | 37 +++++----
 .../itest/jetty/JettyConstantSetHeaderTest.java    | 12 +--
 .../itest/jetty/JettyFailoverRoundRobinTest.java   | 20 ++---
 .../camel/itest/jetty/JettyFreemarkerTest.java     | 20 +++--
 .../itest/jetty/JettyGroovySetHeaderTest.java      | 11 +--
 .../jetty/JettyJmsShutdownInProgressTest.java      | 21 ++---
 .../camel/itest/jetty/JettyJmsShutdownTest.java    | 17 ++--
 .../org/apache/camel/itest/jetty/JettyJmsTest.java | 19 ++---
 .../camel/itest/jetty/JettyJmsTwowayTest.java      | 21 ++---
 .../itest/jetty/JettyMulticastJmsFileTest.java     | 13 ++--
 .../camel/itest/jetty/JettyRestRedirectTest.java   | 18 +++--
 .../itest/jetty/JettySimpleSetHeaderTest.java      | 12 +--
 .../jetty/JettySimulateFailoverRoundRobinTest.java | 22 +++---
 .../jetty/JettySpringFailoverRoundRobinTest.java   |  8 +-
 .../itest/jetty/JettyValidatorStreamTest.java      | 17 ++--
 ...alidatorStreamWithStreamCachingEnabledTest.java | 17 ++--
 .../camel/itest/jetty/JettyValidatorTest.java      | 21 ++---
 .../camel/itest/jetty/JettyVelocityTest.java       | 20 +++--
 .../itest/jetty/JettyXsltHttpTemplateTest.java     | 18 ++---
 .../apache/camel/itest/jetty/JettyXsltTest.java    | 20 +++--
 .../itest/jetty/SetExchangePatternProcessor.java   |  2 +-
 .../camel/itest/jetty/SetResponseProcessor.java    |  4 +-
 .../itest/jms/AdviceWithTransactionIssueTest.java  | 12 +--
 .../apache/camel/itest/jms/DynamicRouteTest.java   | 15 ++--
 .../org/apache/camel/itest/jms/FileToJmsTest.java  |  9 ++-
 .../JMSTransactionIsTransactedRedeliveredTest.java | 21 ++---
 .../camel/itest/jms/JmsConsumerShutdownTest.java   | 13 ++--
 .../org/apache/camel/itest/jms/JmsHttpJmsTest.java | 24 +++---
 .../camel/itest/jms/JmsHttpPostIssueTest.java      | 26 ++++---
 .../itest/jms/JmsHttpPostIssueWithMockTest.java    | 19 ++---
 .../apache/camel/itest/jms/JmsIntegrationTest.java | 20 +++--
 .../org/apache/camel/itest/jms/JmsJaxbTest.java    | 16 ++--
 .../apache/camel/itest/jms/JmsJettyAsyncTest.java  | 16 ++--
 .../apache/camel/itest/jms/JmsPerformanceTest.java | 26 ++++---
 .../apache/camel/itest/jms/JmsPollEnrichTest.java  | 11 +--
 .../camel/itest/jms/JmsPollingConsumerTest.java    | 15 ++--
 .../apache/camel/itest/jms/JmsResequencerTest.java | 26 +++----
 .../apache/camel/itest/jms/JmsValidatorTest.java   | 14 ++--
 .../camel/itest/jms/SpringJmsValidatorTest.java    |  8 +-
 .../camel/itest/mail/SpringMailEndpointTest.java   | 13 ++--
 .../itest/netty/NettyAsyncRequestReplyTest.java    | 28 ++++---
 .../NettyHttpClientChunkedResponseTest.java        | 25 +++---
 .../java/org/apache/camel/itest/proxy/Echo.java    |  3 -
 .../org/apache/camel/itest/proxy/EchoClient.java   |  3 -
 .../apache/camel/itest/proxy/EchoProduceTest.java  | 15 ++--
 .../itest/proxy/SpringEchoCamelProxyTest.java      | 11 ++-
 .../quartz/FtpCronScheduledRoutePolicyTest.java    | 30 +++----
 .../camel/itest/security/CXFMessageProcessor.java  |  6 +-
 .../security/GreeterClientCxfMessageTest.java      |  2 +
 .../camel/itest/security/GreeterClientTest.java    | 38 ++++-----
 .../apache/camel/itest/security/MyProcessor.java   |  4 +-
 .../apache/camel/itest/shiro/ShiroOverJmsTest.java | 12 +--
 .../FromJmsToJdbcIdempotentConsumerToJmsTest.java  | 42 +++++-----
 ...FromJmsToJdbcIdempotentConsumerToJmsXaTest.java | 12 ++-
 .../camel/itest/test/SpringDebugBeforeTest.java    | 11 ++-
 .../apache/camel/itest/tx/Jms2RequiresNewTest.java | 20 ++---
 .../org/apache/camel/itest/tx/JmsToHttpRoute.java  | 10 +--
 .../org/apache/camel/itest/tx/JmsToHttpTXTest.java | 13 ++--
 ...AndNoTransactionErrorHandlerConfiguredTest.java | 23 +++---
 .../itest/tx/JmsToHttpTXWithOnExceptionTest.java   | 23 +++---
 .../itest/tx/JmsToHttpTXWithRollbackTest.java      | 11 +--
 ...ndNoTransactionErrorHandlerConfiguredRoute.java | 16 ++--
 .../itest/tx/JmsToHttpWithOnExceptionRoute.java    | 16 ++--
 .../camel/itest/tx/JmsToHttpWithRollbackRoute.java |  8 +-
 .../itest/validator/ValidatorSchemaImportTest.java | 37 +++++----
 115 files changed, 1102 insertions(+), 961 deletions(-)

diff --git a/tests/camel-itest/pom.xml b/tests/camel-itest/pom.xml
index 355d9ce..626bdfc 100644
--- a/tests/camel-itest/pom.xml
+++ b/tests/camel-itest/pom.xml
@@ -224,13 +224,13 @@
         </dependency>
 
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-api</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring</artifactId>
+            <artifactId>camel-test-spring-junit5</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -323,12 +323,6 @@
             <scope>test</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-
         <!-- for http component tests -->
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncCallbackTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncCallbackTest.java
index 624d2a9..7b2d913 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncCallbackTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncCallbackTest.java
@@ -25,14 +25,16 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.support.SynchronizationAdapter;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class HttpAsyncCallbackTest extends HttpAsyncTestSupport {
 
     private static final CountDownLatch LATCH = new CountDownLatch(3);
 
     @Test
-    public void testAsyncAndSyncAtSameTimeWithHttp() throws Exception {
+    void testAsyncAndSyncAtSameTimeWithHttp() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceivedInAnyOrder("Hello Claus", "Hello Hadrian", "Hello Willem");
 
@@ -49,12 +51,12 @@ public class HttpAsyncCallbackTest extends HttpAsyncTestSupport {
         // END SNIPPET: e3
         assertMockEndpointsSatisfied();
 
-        assertTrue("Should get 3 callbacks", LATCH.await(10, TimeUnit.SECONDS));
+        assertTrue(LATCH.await(10, TimeUnit.SECONDS), "Should get 3 callbacks");
 
         // assert that we got all the correct data in our callback
-        assertTrue("Claus is missing", callback.getData().contains("Hello Claus"));
-        assertTrue("Hadrian is missing", callback.getData().contains("Hello Hadrian"));
-        assertTrue("Willem is missing", callback.getData().contains("Hello Willem"));
+        assertTrue(callback.getData().contains("Hello Claus"), "Claus is missing");
+        assertTrue(callback.getData().contains("Hello Hadrian"), "Hadrian is missing");
+        assertTrue(callback.getData().contains("Hello Willem"), "Willem is missing");
     }
 
     // START SNIPPET: e2
@@ -72,7 +74,7 @@ public class HttpAsyncCallbackTest extends HttpAsyncTestSupport {
         @Override
         public void onComplete(Exchange exchange) {
             // this method is invoked when the exchange was a success and we can get the response
-            String body = exchange.getOut().getBody(String.class);
+            String body = exchange.getMessage().getBody(String.class);
             data.add(body);
 
             // the latch is used for testing purposes
@@ -86,10 +88,10 @@ public class HttpAsyncCallbackTest extends HttpAsyncTestSupport {
     // END SNIPPET: e2
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // START SNIPPET: e1
                 // The mocks are here for unit test
                 // Simulate a slow http service (delaying a bit) we want to invoke async
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncDslTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncDslTest.java
index 78be9e0..555d754 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncDslTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncDslTest.java
@@ -23,18 +23,20 @@ import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.support.SimpleRegistry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Before;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class HttpAsyncDslTest extends CamelTestSupport {
 
     private static volatile String order = "";
 
     @Test
-    public void testRequestOnly() throws Exception {
+    void testRequestOnly() throws Exception {
         getMockEndpoint("mock:validate").expectedMessageCount(1);
         // even though its request only the message is still continued being processed
         getMockEndpoint("mock:order").expectedMessageCount(1);
@@ -50,7 +52,7 @@ public class HttpAsyncDslTest extends CamelTestSupport {
     }
 
     @Test
-    public void testRequestReply() throws Exception {
+    void testRequestReply() throws Exception {
         getMockEndpoint("mock:validate").expectedMessageCount(1);
         // even though its request only the message is still continued being processed
         getMockEndpoint("mock:order").expectedMessageCount(1);
@@ -66,7 +68,7 @@ public class HttpAsyncDslTest extends CamelTestSupport {
     }
 
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         order = "";
         super.setUp();
@@ -90,10 +92,10 @@ public class HttpAsyncDslTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // START SNIPPET: e1
 
                 // list on the JMS queue for new orders
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncTest.java
index d79ddbb..fee047b 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncTest.java
@@ -20,12 +20,14 @@ import java.util.concurrent.Future;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class HttpAsyncTest extends HttpAsyncTestSupport {
  
     @Test
-    public void testAsyncAndSyncAtSameTimeWithHttp() throws Exception {
+    void testAsyncAndSyncAtSameTimeWithHttp() throws Exception {
         // START SNIPPET: e2
         MockEndpoint mock = getMockEndpoint("mock:result");
         // We expect the name job to be faster than the async job even though the async job
@@ -57,10 +59,10 @@ public class HttpAsyncTest extends HttpAsyncTestSupport {
     }
  
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // START SNIPPET: e1
                 // The mocks are here for unit test
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncTestSupport.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncTestSupport.java
index 48dd0d1..a256c3a 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncTestSupport.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpAsyncTestSupport.java
@@ -17,15 +17,15 @@
 package org.apache.camel.itest.async;
 
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.BeforeClass;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.BeforeAll;
 
 public class HttpAsyncTestSupport extends CamelTestSupport {
     
     protected static int port;
 
-    @BeforeClass
-    public static void initPort() throws Exception {
+    @BeforeAll
+    public static void initPort() {
         port = AvailablePortFinder.getNextAvailable();
     }
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpJmsAsyncTimeoutTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpJmsAsyncTimeoutTest.java
index 5c70536..e859e9b 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpJmsAsyncTimeoutTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpJmsAsyncTimeoutTest.java
@@ -24,17 +24,17 @@ import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.http.common.HttpOperationFailedException;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.apache.camel.test.junit5.TestSupport.assertIsInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
 
-/**
- *
- */
 public class HttpJmsAsyncTimeoutTest extends HttpAsyncTestSupport {
 
     @Test
-    public void testHttpJmsAsync() throws Exception {
+    void testHttpJmsAsync() {
         try {
             template.requestBody("http://0.0.0.0:"  + getPort() + "/myservice", "Hello World", String.class);
             fail("Should have thrown exception");
@@ -45,7 +45,7 @@ public class HttpJmsAsyncTimeoutTest extends HttpAsyncTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
@@ -54,10 +54,10 @@ public class HttpJmsAsyncTimeoutTest extends HttpAsyncTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // a lot of timeouts in the play :)
 
                 // jetty will timeout after 2 seconds
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpSyncTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpSyncTest.java
index 31404c5..cada13b 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpSyncTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/HttpSyncTest.java
@@ -18,12 +18,14 @@ package org.apache.camel.itest.async;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class HttpSyncTest extends HttpAsyncTestSupport {
 
     @Test
-    public void testSyncAndSyncAtSameTimeWithHttp() throws Exception {
+    void testSyncAndSyncAtSameTimeWithHttp() throws Exception {
         // START SNIPPET: e2
         MockEndpoint mock = getMockEndpoint("mock:result");
         // We expect the http job to complete before the name job
@@ -42,10 +44,10 @@ public class HttpSyncTest extends HttpAsyncTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // START SNIPPET: e1
                 // The mocks are here for unit test
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/MyAsyncProducer.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/MyAsyncProducer.java
index 5564c89..9495529 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/async/MyAsyncProducer.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/async/MyAsyncProducer.java
@@ -56,9 +56,9 @@ public class MyAsyncProducer extends DefaultAsyncProducer {
                     exchange.setException(new CamelExchangeException("Simulated error at attempt " + count, exchange));
                 } else {
                     String reply = getEndpoint().getReply();
-                    exchange.getOut().setBody(reply);
+                    exchange.getMessage().setBody(reply);
                     // propagate headers
-                    exchange.getOut().setHeaders(exchange.getIn().getHeaders());
+                    exchange.getMessage().setHeaders(exchange.getIn().getHeaders());
                     LOG.info("Setting reply " + reply);
                 }
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/customerrelations/CustomerServicesTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/customerrelations/CustomerServicesTest.java
index 7749e87..6fbd8fd 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/customerrelations/CustomerServicesTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/customerrelations/CustomerServicesTest.java
@@ -26,21 +26,23 @@ import org.apache.cxf.jaxws.EndpointImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.phase.AbstractPhaseInterceptor;
 import org.apache.cxf.phase.Phase;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class CustomerServicesTest extends Assert {
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+public class CustomerServicesTest {
 
     @Test
-    public void testCustomerService() throws Exception {
+    void testCustomerService() throws Exception {
         ClassPathXmlApplicationContext serverContext = null;
         ClassPathXmlApplicationContext clientContext = null;
         try {
             serverContext = new ClassPathXmlApplicationContext(
                 new String[] {"spring-config/server-applicationContext.xml"});
             Object server = serverContext.getBean("org.apache.camel.itest.customerrelations.CustomerServiceV1");
-            assertNotNull("We should get server here", server);
+            assertNotNull(server, "We should get server here");
 
             // add an interceptor to verify headers
             EndpointImpl.class.cast(server).getServer().getEndpoint().getInInterceptors()
@@ -57,7 +59,7 @@ public class CustomerServicesTest extends Assert {
                 .getClient().getInInterceptors().add(new HeaderChecker(Phase.READ));*/
 
             Customer customer = customerService.getCustomer("12345");
-            assertNotNull("We should get Customer here", customer);
+            assertNotNull(customer, "We should get Customer here");
         } finally {
             // we're done so let's properly close the application contexts
             IOHelper.close(clientContext, serverContext);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/customerrelations/CustomerServicesWsAddressingTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/customerrelations/CustomerServicesWsAddressingTest.java
index 3228c27..f290b2d 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/customerrelations/CustomerServicesWsAddressingTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/customerrelations/CustomerServicesWsAddressingTest.java
@@ -17,28 +17,29 @@
 package org.apache.camel.itest.customerrelations;
 
 import org.apache.camel.util.IOHelper;
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class CustomerServicesWsAddressingTest extends Assert {
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+public class CustomerServicesWsAddressingTest {
 
     @Test
-    public void testCustomerService() throws Exception {
+    void testCustomerService() throws Exception {
         ClassPathXmlApplicationContext serverContext = null;
         ClassPathXmlApplicationContext clientContext = null;
         try {
             serverContext = new ClassPathXmlApplicationContext(
                 new String[] {"spring-config/server-WsAddressingContext.xml"});
             Object server = serverContext.getBean("org.apache.camel.itest.customerrelations.CustomerServiceV1");
-            assertNotNull("We should get server here", server);
+            assertNotNull(server, "We should get server here");
 
             clientContext =  new ClassPathXmlApplicationContext(
                 new String[] {"spring-config/client-WsAddressingContext.xml"});
             CustomerServiceV1 customerService = clientContext.getBean("org.apache.camel.itest.customerrelations.CustomerServiceV1", CustomerServiceV1.class);
 
             Customer customer = customerService.getCustomer("12345");
-            assertNotNull("We should get Customer here", customer);
+            assertNotNull(customer, "We should get Customer here");
         } finally {
             // we're done so let's properly close the application context
             IOHelper.close(clientContext, serverContext);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/DataFormatComponentConfigurationAndDocumentationTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/DataFormatComponentConfigurationAndDocumentationTest.java
index 269cf8b..c925f3f 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/DataFormatComponentConfigurationAndDocumentationTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/DataFormatComponentConfigurationAndDocumentationTest.java
@@ -22,12 +22,15 @@ import java.util.stream.Collectors;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CatalogCamelContext;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.tooling.model.BaseOptionModel;
 import org.apache.camel.tooling.model.DataFormatModel;
 import org.apache.camel.tooling.model.DataFormatModel.DataFormatOptionModel;
 import org.apache.camel.tooling.model.JsonMapper;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class DataFormatComponentConfigurationAndDocumentationTest extends CamelTestSupport {
 
@@ -37,54 +40,54 @@ public class DataFormatComponentConfigurationAndDocumentationTest extends CamelT
     }
 
     @Test
-    public void testFlatpackDefaultValue() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("flatpack");
-        assertNotNull(json);
+    void testFlatpackDefaultValue() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("flatpack");
+            assertNotNull(json);
 
-        DataFormatModel model = JsonMapper.generateDataFormatModel(json);
-        assertEquals("flatpack", model.getName());
+            DataFormatModel model = JsonMapper.generateDataFormatModel(json);
+            assertEquals("flatpack", model.getName());
 
-        Map<String, DataFormatOptionModel> options = model.getOptions().stream()
-                .collect(Collectors.toMap(BaseOptionModel::getName, o -> o));
+            Map<String, DataFormatOptionModel> options = model.getOptions().stream().collect(Collectors.toMap(BaseOptionModel::getName, o -> o));
 
-        assertEquals(10, options.size());
-        BaseOptionModel found = options.get("textQualifier");
-        assertNotNull(found);
-        assertEquals("textQualifier", found.getName());
-        assertEquals("attribute", found.getKind());
-        assertEquals(false, found.isRequired());
-        assertEquals("string", found.getType());
-        assertEquals("java.lang.String", found.getJavaType());
-        assertEquals(false, found.isDeprecated());
-        assertEquals(false, found.isSecret());
-        assertEquals("If the text is qualified with a character. Uses quote character by default.", found.getDescription());
+            assertEquals(10, options.size());
+            BaseOptionModel found = options.get("textQualifier");
+            assertNotNull(found);
+            assertEquals("textQualifier", found.getName());
+            assertEquals("attribute", found.getKind());
+            assertEquals(false, found.isRequired());
+            assertEquals("string", found.getType());
+            assertEquals("java.lang.String", found.getJavaType());
+            assertEquals(false, found.isDeprecated());
+            assertEquals(false, found.isSecret());
+            assertEquals("If the text is qualified with a character. Uses quote character by default.", found.getDescription());
+        }
     }
 
     @Test
-    public void testUniVocityTsvEscapeChar() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("univocity-tsv");
-        assertNotNull(json);
+    void testUniVocityTsvEscapeChar() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("univocity-tsv");
+            assertNotNull(json);
 
-        DataFormatModel model = JsonMapper.generateDataFormatModel(json);
-        assertEquals("univocity-tsv", model.getName());
+            DataFormatModel model = JsonMapper.generateDataFormatModel(json);
+            assertEquals("univocity-tsv", model.getName());
 
-        Map<String, DataFormatOptionModel> options = model.getOptions().stream()
-                .collect(Collectors.toMap(BaseOptionModel::getName, o -> o));
+            Map<String, DataFormatOptionModel> options = model.getOptions().stream().collect(Collectors.toMap(BaseOptionModel::getName, o -> o));
 
-        assertEquals(16, options.size());
-        BaseOptionModel found = options.get("escapeChar");
-        assertNotNull(found);
-        assertEquals("escapeChar", found.getName());
-        assertEquals("attribute", found.getKind());
-        assertEquals(false, found.isRequired());
-        assertEquals("string", found.getType());
-        assertEquals("java.lang.String", found.getJavaType());
-        assertEquals(false, found.isDeprecated());
-        assertEquals(false, found.isSecret());
-        assertEquals("\\", found.getDefaultValue());
-        assertEquals("The escape character.", found.getDescription());
+            assertEquals(16, options.size());
+            BaseOptionModel found = options.get("escapeChar");
+            assertNotNull(found);
+            assertEquals("escapeChar", found.getName());
+            assertEquals("attribute", found.getKind());
+            assertEquals(false, found.isRequired());
+            assertEquals("string", found.getType());
+            assertEquals("java.lang.String", found.getJavaType());
+            assertEquals(false, found.isDeprecated());
+            assertEquals(false, found.isSecret());
+            assertEquals("\\", found.getDefaultValue());
+            assertEquals("The escape character.", found.getDescription());
+        }
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/DirectComponentConfigurationAndDocumentationTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/DirectComponentConfigurationAndDocumentationTest.java
index d007180..40f3b66 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/DirectComponentConfigurationAndDocumentationTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/DirectComponentConfigurationAndDocumentationTest.java
@@ -19,8 +19,10 @@ package org.apache.camel.itest.doc;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CatalogCamelContext;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class DirectComponentConfigurationAndDocumentationTest extends CamelTestSupport {
 
@@ -30,10 +32,11 @@ public class DirectComponentConfigurationAndDocumentationTest extends CamelTestS
     }
 
     @Test
-    public void testComponentJsonSchema() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getComponentParameterJsonSchema("direct");
-        assertNotNull("Should have found some auto-generated JSON", json);
+    void testComponentJsonSchema() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getComponentParameterJsonSchema("direct");
+            assertNotNull(json, "Should have found some auto-generated JSON");
+        }
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/EipDocumentationTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/EipDocumentationTest.java
index 6e24dfd..9346096 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/EipDocumentationTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/EipDocumentationTest.java
@@ -19,69 +19,82 @@ package org.apache.camel.itest.doc;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CatalogCamelContext;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+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.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class EipDocumentationTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(EipDocumentationTest.class);
+
     @Override
     public boolean isUseRouteBuilder() {
         return false;
     }
 
     @Test
-    public void testDocumentation() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("from");
-        log.info(json);
-        assertNotNull("Should have found json for from", json);
+    void testDocumentation() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("from");
+            LOG.info(json);
+            assertNotNull(json, "Should have found json for from");
 
-        assertTrue(json.contains("\"name\": \"from\""));
-        assertTrue(json.contains("\"uri\": { \"kind\": \"attribute\""));
-        assertTrue(json.contains("\"ref\": { \"kind\": \"attribute\""));
+            assertTrue(json.contains("\"name\": \"from\""));
+            assertTrue(json.contains("\"uri\": { \"kind\": \"attribute\""));
+            assertTrue(json.contains("\"ref\": { \"kind\": \"attribute\""));
+        }
     }
 
     @Test
-    public void testSplitDocumentation() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("split");
-        log.info(json);
-        assertNotNull("Should have found json for split", json);
+    void testSplitDocumentation() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("split");
+            LOG.info(json);
+            assertNotNull("Should have found json for split", json);
 
-        assertTrue(json.contains("\"name\": \"split\""));
-        // there should be javadoc included
-        assertTrue(json.contains("If enabled then processing each splitted messages occurs concurrently."));
-        // and it support outputs
-        assertTrue(json.contains("\"outputs\": { \"kind\": \"element\", \"displayName\": \"Outputs\", \"required\": true, \"type\": \"array\", \"javaType\""));
+            assertTrue(json.contains("\"name\": \"split\""));
+            // there should be javadoc included
+            assertTrue(json.contains("If enabled then processing each splitted messages occurs concurrently."));
+            // and it support outputs
+            assertTrue(json.contains("\"outputs\": { \"kind\": \"element\", \"displayName\": \"Outputs\", \"required\": true, \"type\": \"array\", \"javaType\""));
+        }
     }
 
     @Test
-    public void testSimpleDocumentation() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("simple");
-        log.info(json);
-        assertNotNull("Should have found json for simple", json);
+    void testSimpleDocumentation() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("simple");
+            LOG.info(json);
+            assertNotNull("Should have found json for simple", json);
 
-        assertTrue(json.contains("\"label\": \"language,core,java\""));
-        assertTrue(json.contains("\"name\": \"simple\""));
+            assertTrue(json.contains("\"label\": \"language,core,java\""));
+            assertTrue(json.contains("\"name\": \"simple\""));
+        }
     }
 
     @Test
-    public void testFailOverDocumentation() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("failover");
-        log.info(json);
-        assertNotNull("Should have found json for failover", json);
+    void testFailOverDocumentation() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("failover");
+            LOG.info(json);
+            assertNotNull("Should have found json for failover", json);
 
-        assertTrue(json.contains("\"name\": \"failover\""));
-        assertTrue(json.contains("\"exception\": { \"kind\": \"element\", \"displayName\": \"Exception\", \"required\": false, \"type\": \"array\""
-            + ", \"javaType\": \"java.util.List<java.lang.String>\", \"deprecated\": false"));
+            assertTrue(json.contains("\"name\": \"failover\""));
+            assertTrue(json.contains("\"exception\": { \"kind\": \"element\", \"displayName\": \"Exception\", \"required\": false, \"type\": \"array\""
+                                     + ", \"javaType\": \"java.util.List<java.lang.String>\", \"deprecated\": false"));
+        }
     }
 
     @Test
-    public void testNotFound() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("unknown");
-        assertNull("Should not have found json for unknown", json);
+    void testNotFound() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getEipParameterJsonSchema("unknown");
+            assertNull(json, "Should not have found json for unknown");
+        }
     }
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/GroovyLanguageConfigurationAndDocumentationTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/GroovyLanguageConfigurationAndDocumentationTest.java
index 06e7f07..8959fe1 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/GroovyLanguageConfigurationAndDocumentationTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/GroovyLanguageConfigurationAndDocumentationTest.java
@@ -19,25 +19,33 @@ package org.apache.camel.itest.doc;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CatalogCamelContext;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+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.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class GroovyLanguageConfigurationAndDocumentationTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(GroovyLanguageConfigurationAndDocumentationTest.class);
+
     @Override
     public boolean isUseRouteBuilder() {
         return false;
     }
 
     @Test
-    public void testLanguageJsonSchema() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getLanguageParameterJsonSchema("groovy");
-        assertNotNull("Should have found some auto-generated JSON", json);
-        log.info(json);
-
-        assertTrue(json.contains("\"name\": \"groovy\""));
-        assertTrue(json.contains("\"modelName\": \"groovy\""));
+    void testLanguageJsonSchema() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getLanguageParameterJsonSchema("groovy");
+            assertNotNull(json, "Should have found some auto-generated JSON");
+            LOG.info(json);
+
+            assertTrue(json.contains("\"name\": \"groovy\""));
+            assertTrue(json.contains("\"modelName\": \"groovy\""));
+        }
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/SimpleLanguageConfigurationAndDocumentationTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/SimpleLanguageConfigurationAndDocumentationTest.java
index 7cc5e8b..d2516cb 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/SimpleLanguageConfigurationAndDocumentationTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/SimpleLanguageConfigurationAndDocumentationTest.java
@@ -19,27 +19,35 @@ package org.apache.camel.itest.doc;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CatalogCamelContext;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+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.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class SimpleLanguageConfigurationAndDocumentationTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(SimpleLanguageConfigurationAndDocumentationTest.class);
+
     @Override
     public boolean isUseRouteBuilder() {
         return false;
     }
 
     @Test
-    public void testLanguageJsonSchema() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getLanguageParameterJsonSchema("simple");
-        assertNotNull("Should have found some auto-generated JSON", json);
-        log.info(json);
-
-        assertTrue(json.contains("\"name\": \"simple\""));
-        assertTrue(json.contains("\"modelName\": \"simple\""));
-        assertTrue(json.contains("\"resultType\": { \"kind\": \"attribute\", \"displayName\": \"Result Type\", \"required\": false, \"type\": \"string\""
-            + ", \"javaType\": \"java.lang.String\", \"deprecated\": false"));
+    void testLanguageJsonSchema() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getLanguageParameterJsonSchema("simple");
+            assertNotNull(json, "Should have found some auto-generated JSON");
+            LOG.info(json);
+
+            assertTrue(json.contains("\"name\": \"simple\""));
+            assertTrue(json.contains("\"modelName\": \"simple\""));
+            assertTrue(json.contains("\"resultType\": { \"kind\": \"attribute\", \"displayName\": \"Result Type\", \"required\": false, \"type\": \"string\""
+                                     + ", \"javaType\": \"java.lang.String\", \"deprecated\": false"));
+        }
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/StringDataFormatConfigurationAndDocumentationTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/StringDataFormatConfigurationAndDocumentationTest.java
index ab4030f..ac91af9 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/StringDataFormatConfigurationAndDocumentationTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/doc/StringDataFormatConfigurationAndDocumentationTest.java
@@ -19,26 +19,34 @@ package org.apache.camel.itest.doc;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CatalogCamelContext;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+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.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class StringDataFormatConfigurationAndDocumentationTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(EipDocumentationTest.class);
+
     @Override
     public boolean isUseRouteBuilder() {
         return false;
     }
 
     @Test
-    public void testDataFormatJsonSchema() throws Exception {
-        CamelContext context = new DefaultCamelContext();
-        String json = context.adapt(CatalogCamelContext.class).getDataFormatParameterJsonSchema("string");
-        assertNotNull("Should have found some auto-generated JSON", json);
-        log.info(json);
-
-        assertTrue(json.contains("\"name\": \"string\""));
-        assertTrue(json.contains("\"modelName\": \"string\""));
-        assertTrue(json.contains("\"charset\": { \"kind\": \"attribute\", \"displayName\": \"Charset\", \"required\": false, \"type\": \"string\""));
+    void testDataFormatJsonSchema() throws Exception {
+        try (CamelContext context = new DefaultCamelContext()) {
+            String json = context.adapt(CatalogCamelContext.class).getDataFormatParameterJsonSchema("string");
+            assertNotNull(json, "Should have found some auto-generated JSON");
+            LOG.info(json);
+
+            assertTrue(json.contains("\"name\": \"string\""));
+            assertTrue(json.contains("\"modelName\": \"string\""));
+            assertTrue(json.contains("\"charset\": { \"kind\": \"attribute\", \"displayName\": \"Charset\", \"required\": false, \"type\": \"string\""));
+        }
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpAndHttpRecipientListInterceptSendToEndpointIssueTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpAndHttpRecipientListInterceptSendToEndpointIssueTest.java
index a730dd9..37c8997 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpAndHttpRecipientListInterceptSendToEndpointIssueTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpAndHttpRecipientListInterceptSendToEndpointIssueTest.java
@@ -20,7 +20,7 @@ import java.io.File;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.ftpserver.FtpServer;
 import org.apache.ftpserver.FtpServerFactory;
 import org.apache.ftpserver.filesystem.nativefs.NativeFileSystemFactory;
@@ -28,27 +28,25 @@ import org.apache.ftpserver.ftplet.UserManager;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
 import org.apache.ftpserver.usermanager.impl.PropertiesUserManager;
-import org.junit.After;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-/**
- *
- */
 public class FtpAndHttpRecipientListInterceptSendToEndpointIssueTest extends CamelTestSupport {
     protected static int ftpPort;
     protected static int httpPort;
     protected FtpServer ftpServer;
     
     
-    @BeforeClass
+    @BeforeAll
     public static void initPort() throws Exception {
         ftpPort = AvailablePortFinder.getNextAvailable();
         httpPort = AvailablePortFinder.getNextAvailable();
     }
 
     @Test
-    public void testFtpAndHttpIssue() throws Exception {
+    void testFtpAndHttpIssue() throws Exception {
         String ftp = "ftp:localhost:" + ftpPort + "/myapp?password=admin&username=admin";
         String http = "http://localhost:" + httpPort + "/myapp";
 
@@ -62,10 +60,10 @@ public class FtpAndHttpRecipientListInterceptSendToEndpointIssueTest extends Cam
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 interceptSendToEndpoint("(ftp|http|seda):.*")
                     .to("mock:intercept");
 
@@ -82,6 +80,7 @@ public class FtpAndHttpRecipientListInterceptSendToEndpointIssueTest extends Cam
     }
 
     @Override
+    @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
         initFtpServer();
@@ -89,14 +88,14 @@ public class FtpAndHttpRecipientListInterceptSendToEndpointIssueTest extends Cam
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown() throws Exception {
         super.tearDown();
         ftpServer.stop();
         ftpServer = null;
     }
 
-    protected void initFtpServer() throws Exception {
+    protected void initFtpServer() {
         FtpServerFactory serverFactory = new FtpServerFactory();
 
         // setup user management to read our users.properties and use clear text passwords
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpInitialConnectTimeoutTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpInitialConnectTimeoutTest.java
index 3011d3d..ebd546e 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpInitialConnectTimeoutTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpInitialConnectTimeoutTest.java
@@ -28,11 +28,11 @@ import javax.net.SocketFactory;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.support.SimpleRegistry;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.commons.net.ftp.FTPClient;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.mockftpserver.fake.FakeFtpServer;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
@@ -104,7 +104,7 @@ public class FtpInitialConnectTimeoutTest extends CamelTestSupport {
     private FakeFtpServer fakeFtpServer;
 
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         fakeFtpServer = new FakeFtpServer();
         fakeFtpServer.setServerControlPort(0);
@@ -114,7 +114,7 @@ public class FtpInitialConnectTimeoutTest extends CamelTestSupport {
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown() throws Exception {
         super.tearDown();
         if (fakeFtpServer != null) {
@@ -142,7 +142,7 @@ public class FtpInitialConnectTimeoutTest extends CamelTestSupport {
     }
 
     @Test
-    public void testReConnect() throws Exception {
+    void testReConnect() throws Exception {
         // we should fail, but we are testing that we are not in a deadlock which could potentially happen
         getMockEndpoint("mock:done").expectedMessageCount(0);
         getMockEndpoint("mock:dead").expectedMessageCount(1);
@@ -153,10 +153,10 @@ public class FtpInitialConnectTimeoutTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 errorHandler(deadLetterChannel("mock:dead"));
 
                 // using soTimeout=0 could potentially cause the ftp producer to dead-lock doing endless reconnection attempts
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpXQueryTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpXQueryTest.java
index 97b1b0e..e567082 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpXQueryTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/FtpXQueryTest.java
@@ -22,7 +22,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.ftpserver.FtpServer;
 import org.apache.ftpserver.FtpServerFactory;
 import org.apache.ftpserver.filesystem.nativefs.NativeFileSystemFactory;
@@ -30,25 +30,23 @@ import org.apache.ftpserver.ftplet.UserManager;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
 import org.apache.ftpserver.usermanager.impl.PropertiesUserManager;
-import org.junit.After;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-/**
- *
- */
 public class FtpXQueryTest extends CamelTestSupport {
     protected static int ftpPort;
     protected FtpServer ftpServer;
     private String ftp = "ftp:localhost:" + ftpPort + "/myapp?password=admin&username=admin";
     
-    @BeforeClass
+    @BeforeAll
     public static void initPort() throws Exception {
         ftpPort = AvailablePortFinder.getNextAvailable();
     }
 
     @Test
-    public void testXQueryFromFtp() throws Exception {
+    void testXQueryFromFtp() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:davsclaus");
         mock.expectedMessageCount(1);
         mock.message(0).body(String.class).contains("Hello World");
@@ -67,10 +65,10 @@ public class FtpXQueryTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from(ftp)
                     .choice()
                         .when().xquery("/mail/@from = 'davsclaus@apache.org'")
@@ -82,6 +80,7 @@ public class FtpXQueryTest extends CamelTestSupport {
     }
 
     @Override
+    @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
         initFtpServer();
@@ -89,14 +88,14 @@ public class FtpXQueryTest extends CamelTestSupport {
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown() throws Exception {
         super.tearDown();
         ftpServer.stop();
         ftpServer = null;
     }
 
-    protected void initFtpServer() throws Exception {
+    protected void initFtpServer() {
         FtpServerFactory serverFactory = new FtpServerFactory();
 
         // setup user management to read our users.properties and use clear text passwords
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/SpringFileAntPathMatcherRemoteFileFilterTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/SpringFileAntPathMatcherRemoteFileFilterTest.java
index 34dc156..ccaea27 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/SpringFileAntPathMatcherRemoteFileFilterTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/SpringFileAntPathMatcherRemoteFileFilterTest.java
@@ -17,7 +17,6 @@
 package org.apache.camel.itest.ftp;
 
 import java.io.File;
-import java.util.Locale;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.EndpointInject;
@@ -25,6 +24,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
 import org.apache.ftpserver.FtpServer;
 import org.apache.ftpserver.FtpServerFactory;
 import org.apache.ftpserver.filesystem.nativefs.NativeFileSystemFactory;
@@ -32,18 +32,20 @@ import org.apache.ftpserver.ftplet.UserManager;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
 import org.apache.ftpserver.usermanager.impl.PropertiesUserManager;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.OS;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
 /**
  * Unit testing FTP ant path matcher
  */
+@CamelSpringTest
 @ContextConfiguration
-public class SpringFileAntPathMatcherRemoteFileFilterTest extends AbstractJUnit4SpringContextTests {
+public class SpringFileAntPathMatcherRemoteFileFilterTest {
    
     private static int ftpPort = AvailablePortFinder.getNextAvailable();
     static {
@@ -62,24 +64,9 @@ public class SpringFileAntPathMatcherRemoteFileFilterTest extends AbstractJUnit4
     @EndpointInject("mock:result")
     protected MockEndpoint result;
 
-    protected boolean canRunOnThisPlatform() {
-        String os = System.getProperty("os.name");
-        boolean aix = os.toLowerCase(Locale.ENGLISH).contains("aix");
-        boolean windows = os.toLowerCase(Locale.ENGLISH).contains("windows");
-        boolean solaris = os.toLowerCase(Locale.ENGLISH).contains("sunos");
-
-        // Does not work on AIX / solaris and the problem is hard to identify, could be issues not allowing to use a custom port
-        // java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.NameNotFoundException: jmxrmi/camel
-
-        // windows CI servers is often slow/tricky so skip as well
-        return !aix && !solaris && !windows;
-    }
-
+    @DisabledOnOs({OS.AIX, OS.WINDOWS, OS.SOLARIS})
     @Test
-    public void testAntPatchMatherFilter() throws Exception {
-        if (!canRunOnThisPlatform()) {
-            return;
-        }
+    void testAntPatchMatherFilter() throws Exception {
 
         result.expectedBodiesReceived(expectedBody);
 
@@ -92,19 +79,19 @@ public class SpringFileAntPathMatcherRemoteFileFilterTest extends AbstractJUnit4
         result.assertIsSatisfied();
     }
 
-    @Before
-    public void setUp() throws Exception {        
+    @BeforeEach
+    public void setUp() throws Exception {
         initFtpServer();
         ftpServer.start();
     }
 
-    @After
-    public void tearDown() throws Exception {        
+    @AfterEach
+    public void tearDown() throws Exception {
         ftpServer.stop();
         ftpServer = null;
     }
 
-    protected void initFtpServer() throws Exception {
+    protected void initFtpServer() {
         FtpServerFactory serverFactory = new FtpServerFactory();
 
         // setup user management to read our users.properties and use clear text passwords
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/SpringFtpEndpointTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/SpringFtpEndpointTest.java
index be78b91..1730d8d 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/SpringFtpEndpointTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/ftp/SpringFtpEndpointTest.java
@@ -24,6 +24,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
 import org.apache.ftpserver.FtpServer;
 import org.apache.ftpserver.FtpServerFactory;
 import org.apache.ftpserver.filesystem.nativefs.NativeFileSystemFactory;
@@ -31,18 +32,18 @@ import org.apache.ftpserver.ftplet.UserManager;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
 import org.apache.ftpserver.usermanager.impl.PropertiesUserManager;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
 /**
  * Unit testing FTP configured using spring bean
  */
+@CamelSpringTest
 @ContextConfiguration
-public class SpringFtpEndpointTest extends AbstractJUnit4SpringContextTests {
+public class SpringFtpEndpointTest {
     private static int ftpPort = AvailablePortFinder.getNextAvailable();
     static {
         //set them as system properties so Spring can use the property placeholder
@@ -61,7 +62,7 @@ public class SpringFtpEndpointTest extends AbstractJUnit4SpringContextTests {
     protected MockEndpoint result;
 
     @Test
-    public void testFtpEndpointAsSpringBean() throws Exception {
+    void testFtpEndpointAsSpringBean() throws Exception {
         result.expectedBodiesReceived("Hello World");
 
         template.sendBodyAndHeader(inputFTP, "Hello World", Exchange.FILE_NAME, "hello.txt");
@@ -69,19 +70,19 @@ public class SpringFtpEndpointTest extends AbstractJUnit4SpringContextTests {
         result.assertIsSatisfied();
     }
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         initFtpServer();
         ftpServer.start();
     }
 
-    @After
+    @AfterEach
     public void tearDown() throws Exception {
         ftpServer.stop();
         ftpServer = null;
     }
 
-    protected void initFtpServer() throws Exception {
+    protected void initFtpServer() {
         FtpServerFactory serverFactory = new FtpServerFactory();
 
         // setup user management to read our users.properties and use clear text passwords
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelFileGreeterOneWayTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelFileGreeterOneWayTest.java
index 7643933..529b416 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelFileGreeterOneWayTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelFileGreeterOneWayTest.java
@@ -23,15 +23,19 @@ import javax.xml.ws.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
+import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
 public class CamelFileGreeterOneWayTest extends CamelSpringTestSupport {
     
     private static final Logger LOG = LoggerFactory.getLogger(CamelGreeterTest.class);
@@ -45,7 +49,7 @@ public class CamelFileGreeterOneWayTest extends CamelSpringTestSupport {
         System.setProperty("CamelFileGreeterOneWayTest.port", Integer.toString(port));
     }
 
-    @BeforeClass
+    @BeforeAll
     public static void startServer() throws Exception {
         // Start the Greeter Server
         greeterImpl = new GreeterImpl();
@@ -54,7 +58,7 @@ public class CamelFileGreeterOneWayTest extends CamelSpringTestSupport {
         LOG.info("The WS endpoint is published! ");
     }
 
-    @AfterClass
+    @AfterAll
     public static void stopServer() throws Exception {
         // Shutdown the Greeter Server
         if (endpoint != null) {
@@ -64,7 +68,7 @@ public class CamelFileGreeterOneWayTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testFileWithOnewayOperation() throws Exception {
+    void testFileWithOnewayOperation() throws Exception {
         deleteDirectory("target/messages/input/");
         greeterImpl.resetOneWayCounter();
         ProducerTemplate template = context.createProducerTemplate();
@@ -75,10 +79,10 @@ public class CamelFileGreeterOneWayTest extends CamelSpringTestSupport {
         template.stop();
         
         // make sure the greeter is called
-        assertEquals("The oneway operation of greeter should be called", 1, greeterImpl.getOneWayCounter());
+        assertEquals(1, greeterImpl.getOneWayCounter(), "The oneway operation of greeter should be called");
 
         File file = new File("target/messages/input/hello.txt");
-        assertFalse("File " + file + " should be deleted", file.exists());
+        assertFalse(file.exists(), "File " + file + " should be deleted");
     }    
 
     @Override
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterConsumerTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterConsumerTest.java
index d8d134b..af13cef 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterConsumerTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterConsumerTest.java
@@ -25,19 +25,20 @@ import org.apache.camel.ExchangePattern;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.test.AvailablePortFinder;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
 import org.apache.hello_world_soap_http.PingMeFault;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
+@CamelSpringTest
 @ContextConfiguration
-public class CamelGreeterConsumerTest extends AbstractJUnit4SpringContextTests {
+public class CamelGreeterConsumerTest {
     private static int port = AvailablePortFinder.getNextAvailable();
     static {
         //set them as system properties so Spring can use the property placeholder
@@ -49,7 +50,7 @@ public class CamelGreeterConsumerTest extends AbstractJUnit4SpringContextTests {
     protected CamelContext camelContext;
 
     @Test
-    public void testInvokeServers() throws Exception {
+    void testInvokeServers() {
         assertNotNull(camelContext);
 
         ProducerTemplate template = camelContext.createProducerTemplate();
@@ -57,15 +58,15 @@ public class CamelGreeterConsumerTest extends AbstractJUnit4SpringContextTests {
         params.add("Willem");
         Object result = template.sendBodyAndHeader("cxf://bean:serviceEndpoint", ExchangePattern.InOut,
                                                    params, CxfConstants.OPERATION_NAME, "greetMe");
-        assertTrue("Result is a list instance ", result instanceof List);
-        assertEquals("Get the wrong response", ((List<?>)result).get(0), "HelloWillem");
+        assertTrue(result instanceof List, "Result is a list instance ");
+        assertEquals(((List<?>)result).get(0), "HelloWillem", "Get the wrong response");
         try {
             template.sendBodyAndHeader("cxf://bean:serviceEndpoint", ExchangePattern.InOut,
                                             params, CxfConstants.OPERATION_NAME, "pingMe");
             fail("Expect exception here.");
         } catch (Exception ex) {
-            assertTrue("Get a wrong exception.", ex instanceof CamelExecutionException);
-            assertTrue("Get a wrong exception cause. ", ex.getCause() instanceof PingMeFault);
+            assertTrue(ex instanceof CamelExecutionException, "Get a wrong exception.");
+            assertTrue(ex.getCause() instanceof PingMeFault, "Get a wrong exception cause. ");
         }
         template.stop();
     }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterFileDomTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterFileDomTest.java
index ee64160..9531119 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterFileDomTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterFileDomTest.java
@@ -23,22 +23,23 @@ import javax.xml.ws.Endpoint;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.TestSupport;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.apache.camel.test.junit5.TestSupport;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
+@CamelSpringTest
 @ContextConfiguration
-public class CamelGreeterFileDomTest extends AbstractJUnit4SpringContextTests {
+public class CamelGreeterFileDomTest {
     private static final Logger LOG = LoggerFactory.getLogger(CamelGreeterFileDomTest.class);
     
     private static final String REQUEST = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
@@ -54,8 +55,8 @@ public class CamelGreeterFileDomTest extends AbstractJUnit4SpringContextTests {
     @Autowired
     protected CamelContext camelContext;
     
-    @BeforeClass
-    public static void startServer() throws Exception {
+    @BeforeAll
+    public static void startServer() {
         // Start the Greeter Server
         Object implementor = new GreeterImpl();
         String address = "http://localhost:" + port + "/SoapContext/SoapPort";
@@ -63,8 +64,8 @@ public class CamelGreeterFileDomTest extends AbstractJUnit4SpringContextTests {
         LOG.info("The WS endpoint is published! ");
     }
 
-    @AfterClass
-    public static void stopServer() throws Exception {
+    @AfterAll
+    public static void stopServer() {
         // Shutdown the Greeter Server
         if (endpoint != null) {
             endpoint.stop();
@@ -73,7 +74,7 @@ public class CamelGreeterFileDomTest extends AbstractJUnit4SpringContextTests {
     }
 
     @Test
-    public void testCamelGreeter() throws Exception {
+    void testCamelGreeter() {
         TestSupport.deleteDirectory("target/greeter/response");
         assertNotNull(camelContext);
         
@@ -81,10 +82,10 @@ public class CamelGreeterFileDomTest extends AbstractJUnit4SpringContextTests {
         Object result = template.requestBody("direct:start", REQUEST);
         template.stop();
 
-        assertEquals("The result is wrong.", "Hello Willem", result);
+        assertEquals("Hello Willem", result, "The result is wrong.");
         
         File file = new File("target/greeter/response/response.txt");
-        assertTrue("File " + file + " should be there.", file.exists());
+        assertTrue(file.exists(), "File " + file + " should be there.");
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterTest.java
index 11447b8..48a2b1e 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CamelGreeterTest.java
@@ -27,22 +27,21 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-@Ignore("TODO: ActiveMQ 5.14.1 or better, due AMQ-6402")
+@CamelSpringTest
 @ContextConfiguration
-public class CamelGreeterTest extends AbstractJUnit4SpringContextTests {
+public class CamelGreeterTest {
     private static final Logger LOG = LoggerFactory.getLogger(CamelGreeterTest.class);
     
     private static Endpoint endpoint;
@@ -60,8 +59,8 @@ public class CamelGreeterTest extends AbstractJUnit4SpringContextTests {
     @EndpointInject("mock:resultEndpoint")
     protected MockEndpoint resultEndpoint;
 
-    @BeforeClass
-    public static void startServer() throws Exception {
+    @BeforeAll
+    public static void startServer() {
         // Start the Greeter Server
         Object implementor = new GreeterImpl();
         String address = "http://localhost:" + port + "/SoapContext/SoapPort";
@@ -69,8 +68,8 @@ public class CamelGreeterTest extends AbstractJUnit4SpringContextTests {
         LOG.info("The WS endpoint is published! ");
     }
 
-    @AfterClass
-    public static void stopServer() throws Exception {
+    @AfterAll
+    public static void stopServer() {
         // Shutdown the Greeter Server
         if (endpoint != null) {
             endpoint.stop();
@@ -79,7 +78,7 @@ public class CamelGreeterTest extends AbstractJUnit4SpringContextTests {
     }
 
     @Test
-    public void testMocksAreValid() throws Exception {
+    void testMocksAreValid() throws Exception {
         assertNotNull(camelContext);
         assertNotNull(resultEndpoint);
 
@@ -92,10 +91,10 @@ public class CamelGreeterTest extends AbstractJUnit4SpringContextTests {
 
         MockEndpoint.assertIsSatisfied(camelContext);
         List<Exchange> list = resultEndpoint.getReceivedExchanges();
-        assertEquals("Should get one message", list.size(), 1);
+        assertEquals(list.size(), 1, "Should get one message");
         for (Exchange exchange : list) {
             String result = (String) exchange.getIn().getBody();
-            assertEquals("Get the wrong result ", result, "Hello Willem");
+            assertEquals(result, "Hello Willem", "Get the wrong result ");
         }
     }
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java
index 9f6ff30..52406fa 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/CxfToJmsInOutTest.java
@@ -21,16 +21,17 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@CamelSpringTest
 @ContextConfiguration
-public class CxfToJmsInOutTest extends AbstractJUnit4SpringContextTests {
+public class CxfToJmsInOutTest {
     private static int port = AvailablePortFinder.getNextAvailable();
     static {
         //set them as system properties so Spring can use the property place holder
@@ -48,7 +49,7 @@ public class CxfToJmsInOutTest extends AbstractJUnit4SpringContextTests {
     protected MockEndpoint outputEndpoint;
 
     @Test
-    public void testCxfToJmsInOut() throws Exception {
+    void testCxfToJmsInOut() throws Exception {
         assertNotNull(template);
         assertNotNull(inputEndpoint);
         assertNotNull(outputEndpoint);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/FilePrepareRequest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/FilePrepareRequest.java
index 6f8ad6f..ecaaaf0 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/FilePrepareRequest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/FilePrepareRequest.java
@@ -22,10 +22,10 @@ import org.apache.camel.component.cxf.common.message.CxfConstants;
 
 public class FilePrepareRequest implements Processor {
     @Override
-    public void process(Exchange exchange) throws Exception {
-        String request = exchange.getIn().getBody(String.class);       
-        exchange.getOut().setBody(request);
-        exchange.getOut().setHeader(CxfConstants.OPERATION_NAME, "greetMeOneWay");
+    public void process(Exchange exchange) {
+        String request = exchange.getIn().getBody(String.class);
+        exchange.getMessage().setBody(request);
+        exchange.getMessage().setHeader(CxfConstants.OPERATION_NAME, "greetMeOneWay");
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JettyRecipientListCxfIssueTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JettyRecipientListCxfIssueTest.java
index 28aabc6..197401d 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JettyRecipientListCxfIssueTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JettyRecipientListCxfIssueTest.java
@@ -21,16 +21,20 @@ import java.io.File;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-/**
- *
- */
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 public class JettyRecipientListCxfIssueTest extends CamelSpringTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(JettyRecipientListCxfIssueTest.class);
+
     private static int port1 = AvailablePortFinder.getNextAvailable();
     private static int port2 = AvailablePortFinder.getNextAvailable();
     private static int port3 = AvailablePortFinder.getNextAvailable();
@@ -49,28 +53,28 @@ public class JettyRecipientListCxfIssueTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testJettyRecipientListCxf() throws Exception {
+    void testJettyRecipientListCxf() {
         final String request = context().getTypeConverter().convertTo(String.class, new File("src/test/resources/greetMe.xml"));
         assertNotNull(request);
 
         // send a message to jetty
         Exchange out = template.request("http://0.0.0.0:{{RecipientListCxfTest.port3}}/myapp", new Processor() {
             @Override
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 exchange.getIn().setHeader("operationName", "greetMe");
                 exchange.getIn().setBody(request);
             }
         });
 
         assertNotNull(out);
-        assertTrue("Should have out", out.hasOut());
+        assertNotNull(out.getMessage(), "Should have message");
 
-        String body = out.getOut().getBody(String.class);
-        log.info("Reply from jetty call:\n{}", body);
+        String body = out.getMessage().getBody(String.class);
+        LOG.info("Reply from jetty call:\n{}", body);
 
         // we get the last reply as response
         assertNotNull(body);
-        assertTrue("Should have Bye Camel", body.contains("Bye Camel"));
+        assertTrue(body.contains("Bye Camel"), "Should have Bye Camel");
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsPrepareRequest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsPrepareRequest.java
index 69883e3..24baf5e 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsPrepareRequest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsPrepareRequest.java
@@ -22,10 +22,10 @@ import org.apache.camel.Processor;
 public class JmsPrepareRequest implements Processor {
 
     @Override
-    public void process(Exchange exchange) throws Exception {
+    public void process(Exchange exchange) {
         String request = exchange.getIn().getBody(String.class);
-        exchange.getOut().setHeaders(exchange.getIn().getHeaders());
-        exchange.getOut().setBody(request);
+        exchange.getMessage().setHeaders(exchange.getIn().getHeaders());
+        exchange.getMessage().setBody(request);
     }
 
 }
\ No newline at end of file
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsPrepareResponse.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsPrepareResponse.java
index 6c13d10..5e9d425 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsPrepareResponse.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsPrepareResponse.java
@@ -26,17 +26,17 @@ import org.apache.hello_world_soap_http.types.FaultDetail;
 public class JmsPrepareResponse implements Processor {
 
     @Override
-    public void process(Exchange exchange) throws Exception {
+    public void process(Exchange exchange) {
         Message in = exchange.getIn();
         if ("greetMe".equals(in.getHeader(CxfConstants.OPERATION_NAME))) {
-            String request = in.getBody(String.class);               
-            exchange.getOut().setBody("Hello" + request);
+            String request = in.getBody(String.class);
+            exchange.getMessage().setBody("Hello" + request);
         } else {
             // throw the Exception
             FaultDetail faultDetail = new FaultDetail();
             faultDetail.setMajor((short)2);
             faultDetail.setMinor((short)1);
-            exchange.getOut().setBody(new PingMeFault("PingMeFault raised by server", faultDetail));          
+            exchange.getMessage().setBody(new PingMeFault("PingMeFault raised by server", faultDetail));
         }
     }
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsToCxfInOutTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsToCxfInOutTest.java
index 339708e..e6e62dd 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsToCxfInOutTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/JmsToCxfInOutTest.java
@@ -19,16 +19,17 @@ package org.apache.camel.itest.greeter;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.test.AvailablePortFinder;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@CamelSpringTest
 @ContextConfiguration
-public class JmsToCxfInOutTest extends AbstractJUnit4SpringContextTests {
+public class JmsToCxfInOutTest {
     private static int port = AvailablePortFinder.getNextAvailable();
     static {
         //set them as system properties so Spring can use the property place holder
@@ -40,7 +41,7 @@ public class JmsToCxfInOutTest extends AbstractJUnit4SpringContextTests {
     protected ProducerTemplate template;
 
     @Test
-    public void testJmsToCxfInOut() throws Exception {
+    void testJmsToCxfInOut() {
         assertNotNull(template);
         
         String out = template.requestBodyAndHeader("jms:queue:bridge.cxf", "Willem", CxfConstants.OPERATION_NAME, "greetMe", String.class);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/MulticastCxfTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/MulticastCxfTest.java
index 61b4069..a2fd916 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/MulticastCxfTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/MulticastCxfTest.java
@@ -20,11 +20,13 @@ import org.apache.camel.EndpointInject;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 public class MulticastCxfTest extends CamelSpringTestSupport {
     private static int port = AvailablePortFinder.getNextAvailable();
     static {
@@ -50,7 +52,7 @@ public class MulticastCxfTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testMulticastCXF() throws Exception {
+    void testMulticastCXF() throws Exception {
         replyEndpoint.expectedBodiesReceived("Hello Willem", "Hello Claus", "Hello Jonathan");
         reply2Endpoint.expectedBodiesReceived("Bye Willem", "Bye Claus", "Bye Jonathan");
         outputEndpoint.expectedBodiesReceived("Bye Willem", "Bye Claus", "Bye Jonathan");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/PrepareRequest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/PrepareRequest.java
index 6c66c23..eedbf11 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/PrepareRequest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/PrepareRequest.java
@@ -29,13 +29,13 @@ public class PrepareRequest implements Processor {
     private static final Logger LOG = LoggerFactory.getLogger(PrepareRequest.class);
 
     @Override
-    public void process(Exchange exchange) throws Exception {
+    public void process(Exchange exchange) {
         List<String> params = new ArrayList<>();
         params.add(exchange.getIn().getBody(String.class));
-        exchange.getOut().setBody(params);
+        exchange.getMessage().setBody(params);
         String operation = (String)exchange.getIn().getHeader(CxfConstants.OPERATION_NAME);
         LOG.info("The operation name is " + operation);
-        exchange.getOut().setHeader(CxfConstants.OPERATION_NAME, operation);
+        exchange.getMessage().setHeader(CxfConstants.OPERATION_NAME, operation);
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/PrepareResponse.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/PrepareResponse.java
index 7870694..f7fea24 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/PrepareResponse.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/PrepareResponse.java
@@ -22,8 +22,8 @@ import org.apache.camel.Processor;
 public class PrepareResponse implements Processor {
 
     @Override
-    public void process(Exchange exchange) throws Exception {
+    public void process(Exchange exchange) {
         Object[] result = exchange.getIn().getBody(Object[].class);
-        exchange.getOut().setBody(result[0]);
+        exchange.getMessage().setBody(result[0]);
     }
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/RecipientListCxf2Test.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/RecipientListCxf2Test.java
index 7847142..2234420 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/RecipientListCxf2Test.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/RecipientListCxf2Test.java
@@ -23,11 +23,13 @@ import org.apache.camel.EndpointInject;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 public class RecipientListCxf2Test extends CamelSpringTestSupport {
     
     private static int port1 = AvailablePortFinder.getNextAvailable();
@@ -54,7 +56,7 @@ public class RecipientListCxf2Test extends CamelSpringTestSupport {
     }
     
     @Test
-    public void testRecipientListCXF2() throws Exception {
+    void testRecipientListCXF2() throws Exception {
         replyEndpoint.expectedBodiesReceived("Hello Willem", "Hello Jonathan", "Hello Freeman");
         reply2Endpoint.expectedBodiesReceived("Bye Claus", "Bye Jonathan", "Bye Freeman");
         outputEndpoint.expectedBodiesReceived("Hello Willem", "Bye Claus", "Bye Jonathan", "Hello Freeman");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/RecipientListCxfTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/RecipientListCxfTest.java
index 2e5d22e..f1069b0 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/RecipientListCxfTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/greeter/RecipientListCxfTest.java
@@ -23,11 +23,13 @@ import org.apache.camel.EndpointInject;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 public class RecipientListCxfTest extends CamelSpringTestSupport {
     
     private static int port1 = AvailablePortFinder.getNextAvailable();
@@ -54,7 +56,7 @@ public class RecipientListCxfTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testRecipientListCXF() throws Exception {
+    void testRecipientListCXF() throws Exception {
         replyEndpoint.expectedBodiesReceived("Hello Willem", "Hello Jonathan", "Hello Freeman");
         reply2Endpoint.expectedBodiesReceived("Bye Claus", "Bye Jonathan", "Bye Freeman");
         outputEndpoint.expectedBodiesReceived("Hello Willem", "Bye Claus", "Bye Jonathan", "Hello Freeman");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/http/HttpEndpointTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/http/HttpEndpointTest.java
index 881842d..c59a34d 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/http/HttpEndpointTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/http/HttpEndpointTest.java
@@ -22,6 +22,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
 import org.apache.http.Consts;
 import org.apache.http.HttpException;
 import org.apache.http.HttpRequest;
@@ -30,15 +31,15 @@ import org.apache.http.HttpStatus;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.HttpRequestHandler;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
+@CamelSpringTest
 @ContextConfiguration
-public class HttpEndpointTest extends AbstractJUnit4SpringContextTests {
+public class HttpEndpointTest {
     protected static HttpTestServer localServer;
 
     @Autowired
@@ -50,9 +51,7 @@ public class HttpEndpointTest extends AbstractJUnit4SpringContextTests {
     @EndpointInject("mock:result")
     protected MockEndpoint mock;
 
-    
-
-    @BeforeClass
+    @BeforeAll
     public static void setUp() throws Exception {
         localServer = new HttpTestServer(null, null);
         localServer.register("/", new HttpRequestHandler() {
@@ -65,7 +64,7 @@ public class HttpEndpointTest extends AbstractJUnit4SpringContextTests {
         localServer.start();
     }
 
-    @AfterClass
+    @AfterAll
     public static void tearDown() throws Exception {
         if (localServer != null) {
             localServer.stop();
@@ -73,7 +72,7 @@ public class HttpEndpointTest extends AbstractJUnit4SpringContextTests {
     }
 
     @Test
-    public void testMocksIsValid() throws Exception {
+    void testMocksIsValid() throws Exception {
         mock.expectedMessageCount(1);
 
         producer.sendBody(null);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/http/HttpMaxConnectionPerHostTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/http/HttpMaxConnectionPerHostTest.java
index 14dc93c..0c49a8e 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/http/HttpMaxConnectionPerHostTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/http/HttpMaxConnectionPerHostTest.java
@@ -22,6 +22,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
 import org.apache.http.Consts;
 import org.apache.http.HttpException;
 import org.apache.http.HttpRequest;
@@ -30,16 +31,15 @@ import org.apache.http.HttpStatus;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.HttpRequestHandler;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
+@CamelSpringTest
 @ContextConfiguration
-public class HttpMaxConnectionPerHostTest extends
-        AbstractJUnit4SpringContextTests {
+public class HttpMaxConnectionPerHostTest {
     protected static HttpTestServer localServer;
 
     @Autowired
@@ -51,7 +51,7 @@ public class HttpMaxConnectionPerHostTest extends
     @EndpointInject("mock:result")
     protected MockEndpoint mock;
 
-    @BeforeClass
+    @BeforeAll
     public static void setUp() throws Exception {
         localServer = new HttpTestServer(null, null);
         localServer.register("/", new HttpRequestHandler() {
@@ -64,7 +64,7 @@ public class HttpMaxConnectionPerHostTest extends
         localServer.start();
     }
 
-    @AfterClass
+    @AfterAll
     public static void tearDown() throws Exception {
         if (localServer != null) {
             localServer.stop();
@@ -72,7 +72,7 @@ public class HttpMaxConnectionPerHostTest extends
     }
 
     @Test
-    public void testMocksIsValid() throws Exception {
+    void testMocksIsValid() throws Exception {
         mock.expectedMessageCount(1);
 
         producer.sendBody(null);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/http/InterceptEndpointTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/http/InterceptEndpointTest.java
index aece46a..dd4da41 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/http/InterceptEndpointTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/http/InterceptEndpointTest.java
@@ -20,13 +20,14 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
+@CamelSpringTest
 @ContextConfiguration
-public class InterceptEndpointTest extends AbstractJUnit4SpringContextTests {
+public class InterceptEndpointTest {
 
     @Autowired
     protected CamelContext camelContext;
@@ -38,7 +39,7 @@ public class InterceptEndpointTest extends AbstractJUnit4SpringContextTests {
     protected MockEndpoint mock;
 
     @Test
-    public void testMocksIsValid() throws Exception {
+    void testMocksIsValid() throws Exception {
         mock.expectedBodiesReceived("Simulated response from Google");
 
         producer.sendBody(null);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/idempotent/IdempotentConsumerTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/idempotent/IdempotentConsumerTest.java
index d711627..3f60aa1 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/idempotent/IdempotentConsumerTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/idempotent/IdempotentConsumerTest.java
@@ -16,8 +16,8 @@
  */
 package org.apache.camel.itest.idempotent;
 
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+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;
 
@@ -29,7 +29,7 @@ public class IdempotentConsumerTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testDuplicateMessagesAreFilteredOut() throws Exception {
+    void testDuplicateMessagesAreFilteredOut() throws Exception {
         getMockEndpoint("mock:result").expectedBodiesReceived("one", "two", "three");
 
         template.sendBodyAndHeader("direct:start", "one", "messageId", 1);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/AdviceWithWeaveFirstLastTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/AdviceWithWeaveFirstLastTest.java
index 3b0fbd3..b5c91e3 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/AdviceWithWeaveFirstLastTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/AdviceWithWeaveFirstLastTest.java
@@ -19,8 +19,10 @@ package org.apache.camel.itest.issues;
 import org.apache.camel.builder.AdviceWithRouteBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.reifier.RouteReifier;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Advice with tests
@@ -33,11 +35,11 @@ public class AdviceWithWeaveFirstLastTest extends CamelTestSupport {
     }
  
     @Test
-    public void testWeaveAddFirst() throws Exception {
+    void testWeaveAddFirst() throws Exception {
         // START SNIPPET: e1
         RouteReifier.adviceWith(context.getRouteDefinitions().get(0), context, new AdviceWithRouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // insert at first the given piece of route to the existing route
                 weaveAddFirst().to("mock:a").transform(constant("Bye World"));
             }
@@ -57,11 +59,11 @@ public class AdviceWithWeaveFirstLastTest extends CamelTestSupport {
     }
  
     @Test
-    public void testWeaveAddLast() throws Exception {
+    void testWeaveAddLast() throws Exception {
         // START SNIPPET: e2
         RouteReifier.adviceWith(context.getRouteDefinitions().get(0), context, new AdviceWithRouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // insert at the end of the existing route, the given piece of route
                 weaveAddLast().to("mock:a").transform(constant("Bye World"));
             }
@@ -83,10 +85,10 @@ public class AdviceWithWeaveFirstLastTest extends CamelTestSupport {
     }
  
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // START SNIPPET: e5
                 from("direct:start")
                         .to("mock:foo")
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/BeanCallDerivedClassTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/BeanCallDerivedClassTest.java
index 2862d61..29c4b64 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/BeanCallDerivedClassTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/BeanCallDerivedClassTest.java
@@ -16,11 +16,13 @@
  */
 package org.apache.camel.itest.issues;
 
-import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 public class BeanCallDerivedClassTest extends CamelSpringTestSupport {
 
     @Override
@@ -29,7 +31,7 @@ public class BeanCallDerivedClassTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testCallBean() throws Exception {
+    void testCallBean() {
         DerivedClass derived = context.getRegistry().lookupByNameAndType("derived", DerivedClass.class);
 
         template.sendBody("direct:start", "Hello World");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IntercepFromAndStrategyTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IntercepFromAndStrategyTest.java
index d8a3351..98de080 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IntercepFromAndStrategyTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IntercepFromAndStrategyTest.java
@@ -22,8 +22,8 @@ import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 public class IntercepFromAndStrategyTest extends CamelTestSupport {
 
@@ -37,7 +37,7 @@ public class IntercepFromAndStrategyTest extends CamelTestSupport {
     protected ProducerTemplate template;
 
     @Test
-    public void strategyTest() throws Exception {
+    void strategyTest() throws Exception {
         resultEndpoint.expectedBodiesReceived("Bla Bla Bla");
         interceptedEndpoint.expectedBodiesReceived("Bla Bla Bla");
         template.sendBody("direct:start", "Bla Bla Bla");
@@ -45,11 +45,11 @@ public class IntercepFromAndStrategyTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
 
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // add a dummy strategy
                 // removing this line the test works
                 context.adapt(ExtendedCamelContext.class).addInterceptStrategy(new DummyInterceptor());
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IsUseAdviceWithJUnit4Test.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IsUseAdviceWithJUnit5Test.java
similarity index 85%
rename from tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IsUseAdviceWithJUnit4Test.java
rename to tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IsUseAdviceWithJUnit5Test.java
index 5c24d37..f6d6f8b 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IsUseAdviceWithJUnit4Test.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/IsUseAdviceWithJUnit5Test.java
@@ -19,10 +19,12 @@ package org.apache.camel.itest.issues;
 import org.apache.camel.builder.AdviceWithRouteBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.reifier.RouteReifier;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
-public class IsUseAdviceWithJUnit4Test extends CamelTestSupport {
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+public class IsUseAdviceWithJUnit5Test extends CamelTestSupport {
 
     private String providerEndPointURI = "http://fakeeeeWebsite.com:80";
     private String timerEndPointURI = "timer://myTimer";
@@ -30,11 +32,11 @@ public class IsUseAdviceWithJUnit4Test extends CamelTestSupport {
     private String directEndPointURI = "direct:myDirect";
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
 
                 from(timerEndPointURI).to(providerEndPointURI).to(mockEndPointURI);
             }
@@ -42,10 +44,10 @@ public class IsUseAdviceWithJUnit4Test extends CamelTestSupport {
     }
 
     @Test
-    public void testIsUseAdviceWith() throws Exception {
+    void testIsUseAdviceWith() throws Exception {
 
         RouteReifier.adviceWith(context.getRouteDefinitions().get(0), context, new AdviceWithRouteBuilder() {
-            public void configure() throws Exception {
+            public void configure() {
 
                 replaceFromWith(directEndPointURI);
 
@@ -64,7 +66,7 @@ public class IsUseAdviceWithJUnit4Test extends CamelTestSupport {
         assertMockEndpointsSatisfied();
 
         assertNotNull(context.hasEndpoint(directEndPointURI));
-      
+
         assertNotNull(context.hasEndpoint(mockEndPointURI));
     }
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/JettyHttpFileCacheTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/JettyHttpFileCacheTest.java
index 4577934..302e2f9 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/JettyHttpFileCacheTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/JettyHttpFileCacheTest.java
@@ -21,16 +21,21 @@ import java.io.File;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Before;
-import org.junit.Test;
+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;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.apache.camel.test.junit5.TestSupport.createDirectory;
 
 public class JettyHttpFileCacheTest extends CamelTestSupport {
     private static final String TEST_STRING = "This is a test string and it has enough" 
         + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ";
     
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
 
@@ -41,37 +46,34 @@ public class JettyHttpFileCacheTest extends CamelTestSupport {
     }
 
     @Test
-    public void testGetWithRelativePath() throws Exception {
+    void testGetWithRelativePath() throws Exception {
         
         String response = template.requestBody("http://localhost:8201/clipboard/download/file", "   ", String.class);
-        assertEquals("should get the right response", TEST_STRING, response);
+        assertEquals(TEST_STRING, response, "should get the right response");
         
         File file = new File("target/cachedir");
         String[] files = file.list();
-        assertTrue("There should not have any temp file", files.length == 0);
+        assertTrue(files.length == 0, "There should not have any temp file");
         
     }
     
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
-                
+            public void configure() {
 
                 from("jetty:http://localhost:8201/clipboard/download?chunked=true&matchOnUriPrefix=true")
                     .to("http://localhost:9101?bridgeEndpoint=true");
-                
+
                 from("jetty:http://localhost:9101?chunked=true&matchOnUriPrefix=true")
                     .process(new Processor() {
 
-                        public void process(Exchange exchange) throws Exception {
-                            exchange.getOut().setBody(TEST_STRING);
+                        public void process(Exchange exchange) {
+                            exchange.getMessage().setBody(TEST_STRING);
                         }
                         
                     });
-
-               
             }
         };
     }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/JettyHttpTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/JettyHttpTest.java
index 165f61b..5bb1810 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/JettyHttpTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/JettyHttpTest.java
@@ -20,8 +20,8 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 public class JettyHttpTest extends CamelTestSupport {
 
@@ -31,7 +31,7 @@ public class JettyHttpTest extends CamelTestSupport {
     private String sourceProducerUri = "http://localhost:6323/myservice";
 
     @Test
-    public void testGetRootPath() throws Exception {
+    void testGetRootPath() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Hi! /someservice");
 
@@ -41,7 +41,7 @@ public class JettyHttpTest extends CamelTestSupport {
     }
     
     @Test
-    public void testGetWithRelativePath() throws Exception {
+    void testGetWithRelativePath() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("Hi! /someservice/relative");
         
@@ -50,15 +50,15 @@ public class JettyHttpTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from(targetConsumerUri)
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             String path = exchange.getIn().getHeader(Exchange.HTTP_URI, String.class);
-                            exchange.getOut().setBody("Hi! " + path);
+                            exchange.getMessage().setBody("Hi! " + path);
                         }   
                     });
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
index 1c14c58..2eb23e8 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RemoveEndpointsTest.java
@@ -26,14 +26,15 @@ import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class RemoveEndpointsTest extends CamelTestSupport {
     @Test
-    public void testRemoveAllEndpoints() throws Exception {
+    void testRemoveAllEndpoints() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:jms-queue");
         mock.expectedMessageCount(1);
 
@@ -58,10 +59,10 @@ public class RemoveEndpointsTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("direct:foo").to("jms:queue:foo");
                 from("jms:queue:foo").to("mock:jms-queue");
                 from("jms:topic:bar").to("mock:jms-topic");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RssToHttpIssueTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RssToHttpIssueTest.java
index 5cabccf..6158a50 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RssToHttpIssueTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/issues/RssToHttpIssueTest.java
@@ -20,14 +20,14 @@ import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.support.builder.Namespaces;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 
 public class RssToHttpIssueTest extends CamelTestSupport {
 
     @Test
-    @Ignore
+    @Disabled
     public void testRssToHttpIssueTest() throws Exception {
         // ignore as it requires to be online for testing
         MockEndpoint mock = getMockEndpoint("mock:end");
@@ -37,10 +37,10 @@ public class RssToHttpIssueTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 Namespaces ns = new Namespaces("atom", "http://www.w3.org/2005/Atom");
                 from("rss:http://www.plosone.org/article/feed")
                         .marshal().rss()
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/JaxbFallbackTypeConverterTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/JaxbFallbackTypeConverterTest.java
index 11163bc..aaabd3f 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/JaxbFallbackTypeConverterTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/JaxbFallbackTypeConverterTest.java
@@ -24,28 +24,31 @@ import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.converter.jaxb.FallbackTypeConverter;
 import org.apache.camel.itest.jaxb.example.Bar;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class JaxbFallbackTypeConverterTest extends CamelTestSupport {
-    
+
     @Test
-    public void testJaxbFallbackTypeConverter() {
+    void testJaxbFallbackTypeConverter() {
         Bar bar = new Bar();
         bar.setName("camel");
         bar.setValue("cool");
         String result = template.requestBody("direct:start", bar, String.class);
         assertNotNull(result);
-        assertTrue("Get a wrong xml string", result.indexOf("<bar name=\"camel\" value=\"cool\"/>") > 0);
-        assertTrue("The pretty print setting is not working",  result.indexOf("><bar") > 0);
+        assertTrue(result.indexOf("<bar name=\"camel\" value=\"cool\"/>") > 0, "Get a wrong xml string");
+        assertTrue(result.indexOf("><bar") > 0, "The pretty print setting is not working");
     }
-    
+
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // setup the camel property for the PrettyPrint
                 context.getGlobalOptions().put(FallbackTypeConverter.PRETTY_PRINT, "false");
 
@@ -56,7 +59,7 @@ public class JaxbFallbackTypeConverterTest extends CamelTestSupport {
                         Message in = exchange.getIn();
                         InputStream is = in.getMandatoryBody(InputStream.class);
                         // make sure we can get the InputStream rightly.
-                        exchange.getOut().setBody(is);
+                        exchange.getMessage().setBody(is);
                     }
                     
                 });
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java
index 3d873f6..b83a2f4 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jaxb/SpringLoadRouteFromXmlTest.java
@@ -21,14 +21,17 @@ import javax.xml.bind.Unmarshaller;
 
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.model.RoutesDefinition;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
 public class SpringLoadRouteFromXmlTest extends CamelSpringTestSupport {
 
     @Override
@@ -37,8 +40,8 @@ public class SpringLoadRouteFromXmlTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testLoadRouteFromXml() throws Exception {
-        assertNotNull("Existing foo route should be there", context.getRoute("foo"));
+    void testLoadRouteFromXml() throws Exception {
+        assertNotNull(context.getRoute("foo"), "Existing foo route should be there");
         assertEquals(1, context.getRoutes().size());
 
         // test that existing route works
@@ -56,13 +59,13 @@ public class SpringLoadRouteFromXmlTest extends CamelSpringTestSupport {
 
         // it should be a RoutesDefinition (we can have multiple routes in the same XML file)
         RoutesDefinition routes = (RoutesDefinition) value;
-        assertNotNull("Should load routes from XML", routes);
+        assertNotNull(routes, "Should load routes from XML");
         assertEquals(1, routes.getRoutes().size());
 
         // add the routes to existing CamelContext
         context.addRouteDefinitions(routes.getRoutes());
 
-        assertNotNull("Loaded bar route should be there", context.getRoute("bar"));
+        assertNotNull(context.getRoute("bar"), "Loaded bar route should be there");
         assertEquals(2, context.getRoutes().size());
 
         // test that loaded route works
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyBridgeHostHeaderIssueTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyBridgeHostHeaderIssueTest.java
index 946a508..c6ee03f 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyBridgeHostHeaderIssueTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyBridgeHostHeaderIssueTest.java
@@ -20,8 +20,11 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
 
@@ -36,7 +39,7 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
     private String receivedHostHeaderEndpoint4;
 
     @Test
-    public void testHostHeader() throws Exception {
+    void testHostHeader() {
 
         //The first two calls will test http producers
 
@@ -45,12 +48,12 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
         //received by our downstream instance matches the address and port of the proxied service
         Exchange reply = template.request("http:localhost:" + port + "/myapp", new Processor() {
             @Override
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 exchange.getIn().setBody("Hello World");
             }
         });
         assertNotNull(reply);
-        assertEquals("foo", reply.getOut().getBody(String.class));
+        assertEquals("foo", reply.getMessage().getBody(String.class));
         //assert the received Host header is localhost:port (where port matches the /myapp port)
         assertEquals("localhost:" + port, receivedHostHeaderEndpoint1);
 
@@ -59,12 +62,12 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
         //to match the url of the destination service itself
         Exchange reply2 = template.request("http:localhost:" + port + "/myapp", new Processor() {
             @Override
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 exchange.getIn().setBody("Bye World");
             }
         });
         assertNotNull(reply2);
-        assertEquals("bar", reply2.getOut().getBody(String.class));
+        assertEquals("bar", reply2.getMessage().getBody(String.class));
         //assert the received Host header is localhost:port3 (where port3 matches the /bar destination server)
         assertEquals("localhost:" + port3, receivedHostHeaderEndpoint2);
 
@@ -74,30 +77,30 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
         //The first has the preserveHostHeader option set to true, so we would expect to receive a Host header matching the /myapp proxied service
         Exchange reply3 = template.request("http:localhost:" + port + "/myapp", new Processor() {
             @Override
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 exchange.getIn().setBody("Bye JWorld");
             }
         });
         assertNotNull(reply3);
-        assertEquals("jbar", reply3.getOut().getBody(String.class));
+        assertEquals("jbar", reply3.getMessage().getBody(String.class));
         //assert the received Host header is localhost:port (where port matches the /myapp destination server)
         assertEquals("localhost:" + port, receivedHostHeaderEndpoint3);
 
         //The second does not have a preserveHostHeader (preserveHostHeader=false), we would expect to see a Host header matching the destination service
         Exchange reply4 = template.request("http:localhost:" + port + "/myapp", new Processor() {
             @Override
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 exchange.getIn().setBody("JAVA!!!!");
             }
         });
         assertNotNull(reply4);
-        assertEquals("java???", reply4.getOut().getBody(String.class));
+        assertEquals("java???", reply4.getMessage().getBody(String.class));
         //assert the received Host header is localhost:port5 (where port3 matches the /jbarf destination server)
         assertEquals("localhost:" + port5, receivedHostHeaderEndpoint4);
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
         port2 = AvailablePortFinder.getNextAvailable();
         port3 = AvailablePortFinder.getNextAvailable();
@@ -106,7 +109,7 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("jetty:http://localhost:" + port + "/myapp?matchOnUriPrefix=true")
                     .loadBalance().roundRobin()
                         .to("http://localhost:" + port2 + "/foo?bridgeEndpoint=true&throwExceptionOnFailure=false&preserveHostHeader=true")
@@ -117,7 +120,7 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
                 from("jetty:http://localhost:" + port2 + "/foo")
                         .process(new Processor() {
                             @Override
-                            public void process(Exchange exchange) throws Exception {
+                            public void process(Exchange exchange) {
                                 receivedHostHeaderEndpoint1 = exchange.getIn().getHeader("Host", String.class);
                             }
                         })
@@ -126,7 +129,7 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
                 from("jetty:http://localhost:" + port3 + "/bar")
                         .process(new Processor() {
                             @Override
-                            public void process(Exchange exchange) throws Exception {
+                            public void process(Exchange exchange) {
                                 receivedHostHeaderEndpoint2 = exchange.getIn().getHeader("Host", String.class);
                             }
                         })
@@ -135,7 +138,7 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
                 from("jetty:http://localhost:" + port4 + "/jbar")
                         .process(new Processor() {
                             @Override
-                            public void process(Exchange exchange) throws Exception {
+                            public void process(Exchange exchange) {
                                 receivedHostHeaderEndpoint3 = exchange.getIn().getHeader("Host", String.class);
                             }
                         })
@@ -144,7 +147,7 @@ public class JettyBridgeHostHeaderIssueTest extends CamelTestSupport {
                 from("jetty:http://localhost:" + port5 + "/jbarf")
                         .process(new Processor() {
                             @Override
-                            public void process(Exchange exchange) throws Exception {
+                            public void process(Exchange exchange) {
                                 receivedHostHeaderEndpoint4 = exchange.getIn().getHeader("Host", String.class);
                             }
                         })
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyConstantSetHeaderTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyConstantSetHeaderTest.java
index ada06d8..43c19de 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyConstantSetHeaderTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyConstantSetHeaderTest.java
@@ -19,15 +19,17 @@ package org.apache.camel.itest.jetty;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JettyConstantSetHeaderTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testJettyConstantSetHeader() throws Exception {
+    void testJettyConstantSetHeader() throws Exception {
         getMockEndpoint("mock:before").message(0).header("beer").isNull();
 
         MockEndpoint result = getMockEndpoint("mock:result");
@@ -41,12 +43,12 @@ public class JettyConstantSetHeaderTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("jetty:http://localhost:" + port + "/beer")
                         .convertBodyTo(String.class)
                         .to("mock:before")
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyFailoverRoundRobinTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyFailoverRoundRobinTest.java
index 2181619..8af8de0 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyFailoverRoundRobinTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyFailoverRoundRobinTest.java
@@ -20,8 +20,10 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JettyFailoverRoundRobinTest extends CamelTestSupport {
     private static int port1 = AvailablePortFinder.getNextAvailable();
@@ -39,7 +41,7 @@ public class JettyFailoverRoundRobinTest extends CamelTestSupport {
     private String hgood2 = "http://localhost:" + port4 + "/good2";
 
     @Test
-    public void testJettyFailoverRoundRobin() throws Exception {
+    void testJettyFailoverRoundRobin() throws Exception {
         getMockEndpoint("mock:bad").expectedMessageCount(1);
         getMockEndpoint("mock:bad2").expectedMessageCount(1);
         getMockEndpoint("mock:good").expectedMessageCount(1);
@@ -64,10 +66,10 @@ public class JettyFailoverRoundRobinTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // START SNIPPET: e1
                 from("direct:start")
                     // load balance using failover in round robin mode.
@@ -82,7 +84,7 @@ public class JettyFailoverRoundRobinTest extends CamelTestSupport {
                 from(bad)
                     .to("mock:bad")
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 500);
                             exchange.getIn().setBody("Something bad happened");
                         }
@@ -91,7 +93,7 @@ public class JettyFailoverRoundRobinTest extends CamelTestSupport {
                 from(bad2)
                     .to("mock:bad2")
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 404);
                             exchange.getIn().setBody("Not found");
                         }
@@ -100,7 +102,7 @@ public class JettyFailoverRoundRobinTest extends CamelTestSupport {
                 from(good)
                     .to("mock:good")
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             exchange.getIn().setBody("Good");
                         }
                     });
@@ -108,7 +110,7 @@ public class JettyFailoverRoundRobinTest extends CamelTestSupport {
                 from(good2)
                     .to("mock:good2")
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             exchange.getIn().setBody("Also good");
                         }
                     });
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyFreemarkerTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyFreemarkerTest.java
index b6aa75f..71b3702 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyFreemarkerTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyFreemarkerTest.java
@@ -26,17 +26,21 @@ import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StringHelper;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 public class JettyFreemarkerTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testClasspath() throws Exception {
+    void testClasspath() {
         Map<String, Object> map = new HashMap<>();
         map.put("firstName", "John");
         map.put("lastName", "Doe");
@@ -47,7 +51,7 @@ public class JettyFreemarkerTest extends CamelTestSupport {
     }
 
     @Test
-    public void testClasspathInvalidParameter() throws Exception {
+    void testClasspathInvalidParameter() {
         try {
             Map<String, Object> map = new HashMap<>();
             map.put("firstName", "John");
@@ -61,7 +65,7 @@ public class JettyFreemarkerTest extends CamelTestSupport {
     }
 
     @Test
-    public void testHttp() throws Exception {
+    void testHttp() {
         Map<String, Object> map = new HashMap<>();
         map.put("firstName", "John");
         map.put("lastName", "Doe");
@@ -72,7 +76,7 @@ public class JettyFreemarkerTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
@@ -91,8 +95,8 @@ public class JettyFreemarkerTest extends CamelTestSupport {
                             InputStream is = ResourceHelper.resolveMandatoryResourceAsInputStream(exchange.getContext(), name);
                             String xml = exchange.getContext().getTypeConverter().convertTo(String.class, is);
 
-                            exchange.getOut().setBody(xml);
-                            exchange.getOut().setHeader(Exchange.CONTENT_TYPE, "text/plain");
+                            exchange.getMessage().setBody(xml);
+                            exchange.getMessage().setHeader(Exchange.CONTENT_TYPE, "text/plain");
                         }
                     });
             }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyGroovySetHeaderTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyGroovySetHeaderTest.java
index d3aef03..759a030 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyGroovySetHeaderTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyGroovySetHeaderTest.java
@@ -19,17 +19,18 @@ package org.apache.camel.itest.jetty;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.language.groovy.GroovyLanguage.groovy;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JettyGroovySetHeaderTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testJettyGroovySetHeader() throws Exception {
+    void testJettyGroovySetHeader() throws Exception {
         getMockEndpoint("mock:before").message(0).header("beer").isNull();
 
         MockEndpoint result = getMockEndpoint("mock:result");
@@ -43,12 +44,12 @@ public class JettyGroovySetHeaderTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("jetty:http://localhost:" + port + "/beer")
                         .convertBodyTo(String.class)
                         .to("mock:before")
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest.java
index 884ba33..3dd8c7f 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsShutdownInProgressTest.java
@@ -24,14 +24,17 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.http.common.HttpOperationFailedException;
 import org.apache.camel.test.AvailablePortFinder;
-import org.junit.Assert;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+
+@CamelSpringTest
 @ContextConfiguration
-public class JettyJmsShutdownInProgressTest extends AbstractJUnit4SpringContextTests {
+public class JettyJmsShutdownInProgressTest {
     private static int port = AvailablePortFinder.getNextAvailable();
     private static final String URL = "http://localhost:" + port + "/test";
     static {
@@ -47,7 +50,7 @@ public class JettyJmsShutdownInProgressTest extends AbstractJUnit4SpringContextT
     protected ProducerTemplate template;
 
     @Test
-    public void testShutdownInProgress() throws Exception {
+    void testShutdownInProgress() throws Exception {
         Future<String> reply1 = template.asyncRequestBody(URL, "World", String.class);
         Future<String> reply2 = template.asyncRequestBody(URL, "Camel", String.class);
 
@@ -69,15 +72,15 @@ public class JettyJmsShutdownInProgressTest extends AbstractJUnit4SpringContextT
         // this one should fail
         try {
             template.requestBody(URL, "Tiger", String.class);
-            Assert.fail("Should have thrown exception");
+            fail("Should have thrown exception");
         } catch (Exception e) {
             HttpOperationFailedException hofe = (HttpOperationFailedException) e.getCause();
-            Assert.assertEquals(503, hofe.getStatusCode());
+            assertEquals(503, hofe.getStatusCode());
         }
 
         // but the 2 first should still return valid replies
-        Assert.assertEquals("Bye World", reply1.get(10, TimeUnit.SECONDS));
-        Assert.assertEquals("Bye Camel", reply2.get(10, TimeUnit.SECONDS));
+        assertEquals("Bye World", reply1.get(10, TimeUnit.SECONDS));
+        assertEquals("Bye Camel", reply2.get(10, TimeUnit.SECONDS));
     }
 
 }
\ No newline at end of file
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsShutdownTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsShutdownTest.java
index 4a88c8a..3d7fed7 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsShutdownTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsShutdownTest.java
@@ -22,14 +22,17 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.test.AvailablePortFinder;
-import org.junit.Assert;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+@CamelSpringTest
 @ContextConfiguration
-public class JettyJmsShutdownTest extends AbstractJUnit4SpringContextTests {
+public class JettyJmsShutdownTest {
     private static int port = AvailablePortFinder.getNextAvailable();
     private static final String URL = "http://localhost:" + port + "/test";
     static {
@@ -45,7 +48,7 @@ public class JettyJmsShutdownTest extends AbstractJUnit4SpringContextTests {
     protected ProducerTemplate template;
 
     @Test
-    public void testShutdown() throws Exception {
+    void testShutdown() throws Exception {
         Future<String> reply1 = template.asyncRequestBody(URL, "World", String.class);
         Future<String> reply2 = template.asyncRequestBody(URL, "Camel", String.class);
         Future<String> reply3 = template.asyncRequestBody(URL, "Tiger", String.class);
@@ -55,9 +58,9 @@ public class JettyJmsShutdownTest extends AbstractJUnit4SpringContextTests {
         // shutdown while in progress
         camelContext.stop();
 
-        Assert.assertEquals("Bye World", reply1.get(5, TimeUnit.SECONDS));
-        Assert.assertEquals("Bye Camel", reply2.get(5, TimeUnit.SECONDS));
-        Assert.assertEquals("Bye Tiger", reply3.get(5, TimeUnit.SECONDS));
+        assertEquals("Bye World", reply1.get(5, TimeUnit.SECONDS));
+        assertEquals("Bye Camel", reply2.get(5, TimeUnit.SECONDS));
+        assertEquals("Bye Tiger", reply3.get(5, TimeUnit.SECONDS));
     }
 
 }
\ No newline at end of file
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsTest.java
index 30bc81f..c1ae34a 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsTest.java
@@ -24,16 +24,17 @@ import org.apache.camel.Exchange;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@CamelSpringTest
 @ContextConfiguration
-public class JettyJmsTest extends AbstractJUnit4SpringContextTests {
+public class JettyJmsTest {
     private static int port = AvailablePortFinder.getNextAvailable();
     private static final String URL = "http://localhost:" + port + "/test";
     static {
@@ -49,7 +50,7 @@ public class JettyJmsTest extends AbstractJUnit4SpringContextTests {
     protected MockEndpoint resultEndpoint;
 
     @Test
-    public void testMocksAreValid() throws Exception {
+    void testMocksAreValid() throws Exception {
         assertNotNull(resultEndpoint);
         resultEndpoint.reset();
 
@@ -62,12 +63,12 @@ public class JettyJmsTest extends AbstractJUnit4SpringContextTests {
 
         MockEndpoint.assertIsSatisfied(camelContext);
         List<Exchange> list = resultEndpoint.getReceivedExchanges();
-        assertEquals("Should get one message", list.size(), 1);
+        assertEquals(list.size(), 1, "Should get one message");
 
         for (Exchange exchange : list) {
             Object result = exchange.getIn().getBody();
-            assertEquals("Should get the request", "Hello form Willem", result);
-            assertEquals("Should get the header", "greetMe", exchange.getIn().getHeader("Operation"));
+            assertEquals("Hello form Willem", result, "Should get the request");
+            assertEquals("greetMe", exchange.getIn().getHeader("Operation"), "Should get the header");
         }
     }
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsTwowayTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsTwowayTest.java
index 68fed6b..7a49c4d 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsTwowayTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyJmsTwowayTest.java
@@ -21,17 +21,18 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.test.AvailablePortFinder;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
+@CamelSpringTest
 @ContextConfiguration
-public class JettyJmsTwowayTest extends AbstractJUnit4SpringContextTests {
-    
+public class JettyJmsTwowayTest {
+
     private static int port = AvailablePortFinder.getNextAvailable();
     private static final String URL = "http://localhost:" + port + "/test";
     static {
@@ -45,17 +46,17 @@ public class JettyJmsTwowayTest extends AbstractJUnit4SpringContextTests {
     protected CamelContext camelContext;
 
     @Test
-    public void testSendingRequest() throws Exception {
-        assertNotNull("the camelContext should not be null", camelContext);
+    void testSendingRequest() {
+        assertNotNull(camelContext, "The camelContext should not be null");
         ProducerTemplate template = camelContext.createProducerTemplate();
         Exchange exchange = template.send(URL, new Processor() {
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 exchange.getIn().setBody("<hello>Willem</hello>");
                 exchange.getIn().setHeader("Operation", "greetMe");
             }
 
         });
-        assertEquals("get result ", "<response><hello>Willem</hello></response>", exchange.getOut().getBody(String.class));
+        assertEquals("<response><hello>Willem</hello></response>", exchange.getMessage().getBody(String.class));
         template.stop();
     }
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyMulticastJmsFileTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyMulticastJmsFileTest.java
index 06e6b0c..6c07a76 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyMulticastJmsFileTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyMulticastJmsFileTest.java
@@ -20,16 +20,17 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.TestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.TestSupport;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
+@CamelSpringTest
 @ContextConfiguration
-public class JettyMulticastJmsFileTest extends AbstractJUnit4SpringContextTests {
+public class JettyMulticastJmsFileTest {
     
     private static int port = AvailablePortFinder.getNextAvailable();
     private static final String URL = "http://localhost:" + port + "/test";
@@ -43,7 +44,7 @@ public class JettyMulticastJmsFileTest extends AbstractJUnit4SpringContextTests
     protected CamelContext camelContext;
 
     @Test
-    public void testJettyMulticastJmsFile() throws Exception {
+    void testJettyMulticastJmsFile() {
         TestSupport.deleteDirectory("target/jetty");
 
         ProducerTemplate template = camelContext.createProducerTemplate();
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyRestRedirectTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyRestRedirectTest.java
index 7e426ab..7e55bef 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyRestRedirectTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyRestRedirectTest.java
@@ -20,22 +20,24 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JettyRestRedirectTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testRedirectInvocation() throws Exception {
+    void testRedirectInvocation() {
         String response = template.requestBody("http://localhost:" + port + "/metadata/profile/tag", "<hello>Camel</hello>", String.class);
-        assertEquals("It should support the redirect out of box.", "Mock profile", response);
+        assertEquals("Mock profile", response, "It should support the redirect out of box.");
     }
 
     
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
@@ -48,9 +50,9 @@ public class JettyRestRedirectTest extends CamelTestSupport {
                 from("direct:profileLookup").transform().constant("Mock profile");
                 from("direct:tag").log("${headers}").process(new Processor() {
                     @Override
-                    public void process(Exchange ex) throws Exception {
-                        ex.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 303);
-                        ex.getOut().setHeader("Location", "/metadata/profile/1");
+                    public void process(Exchange ex) {
+                        ex.getMessage().setHeader(Exchange.HTTP_RESPONSE_CODE, 303);
+                        ex.getMessage().setHeader("Location", "/metadata/profile/1");
                     }
                 }).log("${headers}").transform().constant("Redirecting...");
             }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimpleSetHeaderTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimpleSetHeaderTest.java
index ced8184..0098600 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimpleSetHeaderTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimpleSetHeaderTest.java
@@ -19,15 +19,17 @@ package org.apache.camel.itest.jetty;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JettySimpleSetHeaderTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testJettySimpleSetHeader() throws Exception {
+    void testJettySimpleSetHeader() throws Exception {
         getMockEndpoint("mock:before").message(0).header("beer").isNull();
 
         MockEndpoint result = getMockEndpoint("mock:result");
@@ -41,12 +43,12 @@ public class JettySimpleSetHeaderTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("jetty:http://localhost:" + port + "/beer")
                         .convertBodyTo(String.class)
                         .to("mock:before")
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimulateFailoverRoundRobinTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimulateFailoverRoundRobinTest.java
index 10b9aab..9885a8d 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimulateFailoverRoundRobinTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySimulateFailoverRoundRobinTest.java
@@ -25,8 +25,10 @@ import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JettySimulateFailoverRoundRobinTest extends CamelTestSupport {
 
@@ -45,7 +47,7 @@ public class JettySimulateFailoverRoundRobinTest extends CamelTestSupport {
     private String hgood2 = "http://localhost:" + port4 + "/good2";
 
     @Test
-    public void testJettySimulateFailoverRoundRobin() throws Exception {
+    void testJettySimulateFailoverRoundRobin() throws Exception {
         getMockEndpoint("mock:bad").expectedMessageCount(1);
         getMockEndpoint("mock:bad2").expectedMessageCount(1);
         getMockEndpoint("mock:good").expectedMessageCount(1);
@@ -70,17 +72,17 @@ public class JettySimulateFailoverRoundRobinTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("direct:start")
                     .process(new MyFailoverLoadBalancer(template, hbad, hbad2, hgood, hgood2));
 
                 from(bad)
                     .to("mock:bad")
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 500);
                             exchange.getIn().setBody("Something bad happened");
                         }
@@ -89,7 +91,7 @@ public class JettySimulateFailoverRoundRobinTest extends CamelTestSupport {
                 from(bad2)
                     .to("mock:bad2")
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             exchange.getIn().setHeader(Exchange.HTTP_RESPONSE_CODE, 404);
                             exchange.getIn().setBody("Not found");
                         }
@@ -98,7 +100,7 @@ public class JettySimulateFailoverRoundRobinTest extends CamelTestSupport {
                 from(good)
                     .to("mock:good")
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             exchange.getIn().setBody("Good");
                         }
                     });
@@ -106,7 +108,7 @@ public class JettySimulateFailoverRoundRobinTest extends CamelTestSupport {
                 from(good2)
                     .to("mock:good2")
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             exchange.getIn().setBody("Also good");
                         }
                     });
@@ -129,7 +131,7 @@ public class JettySimulateFailoverRoundRobinTest extends CamelTestSupport {
         }
 
         @Override
-        public void process(Exchange exchange) throws Exception {
+        public void process(Exchange exchange) {
             boolean done = false;
             while (!done) {
                 // pick endpoint
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySpringFailoverRoundRobinTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySpringFailoverRoundRobinTest.java
index 3b5c49b..5ae8b3c 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySpringFailoverRoundRobinTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettySpringFailoverRoundRobinTest.java
@@ -17,11 +17,13 @@
 package org.apache.camel.itest.jetty;
 
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+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.junit.jupiter.api.Assertions.assertEquals;
+
 public class JettySpringFailoverRoundRobinTest extends CamelSpringTestSupport {
 
     private static int port1 = AvailablePortFinder.getNextAvailable();
@@ -44,7 +46,7 @@ public class JettySpringFailoverRoundRobinTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testJettySpringFailoverRoundRobin() throws Exception {
+    void testJettySpringFailoverRoundRobin() throws Exception {
         getMockEndpoint("mock:bad").expectedMessageCount(1);
         getMockEndpoint("mock:bad2").expectedMessageCount(1);
         getMockEndpoint("mock:good").expectedMessageCount(1);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorStreamTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorStreamTest.java
index ac016b1..25ac626 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorStreamTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorStreamTest.java
@@ -20,29 +20,32 @@ import java.io.InputStream;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class JettyValidatorStreamTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testValideRequestAsStream() throws Exception {
+    void testValideRequestAsStream() {
         InputStream inputStream = this.getClass().getResourceAsStream("ValidRequest.xml");
-        assertNotNull("the inputStream should not be null", inputStream);
+        assertNotNull(inputStream, "The inputStream should not be null");
 
         String response = template.requestBody("http://localhost:" + port + "/test", inputStream, String.class);
-        assertEquals("The response should be ok", response, "<ok/>");
+        assertEquals(response, "<ok/>", "The response should be ok");
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("jetty:http://localhost:" + port + "/test")
                     .to("validator:OptimizationRequest.xsd")
                     .transform(constant("<ok/>"));
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorStreamWithStreamCachingEnabledTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorStreamWithStreamCachingEnabledTest.java
index 9ee9857..707634b 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorStreamWithStreamCachingEnabledTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorStreamWithStreamCachingEnabledTest.java
@@ -20,29 +20,32 @@ import java.io.InputStream;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class JettyValidatorStreamWithStreamCachingEnabledTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testValideRequestAsStream() throws Exception {
+    void testValideRequestAsStream() {
         InputStream inputStream = this.getClass().getResourceAsStream("ValidRequest.xml");
-        assertNotNull("the inputStream should not be null", inputStream);
+        assertNotNull(inputStream, "The inputStream should not be null");
 
         String response = template.requestBody("http://localhost:" + port + "/test", inputStream, String.class);
-        assertEquals("The response should be ok", response, "<ok/>");
+        assertEquals(response, "<ok/>", "The response should be ok");
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 context.setStreamCaching(true);
 
                 from("jetty:http://localhost:" + port + "/test")
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorTest.java
index 58a25e6..bcea117 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyValidatorTest.java
@@ -21,34 +21,37 @@ import java.io.InputStream;
 import org.apache.camel.ValidationException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class JettyValidatorTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testValidRequest() throws Exception {
+    void testValidRequest() {
         InputStream inputStream = this.getClass().getResourceAsStream("ValidRequest.xml");
-        assertNotNull("the inputStream should not be null", inputStream);
+        assertNotNull(inputStream, "The inputStream should not be null");
 
         String response = template.requestBody("http://localhost:" + port + "/test", inputStream, String.class);
 
-        assertEquals("The response should be ok", response, "<ok/>");
+        assertEquals(response, "<ok/>", "The response should be ok");
     }
 
     @Test
-    public void testInvalidRequest() throws Exception {
+    void testInvalidRequest() {
         InputStream inputStream = this.getClass().getResourceAsStream("InvalidRequest.xml");
-        assertNotNull("the inputStream should not be null", inputStream);
+        assertNotNull(inputStream, "The inputStream should not be null");
 
         String response = template.requestBody("http://localhost:" + port + "/test", inputStream, String.class);
-        assertEquals("The response should be error", response, "<error/>");
+        assertEquals(response, "<error/>", "The response should be error");
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyVelocityTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyVelocityTest.java
index 09bc5e3..c8a2e18 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyVelocityTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyVelocityTest.java
@@ -26,16 +26,20 @@ import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.util.ObjectHelper;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 public class JettyVelocityTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testClasspath() throws Exception {
+    void testClasspath() {
         Map<String, Object> map = new HashMap<>();
         map.put("firstName", "John");
         map.put("lastName", "Doe");
@@ -46,7 +50,7 @@ public class JettyVelocityTest extends CamelTestSupport {
     }
 
     @Test
-    public void testClasspathInvalidParameter() throws Exception {
+    void testClasspathInvalidParameter() {
         try {
             Map<String, Object> map = new HashMap<>();
             map.put("firstName", "John");
@@ -60,7 +64,7 @@ public class JettyVelocityTest extends CamelTestSupport {
     }
 
     @Test
-    public void testHttp() throws Exception {
+    void testHttp() {
         Map<String, Object> map = new HashMap<>();
         map.put("firstName", "John");
         map.put("lastName", "Doe");
@@ -71,7 +75,7 @@ public class JettyVelocityTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
@@ -87,8 +91,8 @@ public class JettyVelocityTest extends CamelTestSupport {
                             InputStream is = ResourceHelper.resolveMandatoryResourceAsInputStream(exchange.getContext(), name);
                             String xml = exchange.getContext().getTypeConverter().convertTo(String.class, is);
 
-                            exchange.getOut().setBody(xml);
-                            exchange.getOut().setHeader(Exchange.CONTENT_TYPE, "text/plain");
+                            exchange.getMessage().setBody(xml);
+                            exchange.getMessage().setHeader(Exchange.CONTENT_TYPE, "text/plain");
                         }
                     });
             }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyXsltHttpTemplateTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyXsltHttpTemplateTest.java
index 85fb7a9..7b63350 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyXsltHttpTemplateTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyXsltHttpTemplateTest.java
@@ -18,25 +18,25 @@ package org.apache.camel.itest.jetty;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
-/**
- *
- */
 public class JettyXsltHttpTemplateTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testXsltHttpTemplate() throws Exception {
+    void testXsltHttpTemplate() throws Exception {
         // give Jetty a bit time to startup and be ready
         Thread.sleep(1000);
 
         String xml = template.requestBody("xslt:http://0.0.0.0:" + port + "/myxslt",
                 "<mail><subject>Hey</subject><body>Hello world!</body></mail>", String.class);
 
-        assertNotNull("The transformed XML should not be null", xml);
+        assertNotNull(xml, "The transformed XML should not be null");
         assertTrue(xml.indexOf("transformed") > -1);
         // the cheese tag is in the transform.xsl
         assertTrue(xml.indexOf("cheese") > -1);
@@ -45,12 +45,12 @@ public class JettyXsltHttpTemplateTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("jetty:http://0.0.0.0:" + port + "/myxslt")
                     .pollEnrich("file://src/test/resources/org/apache/camel/itest/jetty/?fileName=transform.xsl&noop=true&readLock=none", 2000)
                     .convertBodyTo(String.class)
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyXsltTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyXsltTest.java
index cfbc39f..2b0766b 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyXsltTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/JettyXsltTest.java
@@ -24,23 +24,27 @@ import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.camel.util.ObjectHelper;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 public class JettyXsltTest extends CamelTestSupport {
 
     private int port;
 
     @Test
-    public void testClasspath() throws Exception {
+    void testClasspath() {
         String response = template.requestBody("xslt:org/apache/camel/itest/jetty/greeting.xsl", "<hello>Camel</hello>", String.class);
 
         assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><goodbye>Camel</goodbye>", response);
     }
 
     @Test
-    public void testClasspathInvalidParameter() throws Exception {
+    void testClasspathInvalidParameter() {
         try {
             template.requestBody("xslt:org/apache/camel/itest/jetty/greeting.xsl?name=greeting.xsl", "<hello>Camel</hello>", String.class);
             fail("Should have thrown exception");
@@ -50,14 +54,14 @@ public class JettyXsltTest extends CamelTestSupport {
     }
 
     @Test
-    public void testHttp() throws Exception {
+    void testHttp() {
         String response = template.requestBody("xslt://http://localhost:" + port + "/test?name=greeting.xsl", "<hello>Camel</hello>", String.class);
 
         assertEquals("<?xml version=\"1.0\" encoding=\"UTF-8\"?><goodbye>Camel</goodbye>", response);
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
@@ -73,8 +77,8 @@ public class JettyXsltTest extends CamelTestSupport {
                             InputStream is = ResourceHelper.resolveMandatoryResourceAsInputStream(exchange.getContext(), name);
                             String xml = exchange.getContext().getTypeConverter().convertTo(String.class, is);
 
-                            exchange.getOut().setBody(xml);
-                            exchange.getOut().setHeader(Exchange.CONTENT_TYPE, "text/xml");
+                            exchange.getMessage().setBody(xml);
+                            exchange.getMessage().setHeader(Exchange.CONTENT_TYPE, "text/xml");
                         }
                     });
             }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/SetExchangePatternProcessor.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/SetExchangePatternProcessor.java
index 9e2aee5..668d009 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/SetExchangePatternProcessor.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/SetExchangePatternProcessor.java
@@ -23,7 +23,7 @@ import org.apache.camel.Processor;
 public class SetExchangePatternProcessor implements Processor {
 
     @Override
-    public void process(Exchange exchange) throws Exception {
+    public void process(Exchange exchange) {
         // Override the exchange pattern
         exchange.setPattern(ExchangePattern.InOnly);
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/SetResponseProcessor.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/SetResponseProcessor.java
index 51d9a2e..bd63392 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/SetResponseProcessor.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jetty/SetResponseProcessor.java
@@ -22,12 +22,12 @@ import org.apache.camel.Processor;
 public class SetResponseProcessor implements Processor {
 
     @Override
-    public void process(Exchange exchange) throws Exception {
+    public void process(Exchange exchange) {
 
         // Convert the input stream into a string
         String request = exchange.getIn().getBody(String.class);
         
-        exchange.getOut().setBody("<response>" + request + "</response>");
+        exchange.getMessage().setBody("<response>" + request + "</response>");
 
     }
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.java
index 16ec9c4..6bd8b1c 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/AdviceWithTransactionIssueTest.java
@@ -19,9 +19,9 @@ package org.apache.camel.itest.jms;
 import org.apache.camel.builder.AdviceWithRouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.reifier.RouteReifier;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
 import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 
 public class AdviceWithTransactionIssueTest extends CamelSpringTestSupport {
@@ -37,10 +37,10 @@ public class AdviceWithTransactionIssueTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testAdviceWithWeaveById() throws Exception {
+    void testAdviceWithWeaveById() throws Exception {
         RouteReifier.adviceWith(context.getRouteDefinitions().get(0), context, new AdviceWithRouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 weaveById("mock-b*").after().to("mock:last");
             }
         });
@@ -56,10 +56,10 @@ public class AdviceWithTransactionIssueTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testAdviceWithAddLast() throws Exception {
+    void testAdviceWithAddLast() throws Exception {
         RouteReifier.adviceWith(context.getRouteDefinitions().get(0), context, new AdviceWithRouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 weaveAddLast().to("mock:last");
             }
         });
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/DynamicRouteTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/DynamicRouteTest.java
index 12264b0..2217c42 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/DynamicRouteTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/DynamicRouteTest.java
@@ -24,15 +24,16 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class DynamicRouteTest extends CamelTestSupport {
     
     @Test
-    public void testDynamicRouteWithJms() throws Exception {
+    void testDynamicRouteWithJms() {
         String response = template.requestBody("jms:queue:request?replyTo=bar", "foo", String.class);
         assertEquals("response is foo", response);
         response = template.requestBody("jms:queue:request", "bar", String.class);
@@ -42,18 +43,16 @@ public class DynamicRouteTest extends CamelTestSupport {
     }
     
     @Test
-    public void testDynamicRouteWithDirect() throws Exception {
+    void testDynamicRouteWithDirect() {
         String response = template.requestBody("direct:start", "foo", String.class);
         assertEquals("response is foo", response);
         response = template.requestBody("direct:start", "bar", String.class);
         assertEquals("response is bar", response);
-        
-      
     }
     
     
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
        
         return new RouteBuilder() {
             public void configure() {
@@ -67,7 +66,7 @@ public class DynamicRouteTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/FileToJmsTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/FileToJmsTest.java
index 678b86b..d2f18c4 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/FileToJmsTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/FileToJmsTest.java
@@ -20,13 +20,14 @@ import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
+@CamelSpringTest
 @ContextConfiguration
-public class FileToJmsTest extends AbstractJUnit4SpringContextTests {
+public class FileToJmsTest {
 
     @Autowired
     protected ProducerTemplate template;
@@ -34,7 +35,7 @@ public class FileToJmsTest extends AbstractJUnit4SpringContextTests {
     protected MockEndpoint result;
 
     @Test
-    public void testFileToJms() throws Exception {
+    void testFileToJms() throws Exception {
         result.expectedBodiesReceived("Hello World");
 
         template.sendBodyAndHeader("file://target/jmsfile?fileExist=Override", "Hello World", Exchange.FILE_NAME, "hello.txt");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.java
index e10b58d..85ded34 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JMSTransactionIsTransactedRedeliveredTest.java
@@ -22,10 +22,13 @@ import org.apache.camel.builder.AdviceWithRouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.reifier.RouteReifier;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 /**
  * Test that exchange.isExternalRedelivered() is kept around even when
  * Message implementation changes from JmsMessage to DefaultMessage, when routing
@@ -52,10 +55,10 @@ public class JMSTransactionIsTransactedRedeliveredTest extends CamelSpringTestSu
     }
 
     @Test
-    public void testTransactionSuccess() throws Exception {
+    void testTransactionSuccess() throws Exception {
         RouteReifier.adviceWith(context.getRouteDefinitions().get(0), context, new AdviceWithRouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 onException(AssertionError.class).to("log:error", "mock:error");
             }
         });
@@ -85,14 +88,14 @@ public class JMSTransactionIsTransactedRedeliveredTest extends CamelSpringTestSu
         private int count;
 
         @Override
-        public void process(Exchange exchange) throws Exception {
+        public void process(Exchange exchange) {
             ++count;
 
             // the first is not redelivered
             if (count == 1) {
-                assertFalse("Should not be external redelivered", exchange.isExternalRedelivered());
+                assertFalse(exchange.isExternalRedelivered(), "Should not be external redelivered");
             } else {
-                assertTrue("Should be external redelivered", exchange.isExternalRedelivered());
+                assertTrue(exchange.isExternalRedelivered(), "Should be external redelivered");
             }
 
             if (count < 3) {
@@ -104,9 +107,9 @@ public class JMSTransactionIsTransactedRedeliveredTest extends CamelSpringTestSu
 
     public static class MyAfterProcessor implements Processor {
         @Override
-        public void process(Exchange exchange) throws Exception {
+        public void process(Exchange exchange) {
             // origin message should be a external redelivered
-            assertTrue("Should be external redelivered", exchange.isExternalRedelivered());
+            assertTrue(exchange.isExternalRedelivered(), "Should be external redelivered");
         }
     }
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsConsumerShutdownTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsConsumerShutdownTest.java
index f8b4ef8..9425ca1 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsConsumerShutdownTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsConsumerShutdownTest.java
@@ -23,13 +23,14 @@ import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
+@CamelSpringTest
 @ContextConfiguration
-public class JmsConsumerShutdownTest extends AbstractJUnit4SpringContextTests {
+public class JmsConsumerShutdownTest {
 
     @Produce("activemq:start")
     protected ProducerTemplate activemq;
@@ -45,7 +46,7 @@ public class JmsConsumerShutdownTest extends AbstractJUnit4SpringContextTests {
 
     @Test
     @DirtiesContext
-    public void testJmsConsumerShutdownWithMessageInFlight() throws InterruptedException {
+    void testJmsConsumerShutdownWithMessageInFlight() throws InterruptedException {
         end.expectedMessageCount(0);
         end.setResultWaitTime(2000);
 
@@ -65,7 +66,7 @@ public class JmsConsumerShutdownTest extends AbstractJUnit4SpringContextTests {
     // Just for the sake of comparison test the SedaConsumer as well
     @Test
     @DirtiesContext
-    public void testSedaConsumerShutdownWithMessageInFlight() throws InterruptedException {
+    void testSedaConsumerShutdownWithMessageInFlight() throws InterruptedException {
         end.expectedMessageCount(0);
         end.setResultWaitTime(2000);
 
@@ -85,7 +86,7 @@ public class JmsConsumerShutdownTest extends AbstractJUnit4SpringContextTests {
 
     public static class MyRouteBuilder extends RouteBuilder {
         @Override
-        public void configure() throws Exception {
+        public void configure() {
             from("activemq:start")
                     .to("direct:dir")
                     .to("mock:end");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpJmsTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpJmsTest.java
index cbdb139..f4ad1fb 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpJmsTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpJmsTest.java
@@ -27,10 +27,12 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Based on user forum.
@@ -40,7 +42,7 @@ public class JmsHttpJmsTest extends CamelTestSupport {
     private int port;
 
     @Test
-    public void testJmsHttpJms() throws Exception {
+    void testJmsHttpJms() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
         mock.expectedBodiesReceived("Bye World");
@@ -49,7 +51,7 @@ public class JmsHttpJmsTest extends CamelTestSupport {
 
         Endpoint endpoint = context.getEndpoint("jms:out");
         endpoint.createConsumer(new Processor() {
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 assertEquals("Bye World", exchange.getIn().getBody(String.class));
             }
         });
@@ -58,21 +60,21 @@ public class JmsHttpJmsTest extends CamelTestSupport {
     }
     
     @Test
-    public void testResultReplyJms() throws Exception {
+    void testResultReplyJms() throws Exception {
         Exchange exchange = template.request("jms:reply?replyTo=bar", new Processor() {
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 exchange.getIn().setBody("Hello World");
             }
         });
-        assertEquals("Bye World", exchange.getOut().getBody(String.class));
-        assertTrue("Should have headers", exchange.getOut().hasHeaders());
-        assertEquals("queue://bar", exchange.getOut().getHeader("JMSReplyTo", String.class));
+        assertEquals("Bye World", exchange.getMessage().getBody(String.class));
+        assertTrue(exchange.getMessage().hasHeaders(), "Should have headers");
+        assertEquals("queue://bar", exchange.getMessage().getHeader("JMSReplyTo", String.class));
         
       
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
@@ -87,7 +89,7 @@ public class JmsHttpJmsTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpPostIssueTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpPostIssueTest.java
index a948e41..97184a9 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpPostIssueTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpPostIssueTest.java
@@ -26,13 +26,15 @@ import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.Exchange.CONTENT_TYPE;
 import static org.apache.camel.Exchange.HTTP_METHOD;
 import static org.apache.camel.Exchange.HTTP_RESPONSE_CODE;
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  * Based on user forum.
@@ -42,22 +44,22 @@ public class JmsHttpPostIssueTest extends CamelTestSupport {
     private int port;
 
     @Test
-    public void testJmsInOnlyHttpPostIssue() throws Exception {
+    void testJmsInOnlyHttpPostIssue() {
         NotifyBuilder notify = new NotifyBuilder(context).whenCompleted(1).from("jms*").create();
 
         template.sendBody("jms:queue:in", "Hello World");
 
-        assertTrue("Should complete the JMS route", notify.matchesMockWaitTime());
+        assertTrue(notify.matchesMockWaitTime(), "Should complete the JMS route");
     }
 
     @Test
-    public void testJmsInOutHttpPostIssue() throws Exception {
+    void testJmsInOutHttpPostIssue() {
         String out = template.requestBody("jms:queue:in", "Hello World", String.class);
-        assertEquals("OK", out);
+        assertEquals(out, "OK");
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
@@ -71,13 +73,13 @@ public class JmsHttpPostIssueTest extends CamelTestSupport {
                 from("jetty:http://0.0.0.0:" + port + "/myservice")
                     .process(new Processor() {
                         @Override
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             String body = exchange.getIn().getBody(String.class);
                             assertEquals("name=Hello World", body);
 
-                            exchange.getOut().setBody("OK");
-                            exchange.getOut().setHeader(CONTENT_TYPE, "text/plain");
-                            exchange.getOut().setHeader(HTTP_RESPONSE_CODE, 200);
+                            exchange.getMessage().setBody("OK");
+                            exchange.getMessage().setHeader(CONTENT_TYPE, "text/plain");
+                            exchange.getMessage().setHeader(HTTP_RESPONSE_CODE, 200);
                         }
                     });
             }
@@ -85,7 +87,7 @@ public class JmsHttpPostIssueTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpPostIssueWithMockTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpPostIssueWithMockTest.java
index a429e58..ef52cbe 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpPostIssueWithMockTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsHttpPostIssueWithMockTest.java
@@ -25,13 +25,14 @@ import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.Exchange.CONTENT_TYPE;
 import static org.apache.camel.Exchange.HTTP_METHOD;
 import static org.apache.camel.Exchange.HTTP_RESPONSE_CODE;
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Based on user forum.
@@ -41,7 +42,7 @@ public class JmsHttpPostIssueWithMockTest extends CamelTestSupport {
     private int port;
 
     @Test
-    public void testJmsInOnlyHttpPostIssue() throws Exception {
+    void testJmsInOnlyHttpPostIssue() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
         template.sendBody("jms:queue:in", "Hello World");
@@ -50,7 +51,7 @@ public class JmsHttpPostIssueWithMockTest extends CamelTestSupport {
     }
 
     @Test
-    public void testJmsInOutHttpPostIssue() throws Exception {
+    void testJmsInOutHttpPostIssue() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
         String out = template.requestBody("jms:queue:in", "Hello World", String.class);
@@ -60,7 +61,7 @@ public class JmsHttpPostIssueWithMockTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
@@ -75,13 +76,13 @@ public class JmsHttpPostIssueWithMockTest extends CamelTestSupport {
                 from("jetty:http://0.0.0.0:" + port + "/myservice")
                     .process(new Processor() {
                         @Override
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             String body = exchange.getIn().getBody(String.class);
                             assertEquals("name=Hello World", body);
 
-                            exchange.getOut().setBody("OK");
-                            exchange.getOut().setHeader(CONTENT_TYPE, "text/plain");
-                            exchange.getOut().setHeader(HTTP_RESPONSE_CODE, 200);
+                            exchange.getMessage().setBody("OK");
+                            exchange.getMessage().setHeader(CONTENT_TYPE, "text/plain");
+                            exchange.getMessage().setHeader(HTTP_RESPONSE_CODE, 200);
                         }
                     });
             }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsIntegrationTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsIntegrationTest.java
index 78924d7..f00045f 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsIntegrationTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsIntegrationTest.java
@@ -25,26 +25,32 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class JmsIntegrationTest extends CamelTestSupport {
+
+    private static final Logger LOG = LoggerFactory.getLogger(JmsIntegrationTest.class);
+
     protected CountDownLatch receivedCountDown = new CountDownLatch(1);
     protected MyBean myBean = new MyBean();
 
     @Test
-    public void testOneWayInJmsOutPojo() throws Exception {
+    void testOneWayInJmsOutPojo() throws Exception {
         // Send a message to the JMS endpoint
         template.sendBodyAndHeader("jms:test", "Hello", "cheese", 123);
 
         // The Activated endpoint should send it to the pojo due to the configured route.
-        assertTrue("The message ware received by the Pojo", receivedCountDown.await(5, TimeUnit.SECONDS));
+        assertTrue(receivedCountDown.await(5, TimeUnit.SECONDS), "The message ware received by the Pojo");
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
                 from("jms:test").to("bean:myBean");
@@ -53,7 +59,7 @@ public class JmsIntegrationTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
@@ -65,7 +71,7 @@ public class JmsIntegrationTest extends CamelTestSupport {
 
     protected class MyBean {
         public void onMessage(String body) {
-            log.info("Received: " + body);
+            LOG.info("Received: " + body);
             receivedCountDown.countDown();
         }
     }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsJaxbTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsJaxbTest.java
index 39cc6fe..e26895e 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsJaxbTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsJaxbTest.java
@@ -25,15 +25,15 @@ import org.apache.camel.converter.jaxb.JaxbDataFormat;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 
 public class JmsJaxbTest extends CamelTestSupport {
 
     @Test
-    public void testOk() throws Exception {
+    void testOk() throws Exception {
         PurchaseOrder order = new PurchaseOrder();
         order.setName("Wine");
         order.setAmount(123.45);
@@ -48,7 +48,7 @@ public class JmsJaxbTest extends CamelTestSupport {
     }
 
     @Test
-    public void testUnmarshalError() throws Exception {
+    void testUnmarshalError() throws Exception {
         MockEndpoint error = getMockEndpoint("mock:error");
         error.expectedBodiesReceived("<foo/>");
         getMockEndpoint("mock:invalid").expectedMessageCount(0);
@@ -60,7 +60,7 @@ public class JmsJaxbTest extends CamelTestSupport {
     }
 
     @Test
-    public void testNotWine() throws Exception {
+    void testNotWine() throws Exception {
         PurchaseOrder order = new PurchaseOrder();
         order.setName("Beer");
         order.setAmount(2);
@@ -77,7 +77,7 @@ public class JmsJaxbTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
@@ -87,10 +87,10 @@ public class JmsJaxbTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 errorHandler(deadLetterChannel("jms:queue:error").redeliveryDelay(0));
 
                 onException(InvalidOrderException.class).maximumRedeliveries(0).handled(true)
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsJettyAsyncTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsJettyAsyncTest.java
index d72b25c..3ca575a 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsJettyAsyncTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsJettyAsyncTest.java
@@ -25,21 +25,19 @@ import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.apache.camel.test.junit5.TestSupport.body;
 
-/**
- *
- */
 public class JmsJettyAsyncTest extends CamelTestSupport {
 
     private int size = 100;
     private int port;
 
     @Test
-    public void testJmsJettyAsyncTest() throws Exception {
+    void testJmsJettyAsyncTest() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(size);
         getMockEndpoint("mock:result").expectsNoDuplicates(body());
 
@@ -51,12 +49,12 @@ public class JmsJettyAsyncTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         port = AvailablePortFinder.getNextAvailable();
 
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 // enable async consumer to process messages faster
                 from("activemq:queue:inbox?asyncConsumer=false")
                     .to("http://0.0.0.0:" + port + "/myapp")
@@ -70,7 +68,7 @@ public class JmsJettyAsyncTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPerformanceTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPerformanceTest.java
index e35428c..bfa3407 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPerformanceTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPerformanceTest.java
@@ -26,22 +26,28 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class JmsPerformanceTest extends CamelTestSupport {
+
+    private static final Logger LOG = LoggerFactory.getLogger(JmsPerformanceTest.class);
+
     private List<Integer> receivedHeaders = new ArrayList<>(getMessageCount());
     private List<Object> receivedMessages = new ArrayList<>(getMessageCount());
 
     @Test
-    public void testSendingAndReceivingMessages() throws Exception {
-        log.info("Sending {} messages", getMessageCount());
+    void testSendingAndReceivingMessages() throws Exception {
+        LOG.info("Sending {} messages", getMessageCount());
 
         sendLoop(getMessageCount());
 
-        log.info("Sending {} messages completed, now will assert on their content as well as the order of their receipt", getMessageCount());
+        LOG.info("Sending {} messages completed, now will assert on their content as well as the order of their receipt", getMessageCount());
 
         // should wait a bit to make sure all messages have been received by the MyBean#onMessage() method
         // as this happens asynchronously, that's not inside the 'main' thread
@@ -70,7 +76,7 @@ public class JmsPerformanceTest extends CamelTestSupport {
 
     protected void assertExpectedMessagesReceived() throws InterruptedException {
         // assert on the expected message count
-        assertEquals("The expected message count does not match!", getMessageCount(), receivedMessages.size());
+        assertEquals(getMessageCount(), receivedMessages.size(), "The expected message count does not match!");
 
         // assert on the expected message order
         List<Integer> expectedHeaders = new ArrayList<>(getMessageCount());
@@ -83,12 +89,12 @@ public class JmsPerformanceTest extends CamelTestSupport {
             expectedMessages.add("Hello:" + i);
         }
 
-        assertEquals("The expected header order does not match!", expectedHeaders, receivedHeaders);
-        assertEquals("The expected message order does not match!", expectedMessages, receivedMessages);
+        assertEquals(expectedHeaders, receivedHeaders, "The expected header order does not match!");
+        assertEquals(expectedMessages, receivedMessages, "The expected message order does not match!");
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add AMQ client and make use of connection pooling we depend on because of the (large) number
         // of the JMS messages we do produce
         // add ActiveMQ with embedded broker
@@ -101,7 +107,7 @@ public class JmsPerformanceTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
                 from("activemq:" + getQueueName()).to("bean:myBean");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPollEnrichTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPollEnrichTest.java
index 9f1f926..984bc4e 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPollEnrichTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPollEnrichTest.java
@@ -23,15 +23,16 @@ import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
 
 public class JmsPollEnrichTest extends CamelTestSupport {
 
     @Test
-    public void testPollEnrichJms() throws Exception {
+    void testPollEnrichJms() throws Exception {
         template.sendBody("jms:queue:foo", "Bye World");
 
         MockEndpoint mock = getMockEndpoint("mock:result");
@@ -43,7 +44,7 @@ public class JmsPollEnrichTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start").pollEnrich("jms:queue:foo", 5000).to("mock:result");
@@ -52,7 +53,7 @@ public class JmsPollEnrichTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         deleteDirectory("activemq-data");
 
         // add ActiveMQ with embedded broker which must be persistent
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPollingConsumerTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPollingConsumerTest.java
index ed51600..ef0a8ac 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPollingConsumerTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsPollingConsumerTest.java
@@ -23,15 +23,16 @@ import org.apache.camel.Handler;
 import org.apache.camel.Produce;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
+@CamelSpringTest
 @ContextConfiguration
-public class JmsPollingConsumerTest extends AbstractJUnit4SpringContextTests {
+public class JmsPollingConsumerTest {
 
     @Produce("activemq:startConsumer")
     protected ProducerTemplate startConsumer;
@@ -52,8 +53,8 @@ public class JmsPollingConsumerTest extends AbstractJUnit4SpringContextTests {
      */
     @Test
     @DirtiesContext
-    @Ignore("CAMEL-2305")
-    public void testConsumerFromJMSRoute() throws Exception {
+    @Disabled("CAMEL-2305")
+    void testConsumerFromJMSRoute() throws Exception {
         result.expectedBodiesReceived("foobar");
 
         queue.sendBody("foo");
@@ -71,7 +72,7 @@ public class JmsPollingConsumerTest extends AbstractJUnit4SpringContextTests {
      */
     @Test
     @DirtiesContext
-    public void testConsumerFromDirectRoute() throws Exception {
+    void testConsumerFromDirectRoute() throws Exception {
         result.expectedBodiesReceived("foobar");
 
         queue.sendBody("foo");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsResequencerTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsResequencerTest.java
index 0ea6ee9..dfd6ded 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsResequencerTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsResequencerTest.java
@@ -30,13 +30,14 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.model.config.BatchResequencerConfig;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Before;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
 public class JmsResequencerTest extends CamelTestSupport  {
     
@@ -45,7 +46,6 @@ public class JmsResequencerTest extends CamelTestSupport  {
     private ReusableBean b2 = new ReusableBean("myBean2");
     private ReusableBean b3 = new ReusableBean("myBean3");
     
-        
     private MockEndpoint resultEndpoint;
 
     public void sendBodyAndHeader(String endpointUri, final Object body, final String headerName,
@@ -62,12 +62,12 @@ public class JmsResequencerTest extends CamelTestSupport  {
     }
     
     @Test
-    public void testSendMessagesInWrongOrderButReceiveThemInCorrectOrder() throws Exception {              
+    void testSendMessagesInWrongOrderButReceiveThemInCorrectOrder() throws Exception {
         sendAndVerifyMessages("activemq:queue:batch");
     }
     
     @Test
-    public void testSendMessageToStream() throws Exception {
+    void testSendMessageToStream() throws Exception {
         sendAndVerifyMessages("activemq:queue:stream");
     }
         
@@ -82,23 +82,23 @@ public class JmsResequencerTest extends CamelTestSupport  {
         resultEndpoint.assertIsSatisfied();
         List<Exchange> list = resultEndpoint.getReceivedExchanges();
         for (Exchange exchange : list) {
-            log.debug("Received: " + exchange);
+            LOG.debug("Received: " + exchange);
         }
     }
 
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
         
         resultEndpoint = getMockEndpoint("mock:result");
         
         Object lookedUpBean = context.getRegistry().lookupByName("myBean1");
-        assertSame("Lookup of 'myBean' should return same object!", b1, lookedUpBean);
+        assertSame(b1, lookedUpBean, "Lookup of 'myBean' should return same object!");
         lookedUpBean = context.getRegistry().lookupByName("myBean2");
-        assertSame("Lookup of 'myBean' should return same object!", b2, lookedUpBean);
+        assertSame(b2, lookedUpBean, "Lookup of 'myBean' should return same object!");
         lookedUpBean = context.getRegistry().lookupByName("myBean3");
-        assertSame("Lookup of 'myBean' should return same object!", b3, lookedUpBean);
+        assertSame(b3, lookedUpBean, "Lookup of 'myBean' should return same object!");
        
     }
 
@@ -135,7 +135,7 @@ public class JmsResequencerTest extends CamelTestSupport  {
     
     public class ReusableBean {
         public String body;
-        private String name;       
+        private String name;
 
         public ReusableBean(String name) {
             this.name = name;
@@ -162,7 +162,7 @@ public class JmsResequencerTest extends CamelTestSupport  {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsValidatorTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsValidatorTest.java
index e3fd1f6..01f67a1 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsValidatorTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/JmsValidatorTest.java
@@ -23,15 +23,15 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 
 public class JmsValidatorTest extends CamelTestSupport {
 
     @Test
-    public void testJmsValidator() throws Exception {
+    void testJmsValidator() throws Exception {
         getMockEndpoint("mock:valid").expectedMessageCount(1);
         getMockEndpoint("mock:invalid").expectedMessageCount(0);
         getMockEndpoint("mock:finally").expectedMessageCount(1);
@@ -43,7 +43,7 @@ public class JmsValidatorTest extends CamelTestSupport {
     }
 
     @Test
-    public void testJmsValidatorInvalid() throws Exception {
+    void testJmsValidatorInvalid() throws Exception {
         getMockEndpoint("mock:valid").expectedMessageCount(0);
         getMockEndpoint("mock:invalid").expectedMessageCount(1);
         getMockEndpoint("mock:finally").expectedMessageCount(1);
@@ -55,7 +55,7 @@ public class JmsValidatorTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
@@ -65,10 +65,10 @@ public class JmsValidatorTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("jms:queue:inbox")
                     .convertBodyTo(String.class)
                     .doTry()
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/SpringJmsValidatorTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/SpringJmsValidatorTest.java
index cd0765c..6a7ade0 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/SpringJmsValidatorTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/jms/SpringJmsValidatorTest.java
@@ -16,8 +16,8 @@
  */
 package org.apache.camel.itest.jms;
 
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+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;
 
@@ -29,7 +29,7 @@ public class SpringJmsValidatorTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testJmsValidator() throws Exception {
+    void testJmsValidator() throws Exception {
         getMockEndpoint("mock:valid").expectedMessageCount(1);
         getMockEndpoint("mock:invalid").expectedMessageCount(0);
         getMockEndpoint("mock:finally").expectedMessageCount(1);
@@ -41,7 +41,7 @@ public class SpringJmsValidatorTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testJmsValidatorInvalid() throws Exception {
+    void testJmsValidatorInvalid() throws Exception {
         getMockEndpoint("mock:valid").expectedMessageCount(0);
         getMockEndpoint("mock:invalid").expectedMessageCount(1);
         getMockEndpoint("mock:finally").expectedMessageCount(1);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/mail/SpringMailEndpointTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/mail/SpringMailEndpointTest.java
index d6fc9f9..a2f5c24 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/mail/SpringMailEndpointTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/mail/SpringMailEndpointTest.java
@@ -19,19 +19,20 @@ package org.apache.camel.itest.mail;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import org.jvnet.mock_javamail.Mailbox;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
 /**
  * Unit testing Mail configured using spring bean
  */
+@CamelSpringTest
 @ContextConfiguration
-@Ignore
-public class SpringMailEndpointTest extends AbstractJUnit4SpringContextTests {
+@Disabled
+public class SpringMailEndpointTest {
 
     @Autowired
     protected ProducerTemplate template;
@@ -39,7 +40,7 @@ public class SpringMailEndpointTest extends AbstractJUnit4SpringContextTests {
     protected MockEndpoint result;
 
     @Test
-    public void testMailEndpointAsSpringBean() throws Exception {
+    void testMailEndpointAsSpringBean() throws Exception {
         Mailbox.clearAll();
 
         String body = "Hello Claus.\nYes it does.\n\nRegards James.";
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/netty/NettyAsyncRequestReplyTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/netty/NettyAsyncRequestReplyTest.java
index 15ebbcb..ea9cba7 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/netty/NettyAsyncRequestReplyTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/netty/NettyAsyncRequestReplyTest.java
@@ -33,21 +33,27 @@ import org.apache.camel.component.jms.JmsComponent;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  * Doing request/reply over Netty with async processing.
  */
 public class NettyAsyncRequestReplyTest extends CamelTestSupport {
 
+    private static final Logger LOG = LoggerFactory.getLogger(NettyAsyncRequestReplyTest.class);
+
     private int port;
 
     @Test
-    public void testNetty() throws Exception {
+    void testNetty() {
         String out = template.requestBody("netty:tcp://localhost:" + port + "?textline=true&sync=true", "World", String.class);
         assertEquals("Bye World", out);
 
@@ -55,9 +61,9 @@ public class NettyAsyncRequestReplyTest extends CamelTestSupport {
         assertEquals("Bye Camel", out2);
     }
 
-    @Ignore("TODO: investigate for Camel 3.0")
+    @Disabled("TODO: investigate for Camel 3.0")
     @Test
-    public void testConcurrent() throws Exception {
+    void testConcurrent() throws Exception {
         int size = 1000;
 
         ExecutorService executor = Executors.newFixedThreadPool(20);
@@ -69,7 +75,7 @@ public class NettyAsyncRequestReplyTest extends CamelTestSupport {
             Future<String> out = executor.submit(new Callable<String>() {
                 public String call() throws Exception {
                     String reply = template.requestBody("netty:tcp://localhost:" + port + "?textline=true&sync=true", index, String.class);
-                    log.info("Sent {} received {}", index, reply);
+                    LOG.info("Sent {} received {}", index, reply);
                     assertEquals("Bye " + index, reply);
                     return reply;
                 }
@@ -86,15 +92,15 @@ public class NettyAsyncRequestReplyTest extends CamelTestSupport {
         }
 
         // should be 1000 unique responses
-        assertEquals("Should be " + size + " unique responses", size, unique.size());
+        assertEquals(size, unique.size(), "Should be " + size + " unique responses");
         executor.shutdownNow();
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 port = AvailablePortFinder.getNextAvailable();
 
                 from("netty:tcp://localhost:" + port + "?textline=true&sync=true&reuseAddress=true&synchronous=false")
@@ -108,7 +114,7 @@ public class NettyAsyncRequestReplyTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/nettyhttp/NettyHttpClientChunkedResponseTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/nettyhttp/NettyHttpClientChunkedResponseTest.java
index facb4ce..b55ebb9 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/nettyhttp/NettyHttpClientChunkedResponseTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/nettyhttp/NettyHttpClientChunkedResponseTest.java
@@ -20,23 +20,26 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class NettyHttpClientChunkedResponseTest extends CamelTestSupport {
 
     private int port1;
     private int port2;
 
-    @Ignore("TODO: investigate for Camel 3.0")
+    @Disabled("TODO: investigate for Camel 3.0")
     @Test
-    public void testNettyHttpClientChunked() throws Exception {
+    void testNettyHttpClientChunked() {
         invokeService(port1, true);
     }
     
     @Test
-    public void testNettyHttpRouteClientChunked() throws Exception {
+    void testNettyHttpRouteClientChunked() {
         invokeService(port2, false);
     }
     
@@ -44,24 +47,24 @@ public class NettyHttpClientChunkedResponseTest extends CamelTestSupport {
         Exchange out = template.request("netty-http:http://localhost:" + port + "/test", new Processor() {
 
             @Override
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 exchange.getIn().setBody("Camel in chunks.");
             }
         });
 
         assertNotNull(out);
-        assertEquals("Bye Camel in chunks.", out.getOut().getBody(String.class));
+        assertEquals(out.getMessage().getBody(String.class), "Bye Camel in chunks.");
         if (checkChunkedHeader) {
-            assertEquals("chunked", out.getOut().getHeader("Transfer-Encoding"));
+            assertEquals("chunked", out.getMessage().getHeader("Transfer-Encoding"));
         }
     }
     
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 port1 = AvailablePortFinder.getNextAvailable();
                 port2 = AvailablePortFinder.getNextAvailable();
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/Echo.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/Echo.java
index 0f411c8..86ded76 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/Echo.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/Echo.java
@@ -16,9 +16,6 @@
  */
 package org.apache.camel.itest.proxy;
 
-/**
- *
- */
 public interface Echo {
 
     String hello(String name);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/EchoClient.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/EchoClient.java
index ce805b4..5d3e3c8 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/EchoClient.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/EchoClient.java
@@ -20,9 +20,6 @@ import javax.annotation.Resource;
 
 import org.springframework.stereotype.Component;
 
-/**
- *
- */
 @Component("client")
 public class EchoClient {
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/EchoProduceTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/EchoProduceTest.java
index d87e32a..b36d225 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/EchoProduceTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/EchoProduceTest.java
@@ -18,28 +18,27 @@ package org.apache.camel.itest.proxy;
 
 import org.apache.camel.Produce;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-/**
- *
- */
 public class EchoProduceTest extends CamelTestSupport {
 
     @Produce("direct:start")
     private Echo echo;
 
     @Test
-    public void testEchoProduce() throws Exception {
+    void testEchoProduce() {
         String reply = echo.hello("Camel");
         assertEquals("Hello Camel", reply);
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("direct:start")
                     .transform().simple("Hello ${body}");
             }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/SpringEchoCamelProxyTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/SpringEchoCamelProxyTest.java
index 6d14b93..49dd10f 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/SpringEchoCamelProxyTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/proxy/SpringEchoCamelProxyTest.java
@@ -16,14 +16,13 @@
  */
 package org.apache.camel.itest.proxy;
 
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-/**
- *
- */
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 public class SpringEchoCamelProxyTest extends CamelSpringTestSupport {
 
     @Override
@@ -32,7 +31,7 @@ public class SpringEchoCamelProxyTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testEchoProduce() throws Exception {
+    void testEchoProduce() {
         EchoClient client = context.getRegistry().lookupByNameAndType("client", EchoClient.class);
 
         String reply = client.hello("Camel");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/quartz/FtpCronScheduledRoutePolicyTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/quartz/FtpCronScheduledRoutePolicyTest.java
index 5b2d588..41d7e81 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/quartz/FtpCronScheduledRoutePolicyTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/quartz/FtpCronScheduledRoutePolicyTest.java
@@ -23,7 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.ShutdownRunningTask;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit5.CamelTestSupport;
 import org.apache.ftpserver.FtpServer;
 import org.apache.ftpserver.FtpServerFactory;
 import org.apache.ftpserver.filesystem.nativefs.NativeFileSystemFactory;
@@ -31,32 +31,32 @@ import org.apache.ftpserver.ftplet.UserManager;
 import org.apache.ftpserver.listener.ListenerFactory;
 import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
 import org.apache.ftpserver.usermanager.impl.PropertiesUserManager;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 
-/**
- *
- */
-@Ignore("Manual test")
+import static org.apache.camel.test.junit5.TestSupport.createDirectory;
+import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
+
+@Disabled("Manual test")
 public class FtpCronScheduledRoutePolicyTest extends CamelTestSupport {
 
     protected FtpServer ftpServer;
     private String ftp = "ftp:localhost:20128/myapp?password=admin&username=admin&delay=5000&idempotent=false&localWorkDirectory=target/tmp";
 
     @Test
-    public void testFtpCronScheduledRoutePolicyTest() throws Exception {
+    void testFtpCronScheduledRoutePolicyTest() throws Exception {
         template.sendBodyAndHeader("file:res/home/myapp", "Hello World", Exchange.FILE_NAME, "hello.txt");
 
         Thread.sleep(10 * 1000 * 60);
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 CronScheduledRoutePolicy policy = new CronScheduledRoutePolicy();
                 policy.setRouteStartTime("* 0/2 * * * ?");
                 policy.setRouteStopTime("* 1/2 * * * ?");
@@ -72,7 +72,7 @@ public class FtpCronScheduledRoutePolicyTest extends CamelTestSupport {
     }
 
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
         deleteDirectory("res");
@@ -82,14 +82,14 @@ public class FtpCronScheduledRoutePolicyTest extends CamelTestSupport {
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown() throws Exception {
         super.tearDown();
         ftpServer.stop();
         ftpServer = null;
     }
 
-    protected void initFtpServer() throws Exception {
+    protected void initFtpServer() {
         FtpServerFactory serverFactory = new FtpServerFactory();
 
         // setup user management to read our users.properties and use clear text passwords
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/security/CXFMessageProcessor.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/security/CXFMessageProcessor.java
index bfd70eb..8ff5f1a 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/security/CXFMessageProcessor.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/security/CXFMessageProcessor.java
@@ -26,7 +26,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class CXFMessageProcessor implements Processor {
     static final String RESPONSE = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
@@ -39,9 +39,9 @@ public class CXFMessageProcessor implements Processor {
         Message in = exchange.getIn();
         String request = in.getBody(String.class);
         // just make sure the request is greetme
-        assertTrue("It should be GreetMe request.", request.indexOf("<greetMe") > 0);
+        assertTrue(request.indexOf("<greetMe") > 0, "It should be GreetMe request.");
         InputStream is = new ByteArrayInputStream(RESPONSE.getBytes());
         SOAPMessage message = MessageFactory.newInstance().createMessage(null, is);
-        exchange.getOut().setBody(message);
+        exchange.getMessage().setBody(message);
     }
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/security/GreeterClientCxfMessageTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/security/GreeterClientCxfMessageTest.java
index fa495ab..40960a9 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/security/GreeterClientCxfMessageTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/security/GreeterClientCxfMessageTest.java
@@ -16,8 +16,10 @@
  */
 package org.apache.camel.itest.security;
 
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
 import org.springframework.test.context.ContextConfiguration;
 
+@CamelSpringTest
 @ContextConfiguration(locations = {"CxfMessageCamelContext.xml"})
 public class GreeterClientCxfMessageTest extends GreeterClientTest {
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/security/GreeterClientTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/security/GreeterClientTest.java
index 78a7501..128ae47 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/security/GreeterClientTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/security/GreeterClientTest.java
@@ -24,21 +24,22 @@ import javax.xml.ws.BindingProvider;
 import javax.xml.ws.soap.SOAPFaultException;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
 import org.apache.cxf.endpoint.Client;
 import org.apache.cxf.frontend.ClientProxy;
 import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor;
 import org.apache.hello_world_soap_http.Greeter;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
+@CamelSpringTest
 @ContextConfiguration(locations = {"camel-context.xml"})
-public class GreeterClientTest extends AbstractJUnit4SpringContextTests {
+public class GreeterClientTest {
     private static final java.net.URL WSDL_LOC;
     static {
         java.net.URL tmp = null;
@@ -63,7 +64,7 @@ public class GreeterClientTest extends AbstractJUnit4SpringContextTests {
         final javax.xml.ws.Service svc = javax.xml.ws.Service.create(WSDL_LOC, SERVICE_QNAME);
         final Greeter greeter = svc.getPort(PORT_QNAME, Greeter.class);
 
-        Client client = ClientProxy.getClient(greeter);        
+        Client client = ClientProxy.getClient(greeter);
         Map<String, Object> props = new HashMap<>();
         props.put("action", "UsernameToken");
         props.put("user", username);
@@ -78,7 +79,7 @@ public class GreeterClientTest extends AbstractJUnit4SpringContextTests {
     }
 
     @Test
-    public void testServiceWithValidateUser() throws Exception {
+    void testServiceWithValidateUser() throws Exception {
         
         String response = sendMessageWithUsernameToken("jim", "jimspassword", "CXF");
         
@@ -89,25 +90,24 @@ public class GreeterClientTest extends AbstractJUnit4SpringContextTests {
             fail("should fail");
         } catch (Exception ex) {
             String msg = ex.getMessage();
-            assertTrue("Get a wrong type exception.", ex instanceof SOAPFaultException);
-            assertTrue("Get a wrong exception message: " + msg,
-                       msg.startsWith("The security token could not be authenticated or authorized")
-                       || msg.startsWith("A security error was encountered when verifying the messag"));
+            assertTrue(ex instanceof SOAPFaultException, "Get a wrong type exception.");
+            assertTrue(msg.startsWith("The security token could not be authenticated or authorized")
+                       || msg.startsWith("A security error was encountered when verifying the messag"),
+                       "Get a wrong exception message: " + msg);
         }
-
     }
-    
+
     @Test
-    public void testServiceWithNotAuthorizedUser() throws Exception {
+    void testServiceWithNotAuthorizedUser() {
         try {
             // this user doesn't have the right to access the processor
             sendMessageWithUsernameToken("bob", "bobspassword", "CXF");
             fail("should fail");
         } catch (Exception ex) {
-            assertTrue("Get a wrong type exception.", ex instanceof SOAPFaultException);
-            assertTrue("Get a wrong exception message", ex.getMessage().startsWith("Cannot access the processor which has been protected."));
-            assertTrue("Get a wrong exception message", ex.getMessage().endsWith("Caused by: [org.springframework.security.access.AccessDeniedException - Access is denied]"));
-        }        
+            assertTrue(ex instanceof SOAPFaultException, "Get a wrong type exception.");
+            assertTrue(ex.getMessage().startsWith("Cannot access the processor which has been protected."), "Get a wrong exception message");
+            assertTrue(ex.getMessage().endsWith("Caused by: [org.springframework.security.access.AccessDeniedException - Access is denied]"), "Get a wrong exception message");
+        }
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/security/MyProcessor.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/security/MyProcessor.java
index 37a2cc7..9929add 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/security/MyProcessor.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/security/MyProcessor.java
@@ -26,7 +26,7 @@ import org.apache.camel.component.cxf.common.message.CxfConstants;
 public class MyProcessor implements Processor {
 
     @Override
-    public void process(Exchange exchange) throws Exception {
+    public void process(Exchange exchange) {
         Message in = exchange.getIn();
         // Get the parameter list
         List<?> parameter = in.getBody(List.class);
@@ -40,7 +40,7 @@ public class MyProcessor implements Processor {
             result = " Hello " +  (String)parameter.get(0);            
         }
         // Put the result back
-        exchange.getOut().setBody(result);        
+        exchange.getMessage().setBody(result);        
     }
 
 }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/shiro/ShiroOverJmsTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/shiro/ShiroOverJmsTest.java
index 3a5c089..958115e 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/shiro/ShiroOverJmsTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/shiro/ShiroOverJmsTest.java
@@ -27,8 +27,8 @@ import org.apache.camel.component.shiro.security.ShiroSecurityConstants;
 import org.apache.camel.component.shiro.security.ShiroSecurityPolicy;
 import org.apache.camel.itest.CamelJmsTestHelper;
 import org.apache.camel.spi.Registry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
 
 import static org.apache.camel.component.jms.JmsComponent.jmsComponentAutoAcknowledge;
 
@@ -41,7 +41,7 @@ public class ShiroOverJmsTest extends CamelTestSupport {
         (byte) 0x14, (byte) 0x15, (byte) 0x16, (byte) 0x17};
 
     @Test
-    public void testShiroOverJms() throws Exception {
+    void testShiroOverJms() throws Exception {
         getMockEndpoint("mock:error").expectedMessageCount(0);
         getMockEndpoint("mock:foo").expectedBodiesReceived("Hello World");
         getMockEndpoint("mock:result").expectedBodiesReceived("Bye World");
@@ -55,7 +55,7 @@ public class ShiroOverJmsTest extends CamelTestSupport {
     }
 
     @Override
-    protected void bindToRegistry(Registry registry) throws Exception {
+    protected void bindToRegistry(Registry registry) {
         // add ActiveMQ with embedded broker
         ConnectionFactory connectionFactory = CamelJmsTestHelper.createConnectionFactory();
         JmsComponent amq = jmsComponentAutoAcknowledge(connectionFactory);
@@ -65,10 +65,10 @@ public class ShiroOverJmsTest extends CamelTestSupport {
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 final ShiroSecurityPolicy securityPolicy = new ShiroSecurityPolicy("src/test/resources/securityconfig.ini", passPhrase);
                 securityPolicy.setBase64(true);
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java
index 4506157..e34502a 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsTest.java
@@ -27,14 +27,18 @@ import org.apache.camel.builder.NotifyBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.itest.ITestSupport;
 import org.apache.camel.spi.IdempotentRepository;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 import org.springframework.jdbc.core.JdbcTemplate;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 /**
  * Jms with JDBC idempotent consumer test.
  */
@@ -50,7 +54,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
     }
 
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
 
@@ -68,7 +72,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
     }
 
     @Test
-    public void testJmsToJdbcJmsCommit() throws Exception {
+    void testJmsToJdbcJmsCommit() throws Exception {
         checkInitialState();
 
         // use a notify to know when the message is done
@@ -82,7 +86,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
 
         // assert mock and wait for the message to be done
         assertMockEndpointsSatisfied();
-        assertTrue("Should complete 1 message", notify.matchesMockWaitTime());
+        assertTrue(notify.matchesWaitTime(), "Should complete 1 message");
 
         // check that there is a message in the database and JMS queue
         assertEquals(new Integer(1), jdbcTemplate.queryForObject("select count(*) from CAMEL_MESSAGEPROCESSED", Integer.class));
@@ -90,9 +94,9 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
         assertEquals("DONE-A", out);
     }
 
-    @Ignore("see the TODO below")
+    @Disabled("see the TODO below")
     @Test
-    public void testJmsToJdbcJmsRollbackAtA() throws Exception {
+    void testJmsToJdbcJmsRollbackAtA() throws Exception {
         checkInitialState();
 
         // use a notify to know that after 1+6 (1 original + 6 redelivery) attempts from AcitveMQ
@@ -113,7 +117,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
 
         // assert mock and wait for the message to be done
         assertMockEndpointsSatisfied();
-        assertTrue("Should complete 7 message", notify.matchesMockWaitTime());
+        assertTrue(notify.matchesWaitTime(), "Should complete 7 message");
 
         // check that there is a message in the database and JMS queue
         assertEquals(new Integer(0), jdbcTemplate.queryForObject("select count(*) from CAMEL_MESSAGEPROCESSED", Integer.class));
@@ -123,9 +127,9 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
         assertEquals("A", consumer.receiveBody("activemq2:queue:ActiveMQ.DLQ", 3000));
     }
 
-    @Ignore("see the TODO below")
+    @Disabled("see the TODO below")
     @Test
-    public void testJmsToJdbcJmsRollbackAtB() throws Exception {
+    void testJmsToJdbcJmsRollbackAtB() throws Exception {
         checkInitialState();
 
         // use a notify to know that after 1+6 (1 original + 6 redelivery) attempts from AcitveMQ
@@ -146,7 +150,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
 
         // assert mock and wait for the message to be done
         assertMockEndpointsSatisfied();
-        assertTrue("Should complete 7 messages", notify.matchesMockWaitTime());
+        assertTrue(notify.matchesWaitTime(), "Should complete 7 messages");
 
         // check that there is a message in the database and JMS queue
         assertEquals(new Integer(0), jdbcTemplate.queryForObject("select count(*) from CAMEL_MESSAGEPROCESSED", Integer.class));
@@ -157,7 +161,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
     }
 
     @Test
-    public void testFilterIdempotent() throws Exception {
+    void testFilterIdempotent() throws Exception {
         checkInitialState();
 
         // use a notify to know when the message is done
@@ -174,7 +178,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
 
         // assert mock and wait for the message to be done
         assertMockEndpointsSatisfied();
-        assertTrue("Should complete 3 messages", notify.matchesMockWaitTime());
+        assertTrue(notify.matchesWaitTime(), "Should complete 3 messages");
 
         // check that there is two messages in the database and JMS queue
         assertEquals(new Integer(2), jdbcTemplate.queryForObject("select count(*) from CAMEL_MESSAGEPROCESSED", Integer.class));
@@ -183,7 +187,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
     }
 
     @Test
-    public void testRetryAfterException() throws Exception {
+    void testRetryAfterException() throws Exception {
         checkInitialState();
 
         final AtomicInteger counter = new AtomicInteger();
@@ -210,7 +214,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
 
         // assert mock and wait for the message to be done
         assertMockEndpointsSatisfied();
-        assertTrue("Should complete 4 messages", notify.matchesMockWaitTime());
+        assertTrue(notify.matchesWaitTime(), "Should complete 4 messages");
 
         // check that there is two messages in the database and JMS queue
         assertEquals(new Integer(3), jdbcTemplate.queryForObject("select count(*) from CAMEL_MESSAGEPROCESSED", Integer.class));
@@ -226,10 +230,10 @@ public class FromJmsToJdbcIdempotentConsumerToJmsTest extends CamelSpringTestSup
     }
 
     @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
+    protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 IdempotentRepository repository = context.getRegistry().lookupByNameAndType("messageIdRepository", IdempotentRepository.class);
 
                 from("activemq2:queue:inbox")
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java
index 4262771..e808cc1 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/sql/FromJmsToJdbcIdempotentConsumerToJmsXaTest.java
@@ -20,18 +20,22 @@ import java.sql.DriverManager;
 import java.sql.SQLException;
 
 import org.apache.camel.itest.ITestSupport;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
+import static org.apache.camel.test.junit5.TestSupport.deleteDirectory;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+
 /**
  * Jms with JDBC idempotent consumer test using XA.
  */
 public class FromJmsToJdbcIdempotentConsumerToJmsXaTest extends FromJmsToJdbcIdempotentConsumerToJmsTest {
 
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         deleteDirectory("target/testdb");
 
@@ -39,7 +43,7 @@ public class FromJmsToJdbcIdempotentConsumerToJmsXaTest extends FromJmsToJdbcIde
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown() throws Exception {
         super.tearDown();
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/test/SpringDebugBeforeTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/test/SpringDebugBeforeTest.java
index 1853cd6..4b8384b 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/test/SpringDebugBeforeTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/test/SpringDebugBeforeTest.java
@@ -22,14 +22,13 @@ import java.util.List;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.test.spring.CamelSpringTestSupport;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-/**
- *
- */
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 public class SpringDebugBeforeTest extends CamelSpringTestSupport {
 
     private final List<String> before = new ArrayList<>();
@@ -51,7 +50,7 @@ public class SpringDebugBeforeTest extends CamelSpringTestSupport {
     }
 
     @Test
-    public void testDebugBefore() throws Exception {
+    void testDebugBefore() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(1);
 
         template.sendBody("direct:start", "Hello World");
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/Jms2RequiresNewTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/Jms2RequiresNewTest.java
index 32dd082..4b67094 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/Jms2RequiresNewTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/Jms2RequiresNewTest.java
@@ -23,25 +23,25 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.itest.ITestSupport;
-import org.junit.Before;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
 /**
  * Unit test will look for the spring .xml file with the same class name
  * but postfixed with -config.xml as filename.
  * <p/>
- * We use Spring Testing for unit test, eg we extend AbstractJUnit4SpringContextTests
- * that is a Spring class.
  */
+@CamelSpringTest
 @ContextConfiguration
 @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
-public class Jms2RequiresNewTest extends AbstractJUnit4SpringContextTests {
+public class Jms2RequiresNewTest {
 
     private static final int PORT3 = ITestSupport.getPort3();
+
     @Autowired
     private CamelContext camelContext;
 
@@ -57,11 +57,11 @@ public class Jms2RequiresNewTest extends AbstractJUnit4SpringContextTests {
     @EndpointInject("direct:start")
     private ProducerTemplate start;
 
-    @Before
+    @BeforeEach
     public void setUpRoute() throws Exception {
         camelContext.addRoutes(new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 onException(Exception.class)
                         .markRollbackOnly();
 
@@ -89,7 +89,7 @@ public class Jms2RequiresNewTest extends AbstractJUnit4SpringContextTests {
     }
 
     @Test
-    public void testSendThrowingException() throws Exception {
+    void testSendThrowingException() throws Exception {
         result1.expectedMessageCount(0);
         result2.expectedMessageCount(1);
         dlq.expectedMessageCount(1);
@@ -102,7 +102,7 @@ public class Jms2RequiresNewTest extends AbstractJUnit4SpringContextTests {
     }
 
     @Test
-    public void testSend() throws Exception {
+    void testSend() throws Exception {
         result1.expectedMessageCount(1);
         result2.expectedMessageCount(1);
         dlq.expectedMessageCount(0);
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpRoute.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpRoute.java
index d3d939b..70d4ba1 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpRoute.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpRoute.java
@@ -47,7 +47,7 @@ public class JmsToHttpRoute extends SpringRouteBuilder {
     protected String ok  = "<?xml version=\"1.0\"?><reply><status>ok</status></reply>";
 
     @Override
-    public void configure() throws Exception {
+    public void configure() {
         port = AvailablePortFinder.getNextAvailable();
 
         // configure a global transacted error handler
@@ -69,7 +69,7 @@ public class JmsToHttpRoute extends SpringRouteBuilder {
                     .to("mock:rollback")
                     // response is not okay so force a rollback by throwing an exception
                     .process(new Processor() {
-                        public void process(Exchange exchange) throws Exception {
+                        public void process(Exchange exchange) {
                             throw new IllegalArgumentException("Rollback please");
                         }
                     })
@@ -81,11 +81,11 @@ public class JmsToHttpRoute extends SpringRouteBuilder {
         // this is our http route that will fail the first 2 attempts
         // before it sends an ok response
         from("jetty:http://localhost:" + port + "/sender").process(new Processor() {
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 if (counter++ < 2) {
-                    exchange.getOut().setBody(nok);
+                    exchange.getMessage().setBody(nok);
                 } else {
-                    exchange.getOut().setBody(ok);
+                    exchange.getMessage().setBody(ok);
                 }
             }
         });
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXTest.java
index 9df4043..ab696fb 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXTest.java
@@ -19,21 +19,20 @@ package org.apache.camel.itest.tx;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Unit test will look for the spring .xml file with the same class name
  * but postfixed with -config.xml as filename.
  * <p/>
- * We use Spring Testing for unit test, eg we extend AbstractJUnit4SpringContextTests
- * that is a Spring class.
  */
+@CamelSpringTest
 @ContextConfiguration
-public class JmsToHttpTXTest extends AbstractJUnit4SpringContextTests {
+public class JmsToHttpTXTest {
 
     // use uri to refer to our mock
     @EndpointInject("mock:rollback")
@@ -49,7 +48,7 @@ public class JmsToHttpTXTest extends AbstractJUnit4SpringContextTests {
     private String ok  = "<?xml version=\"1.0\"?><reply><status>ok</status></reply>";
 
     @Test
-    public void testSendToTXJms() throws Exception {
+    void testSendToTXJms() throws Exception {
         // we assume 2 rollbacks
         mock.expectedMessageCount(2);
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest.java
index 9bdd29c..2c2d60a 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest.java
@@ -22,24 +22,23 @@ import org.apache.camel.ExchangeTimedOutException;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /**
  * Unit test will look for the spring .xml file with the same class name
  * but postfixed with -config.xml as filename.
  * <p/>
- * We use Spring Testing for unit test, eg we extend AbstractJUnit4SpringContextTests
- * that is a Spring class.
  */
+@CamelSpringTest
 @ContextConfiguration
-public class JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest extends AbstractJUnit4SpringContextTests {
+public class JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTest {
 
     @Autowired
     private ProducerTemplate template;
@@ -55,7 +54,7 @@ public class JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTes
     private String noAccess  = "<?xml version=\"1.0\"?><reply><status>Access denied</status></reply>";
 
     @Test
-    public void test404() throws Exception {
+    void test404() {
         // use requestBody to force a InOut message exchange pattern ( = request/reply)
         // will send and wait for a response
         Object out = template.requestBodyAndHeader(data,
@@ -66,7 +65,7 @@ public class JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTes
     }
 
     @Test
-    public void testRollback() throws Exception {
+    void testRollback() throws Exception {
         // will rollback forever so we run 3 times or more
         rollback.expectedMinimumMessageCount(3);
 
@@ -77,14 +76,14 @@ public class JmsToHttpTXWithOnExceptionAndNoTransactionErrorHandlerConfiguredTes
                 "<?xml version=\"1.0\"?><request><status id=\"123\"/></request>", "user", "guest");
             fail("Should throw an exception");
         } catch (RuntimeCamelException e) {
-            assertTrue("Should timeout", e.getCause() instanceof ExchangeTimedOutException);
+            assertTrue(e.getCause() instanceof ExchangeTimedOutException, "Should timeout");
         }
 
         rollback.assertIsSatisfied();
     }
 
     @Test
-    public void testOK() throws Exception {
+    void testOK() {
         // use requestBody to force a InOut message exchange pattern ( = request/reply)
         // will send and wait for a response
         Object out = template.requestBodyAndHeader(data,
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest.java
index 62342f3..fe79e19 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithOnExceptionTest.java
@@ -22,24 +22,23 @@ import org.apache.camel.ExchangeTimedOutException;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /**
  * Unit test will look for the spring .xml file with the same class name
  * but postfixed with -config.xml as filename.
  * <p/>
- * We use Spring Testing for unit test, eg we extend AbstractJUnit4SpringContextTests
- * that is a Spring class.
  */
+@CamelSpringTest
 @ContextConfiguration
-public class JmsToHttpTXWithOnExceptionTest extends AbstractJUnit4SpringContextTests {
+public class JmsToHttpTXWithOnExceptionTest {
 
     @Autowired
     private ProducerTemplate template;
@@ -55,7 +54,7 @@ public class JmsToHttpTXWithOnExceptionTest extends AbstractJUnit4SpringContextT
     private String noAccess  = "<?xml version=\"1.0\"?><reply><status>Access denied</status></reply>";
 
     @Test
-    public void test404() throws Exception {
+    void test404() {
         // use requestBody to force a InOut message exchange pattern ( = request/reply)
         // will send and wait for a response
         Object out = template.requestBodyAndHeader(data,
@@ -66,7 +65,7 @@ public class JmsToHttpTXWithOnExceptionTest extends AbstractJUnit4SpringContextT
     }
 
     @Test
-    public void testRollback() throws Exception {
+    void testRollback() throws Exception {
         // will rollback forever so we run 3 times or more
         rollback.expectedMinimumMessageCount(3);
 
@@ -77,14 +76,14 @@ public class JmsToHttpTXWithOnExceptionTest extends AbstractJUnit4SpringContextT
                 "<?xml version=\"1.0\"?><request><status id=\"123\"/></request>", "user", "guest");
             fail("Should throw an exception");
         } catch (RuntimeCamelException e) {
-            assertTrue("Should timeout", e.getCause() instanceof ExchangeTimedOutException);
+            assertTrue(e.getCause() instanceof ExchangeTimedOutException, "Should timeout");
         }
 
         rollback.assertIsSatisfied();
     }
 
     @Test
-    public void testOK() throws Exception {
+    void testOK() {
         // use requestBody to force a InOut message exchange pattern ( = request/reply)
         // will send and wait for a response
         Object out = template.requestBodyAndHeader(data,
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest.java
index 29543bb..5de48bc 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpTXWithRollbackTest.java
@@ -19,11 +19,11 @@ package org.apache.camel.itest.tx;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.Test;
+import org.apache.camel.test.spring.junit5.CamelSpringTest;
+import org.junit.jupiter.api.Test;
 import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Unit test will look for the spring .xml file with the same class name
@@ -32,8 +32,9 @@ import static org.junit.Assert.assertEquals;
  * We use Spring Testing for unit test, eg we extend AbstractJUnit4SpringContextTests
  * that is a Spring class.
  */
+@CamelSpringTest
 @ContextConfiguration
-public class JmsToHttpTXWithRollbackTest extends AbstractJUnit4SpringContextTests {
+public class JmsToHttpTXWithRollbackTest {
 
     // use uri to refer to our mock
     @EndpointInject("mock:rollback")
@@ -49,7 +50,7 @@ public class JmsToHttpTXWithRollbackTest extends AbstractJUnit4SpringContextTest
     private String ok  = "<?xml version=\"1.0\"?><reply><status>ok</status></reply>";
 
     @Test
-    public void testSendToTXJmsWithRollback() throws Exception {
+    void testSendToTXJmsWithRollback() throws Exception {
         // we assume 2 rollbacks
         mock.expectedMessageCount(2);
 
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute.java
index 2730b66..1747d2c 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute.java
@@ -34,7 +34,7 @@ public class JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute
     private String noAccess = "<?xml version=\"1.0\"?><reply><status>Access denied</status></reply>";
 
     @Override
-    public void configure() throws Exception {
+    public void configure() {
         port = AvailablePortFinder.getNextAvailable();
 
         // if its a 404 then regard it as handled
@@ -68,28 +68,28 @@ public class JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute
 
         // this is our http router
         from("jetty:http://localhost:" + port + "/sender").process(new Processor() {
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 // first hit is always a error code 500 to force the caller to retry
                 if (counter++ < 1) {
                     // simulate http error 500
-                    exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 500);
-                    exchange.getOut().setBody("Damn some internal server error");
+                    exchange.getMessage().setHeader(Exchange.HTTP_RESPONSE_CODE, 500);
+                    exchange.getMessage().setBody("Damn some internal server error");
                     return;
                 }
 
                 String user = exchange.getIn().getHeader("user", String.class);
                 if ("unknown".equals(user)) {
                     // no page for a unknown user
-                    exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 404);
-                    exchange.getOut().setBody("Page does not exists");
+                    exchange.getMessage().setHeader(Exchange.HTTP_RESPONSE_CODE, 404);
+                    exchange.getMessage().setBody("Page does not exists");
                     return;
                 } else if ("guest".equals(user)) {
                     // not okay for guest user
-                    exchange.getOut().setBody(nok);
+                    exchange.getMessage().setBody(nok);
                     return;
                 }
 
-                exchange.getOut().setBody(ok);
+                exchange.getMessage().setBody(ok);
             }
         });
     }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionRoute.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionRoute.java
index acaccff..76823b8 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionRoute.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionRoute.java
@@ -34,7 +34,7 @@ public class JmsToHttpWithOnExceptionRoute extends JmsToHttpRoute {
     private String noAccess = "<?xml version=\"1.0\"?><reply><status>Access denied</status></reply>";
 
     @Override
-    public void configure() throws Exception {
+    public void configure() {
         port = AvailablePortFinder.getNextAvailable();
 
         // configure a global transacted error handler
@@ -71,28 +71,28 @@ public class JmsToHttpWithOnExceptionRoute extends JmsToHttpRoute {
 
         // this is our http router
         from("jetty:http://localhost:" + port + "/sender").process(new Processor() {
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 // first hit is always a error code 500 to force the caller to retry
                 if (counter++ < 1) {
                     // simulate http error 500
-                    exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 500);
-                    exchange.getOut().setBody("Damn some internal server error");
+                    exchange.getMessage().setHeader(Exchange.HTTP_RESPONSE_CODE, 500);
+                    exchange.getMessage().setBody("Damn some internal server error");
                     return;
                 }
 
                 String user = exchange.getIn().getHeader("user", String.class);
                 if ("unknown".equals(user)) {
                     // no page for a unknown user
-                    exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 404);
-                    exchange.getOut().setBody("Page does not exists");
+                    exchange.getMessage().setHeader(Exchange.HTTP_RESPONSE_CODE, 404);
+                    exchange.getMessage().setBody("Page does not exists");
                     return;
                 } else if ("guest".equals(user)) {
                     // not okay for guest user
-                    exchange.getOut().setBody(nok);
+                    exchange.getMessage().setBody(nok);
                     return;
                 }
 
-                exchange.getOut().setBody(ok);
+                exchange.getMessage().setBody(ok);
             }
         });
     }
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithRollbackRoute.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithRollbackRoute.java
index a797401..0ea28e1 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithRollbackRoute.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithRollbackRoute.java
@@ -30,7 +30,7 @@ import org.apache.camel.test.AvailablePortFinder;
 public class JmsToHttpWithRollbackRoute extends JmsToHttpRoute {
 
     @Override
-    public void configure() throws Exception {
+    public void configure() {
         port = AvailablePortFinder.getNextAvailable();
 
         // configure a global transacted error handler
@@ -60,11 +60,11 @@ public class JmsToHttpWithRollbackRoute extends JmsToHttpRoute {
         // this is our http route that will fail the first 2 attempts
         // before it sends an ok response
         from("jetty:http://localhost:" + port + "/sender").process(new Processor() {
-            public void process(Exchange exchange) throws Exception {
+            public void process(Exchange exchange) {
                 if (counter++ < 2) {
-                    exchange.getOut().setBody(nok);
+                    exchange.getMessage().setBody(nok);
                 } else {
-                    exchange.getOut().setBody(ok);
+                    exchange.getMessage().setBody(ok);
                 }
             }
         });
diff --git a/tests/camel-itest/src/test/java/org/apache/camel/itest/validator/ValidatorSchemaImportTest.java b/tests/camel-itest/src/test/java/org/apache/camel/itest/validator/ValidatorSchemaImportTest.java
index 3416aba..04e5a598e4 100644
--- a/tests/camel-itest/src/test/java/org/apache/camel/itest/validator/ValidatorSchemaImportTest.java
+++ b/tests/camel-itest/src/test/java/org/apache/camel/itest/validator/ValidatorSchemaImportTest.java
@@ -19,13 +19,12 @@ package org.apache.camel.itest.validator;
 import org.apache.camel.ValidationException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Before;
-import org.junit.Test;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied;
 
-/**
- *
- */
 public class ValidatorSchemaImportTest extends CamelTestSupport {
 
     protected MockEndpoint validEndpoint;
@@ -37,10 +36,10 @@ public class ValidatorSchemaImportTest extends CamelTestSupport {
      * @throws Exception
      */
     @Test
-    public void testRelativeParentSchemaImport() throws Exception {
+    void testRelativeParentSchemaImport() throws Exception {
         context.addRoutes(new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("direct:start")
                     .doTry()
                         .to("validator:org/apache/camel/component/validator/relativeparent/child/child.xsd")
@@ -58,7 +57,7 @@ public class ValidatorSchemaImportTest extends CamelTestSupport {
         template.sendBody("direct:start",
                 "<childuser xmlns='http://foo.com/bar'><user><id>1</id><username>Test User</username></user></childuser>");
 
-        MockEndpoint.assertIsSatisfied(validEndpoint, invalidEndpoint, finallyEndpoint);
+        assertIsSatisfied(validEndpoint, invalidEndpoint, finallyEndpoint);
     }
     
     /**
@@ -67,10 +66,10 @@ public class ValidatorSchemaImportTest extends CamelTestSupport {
      * @throws Exception
      */
     @Test
-    public void testDotSlashSchemaImport() throws Exception {
+    void testDotSlashSchemaImport() throws Exception {
         this.context.addRoutes(new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("direct:start").doTry()
                     .to("validator:org/apache/camel/component/validator/dotslash/child.xsd").to("mock:valid")
                     .doCatch(ValidationException.class).to("mock:invalid").doFinally().to("mock:finally")
@@ -84,7 +83,7 @@ public class ValidatorSchemaImportTest extends CamelTestSupport {
             .sendBody("direct:start",
                       "<childuser xmlns='http://foo.com/bar'><user><id>1</id><username>Test User</username></user></childuser>");
 
-        MockEndpoint.assertIsSatisfied(validEndpoint, invalidEndpoint, finallyEndpoint);
+        assertIsSatisfied(validEndpoint, invalidEndpoint, finallyEndpoint);
     }
 
     /**
@@ -93,10 +92,10 @@ public class ValidatorSchemaImportTest extends CamelTestSupport {
      * @throws Exception
      */
     @Test
-    public void testRelativeDoubleSlashSchemaImport() throws Exception {
+    void testRelativeDoubleSlashSchemaImport() throws Exception {
         this.context.addRoutes(new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("direct:start").doTry()
                     .to("validator:org/apache/camel/component/validator/doubleslash/child.xsd")
                     .to("mock:valid").doCatch(ValidationException.class).to("mock:invalid").doFinally()
@@ -110,7 +109,7 @@ public class ValidatorSchemaImportTest extends CamelTestSupport {
             .sendBody("direct:start",
                       "<childuser xmlns='http://foo.com/bar'><user><id>1</id><username>Test User</username></user></childuser>");
 
-        MockEndpoint.assertIsSatisfied(validEndpoint, invalidEndpoint, finallyEndpoint);
+        assertIsSatisfied(validEndpoint, invalidEndpoint, finallyEndpoint);
     }
     
     /**
@@ -118,10 +117,10 @@ public class ValidatorSchemaImportTest extends CamelTestSupport {
      * @throws Exception
      */
     @Test
-    public void testChildParentUncleSchemaImport() throws Exception {
+    void testChildParentUncleSchemaImport() throws Exception {
         context.addRoutes(new RouteBuilder() {
             @Override
-            public void configure() throws Exception {
+            public void configure() {
                 from("direct:start")
                     .doTry()
                         .to("validator:org/apache/camel/component/validator/childparentuncle/child/child.xsd")
@@ -139,11 +138,11 @@ public class ValidatorSchemaImportTest extends CamelTestSupport {
         template.sendBody("direct:start",
                 "<childuser xmlns='http://foo.com/bar'><user><id>1</id><username>Test User</username></user></childuser>");
 
-        MockEndpoint.assertIsSatisfied(validEndpoint, invalidEndpoint, finallyEndpoint);
+        assertIsSatisfied(validEndpoint, invalidEndpoint, finallyEndpoint);
     }
 
     @Override
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         super.setUp();
         validEndpoint = resolveMandatoryEndpoint("mock:valid", MockEndpoint.class);