You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gi...@apache.org on 2025/10/16 04:18:07 UTC

(camel-quarkus) branch quarkus-main updated (c0b0ff4b20 -> b727ba801a)

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

github-bot pushed a change to branch quarkus-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


 discard c0b0ff4b20 Upgrade Quarkus to 3.29.0.CR1
     add c9d2baef32 Bump io.swagger.codegen.v3:swagger-codegen-generators from 1.0.58 to 1.0.59
     add 5388fe7464 Bump quarkiverse-groovy.version from 3.28.2 to 3.28.3
     add 90cfedbd1c Upgrade Quarkus LangChain4j to 1.2.1
     add aeec8ff2c9 Fix SNAPSHOT deploy CI build
     add b386ce31af Add tests and support for langchain4j-agent custom tools
     add dccac038c1 Fix path to qwc-camel-core.js in Micrometer & MicroProfile Fault Tolerance Dev UI pages
     new b727ba801a Upgrade Quarkus to 3.29.0.CR1

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (c0b0ff4b20)
            \
             N -- N -- N   refs/heads/quarkus-main (b727ba801a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

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


Summary of changes:
 Jenkinsfile                                        |  2 +-
 .../deployment/SupportLangchain4jProcessor.java    | 21 +++++++++++++++++
 .../main/resources/dev-ui/qwc-camel-micrometer.js  |  2 +-
 .../qwc-camel-microprofile-fault-tolerance.js      |  2 +-
 integration-tests/langchain4j-agent/pom.xml        |  4 ++++
 .../langchain4j/agent/it/AgentProducers.java       |  9 ++++++++
 .../agent/it/Langchain4jAgentResource.java         | 19 +++++++++++++++
 .../agent/it/Langchain4jAgentRoutes.java           |  3 +++
 .../AdditionTool.java}                             | 27 ++++++++++++----------
 .../langchain4j/agent/it/Langchain4jAgentTest.java | 12 ++++++++++
 ..._chat-891a47a3-531c-48fd-920c-b8eff546c7ff.json | 24 +++++++++++++++++++
 ..._chat-a14f44e0-8921-47ab-a69e-cf038e7cb358.json | 24 +++++++++++++++++++
 pom.xml                                            |  6 ++---
 poms/bom/src/main/generated/flattened-full-pom.xml |  6 ++---
 .../src/main/generated/flattened-reduced-pom.xml   |  6 ++---
 .../generated/flattened-reduced-verbose-pom.xml    |  6 ++---
 16 files changed, 146 insertions(+), 27 deletions(-)
 copy integration-tests/langchain4j-agent/src/main/java/org/apache/camel/quarkus/component/langchain4j/agent/it/{guardrail/ValidationSuccessInputGuardrail.java => tool/AdditionTool.java} (62%)
 create mode 100644 integration-tests/langchain4j-agent/src/test/resources/mappings/api_chat-891a47a3-531c-48fd-920c-b8eff546c7ff.json
 create mode 100644 integration-tests/langchain4j-agent/src/test/resources/mappings/api_chat-a14f44e0-8921-47ab-a69e-cf038e7cb358.json


(camel-quarkus) 01/01: Upgrade Quarkus to 3.29.0.CR1

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

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

commit b727ba801a3db8decccb04c049539684e4d34f74
Author: James Netherton <ja...@gmail.com>
AuthorDate: Tue Sep 23 07:27:04 2025 +0100

    Upgrade Quarkus to 3.29.0.CR1
---
 extensions/aws2-kinesis/runtime/pom.xml            |  5 +++
 .../deployment/DebeziumPostgresProcessor.java      |  7 +++-
 .../salesforce/deployment/SalesforceProcessor.java |  6 +++
 .../test/support/kafka/KafkaTestResource.java      |  9 -----
 .../kafka/oauth/it/KafkaKeycloakTestResource.java  |  2 +-
 .../kafka/sasl/KafkaSaslSslTestResource.java       | 31 +++++++++++----
 .../quarkus/kafka/sasl/KafkaSaslTestResource.java  | 14 ++++++-
 .../quarkus/kafka/ssl/KafkaSslTestResource.java    | 14 ++++++-
 .../component/kafka/CamelKafkaResource.java        |  2 +-
 .../quarkus/component/kafka/CamelKafkaRoutes.java  | 21 +++++++++--
 .../quarkus/component/kafka/it/CamelKafkaTest.java |  3 --
 pom.xml                                            |  7 ++--
 poms/bom/pom.xml                                   | 40 ++++++++++++++++++++
 poms/bom/src/main/generated/flattened-full-pom.xml | 39 +++++++++++++++++++
 .../src/main/generated/flattened-reduced-pom.xml   | 44 ++++++++++++++++++++++
 .../generated/flattened-reduced-verbose-pom.xml    | 44 ++++++++++++++++++++++
 16 files changed, 256 insertions(+), 32 deletions(-)

