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();
+ }
}