This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push: new f06e07f Check whether service binding is enabled before creating QuarkusKafkaClientFactory f06e07f is described below commit f06e07f159e448a0ed3eb65f4036458a9e40c384 Author: James Netherton <jamesnether...@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(); + } }