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

jamesnetherton pushed a commit to branch camel-quarkus-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git


The following commit(s) were added to refs/heads/camel-quarkus-main by this 
push:
     new fdb9e358 Upgrade Quarkus to 4.0.0.Beta1
fdb9e358 is described below

commit fdb9e358ddf33e5dbdfc9d424b22b57ae3ea7910
Author: James Netherton <[email protected]>
AuthorDate: Wed Oct 21 13:33:19 2026 +0100

    Upgrade Quarkus to 4.0.0.Beta1
    
    * Upgrade Quarkus to 4.0.0.Beta1
    * Upgrade Quarkus LangChain4j to 2.0.0.Beta1
    * Read the log file via the injected TestLog, as Quarkus 4 uses a unique log
      file path for integration tests
    * Resolve the unique integration test log file in examples without an HTTP
      server, as TestLog falls back to the configured log file path for them
    * Rename the removed quarkus.log.file.enable property to 
quarkus.log.file.enabled
    * Migrate PrometheusMeterRegistry to the io.micrometer.prometheusmetrics 
package
    * Replace the relocated quarkus-junit5 dependency with quarkus-junit in saga
    * Disable the JPA examples until camel-jpa supports Jakarta Persistence 4
    * Avoid primitive boolean and short fields in data-extract-langchain4j to 
work
      around quarkusio/quarkus#57275 in native mode
    * Increase the cluster-leader-election CI native-image-xmx to 7g
    
    Co-authored-by: Claude Opus 5.5 <[email protected]>
---
 a2a-openai/pom.xml                                    |  2 +-
 amqp/pom.xml                                          |  2 +-
 amqp/src/test/java/org/acme/amqp/AmqpTest.java        |  6 +++---
 artemis-elasticsearch/pom.xml                         |  2 +-
 aws-lambda/pom.xml                                    |  2 +-
 aws2-s3/pom.xml                                       |  2 +-
 aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3IT.java  | 18 ++++++++++++++++++
 .../src/test/java/org/acme/aws2/s3/Aws2S3Test.java    | 12 +++++++++---
 cluster-leader-election/pom.xml                       |  4 ++--
 .../src/test/java/org/acme/master/MasterIT.java       | 19 +++++++++++++++++++
 .../src/test/java/org/acme/master/MasterTest.java     | 11 ++++++++---
 cxf-soap/pom.xml                                      |  2 +-
 cyberark-vault/pom.xml                                |  2 +-
 data-extract-langchain4j/pom.xml                      |  4 ++--
 .../acme/extraction/CustomPojoExtractionService.java  |  8 +++++---
 fhir/pom.xml                                          |  2 +-
 file-bindy-ftp/pom.xml                                |  2 +-
 file-split-log-xml/pom.xml                            |  2 +-
 .../java/org/acme/file/xml/FileSplitLogXmlTest.java   |  6 +++---
 health/pom.xml                                        |  2 +-
 http-log/pom.xml                                      |  2 +-
 http-log/src/test/java/org/acme/http/HttpLogTest.java |  6 +++---
 http-pqc/pom.xml                                      |  2 +-
 jdbc-datasource/pom.xml                               |  2 +-
 jms-jpa/pom.xml                                       |  5 ++++-
 jpa-idempotent-repository/pom.xml                     |  5 ++++-
 jta-jpa/pom.xml                                       |  5 ++++-
 kafka/pom.xml                                         |  2 +-
 kamelet-chucknorris/pom.xml                           |  2 +-
 .../test/java/org/acme/kamelet/ChuckNorrisTest.java   |  6 +++---
 langchain4j-ingest-rag/pom.xml                        |  4 ++--
 message-bridge/pom.xml                                |  2 +-
 .../org/acme/message/bridge/MessageBridgeITCase.java  | 15 ++++++++-------
 netty-custom-correlation/pom.xml                      |  2 +-
 .../custom/correlation/NettyCustomCorrelationIT.java  | 18 ++++++++++++++++++
 .../correlation/NettyCustomCorrelationTest.java       | 12 +++++++++---
 observability/pom.xml                                 |  2 +-
 .../observability/devmode/DevModeMetricsEndpoint.java |  2 +-
 openapi-contract-first/pom.xml                        |  2 +-
 platform-http-security-keycloak/pom.xml               |  2 +-
 quarkus-rest-json/pom.xml                             |  2 +-
 rest-json/pom.xml                                     |  2 +-
 rest-keycloak-soap-jms/pom.xml                        |  2 +-
 saga/pom.xml                                          |  2 +-
 saga/saga-integration-tests/pom.xml                   |  2 +-
 .../org/apache/camel/example/saga/SagaBasicTest.java  |  9 ++++-----
 .../src/test/resources/application.yml                |  2 +-
 spring-redis/pom.xml                                  |  2 +-
 .../java/org/acme/spring/redis/SpringRedisTest.java   |  6 +++---
 timer-log-main/pom.xml                                |  2 +-
 timer-log/pom.xml                                     |  2 +-
 .../test/java/org/acme/timer/log/TimerLogTest.java    |  6 +++---
 variables/pom.xml                                     |  2 +-
 variables/src/main/resources/application.properties   |  2 +-
 .../src/test/java/org/acme/main/VariablesIT.java      | 18 ++++++++++++++++++
 .../src/test/java/org/acme/main/VariablesTest.java    | 12 +++++++++---
 vertx-websocket-chat/pom.xml                          |  2 +-
 57 files changed, 195 insertions(+), 88 deletions(-)

diff --git a/a2a-openai/pom.xml b/a2a-openai/pom.xml
index 1beb2b25..06a6ab53 100644
--- a/a2a-openai/pom.xml
+++ b/a2a-openai/pom.xml
@@ -29,7 +29,7 @@
     <description>Camel Quarkus Example :: A2A Support Ticket Triage with 