diff --git a/extensions/aws2-kinesis/runtime/pom.xml b/extensions/aws2-kinesis/runtime/pom.xml
index 78f91c929b..1ca6fe4a73 100644
--- a/extensions/aws2-kinesis/runtime/pom.xml
+++ b/extensions/aws2-kinesis/runtime/pom.xml
@@ -37,6 +37,11 @@
     </properties>
 
     <dependencies>
+        <!-- TODO: Remove this https://github.com/apache/camel-quarkus/issues/7812 -->
+        <dependency>
+            <groupId>software.amazon.kinesis</groupId>
+            <artifactId>amazon-kinesis-client</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-core</artifactId>
diff --git a/extensions/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java b/extensions/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java
index f3cc14bab7..d92f552db7 100644
--- a/extensions/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java
+++ b/extensions/debezium-postgres/deployment/src/main/java/org/apache/camel/quarkus/component/debezium/postgres/deployment/DebeziumPostgresProcessor.java
@@ -21,6 +21,7 @@ import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
 
 class DebeziumPostgresProcessor {
 
@@ -33,7 +34,6 @@ class DebeziumPostgresProcessor {
 
     @BuildStep
     void reflectiveClasses(BuildProducer<ReflectiveClassBuildItem> reflectiveClasses) {
-
         reflectiveClasses.produce(ReflectiveClassBuildItem.builder(
                 "io.debezium.connector.postgresql.PostgresConnector",
                 "io.debezium.connector.postgresql.PostgresConnectorTask",
@@ -44,6 +44,11 @@ class DebeziumPostgresProcessor {
                 .build());
     }
 
+    @BuildStep
+    RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+        return new RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+    }
+
     @BuildStep
     void addDependencies(BuildProducer<IndexDependencyBuildItem> indexDependency) {
         indexDependency.produce(new IndexDependencyBuildItem("io.debezium", "debezium-connector-postgres"));
diff --git a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/SalesforceProcessor.java b/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/SalesforceProcessor.java
index b3d25d647a..9652d14153 100644
--- a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/SalesforceProcessor.java
+++ b/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/SalesforceProcessor.java
@@ -25,6 +25,7 @@ import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
 import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
 import org.apache.camel.component.salesforce.api.dto.AbstractDTOBase;
 import org.apache.camel.quarkus.core.deployment.spi.CamelPackageScanClassBuildItem;
 import org.apache.camel.support.jsse.KeyStoreParameters;
@@ -84,6 +85,11 @@ class SalesforceProcessor {
         packageScanClass.produce(new CamelPackageScanClassBuildItem(userDtoClasses));
     }
 
+    @BuildStep
+    RuntimeInitializedClassBuildItem runtimeInitializedClasses() {
+        return new RuntimeInitializedClassBuildItem("com.google.protobuf.JavaFeaturesProto");
+    }
+
     @BuildStep
     CamelPackageScanClassBuildItem registerEventBusPackageScanClasses(CombinedIndexBuildItem combinedIndexBuildItem) {
         Set<String> eventBusDTOClasses = combinedIndexBuildItem.getIndex()
diff --git a/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java b/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java
index 1de17e0126..c4446c65d2 100644
--- a/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java
+++ b/integration-tests-support/kafka/src/main/java/org/apache/camel/quarkus/test/support/kafka/KafkaTestResource.java
@@ -23,20 +23,15 @@ import java.util.function.Function;
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import io.strimzi.test.container.StrimziKafkaContainer;
 import org.eclipse.microprofile.config.ConfigProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class KafkaTestResource implements QuarkusTestResourceLifecycleManager {
     protected static final String KAFKA_IMAGE_NAME = ConfigProvider.getConfig().getValue("kafka.container.image", String.class);
-    private static final Logger LOGGER = LoggerFactory.getLogger(KafkaTestResource.class);
-
     private StrimziKafkaContainer container;
 
     @Override
     public Map<String, String> start() {
         try {
             start(name -> new StrimziKafkaContainer(name));
-
             return Collections.singletonMap("camel.component.kafka.brokers", container.getBootstrapServers());
         } catch (Exception e) {
             throw new RuntimeException(e);
@@ -45,13 +40,9 @@ public class KafkaTestResource implements QuarkusTestResourceLifecycleManager {
 
     public String start(Function<String, StrimziKafkaContainer> containerSupplier) {
         container = containerSupplier.apply(KAFKA_IMAGE_NAME);
-
-        /* Added container startup logging because of https://github.com/apache/camel-quarkus/issues/2461 */
         container.withLogConsumer(frame -> System.out.print(frame.getUtf8String()))
-                //                .withEnv("KAFKA_LOG4J_OPTS", "-Dlog4j.configuration=file:/log4j.properties")
                 .waitForRunning()
                 .start();
-
         return container.getBootstrapServers();
     }
 
diff --git a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaKeycloakTestResource.java b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaKeycloakTestResource.java
index 8c6c17e270..bebbd44260 100644
--- a/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaKeycloakTestResource.java
+++ b/integration-tests/kafka-oauth/src/test/java/org/apache/camel/quarkus/kafka/oauth/it/KafkaKeycloakTestResource.java
@@ -88,7 +88,7 @@ public class KafkaKeycloakTestResource implements QuarkusTestResourceLifecycleMa
         this.kafka = new StrimziKafkaContainer(imageName)
                 .withBrokerId(1)
                 .withKafkaConfigurationMap(Map.ofEntries(
-                        entry("listener.security.protocol.map", "JWT:SASL_PLAINTEXT,BROKER1:PLAINTEXT"),
+                        entry("listener.security.protocol.map", "JWT:SASL_PLAINTEXT,BROKER1:PLAINTEXT,CONTROLLER:PLAINTEXT"),
                         entry("listener.name.jwt.oauthbearer.sasl.jaas.config",
                                 getOauthSaslJaasConfig(keycloak.getInternalUrl(), keycloak.getServerUrl())),
                         entry("listener.name.jwt.plain.sasl.jaas.config",
diff --git a/integration-tests/kafka-sasl-ssl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslSslTestResource.java b/integration-tests/kafka-sasl-ssl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslSslTestResource.java
index fe33234803..ab1e9b34c7 100644
--- a/integration-tests/kafka-sasl-ssl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslSslTestResource.java
+++ b/integration-tests/kafka-sasl-ssl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslSslTestResource.java
@@ -19,22 +19,25 @@ package org.apache.camel.quarkus.kafka.sasl;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Path;
 import java.util.Map;
+import java.util.function.Consumer;
 import java.util.stream.Stream;
 
+import com.github.dockerjava.api.command.CreateContainerCmd;
 import com.github.dockerjava.api.command.InspectContainerResponse;
 import io.strimzi.test.container.StrimziKafkaContainer;
 import org.apache.camel.quarkus.test.support.kafka.KafkaTestResource;
 import org.apache.camel.util.CollectionHelper;
+import org.jboss.logging.Logger;
 import org.testcontainers.images.builder.Transferable;
 import org.testcontainers.utility.MountableFile;
 
-import static io.strimzi.test.container.StrimziZookeeperContainer.ZOOKEEPER_PORT;
-
 public class KafkaSaslSslTestResource extends KafkaTestResource {
+    static final Logger LOG = Logger.getLogger(KafkaSaslSslTestResource.class);
     static final String KAFKA_KEYSTORE_PASSWORD = "changeit";
-    //min lengthe is 32 because of SCRAM-SHA-512
+    //min length is 32 because of SCRAM-SHA-512
     static final String ALICE_PASSWORD = "changeitchangeitchangeitchangeit";
     static final String KAFKA_HOSTNAME = "localhost";
+    static final String KAFKA_BROKER_HOSTNAME = "broker-1";
     static final String CERTS_BASEDIR = "target/certs";
 
     static final String KAFKA_KEYSTORE_FILE = KAFKA_HOSTNAME + "-keystore.p12";
@@ -79,11 +82,10 @@ public class KafkaSaslSslTestResource extends KafkaTestResource {
         protected void configure() {
             super.configure();
 
-            String protocolMap = "SASL_SSL:SASL_SSL,BROKER1:PLAINTEXT";
+            String protocolMap = "SASL_SSL:SASL_SSL,BROKER1:PLAINTEXT,CONTROLLER:PLAINTEXT";
             Map<String, String> config = Map.ofEntries(
                     Map.entry("inter.broker.listener.name", "BROKER1"),
                     Map.entry("listener.security.protocol.map", protocolMap),
-                    Map.entry("zookeeper.sasl.enabled", "false"),
                     Map.entry("sasl.enabled.mechanisms", "SCRAM-SHA-512"),
                     Map.entry("sasl.mechanism.inter.broker.protocol", "SCRAM-SHA-512"),
                     Map.entry("ssl.keystore.location", "/etc/kafka/secrets/" + KAFKA_KEYSTORE_FILE),
@@ -95,8 +97,17 @@ public class KafkaSaslSslTestResource extends KafkaTestResource {
                     Map.entry("ssl.endpoint.identification.algorithm", ""));
 
             withEnv("KAFKA_OPTS", "-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf");
+            withCreateContainerCmdModifier(new Consumer<CreateContainerCmd>() {
+                @Override
+                public void accept(CreateContainerCmd createContainerCmd) {
+                    createContainerCmd.withName(KAFKA_BROKER_HOSTNAME);
+                    createContainerCmd.withHostName(KAFKA_BROKER_HOSTNAME);
+                }
+            });
             withBrokerId(1);
+            withNodeId(1);
             withKafkaConfigurationMap(config);
+            withEnv("KAFKA_HEAP_OPTS", "-Xmx512m -Xms256m");
             withLogConsumer(frame -> System.out.print(frame.getUtf8String()));
         }
 
@@ -115,7 +126,8 @@ public class KafkaSaslSslTestResource extends KafkaTestResource {
                     });
 
             String setupUsersScript = "#!/bin/bash\n"
-                    + "KAFKA_OPTS= /opt/kafka/bin/kafka-configs.sh --zookeeper localhost:" + ZOOKEEPER_PORT
+                    + "/opt/kafka/bin/kafka-configs.sh"
+                    + " --bootstrap-server :" + INTER_BROKER_LISTENER_PORT
                     + " --alter --add-config 'SCRAM-SHA-512=[iterations=8192,password=" + ALICE_PASSWORD
                     + "]' --entity-type users --entity-name alice";
 
@@ -128,7 +140,12 @@ public class KafkaSaslSslTestResource extends KafkaTestResource {
         protected void containerIsStarted(InspectContainerResponse containerInfo) {
             super.containerIsStarted(containerInfo);
             try {
-                execInContainer("/setup-users.sh");
+                ExecResult execResult = execInContainer("/setup-users.sh");
+                if (execResult.getExitCode() != 0) {
+                    LOG.warnf("Execution of setup-users.sh failed with exit code %d", execResult.getExitCode());
+                    LOG.warnf("STDOUT: %s", execResult.getStdout());
+                    LOG.warnf("STDERR: %s", execResult.getStderr());
+                }
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }
diff --git a/integration-tests/kafka-sasl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslTestResource.java b/integration-tests/kafka-sasl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslTestResource.java
index e5542d9d5b..444edfb7f3 100644
--- a/integration-tests/kafka-sasl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslTestResource.java
+++ b/integration-tests/kafka-sasl/src/test/java/org/apache/camel/quarkus/kafka/sasl/KafkaSaslTestResource.java
@@ -21,8 +21,10 @@ import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Map;
+import java.util.function.Consumer;
 import java.util.stream.Stream;
 
+import com.github.dockerjava.api.command.CreateContainerCmd;
 import com.github.dockerjava.api.command.InspectContainerResponse;
 import io.strimzi.test.container.StrimziKafkaContainer;
 import org.apache.camel.quarkus.test.support.kafka.KafkaTestResource;
@@ -32,6 +34,8 @@ import org.apache.kafka.clients.CommonClientConfigs;
 import org.testcontainers.utility.MountableFile;
 
 public class KafkaSaslTestResource extends KafkaTestResource {
+    static final String KAFKA_BROKER_HOSTNAME = "broker-1";
+
     private Path serviceBindingDir;
     private SaslKafkaContainer container;
 
@@ -90,7 +94,7 @@ public class KafkaSaslTestResource extends KafkaTestResource {
         protected void configure() {
             super.configure();
 
-            String protocolMap = "SASL_PLAINTEXT:SASL_PLAINTEXT,BROKER1:PLAINTEXT";
+            String protocolMap = "SASL_PLAINTEXT:SASL_PLAINTEXT,BROKER1:PLAINTEXT,CONTROLLER:PLAINTEXT";
             Map<String, String> config = Map.ofEntries(
                     Map.entry("inter.broker.listener.name", "BROKER1"),
                     Map.entry("listener.security.protocol.map", protocolMap),
@@ -99,7 +103,15 @@ public class KafkaSaslTestResource extends KafkaTestResource {
                     Map.entry("sasl.mechanism.inter.broker.protocol", "PLAIN"));
 
             withEnv("KAFKA_OPTS", "-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf");
+            withCreateContainerCmdModifier(new Consumer<CreateContainerCmd>() {
+                @Override
+                public void accept(CreateContainerCmd createContainerCmd) {
+                    createContainerCmd.withName(KAFKA_BROKER_HOSTNAME);
+                    createContainerCmd.withHostName(KAFKA_BROKER_HOSTNAME);
+                }
+            });
             withBrokerId(1);
+            withNodeId(1);
             withKafkaConfigurationMap(config);
             withLogConsumer(frame -> System.out.print(frame.getUtf8String()));
         }
diff --git a/integration-tests/kafka-ssl/src/test/java/org/apache/camel/quarkus/kafka/ssl/KafkaSslTestResource.java b/integration-tests/kafka-ssl/src/test/java/org/apache/camel/quarkus/kafka/ssl/KafkaSslTestResource.java
index ecf218e39f..5d0e05eeea 100644
--- a/integration-tests/kafka-ssl/src/test/java/org/apache/camel/quarkus/kafka/ssl/KafkaSslTestResource.java
+++ b/integration-tests/kafka-ssl/src/test/java/org/apache/camel/quarkus/kafka/ssl/KafkaSslTestResource.java
@@ -18,8 +18,10 @@ package org.apache.camel.quarkus.kafka.ssl;
 
 import java.nio.file.Path;
 import java.util.Map;
+import java.util.function.Consumer;
 import java.util.stream.Stream;
 
+import com.github.dockerjava.api.command.CreateContainerCmd;
 import com.github.dockerjava.api.command.InspectContainerResponse;
 import io.strimzi.test.container.StrimziKafkaContainer;
 import org.apache.camel.quarkus.test.support.kafka.KafkaTestResource;
@@ -31,6 +33,7 @@ public class KafkaSslTestResource extends KafkaTestResource {
 
     static final String KAFKA_KEYSTORE_PASSWORD = "changeit";
     static final String KAFKA_HOSTNAME = "localhost";
+    static final String KAFKA_BROKER_HOSTNAME = "broker-1";
     static final String CERTS_BASEDIR = "target/certs";
 
     static final String KAFKA_KEYSTORE_FILE = KAFKA_HOSTNAME + "-keystore.p12";
@@ -71,7 +74,7 @@ public class KafkaSslTestResource extends KafkaTestResource {
         protected void configure() {
             super.configure();
 
-            String protocolMap = "SSL:SSL,BROKER1:PLAINTEXT";
+            String protocolMap = "SSL:SSL,BROKER1:PLAINTEXT,CONTROLLER:PLAINTEXT";
             Map<String, String> config = Map.ofEntries(
                     Map.entry("inter.broker.listener.name", "BROKER1"),
                     Map.entry("listener.security.protocol.map", protocolMap),
@@ -83,8 +86,15 @@ public class KafkaSslTestResource extends KafkaTestResource {
                     Map.entry("ssl.truststore.type", KAFKA_KEYSTORE_TYPE),
                     Map.entry("ssl.endpoint.identification.algorithm", ""));
 
-            withEnv("STRIMZI_TEST_ROOT_LOG_LEVEL", "DEBUG");
+            withCreateContainerCmdModifier(new Consumer<CreateContainerCmd>() {
+                @Override
+                public void accept(CreateContainerCmd createContainerCmd) {
+                    createContainerCmd.withName(KAFKA_BROKER_HOSTNAME);
+                    createContainerCmd.withHostName(KAFKA_BROKER_HOSTNAME);
+                }
+            });
             withBrokerId(1);
+            withNodeId(1);
             withKafkaConfigurationMap(config);
             withLogConsumer(frame -> System.out.print(frame.getUtf8String()));
         }
diff --git a/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaResource.java b/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaResource.java
index dbe194e187..cc9ded2f88 100644
--- a/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaResource.java
+++ b/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaResource.java
@@ -120,7 +120,7 @@ public class CamelKafkaResource {
 
     @Path("idempotent/{id}")
     @PUT
-    @Consumes(MediaType.APPLICATION_JSON)
+    @Consumes(MediaType.TEXT_PLAIN)
     public Response addMessage(@PathParam("id") Integer id, String message) {
         producerTemplate.sendBodyAndHeader("direct:idempotent", message, "id", id);
         return Response.accepted().build();
diff --git a/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaRoutes.java b/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaRoutes.java
index cdbc5874d0..b48ed8786d 100644
--- a/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaRoutes.java
+++ b/integration-tests/kafka/src/main/java/org/apache/camel/quarkus/component/kafka/CamelKafkaRoutes.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.quarkus.component.kafka;
 
+import java.util.List;
+import java.util.Properties;
+
 import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.enterprise.inject.Produces;
 import jakarta.inject.Named;
@@ -23,6 +26,10 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.kafka.KafkaConstants;
 import org.apache.camel.component.kafka.consumer.KafkaManualCommit;
 import org.apache.camel.processor.idempotent.kafka.KafkaIdempotentRepository;
+import org.apache.camel.quarkus.test.support.kafka.KafkaTestSupport;
+import org.apache.kafka.clients.CommonClientConfigs;
+import org.apache.kafka.clients.admin.AdminClient;
+import org.apache.kafka.clients.admin.NewTopic;
 import org.eclipse.microprofile.config.inject.ConfigProperty;
 
 public class CamelKafkaRoutes extends RouteBuilder {
@@ -38,10 +45,16 @@ public class CamelKafkaRoutes extends RouteBuilder {
     @ConfigProperty(name = "camel.component.kafka.brokers")
     String brokers;
 
-    @Produces
-    @ApplicationScoped
-    @Named("kafkaIdempotentRepository")
     KafkaIdempotentRepository kafkaIdempotentRepository() {
+        Properties props = new Properties();
+        props.put(CommonClientConfigs.BOOTSTRAP_SERVERS_CONFIG, KafkaTestSupport.getBootstrapServers());
+        props.put(CommonClientConfigs.GROUP_ID_CONFIG, "camel-quarkus-group");
+
+        try (AdminClient admin = AdminClient.create(props)) {
+            NewTopic topic = new NewTopic("idempotent-topic", 1, (short) 1);
+            admin.createTopics(List.of(topic));
+        }
+
         return new KafkaIdempotentRepository("idempotent-topic", brokers);
     }
 
@@ -60,7 +73,7 @@ public class CamelKafkaRoutes extends RouteBuilder {
 
         from("direct:idempotent")
                 .idempotentConsumer(header("id"))
-                .idempotentRepository("kafkaIdempotentRepository")
+                .idempotentRepository(kafkaIdempotentRepository())
                 .to("mock:idempotent-results")
                 .end();
 
diff --git a/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaTest.java b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaTest.java
index f6876a2639..6ad0fc5767 100644
--- a/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaTest.java
+++ b/integration-tests/kafka/src/test/java/org/apache/camel/quarkus/component/kafka/it/CamelKafkaTest.java
@@ -63,11 +63,9 @@ public class CamelKafkaTest {
 
     @Test
     void testIndempotent() {
-
         for (int i = 0; i < 10; i++) {
             int id = i % 5;
             given()
-                    .contentType(ContentType.JSON)
                     .body("Test message")
                     .put("/kafka/idempotent/" + id)
                     .then()
@@ -76,7 +74,6 @@ public class CamelKafkaTest {
 
         String[] body = RestAssured.get("/kafka/idempotent").then().extract().body().as(String[].class);
         assertEquals(5, body.length);
-
     }
 
     @Test
diff --git a/pom.xml b/pom.xml
index 620dcedec3..17aeda1d2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,13 +61,14 @@
         <quarkiverse-minio.version>3.8.6</quarkiverse-minio.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/minio/quarkus-minio-parent/ -->
         <quarkiverse-mybatis.version>2.4.1</quarkiverse-mybatis.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/mybatis/quarkus-mybatis-parent/ -->
         <quarkiverse-pooled-jms.version>2.8.0</quarkiverse-pooled-jms.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/messaginghub/quarkus-pooled-jms-parent/ -->
-        <quarkus.version>3.28.2</quarkus.version><!-- https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/ -->
+        <quarkus.version>999-SNAPSHOT</quarkus.version><!-- https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/ -->
         <quarkus-hazelcast-client.version>4.1.0</quarkus-hazelcast-client.version><!-- https://repo1.maven.org/maven2/com/hazelcast/quarkus-hazelcast-client-bom/ -->
         <quarkus-qpid-jms.version>2.10.0</quarkus-qpid-jms.version><!-- This should be in sync with quarkus-platform https://repo1.maven.org/maven2/org/amqphub/quarkus/quarkus-qpid-jms-bom/ -->
 
         <!-- Compile dependency versions (keep sorted alphabetically) -->
         <!-- Items annotated with @sync can be updated by running mvn cq:sync-versions -N -e -->
         <aalto-xml.version>1.3.3</aalto-xml.version><!-- @sync org.smooks:smooks-core:${smooks-version} dep:com.fasterxml:aalto-xml -->
+        <amazon-kinesis-client.version>3.1.3</amazon-kinesis-client.version><!-- TODO: remove this https://github.com/apache/camel-quarkus/issues/7812 -->
         <antlr3.version>3.5.2</antlr3.version><!-- Spark, Stringtemplate and probably others -->
         <audience-annotations.version>${yetus-audience-annotations-version}</audience-annotations.version>
         <avro.version>1.12.0</avro.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.apache.avro:avro -->
@@ -132,7 +133,7 @@
         <json-smart.version>${json-smart-version}</json-smart.version>
         <jxmpp.version>1.1.0</jxmpp.version><!-- @sync org.apache.camel:camel-xmpp:${camel.version} dep:org.jxmpp:jxmpp-jid -->
         <kafka.version>4.0.0</kafka.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.apache.kafka:kafka-clients -->
-        <keycloak.version>26.3.4</keycloak.version><!-- @sync io.quarkus:quarkus-build-parent:${quarkus.version} prop:keycloak.server.version -->
+        <keycloak.version>26.4.0</keycloak.version><!-- @sync io.quarkus:quarkus-build-parent:${quarkus.version} prop:keycloak.server.version -->
         <kudu.version>${kudu-version}</kudu.version>
         <kotlin.version>2.2.20</kotlin.version><!-- @sync io.quarkus:quarkus-bom:${quarkus.version} dep:org.jetbrains.kotlin:kotlin-stdlib -->
         <kotlinx.version>1.4.0</kotlinx.version><!--Used by com.squareup.wire:wire-compiler referenced from aws2:kinesis -->
@@ -244,7 +245,7 @@
         <hashicorp-vault.container.image>mirror.gcr.io/hashicorp/vault:1.17</hashicorp-vault.container.image>
         <ibm-mq.container.image>icr.io/ibm-messaging/mq:9.4.3.0-r1</ibm-mq.container.image>
         <influxdb.container.image>mirror.gcr.io/influxdb:1.8.10-alpine</influxdb.container.image>
-        <kafka.container.image>quay.io/strimzi-test-container/test-container:latest-kafka-3.9.0</kafka.container.image>
+        <kafka.container.image>quay.io/strimzi-test-container/test-container:latest-kafka-4.1.0</kafka.container.image>
         <keycloak.container.image>quay.io/keycloak/keycloak:${keycloak.version}</keycloak.container.image>
         <kudu.container.image>mirror.gcr.io/apache/kudu:1.17.0</kudu.container.image>
         <localstack.container.image>mirror.gcr.io/localstack/localstack:3.7.2</localstack.container.image>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index fa7051b47f..5b5feb178f 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -8080,6 +8080,46 @@
                 <artifactId>aws-crt</artifactId>
                 <version>${awscrt.version}</version>
             </dependency>
+            <!-- TODO: Remove this https://github.com/apache/camel-quarkus/issues/7812 -->
+            <dependency>
+                <groupId>software.amazon.kinesis</groupId>
+                <artifactId>amazon-kinesis-client</artifactId>
+                <version>${amazon-kinesis-client.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>com.google.code.findbugs</groupId>
+                        <artifactId>jsr305</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>commons-logging</groupId>
+                        <artifactId>commons-logging</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>io.github.classgraph</groupId>
+                        <artifactId>classgraph</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>javax.validation</groupId>
+                        <artifactId>validation-api</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.apache.kafka</groupId>
+                        <artifactId>kafka-clients</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.checkerframework</groupId>
+                        <artifactId>checker-qual</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.jetbrains.kotlin</groupId>
+                        <artifactId>*</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.jetbrains.kotlinx</groupId>
+                        <artifactId>*</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
             <dependency>
                 <groupId>xalan</groupId>
                 <artifactId>xalan</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml
index 249803308e..37bbfb6516 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -7966,6 +7966,45 @@
         <artifactId>aws-crt</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>0.38.1</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>software.amazon.kinesis</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>amazon-kinesis-client</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.1.3</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <exclusions>
+          <exclusion>
+            <groupId>com.google.code.findbugs</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>jsr305</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>commons-logging</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>commons-logging</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>io.github.classgraph</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>classgraph</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>javax.validation</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>validation-api</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.kafka</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>kafka-clients</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.checkerframework</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>checker-qual</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.jetbrains.kotlin</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.jetbrains.kotlinx</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+        </exclusions>
+      </dependency>
       <dependency>
         <groupId>xalan</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>xalan</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index 1ace9b5910..23b8a31c9a 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -7850,6 +7850,45 @@
         <artifactId>aws-crt</artifactId>
         <version>0.38.1</version>
       </dependency>
+      <dependency>
+        <groupId>software.amazon.kinesis</groupId>
+        <artifactId>amazon-kinesis-client</artifactId>
+        <version>3.1.3</version>
+        <exclusions>
+          <exclusion>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>jsr305</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.github.classgraph</groupId>
+            <artifactId>classgraph</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>javax.validation</groupId>
+            <artifactId>validation-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.kafka</groupId>
+            <artifactId>kafka-clients</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.checkerframework</groupId>
+            <artifactId>checker-qual</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.jetbrains.kotlin</groupId>
+            <artifactId>*</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.jetbrains.kotlinx</groupId>
+            <artifactId>*</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
       <dependency>
         <groupId>xalan</groupId>
         <artifactId>xalan</artifactId>
@@ -8573,6 +8612,11 @@
         <artifactId>dynamodb</artifactId>
         <version>2.32.4</version>
       </dependency>
+      <dependency>
+        <groupId>software.amazon.awssdk</groupId>
+        <artifactId>dynamodb-enhanced</artifactId>
+        <version>2.32.4</version>
+      </dependency>
       <dependency>
         <groupId>software.amazon.awssdk</groupId>
         <artifactId>ec2</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index b73f5af008..1bd5b332aa 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -7850,6 +7850,45 @@
         <artifactId>aws-crt</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>0.38.1</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>software.amazon.kinesis</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>amazon-kinesis-client</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.1.3</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <exclusions>
+          <exclusion>
+            <groupId>com.google.code.findbugs</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>jsr305</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>commons-logging</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>commons-logging</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>io.github.classgraph</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>classgraph</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>javax.validation</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>validation-api</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.apache.kafka</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>kafka-clients</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.checkerframework</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>checker-qual</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.jetbrains.kotlin</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.jetbrains.kotlinx</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>*</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+        </exclusions>
+      </dependency>
       <dependency>
         <groupId>xalan</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>xalan</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -8573,6 +8612,11 @@
         <artifactId>dynamodb</artifactId><!-- software.amazon.awssdk:bom:2.32.4 -->
         <version>2.32.4</version><!-- software.amazon.awssdk:bom:2.32.4 -->
       </dependency>
+      <dependency>
+        <groupId>software.amazon.awssdk</groupId><!-- software.amazon.awssdk:bom:2.32.4 -->
+        <artifactId>dynamodb-enhanced</artifactId><!-- software.amazon.awssdk:bom:2.32.4 -->
+        <version>2.32.4</version><!-- software.amazon.awssdk:bom:2.32.4 -->
+      </dependency>
       <dependency>
         <groupId>software.amazon.awssdk</groupId><!-- software.amazon.awssdk:bom:2.32.4 -->
         <artifactId>ec2</artifactId><!-- software.amazon.awssdk:bom:2.32.4 -->