You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2022/01/12 16:38:05 UTC

[camel-quarkus] 10/10: Check whether service binding is enabled before creating QuarkusKafkaClientFactory

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

ppalaga pushed a commit to branch 2.2.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 529160cbc988e8a3f23b0eed33d5f227ba07c64b
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Oct 6 09:27:17 2021 +0100

    Check whether service binding is enabled before creating QuarkusKafkaClientFactory
    
    Fixes #3154
---
 ...onfiguration-disable-service-binding.properties |  4 ++++
 .../kafka/KafkaClientFactoryProducer.java          | 23 ++++++++++++++++++++--
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/extensions/kafka/deployment/src/test/resources/application-configuration-disable-service-binding.properties b/extensions/kafka/deployment/src/test/resources/application-configuration-disable-service-binding.properties
index f1b2374..f27c317 100644
--- a/extensions/kafka/deployment/src/test/resources/application-configuration-disable-service-binding.properties
+++ b/extensions/kafka/deployment/src/test/resources/application-configuration-disable-service-binding.properties
@@ -16,3 +16,7 @@
 ## ---------------------------------------------------------------------------
 quarkus.kafka.devservices.enabled=false
 quarkus.kubernetes-service-binding.enabled=false
+
+kafka.bootstrap.servers=localhost:9092
+kafka.client.id=camel-quarkus-client
+kafka.request.timeout.ms=1000
diff --git a/extensions/kafka/runtime/src/main/java/org/apache/camel/quarkus/component/kafka/KafkaClientFactoryProducer.java b/extensions/kafka/runtime/src/main/java/org/apache/camel/quarkus/component/kafka/KafkaClientFactoryProducer.java
index 822d330..4d23b3f 100644
--- a/extensions/kafka/runtime/src/main/java/org/apache/camel/quarkus/component/kafka/KafkaClientFactoryProducer.java
+++ b/extensions/kafka/runtime/src/main/java/org/apache/camel/quarkus/component/kafka/KafkaClientFactoryProducer.java
@@ -17,6 +17,7 @@
 package org.apache.camel.quarkus.component.kafka;
 
 import java.util.Map;
+import java.util.Optional;
 
 import javax.enterprise.inject.Produces;
 import javax.inject.Inject;
@@ -25,6 +26,7 @@ import javax.inject.Singleton;
 import io.quarkus.arc.DefaultBean;
 import io.smallrye.common.annotation.Identifier;
 import org.apache.camel.component.kafka.KafkaClientFactory;
+import org.eclipse.microprofile.config.Config;
 
 @Singleton
 public class KafkaClientFactoryProducer {
@@ -33,13 +35,30 @@ public class KafkaClientFactoryProducer {
     @Identifier("default-kafka-broker")
     Map<String, Object> kafkaConfig;
 
+    @Inject
+    CamelKafkaRuntimeConfig camelKafkaRuntimeConfig;
+
+    @Inject
+    Config config;
+
     @Produces
     @Singleton
     @DefaultBean
-    public KafkaClientFactory kafkaClientFactory(CamelKafkaRuntimeConfig config) {
-        if (kafkaConfig != null && !kafkaConfig.isEmpty() && config.kubernetesServiceBinding.mergeConfiguration) {
+    public KafkaClientFactory kafkaClientFactory() {
+        if (isQuarkusKafkaClientFactoryRequired()) {
             return new QuarkusKafkaClientFactory(kafkaConfig);
         }
         return null;
     }
+
+    private boolean isQuarkusKafkaClientFactoryRequired() {
+        Optional<Boolean> serviceBindingEnabled = config.getOptionalValue(
+                "quarkus.kubernetes-service-binding.enabled",
+                Boolean.class);
+        return kafkaConfig != null
+                && !kafkaConfig.isEmpty()
+                && camelKafkaRuntimeConfig.kubernetesServiceBinding.mergeConfiguration
+                && serviceBindingEnabled.isPresent()
+                && serviceBindingEnabled.get();
+    }
 }