OpenAI</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/amqp/pom.xml b/amqp/pom.xml
index 58bea927..43bd79c2 100644
--- a/amqp/pom.xml
+++ b/amqp/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: AMQP</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/amqp/src/test/java/org/acme/amqp/AmqpTest.java 
b/amqp/src/test/java/org/acme/amqp/AmqpTest.java
index 4c86f979..9e3eacde 100644
--- a/amqp/src/test/java/org/acme/amqp/AmqpTest.java
+++ b/amqp/src/test/java/org/acme/amqp/AmqpTest.java
@@ -18,9 +18,9 @@ package org.acme.amqp;
 
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.util.concurrent.TimeUnit;
 
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
@@ -35,13 +35,13 @@ public class AmqpTest {
 
     @Disabled("Requires a running ActiveMQ broker.")
     @Test
-    public void testTimerLog() {
+    public void testTimerLog(TestLog testLog) {
         Config config = ConfigProvider.getConfig();
         String greeting = config.getValue("greeting.message", String.class);
 
         await().atMost(10L, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS)
                 .untilAsserted(() -> Assertions
-                        .assertTrue(new 
String(Files.readAllBytes(Paths.get("target/quarkus.log")), 
StandardCharsets.UTF_8)
+                        .assertTrue(new 
String(Files.readAllBytes(testLog.getLogFilePath()), StandardCharsets.UTF_8)
                                 .contains(greeting)));
     }
 }
diff --git a/artemis-elasticsearch/pom.xml b/artemis-elasticsearch/pom.xml
index 1126475f..3f8d8a0a 100644
--- a/artemis-elasticsearch/pom.xml
+++ b/artemis-elasticsearch/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Artemis ElasticSearch</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/aws-lambda/pom.xml b/aws-lambda/pom.xml
index ecaf5963..78a2e8bc 100644
--- a/aws-lambda/pom.xml
+++ b/aws-lambda/pom.xml
@@ -27,7 +27,7 @@
     <description>Camel Quarkus Example :: Deploying a Camel Route in AWS 
Lambda</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/aws2-s3/pom.xml b/aws2-s3/pom.xml
index 948411cd..9c266c67 100644
--- a/aws2-s3/pom.xml
+++ b/aws2-s3/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Upload a file to an AWS S3 
bucket</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3IT.java 
b/aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3IT.java
index 956935ba..0e9dd861 100644
--- a/aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3IT.java
+++ b/aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3IT.java
@@ -16,9 +16,27 @@
  */
 package org.acme.aws2.s3;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Comparator;
+import java.util.stream.Stream;
+
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusIntegrationTest;
 
 @QuarkusIntegrationTest
 class Aws2S3IT extends Aws2S3Test {
 
+    @Override
+    protected Path logFilePath(TestLog testLog) throws IOException {
+        Path configuredPath = testLog.getLogFilePath();
+        try (Stream<Path> paths = Files.list(configuredPath.getParent())) {
+            return paths.filter(path -> 
path.getFileName().toString().startsWith("test-"))
+                    .map(path -> path.resolve(configuredPath.getFileName()))
+                    .filter(Files::exists)
+                    .max(Comparator.comparing(path -> 
path.toFile().lastModified()))
+                    .orElse(configuredPath);
+        }
+    }
 }
diff --git a/aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3Test.java 
b/aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3Test.java
index faea3f05..20246308 100644
--- a/aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3Test.java
+++ b/aws2-s3/src/test/java/org/acme/aws2/s3/Aws2S3Test.java
@@ -16,11 +16,13 @@
  */
 package org.acme.aws2.s3;
 
+import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.nio.file.Paths;
+import java.nio.file.Path;
 import java.util.concurrent.TimeUnit;
 
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.common.WithTestResource;
 import io.quarkus.test.junit.QuarkusTest;
 import org.junit.jupiter.api.Assertions;
@@ -33,10 +35,14 @@ import static org.awaitility.Awaitility.await;
 class Aws2S3Test {
 
     @Test
-    public void testSendAndReceive() {
+    public void testSendAndReceive(TestLog testLog) {
         await().atMost(10L, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS)
                 .untilAsserted(() -> Assertions
-                        .assertTrue(new 
String(Files.readAllBytes(Paths.get("target/quarkus.log")), 
StandardCharsets.UTF_8)
+                        .assertTrue(new 
String(Files.readAllBytes(logFilePath(testLog)), StandardCharsets.UTF_8)
                                 .contains("Received body: Hello from Camel via 
aws2-s3!")));
     }
+
+    protected Path logFilePath(TestLog testLog) throws IOException {
+        return testLog.getLogFilePath();
+    }
 }
diff --git a/cluster-leader-election/pom.xml b/cluster-leader-election/pom.xml
index 3eb4cc89..aff3591d 100644
--- a/cluster-leader-election/pom.xml
+++ b/cluster-leader-election/pom.xml
@@ -29,7 +29,7 @@
     <description>Camel Quarkus Example :: Cluster leader election</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
@@ -367,7 +367,7 @@
         <profile>
             <id>ci</id>
             <properties>
-                
<quarkus.native.native-image-xmx>5g</quarkus.native.native-image-xmx>
+                
<quarkus.native.native-image-xmx>7g</quarkus.native.native-image-xmx>
             </properties>
         </profile>
     </profiles>
diff --git 
a/cluster-leader-election/src/test/java/org/acme/master/MasterIT.java 
b/cluster-leader-election/src/test/java/org/acme/master/MasterIT.java
index d36ce3a9..0f807a65 100644
--- a/cluster-leader-election/src/test/java/org/acme/master/MasterIT.java
+++ b/cluster-leader-election/src/test/java/org/acme/master/MasterIT.java
@@ -16,8 +16,27 @@
  */
 package org.acme.master;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Comparator;
+import java.util.stream.Stream;
+
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusIntegrationTest;
 
 @QuarkusIntegrationTest
 class MasterIT extends MasterTest {
+
+    @Override
+    protected Path logFilePath(TestLog testLog) throws IOException {
+        Path configuredPath = testLog.getLogFilePath();
+        try (Stream<Path> paths = Files.list(configuredPath.getParent())) {
+            return paths.filter(path -> 
path.getFileName().toString().startsWith("test-"))
+                    .map(path -> path.resolve(configuredPath.getFileName()))
+                    .filter(Files::exists)
+                    .max(Comparator.comparing(path -> 
path.toFile().lastModified()))
+                    .orElse(configuredPath);
+        }
+    }
 }
diff --git 
a/cluster-leader-election/src/test/java/org/acme/master/MasterTest.java 
b/cluster-leader-election/src/test/java/org/acme/master/MasterTest.java
index 4f81826f..2976d01e 100644
--- a/cluster-leader-election/src/test/java/org/acme/master/MasterTest.java
+++ b/cluster-leader-election/src/test/java/org/acme/master/MasterTest.java
@@ -16,11 +16,13 @@
  */
 package org.acme.master;
 
+import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.nio.file.Paths;
+import java.nio.file.Path;
 import java.util.concurrent.TimeUnit;
 
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import org.junit.jupiter.api.Test;
 
@@ -30,11 +32,14 @@ import static org.awaitility.Awaitility.await;
 public class MasterTest {
 
     @Test
-    public void testLog() {
+    public void testLog(TestLog testLog) {
         await().atMost(30L, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-            String log = new 
String(Files.readAllBytes(Paths.get("target/quarkus.log")), 
StandardCharsets.UTF_8);
+            String log = new String(Files.readAllBytes(logFilePath(testLog)), 
StandardCharsets.UTF_8);
             return log.contains("Clustered route (timer)");
         });
     }
 
+    protected Path logFilePath(TestLog testLog) throws IOException {
+        return testLog.getLogFilePath();
+    }
 }
diff --git a/cxf-soap/pom.xml b/cxf-soap/pom.xml
index 060fc235..ff94a36a 100644
--- a/cxf-soap/pom.xml
+++ b/cxf-soap/pom.xml
@@ -29,7 +29,7 @@
     <description>Camel Quarkus Example :: CXF SOAP</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/cyberark-vault/pom.xml b/cyberark-vault/pom.xml
index dc5b5af4..c9329030 100644
--- a/cyberark-vault/pom.xml
+++ b/cyberark-vault/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: CyberArk Vault</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/data-extract-langchain4j/pom.xml b/data-extract-langchain4j/pom.xml
index 887ce5b1..e51c6b39 100644
--- a/data-extract-langchain4j/pom.xml
+++ b/data-extract-langchain4j/pom.xml
@@ -31,7 +31,7 @@
 
     <properties>
 
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
@@ -53,7 +53,7 @@
         <maven-surefire-plugin.version>3.5.6</maven-surefire-plugin.version>
 
         <!-- the Quarkus LangChain4j release Camel Quarkus is built against -->
-        
<quarkiverse-langchain4j.version>1.14.2</quarkiverse-langchain4j.version>
+        
<quarkiverse-langchain4j.version>2.0.0.Beta1</quarkiverse-langchain4j.version>
         <wiremock.version>3.13.2</wiremock.version>
     </properties>
 
diff --git 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoExtractionService.java
 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoExtractionService.java
index 0c1f6381..8732b763 100644
--- 
a/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoExtractionService.java
+++ 
b/data-extract-langchain4j/src/main/java/org/acme/extraction/CustomPojoExtractionService.java
@@ -35,10 +35,12 @@ import org.apache.camel.Handler;
 @ApplicationScoped
 public interface CustomPojoExtractionService {
 
+    // Boxed / int fields avoid a native mode deserialization issue with 
primitive boolean and short fields
+    // https://github.com/quarkusio/quarkus/issues/57275
     @RegisterForReflection(registerFullHierarchy = true)
     class CustomPojo {
         @JsonProperty(required = true)
-        public boolean customerSatisfied;
+        public Boolean customerSatisfied;
         @JsonProperty(required = true)
         public String customerName;
         @JsonProperty(required = true)
@@ -59,9 +61,9 @@ public interface CustomPojoExtractionService {
         @JsonProperty(required = true)
         public int year;
         @JsonProperty(required = true)
-        public short month;
+        public int month;
         @JsonProperty(required = true)
-        public short day;
+        public int day;
     }
 
     String CUSTOM_POJO_EXTRACT_PROMPT = "Extract information about a customer 
from the transcript delimited by triple backticks: ```{{text}}```."
diff --git a/fhir/pom.xml b/fhir/pom.xml
index 3cd44be0..70069895 100644
--- a/fhir/pom.xml
+++ b/fhir/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: FHIR</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/file-bindy-ftp/pom.xml b/file-bindy-ftp/pom.xml
index da9102c7..cf2aeac1 100644
--- a/file-bindy-ftp/pom.xml
+++ b/file-bindy-ftp/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: File Bindy FTP</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/file-split-log-xml/pom.xml b/file-split-log-xml/pom.xml
index d7c93e08..65611e41 100644
--- a/file-split-log-xml/pom.xml
+++ b/file-split-log-xml/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: File To Log XML DSL</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git 
a/file-split-log-xml/src/test/java/org/acme/file/xml/FileSplitLogXmlTest.java 
b/file-split-log-xml/src/test/java/org/acme/file/xml/FileSplitLogXmlTest.java
index f801b5c9..09c05c0d 100644
--- 
a/file-split-log-xml/src/test/java/org/acme/file/xml/FileSplitLogXmlTest.java
+++ 
b/file-split-log-xml/src/test/java/org/acme/file/xml/FileSplitLogXmlTest.java
@@ -18,9 +18,9 @@ package org.acme.file.xml;
 
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.util.concurrent.TimeUnit;
 
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import org.junit.jupiter.api.Test;
 
@@ -30,10 +30,10 @@ import static org.awaitility.Awaitility.await;
 public class FileSplitLogXmlTest {
 
     @Test
-    public void testFileSplitLogXml() {
+    public void testFileSplitLogXml(TestLog testLog) {
         // Verify that all 10 items were output to the log
         await().atMost(10L, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-            String log = new 
String(Files.readAllBytes(Paths.get("target/quarkus.log")), 
StandardCharsets.UTF_8);
+            String log = new 
String(Files.readAllBytes(testLog.getLogFilePath()), StandardCharsets.UTF_8);
             return log.contains("line 10 contains: Richard,WILSON");
         });
     }
diff --git a/health/pom.xml b/health/pom.xml
index 993a70c2..e0ec36e2 100644
--- a/health/pom.xml
+++ b/health/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Health Check</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/http-log/pom.xml b/http-log/pom.xml
index fac1e361..3529e0b9 100644
--- a/http-log/pom.xml
+++ b/http-log/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: HTTP to Log</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/http-log/src/test/java/org/acme/http/HttpLogTest.java 
b/http-log/src/test/java/org/acme/http/HttpLogTest.java
index 402ecefe..9a3f338e 100644
--- a/http-log/src/test/java/org/acme/http/HttpLogTest.java
+++ b/http-log/src/test/java/org/acme/http/HttpLogTest.java
@@ -18,9 +18,9 @@ package org.acme.http;
 
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.util.concurrent.TimeUnit;
 
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import org.junit.jupiter.api.Test;
@@ -31,13 +31,13 @@ import static org.awaitility.Awaitility.await;
 public class HttpLogTest {
 
     @Test
-    public void testHttpLog() {
+    public void testHttpLog(TestLog testLog) {
         RestAssured.get("/camel/hello")
                 .then()
                 .statusCode(200);
 
         await().atMost(10L, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-            String log = new 
String(Files.readAllBytes(Paths.get("target/quarkus.log")), 
StandardCharsets.UTF_8);
+            String log = new 
String(Files.readAllBytes(testLog.getLogFilePath()), StandardCharsets.UTF_8);
             return log.contains("Camel runs on");
         });
     }
diff --git a/http-pqc/pom.xml b/http-pqc/pom.xml
index 69f53e67..2729344d 100644
--- a/http-pqc/pom.xml
+++ b/http-pqc/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: HTTP with Post-Quantum Cryptography 
using X25519MLKEM768</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/jdbc-datasource/pom.xml b/jdbc-datasource/pom.xml
index 4b0204ac..192d3b4f 100644
--- a/jdbc-datasource/pom.xml
+++ b/jdbc-datasource/pom.xml
@@ -25,7 +25,7 @@
     <name>Camel Quarkus :: Examples :: Jdbc - DatataSource - Log</name>
     <description>Camel Quarkus Example :: Connect to Database using 
Datasource</description>
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/jms-jpa/pom.xml b/jms-jpa/pom.xml
index f13266aa..c6654c43 100644
--- a/jms-jpa/pom.xml
+++ b/jms-jpa/pom.xml
@@ -25,8 +25,11 @@
     <name>Camel Quarkus :: Examples :: JMS JPA</name>
     <description>Camel Quarkus Example :: JMS JPA</description>
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
+        <!-- TODO: Re-enable when camel-jpa is compiled against Jakarta 
Persistence 4 -->
+        <skipTests>true</skipTests>
+        <quarkus.build.skip>true</quarkus.build.skip>
         <quarkiverse-artemis.version>3.15.0</quarkiverse-artemis.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/jpa-idempotent-repository/pom.xml 
b/jpa-idempotent-repository/pom.xml
index 1873a710..f95667de 100644
--- a/jpa-idempotent-repository/pom.xml
+++ b/jpa-idempotent-repository/pom.xml
@@ -30,8 +30,11 @@
     <description>Camel Quarkus Example :: JPA Idempotent 
Repository</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
+        <!-- TODO: Re-enable when camel-jpa is compiled against Jakarta 
Persistence 4 -->
+        <skipTests>true</skipTests>
+        <quarkus.build.skip>true</quarkus.build.skip>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
         
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
diff --git a/jta-jpa/pom.xml b/jta-jpa/pom.xml
index 1912dc0e..6e3e134c 100644
--- a/jta-jpa/pom.xml
+++ b/jta-jpa/pom.xml
@@ -25,8 +25,11 @@
     <name>Camel Quarkus :: Examples :: JTA JPA</name>
     <description>Camel Quarkus Example :: JTA JPA</description>
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
+        <!-- TODO: Re-enable when camel-jpa is compiled against Jakarta 
Persistence 4 -->
+        <skipTests>true</skipTests>
+        <quarkus.build.skip>true</quarkus.build.skip>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
         
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
diff --git a/kafka/pom.xml b/kafka/pom.xml
index 5841b55b..1bad9fa4 100644
--- a/kafka/pom.xml
+++ b/kafka/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Kafka</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/kamelet-chucknorris/pom.xml b/kamelet-chucknorris/pom.xml
index 3cc6c943..22a40ccd 100644
--- a/kamelet-chucknorris/pom.xml
+++ b/kamelet-chucknorris/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Kamelet Chuck Norris</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git 
a/kamelet-chucknorris/src/test/java/org/acme/kamelet/ChuckNorrisTest.java 
b/kamelet-chucknorris/src/test/java/org/acme/kamelet/ChuckNorrisTest.java
index 8d0f9f97..5d18265c 100644
--- a/kamelet-chucknorris/src/test/java/org/acme/kamelet/ChuckNorrisTest.java
+++ b/kamelet-chucknorris/src/test/java/org/acme/kamelet/ChuckNorrisTest.java
@@ -17,11 +17,11 @@
 package org.acme.kamelet;
 
 import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import org.junit.jupiter.api.Test;
 
@@ -31,9 +31,9 @@ import static org.awaitility.Awaitility.await;
 @QuarkusTest
 public class ChuckNorrisTest {
     @Test
-    public void chuckNorrisKamelet() {
+    public void chuckNorrisKamelet(TestLog testLog) {
         await().atMost(10L, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-            List<String> log = 
Files.readAllLines(Paths.get("target/quarkus.log"));
+            List<String> log = Files.readAllLines(testLog.getLogFilePath());
             return log.stream().anyMatch(line -> 
line.matches(".*timer.*Chuck.*"));
         });
     }
diff --git a/langchain4j-ingest-rag/pom.xml b/langchain4j-ingest-rag/pom.xml
index d689e707..710c7669 100644
--- a/langchain4j-ingest-rag/pom.xml
+++ b/langchain4j-ingest-rag/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: RAG document Q&amp;A over a folder 
ingested by the langchain4j-ingest extension</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
@@ -49,7 +49,7 @@
         <maven-surefire-plugin.version>3.5.6</maven-surefire-plugin.version>
 
         <!-- the Quarkus LangChain4j release Camel Quarkus is built against -->
-        
<quarkiverse-langchain4j.version>1.14.2</quarkiverse-langchain4j.version>
+        
<quarkiverse-langchain4j.version>2.0.0.Beta1</quarkiverse-langchain4j.version>
         <wiremock.version>3.13.2</wiremock.version>
     </properties>
 
diff --git a/message-bridge/pom.xml b/message-bridge/pom.xml
index 3d23fee6..48c14cbc 100644
--- a/message-bridge/pom.xml
+++ b/message-bridge/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Configure XA Transactions and 
connection pooling</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git 
a/message-bridge/src/test/java/org/acme/message/bridge/MessageBridgeITCase.java 
b/message-bridge/src/test/java/org/acme/message/bridge/MessageBridgeITCase.java
index 1d3f545f..00f028a5 100644
--- 
a/message-bridge/src/test/java/org/acme/message/bridge/MessageBridgeITCase.java
+++ 
b/message-bridge/src/test/java/org/acme/message/bridge/MessageBridgeITCase.java
@@ -23,6 +23,7 @@ import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 
 import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusIntegrationTest;
 import io.restassured.RestAssured;
 import org.acme.message.bridge.resource.IBMMQTestResource;
@@ -40,11 +41,10 @@ import static org.assertj.core.api.Assertions.assertThat;
 // The crash test will kill the app, so it must be executed last as there is 
no way to restart the application
 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 public class MessageBridgeITCase {
-    private static final File LOG_FILE = new File("target/quarkus.log");
 
     @Test
     @Order(1)
-    public void shouldSendMessageToActiveMQTest() {
+    public void shouldSendMessageToActiveMQTest(TestLog testLog) {
         final String message = UUID.randomUUID().toString();
         RestAssured
                 .given()
@@ -52,12 +52,13 @@ public class MessageBridgeITCase {
                 .post("/message");
 
         Awaitility.await().atMost(5, TimeUnit.SECONDS)
-                .untilAsserted(() -> 
assertThat(Files.readString(LOG_FILE.toPath())).contains("ActiveMQ received: " 
+ message));
+                .untilAsserted(
+                        () -> 
assertThat(Files.readString(testLog.getLogFilePath())).contains("ActiveMQ 
received: " + message));
     }
 
     @Test
     @Order(2)
-    public void shouldRollbackMessageTest() {
+    public void shouldRollbackMessageTest(TestLog testLog) {
         final String message = UUID.randomUUID() + "-rollback";
         RestAssured
                 .given()
@@ -65,7 +66,7 @@ public class MessageBridgeITCase {
                 .post("/message");
 
         Awaitility.await().atMost(5, TimeUnit.SECONDS)
-                .untilAsserted(() -> 
assertThat(Files.readString(LOG_FILE.toPath()))
+                .untilAsserted(() -> 
assertThat(Files.readString(testLog.getLogFilePath()))
                         .containsSubsequence(
                                 "Sending message from IBMMQ to ActiveMQ: " + 
message,
                                 "Simulated rollback",
@@ -75,7 +76,7 @@ public class MessageBridgeITCase {
 
     @Test
     @Order(3)
-    public void shouldCrashTest() {
+    public void shouldCrashTest(TestLog testLog) {
         final String message = UUID.randomUUID() + "-crash";
         RestAssured
                 .given()
@@ -83,7 +84,7 @@ public class MessageBridgeITCase {
                 .post("/message");
 
         Awaitility.await().atMost(5, TimeUnit.SECONDS)
-                .untilAsserted(() -> 
assertThat(Files.readString(LOG_FILE.toPath())).contains("Crashing the 
system"));
+                .untilAsserted(() -> 
assertThat(Files.readString(testLog.getLogFilePath())).contains("Crashing the 
system"));
         File tmDir = Paths
                 
.get(ConfigProvider.getConfig().getValue("quarkus.transaction-manager.object-store.directory",
 String.class),
                         "ShadowNoFileLockStore", "defaultStore", 
"StateManager", "BasicAction", "TwoPhaseCoordinator",
diff --git a/netty-custom-correlation/pom.xml b/netty-custom-correlation/pom.xml
index 7262f279..7891ff74 100644
--- a/netty-custom-correlation/pom.xml
+++ b/netty-custom-correlation/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Communication with Netty over 
TCP</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git 
a/netty-custom-correlation/src/test/java/org/acme/netty/custom/correlation/NettyCustomCorrelationIT.java
 
b/netty-custom-correlation/src/test/java/org/acme/netty/custom/correlation/NettyCustomCorrelationIT.java
index 9638189c..cab7dcd2 100644
--- 
a/netty-custom-correlation/src/test/java/org/acme/netty/custom/correlation/NettyCustomCorrelationIT.java
+++ 
b/netty-custom-correlation/src/test/java/org/acme/netty/custom/correlation/NettyCustomCorrelationIT.java
@@ -16,9 +16,27 @@
  */
 package org.acme.netty.custom.correlation;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Comparator;
+import java.util.stream.Stream;
+
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusIntegrationTest;
 
 @QuarkusIntegrationTest
 class NettyCustomCorrelationIT extends NettyCustomCorrelationTest {
 
+    @Override
+    protected Path logFilePath(TestLog testLog) throws IOException {
+        Path configuredPath = testLog.getLogFilePath();
+        try (Stream<Path> paths = Files.list(configuredPath.getParent())) {
+            return paths.filter(path -> 
path.getFileName().toString().startsWith("test-"))
+                    .map(path -> path.resolve(configuredPath.getFileName()))
+                    .filter(Files::exists)
+                    .max(Comparator.comparing(path -> 
path.toFile().lastModified()))
+                    .orElse(configuredPath);
+        }
+    }
 }
diff --git 
a/netty-custom-correlation/src/test/java/org/acme/netty/custom/correlation/NettyCustomCorrelationTest.java
 
b/netty-custom-correlation/src/test/java/org/acme/netty/custom/correlation/NettyCustomCorrelationTest.java
index 26ab1d05..70ca6635 100644
--- 
a/netty-custom-correlation/src/test/java/org/acme/netty/custom/correlation/NettyCustomCorrelationTest.java
+++ 
b/netty-custom-correlation/src/test/java/org/acme/netty/custom/correlation/NettyCustomCorrelationTest.java
@@ -16,10 +16,12 @@
  */
 package org.acme.netty.custom.correlation;
 
+import java.io.IOException;
 import java.nio.file.Files;
-import java.nio.file.Paths;
+import java.nio.file.Path;
 import java.util.concurrent.TimeUnit;
 
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -30,10 +32,10 @@ import static org.awaitility.Awaitility.await;
 class NettyCustomCorrelationTest {
 
     @Test
-    public void testWithCorrelation() {
+    public void testWithCorrelation(TestLog testLog) {
         await().atMost(20L, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS)
                 .untilAsserted(() -> {
-                    String log = 
Files.readString(Paths.get("target/quarkus.log"));
+                    String log = Files.readString(logFilePath(testLog));
                     //we should receive both correlated and uncorrelated 
response
                     Assertions.assertTrue(log.contains("(correct reply)"));
                     Assertions.assertFalse(log.contains("(wrong reply)"));
@@ -41,4 +43,8 @@ class NettyCustomCorrelationTest {
                     Assertions.assertTrue(log.contains("Server response: #5"));
                 });
     }
+
+    protected Path logFilePath(TestLog testLog) throws IOException {
+        return testLog.getLogFilePath();
+    }
 }
diff --git a/observability/pom.xml b/observability/pom.xml
index 100e3b79..597eab1a 100644
--- a/observability/pom.xml
+++ b/observability/pom.xml
@@ -29,7 +29,7 @@
 
     <properties>
 
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git 
a/observability/src/main/java/org/acme/observability/devmode/DevModeMetricsEndpoint.java
 
b/observability/src/main/java/org/acme/observability/devmode/DevModeMetricsEndpoint.java
index 4ce7899c..a2db3d1d 100644
--- 
a/observability/src/main/java/org/acme/observability/devmode/DevModeMetricsEndpoint.java
+++ 
b/observability/src/main/java/org/acme/observability/devmode/DevModeMetricsEndpoint.java
@@ -16,7 +16,7 @@
  */
 package org.acme.observability.devmode;
 
-import io.micrometer.prometheus.PrometheusMeterRegistry;
+import io.micrometer.prometheusmetrics.PrometheusMeterRegistry;
 import io.quarkus.arc.profile.IfBuildProfile;
 import io.vertx.ext.web.Router;
 import jakarta.enterprise.context.ApplicationScoped;
diff --git a/openapi-contract-first/pom.xml b/openapi-contract-first/pom.xml
index e15d0e4d..29dc8ed4 100644
--- a/openapi-contract-first/pom.xml
+++ b/openapi-contract-first/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: openapi-contract-first</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/platform-http-security-keycloak/pom.xml 
b/platform-http-security-keycloak/pom.xml
index ae0164d6..eaeece9f 100644
--- a/platform-http-security-keycloak/pom.xml
+++ b/platform-http-security-keycloak/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Platform HTTP Security 
Keycloak</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/quarkus-rest-json/pom.xml b/quarkus-rest-json/pom.xml
index d1aa1ca6..45d319c8 100644
--- a/quarkus-rest-json/pom.xml
+++ b/quarkus-rest-json/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Quarkus Rest Json</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/rest-json/pom.xml b/rest-json/pom.xml
index 13191754..10f7bb7e 100644
--- a/rest-json/pom.xml
+++ b/rest-json/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Rest Json</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/rest-keycloak-soap-jms/pom.xml b/rest-keycloak-soap-jms/pom.xml
index 5b181ddc..240ff232 100644
--- a/rest-keycloak-soap-jms/pom.xml
+++ b/rest-keycloak-soap-jms/pom.xml
@@ -29,7 +29,7 @@
     <description>Camel Quarkus Example :: REST to SOAP bridge with Keycloak 
security and JMS async events</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/saga/pom.xml b/saga/pom.xml
index cef94fae..3a91aa35 100644
--- a/saga/pom.xml
+++ b/saga/pom.xml
@@ -29,7 +29,7 @@
     <packaging>pom</packaging>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
         <quarkiverse-artemis.version>3.15.0</quarkiverse-artemis.version>
 
diff --git a/saga/saga-integration-tests/pom.xml 
b/saga/saga-integration-tests/pom.xml
index 628764d6..932f6ca6 100644
--- a/saga/saga-integration-tests/pom.xml
+++ b/saga/saga-integration-tests/pom.xml
@@ -57,7 +57,7 @@
         <!-- Test dependencies -->
         <dependency>
             <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-junit5</artifactId>
+            <artifactId>quarkus-junit</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git 
a/saga/saga-integration-tests/src/test/java/org/apache/camel/example/saga/SagaBasicTest.java
 
b/saga/saga-integration-tests/src/test/java/org/apache/camel/example/saga/SagaBasicTest.java
index 64700c51..0972668c 100644
--- 
a/saga/saga-integration-tests/src/test/java/org/apache/camel/example/saga/SagaBasicTest.java
+++ 
b/saga/saga-integration-tests/src/test/java/org/apache/camel/example/saga/SagaBasicTest.java
@@ -17,12 +17,12 @@
 package org.apache.camel.example.saga;
 
 import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.time.Duration;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 
 import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import io.restassured.RestAssured;
 import org.awaitility.Awaitility;
@@ -40,7 +40,6 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 @QuarkusTest
 @QuarkusTestResource(SagaTestResource.class)
 public class SagaBasicTest {
-    private static final String LOG_FILE = "target/quarkus.log";
     private static final Logger LOG = 
Logger.getLogger(SagaBasicTest.class.getName());
 
     /**
@@ -48,7 +47,7 @@ public class SagaBasicTest {
      * Payment service has 15% random failure rate, so either scenario is 
valid.
      */
     @Test
-    public void testSagaWithLRAAndRandomOutcomes() throws Exception {
+    public void testSagaWithLRAAndRandomOutcomes(TestLog testLog) throws 
Exception {
         // Trigger saga asynchronously (may timeout on payment failure, which 
is expected)
         CompletableFuture.runAsync(() -> {
             try {
@@ -63,7 +62,7 @@ public class SagaBasicTest {
         // Wait for saga to start and process fully
         // In native mode, we need to wait longer for all messages to be logged
         await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> {
-            String log = Files.readString(Paths.get(LOG_FILE));
+            String log = Files.readString(testLog.getLogFilePath());
             assertTrue(log.contains("Executing saga #1"), "Saga should start 
with LRA");
 
             // Wait until we see evidence of completion (success or failure)
@@ -78,7 +77,7 @@ public class SagaBasicTest {
                 .pollInterval(Duration.ofMillis(250))
                 .atMost(Duration.ofMinutes(1))
                 .untilAsserted(() -> {
-                    String log = Files.readString(Paths.get(LOG_FILE));
+                    String log = Files.readString(testLog.getLogFilePath());
 
                     // Verify LRA coordinator is used
                     assertTrue(log.contains("lra-coordinator"), "Should use 
LRA coordinator");
diff --git a/saga/saga-integration-tests/src/test/resources/application.yml 
b/saga/saga-integration-tests/src/test/resources/application.yml
index da44b5a2..25b844e0 100644
--- a/saga/saga-integration-tests/src/test/resources/application.yml
+++ b/saga/saga-integration-tests/src/test/resources/application.yml
@@ -27,7 +27,7 @@ quarkus:
     level: INFO
     min-level: DEBUG
     file:
-      enable: true
+      enabled: true
       path: target/quarkus.log
 
 camel:
diff --git a/spring-redis/pom.xml b/spring-redis/pom.xml
index ebeabed0..63411b0c 100644
--- a/spring-redis/pom.xml
+++ b/spring-redis/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Send and receive messages from 
Redis</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git 
a/spring-redis/src/test/java/org/acme/spring/redis/SpringRedisTest.java 
b/spring-redis/src/test/java/org/acme/spring/redis/SpringRedisTest.java
index 36512b4f..e0227f31 100644
--- a/spring-redis/src/test/java/org/acme/spring/redis/SpringRedisTest.java
+++ b/spring-redis/src/test/java/org/acme/spring/redis/SpringRedisTest.java
@@ -17,10 +17,10 @@
 package org.acme.spring.redis;
 
 import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.util.concurrent.TimeUnit;
 
 import io.quarkus.test.common.QuarkusTestResource;
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -32,10 +32,10 @@ import static org.awaitility.Awaitility.await;
 class SpringRedisTest {
 
     @Test
-    public void testSendAndReceive() {
+    public void testSendAndReceive(TestLog testLog) {
         await().atMost(10L, TimeUnit.SECONDS).pollDelay(1, TimeUnit.SECONDS)
                 .untilAsserted(() -> {
-                    String log = 
Files.readString(Paths.get("target/quarkus.log"));
+                    String log = Files.readString(testLog.getLogFilePath());
                     Assertions.assertTrue(log.contains("Received value: Hello 
Redis!"));
                     Assertions.assertTrue(log.contains("Received message: 
Hello Redis from the topic!"));
                 });
diff --git a/timer-log-main/pom.xml b/timer-log-main/pom.xml
index da9e91db..192e96a5 100644
--- a/timer-log-main/pom.xml
+++ b/timer-log-main/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Timer to Log Main</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/timer-log/pom.xml b/timer-log/pom.xml
index 121ac6c3..70798771 100644
--- a/timer-log/pom.xml
+++ b/timer-log/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Timer to Log</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/timer-log/src/test/java/org/acme/timer/log/TimerLogTest.java 
b/timer-log/src/test/java/org/acme/timer/log/TimerLogTest.java
index dfa840e0..574f10ef 100644
--- a/timer-log/src/test/java/org/acme/timer/log/TimerLogTest.java
+++ b/timer-log/src/test/java/org/acme/timer/log/TimerLogTest.java
@@ -17,9 +17,9 @@
 package org.acme.timer.log;
 
 import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.util.concurrent.TimeUnit;
 
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
@@ -31,12 +31,12 @@ import static org.awaitility.Awaitility.await;
 public class TimerLogTest {
 
     @Test
-    public void testTimerLog() {
+    public void testTimerLog(TestLog testLog) {
         Config config = ConfigProvider.getConfig();
         String greeting = config.getValue("greeting.message", String.class);
 
         await().atMost(10L, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-            String log = Files.readString(Paths.get("target/quarkus.log"));
+            String log = Files.readString(testLog.getLogFilePath());
             return log.contains("Java DSL: " + greeting) && log.contains("YAML 
DSL: " + greeting);
         });
     }
diff --git a/variables/pom.xml b/variables/pom.xml
index 6db45d5c..068fcf27 100644
--- a/variables/pom.xml
+++ b/variables/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Variables</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
diff --git a/variables/src/main/resources/application.properties 
b/variables/src/main/resources/application.properties
index 9e5172be..0e299bed 100644
--- a/variables/src/main/resources/application.properties
+++ b/variables/src/main/resources/application.properties
@@ -19,7 +19,7 @@
 # Quarkus
 #
 quarkus.banner.enabled = false
-quarkus.log.file.enable = true
+quarkus.log.file.enabled = true
 
 #
 # Camel
diff --git a/variables/src/test/java/org/acme/main/VariablesIT.java 
b/variables/src/test/java/org/acme/main/VariablesIT.java
index d489a5f1..75e93617 100644
--- a/variables/src/test/java/org/acme/main/VariablesIT.java
+++ b/variables/src/test/java/org/acme/main/VariablesIT.java
@@ -16,9 +16,27 @@
  */
 package org.acme.main;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Comparator;
+import java.util.stream.Stream;
+
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusIntegrationTest;
 
 @QuarkusIntegrationTest
 class VariablesIT extends VariablesTest {
 
+    @Override
+    protected Path logFilePath(TestLog testLog) throws IOException {
+        Path configuredPath = testLog.getLogFilePath();
+        try (Stream<Path> paths = Files.list(configuredPath.getParent())) {
+            return paths.filter(path -> 
path.getFileName().toString().startsWith("test-"))
+                    .map(path -> path.resolve(configuredPath.getFileName()))
+                    .filter(Files::exists)
+                    .max(Comparator.comparing(path -> 
path.toFile().lastModified()))
+                    .orElse(configuredPath);
+        }
+    }
 }
diff --git a/variables/src/test/java/org/acme/main/VariablesTest.java 
b/variables/src/test/java/org/acme/main/VariablesTest.java
index 26b1cdfd..d96ce0b3 100644
--- a/variables/src/test/java/org/acme/main/VariablesTest.java
+++ b/variables/src/test/java/org/acme/main/VariablesTest.java
@@ -16,12 +16,14 @@
  */
 package org.acme.main;
 
+import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
-import java.nio.file.Paths;
+import java.nio.file.Path;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Pattern;
 
+import io.quarkus.test.common.TestLog;
 import io.quarkus.test.junit.QuarkusTest;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
@@ -33,7 +35,7 @@ import static org.awaitility.Awaitility.await;
 public class VariablesTest {
 
     @Test
-    public void testVariables() {
+    public void testVariables(TestLog testLog) {
         Config config = ConfigProvider.getConfig();
         String greeting = config.getValue("camel.variable.greeting", 
String.class);
         String contextName = config.getValue("camel.context.name", 
String.class);
@@ -42,9 +44,13 @@ public class VariablesTest {
         Pattern p = Pattern.compile(String.format(".* %s from %s: \\d.*", 
greeting, contextName), Pattern.DOTALL);
 
         await().atMost(10L, TimeUnit.SECONDS).pollDelay(1, 
TimeUnit.SECONDS).until(() -> {
-            String log = new 
String(Files.readAllBytes(Paths.get("target/quarkus.log")), 
StandardCharsets.UTF_8);
+            String log = new String(Files.readAllBytes(logFilePath(testLog)), 
StandardCharsets.UTF_8);
             return log.contains(String.format("%s : %s", greeting, 
initRandom)) &&
                     p.matcher(log).matches();
         });
     }
+
+    protected Path logFilePath(TestLog testLog) throws IOException {
+        return testLog.getLogFilePath();
+    }
 }
diff --git a/vertx-websocket-chat/pom.xml b/vertx-websocket-chat/pom.xml
index 333eb9f0..c9c69cad 100644
--- a/vertx-websocket-chat/pom.xml
+++ b/vertx-websocket-chat/pom.xml
@@ -28,7 +28,7 @@
     <description>Camel Quarkus Example :: Implementing Websocket</description>
 
     <properties>
-        <quarkus.platform.version>3.40.1</quarkus.platform.version>
+        <quarkus.platform.version>4.0.0.Beta1</quarkus.platform.version>
         
<camel-quarkus.platform.version>4.0.0-SNAPSHOT</camel-quarkus.platform.version>
 
         <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>

Reply via email to