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

davsclaus pushed a commit to branch health-component
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 3eae1e126be5d63d60fd840ed34adef5f45aa26a
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Jul 24 12:00:07 2023 +0200

    CAMEL-18992: HealthCheckComponent to be able to enable/disable per 
component health-checks as standard component configuration.
---
 .../org/apache/camel/catalog/components/kafka.json | 57 ++++++++--------
 .../component/kafka/KafkaComponentConfigurer.java  | 18 +++++
 .../org/apache/camel/component/kafka/kafka.json    | 57 ++++++++--------
 .../camel/component/kafka/KafkaComponent.java      |  3 +-
 .../camel/component/kafka/KafkaConsumer.java       |  1 +
 .../camel/component/kafka/KafkaProducer.java       |  1 +
 .../apache/camel/support/HealthCheckComponent.java | 76 ++++++++++++++++++++++
 .../dsl/KafkaComponentBuilderFactory.java          | 53 +++++++++++++++
 8 files changed, 211 insertions(+), 55 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kafka.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kafka.json
index 6d05755c43b..8efd5308fc8 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kafka.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/kafka.json
@@ -104,33 +104,36 @@
     "kafkaClientFactory": { "index": 79, "kind": "property", "displayName": 
"Kafka Client Factory", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.kafka.KafkaClientFactory", "deprecated": false, 
"autowired": true, "secret": false, "description": "Factory to use for creating 
org.apache.kafka.clients.consumer.KafkaConsumer and 
org.apache.kafka.clients.producer.KafkaProducer instances. This allows 
configuring a custom f [...]
     "synchronous": { "index": 80, "kind": "property", "displayName": 
"Synchronous", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Sets whether synchronous processing should be 
strictly used" },
     "schemaRegistryURL": { "index": 81, "kind": "property", "displayName": 
"Schema Registry URL", "group": "confluent", "label": "confluent", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "URL of the Confluent Platform schema registry 
servers to use. The format is host1:port1,hos [...]
-    "interceptorClasses": { "index": 82, "kind": "property", "displayName": 
"Interceptor Classes", "group": "monitoring", "label": "common,monitoring", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Sets interceptors for producer or consumers. 
Producer interceptors have to be cla [...]
-    "kerberosBeforeReloginMinTime": { "index": 83, "kind": "property", 
"displayName": "Kerberos Before Relogin Min Time", "group": "security", 
"label": "common,security", "required": false, "type": "integer", "javaType": 
"java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "60000", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Login thread sleep time between ref [...]
-    "kerberosConfigLocation": { "index": 84, "kind": "property", 
"displayName": "Kerberos Config Location", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "Location of the kerberos 
config file." },
-    "kerberosInitCmd": { "index": 85, "kind": "property", "displayName": 
"Kerberos Init Cmd", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"\/usr\/bin\/kinit", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Kerberos kinit command path. Default is 
\/usr\/bin\/k [...]
-    "kerberosPrincipalToLocalRules": { "index": 86, "kind": "property", 
"displayName": "Kerberos Principal To Local Rules", "group": "security", 
"label": "common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "DEFAULT", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "A list of rules for mapping from  [...]
-    "kerberosRenewJitter": { "index": 87, "kind": "property", "displayName": 
"Kerberos Renew Jitter", "group": "security", "label": "common,security", 
"required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"0.05", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Percentage of random jitter added to the 
renewal time." },
-    "kerberosRenewWindowFactor": { "index": 88, "kind": "property", 
"displayName": "Kerberos Renew Window Factor", "group": "security", "label": 
"common,security", "required": false, "type": "number", "javaType": 
"java.lang.Double", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "0.8", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Login thread will sleep until the specified wi 
[...]
-    "saslJaasConfig": { "index": 89, "kind": "property", "displayName": "Sasl 
Jaas Config", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Expose the kafka sasl.jaas.config parameter 
Example: org.apache.kafka.common.security.plain.P [...]
-    "saslKerberosServiceName": { "index": 90, "kind": "property", 
"displayName": "Sasl Kerberos Service Name", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The Kerberos principal 
name that Kafka runs as. This can be defined eithe [...]
-    "saslMechanism": { "index": 91, "kind": "property", "displayName": "Sasl 
Mechanism", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "GSSAPI", 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The Simple 
Authentication and Security Layer (SASL) Mechanism used. F [...]
-    "securityProtocol": { "index": 92, "kind": "property", "displayName": 
"Security Protocol", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"PLAINTEXT", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Protocol used to communicate with brokers. 
SASL_PLAINTEXT, P [...]
-    "sslCipherSuites": { "index": 93, "kind": "property", "displayName": "Ssl 
Cipher Suites", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "A list of cipher suites. This is a named 
combination of authentication, encryption, MAC an [...]
-    "sslContextParameters": { "index": 94, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "SSL configuration using a Camel SSLContextPara 
[...]
-    "sslEnabledProtocols": { "index": 95, "kind": "property", "displayName": 
"Ssl Enabled Protocols", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The list of protocols enabled for SSL 
connections. The default is TLSv1.2,TLSv1.3  [...]
-    "sslEndpointAlgorithm": { "index": 96, "kind": "property", "displayName": 
"Ssl Endpoint Algorithm", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"https", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The endpoint identification algorithm to 
validate serve [...]
-    "sslKeymanagerAlgorithm": { "index": 97, "kind": "property", 
"displayName": "Ssl Keymanager Algorithm", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SunX509", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The algorithm used by key manager factory for 
SSL [...]
-    "sslKeyPassword": { "index": 98, "kind": "property", "displayName": "Ssl 
Key Password", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The password of the private key in the key 
store file or the PEM key specified in sslKeystore [...]
-    "sslKeystoreLocation": { "index": 99, "kind": "property", "displayName": 
"Ssl Keystore Location", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The location of the key store file. This is 
optional for the client and can be use [...]
-    "sslKeystorePassword": { "index": 100, "kind": "property", "displayName": 
"Ssl Keystore Password", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The store password for the key store file. 
This is optional for the client and onl [...]
-    "sslKeystoreType": { "index": 101, "kind": "property", "displayName": "Ssl 
Keystore Type", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "JKS", 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The file format of the 
key store file. This is optional for client [...]
-    "sslProtocol": { "index": 102, "kind": "property", "displayName": "Ssl 
Protocol", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The SSL protocol used to generate the 
SSLContext. The default is TLSv1.3 when running with Java 11 [...]
-    "sslProvider": { "index": 103, "kind": "property", "displayName": "Ssl 
Provider", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The name of the security provider used for SSL 
connections. Default value is the default security  [...]
-    "sslTrustmanagerAlgorithm": { "index": 104, "kind": "property", 
"displayName": "Ssl Trustmanager Algorithm", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "PKIX", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The algorithm used by trust manager factory 
for [...]
-    "sslTruststoreLocation": { "index": 105, "kind": "property", 
"displayName": "Ssl Truststore Location", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The location of the 
trust store file." },
-    "sslTruststorePassword": { "index": 106, "kind": "property", 
"displayName": "Ssl Truststore Password", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The password for the 
trust store file. If a password is not set, trust store f [...]
-    "sslTruststoreType": { "index": 107, "kind": "property", "displayName": 
"Ssl Truststore Type", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"JKS", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The file format of the trust store file. 
Default value is JKS." },
-    "useGlobalSslContextParameters": { "index": 108, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." }
+    "healthCheckConsumerEnabled": { "index": 82, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
+    "healthCheckEnabled": { "index": 83, "kind": "property", "displayName": 
"Health Check Enabled", "group": "health", "label": "health", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": "Used 
for enabling or disabling all health checks from this component" },
+    "healthCheckProducerEnabled": { "index": 84, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component" },
+    "interceptorClasses": { "index": 85, "kind": "property", "displayName": 
"Interceptor Classes", "group": "monitoring", "label": "common,monitoring", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Sets interceptors for producer or consumers. 
Producer interceptors have to be cla [...]
+    "kerberosBeforeReloginMinTime": { "index": 86, "kind": "property", 
"displayName": "Kerberos Before Relogin Min Time", "group": "security", 
"label": "common,security", "required": false, "type": "integer", "javaType": 
"java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "60000", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Login thread sleep time between ref [...]
+    "kerberosConfigLocation": { "index": 87, "kind": "property", 
"displayName": "Kerberos Config Location", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "Location of the kerberos 
config file." },
+    "kerberosInitCmd": { "index": 88, "kind": "property", "displayName": 
"Kerberos Init Cmd", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"\/usr\/bin\/kinit", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Kerberos kinit command path. Default is 
\/usr\/bin\/k [...]
+    "kerberosPrincipalToLocalRules": { "index": 89, "kind": "property", 
"displayName": "Kerberos Principal To Local Rules", "group": "security", 
"label": "common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "DEFAULT", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "A list of rules for mapping from  [...]
+    "kerberosRenewJitter": { "index": 90, "kind": "property", "displayName": 
"Kerberos Renew Jitter", "group": "security", "label": "common,security", 
"required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"0.05", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Percentage of random jitter added to the 
renewal time." },
+    "kerberosRenewWindowFactor": { "index": 91, "kind": "property", 
"displayName": "Kerberos Renew Window Factor", "group": "security", "label": 
"common,security", "required": false, "type": "number", "javaType": 
"java.lang.Double", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "0.8", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Login thread will sleep until the specified wi 
[...]
+    "saslJaasConfig": { "index": 92, "kind": "property", "displayName": "Sasl 
Jaas Config", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Expose the kafka sasl.jaas.config parameter 
Example: org.apache.kafka.common.security.plain.P [...]
+    "saslKerberosServiceName": { "index": 93, "kind": "property", 
"displayName": "Sasl Kerberos Service Name", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The Kerberos principal 
name that Kafka runs as. This can be defined eithe [...]
+    "saslMechanism": { "index": 94, "kind": "property", "displayName": "Sasl 
Mechanism", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "GSSAPI", 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The Simple 
Authentication and Security Layer (SASL) Mechanism used. F [...]
+    "securityProtocol": { "index": 95, "kind": "property", "displayName": 
"Security Protocol", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"PLAINTEXT", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Protocol used to communicate with brokers. 
SASL_PLAINTEXT, P [...]
+    "sslCipherSuites": { "index": 96, "kind": "property", "displayName": "Ssl 
Cipher Suites", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "A list of cipher suites. This is a named 
combination of authentication, encryption, MAC an [...]
+    "sslContextParameters": { "index": 97, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "SSL configuration using a Camel SSLContextPara 
[...]
+    "sslEnabledProtocols": { "index": 98, "kind": "property", "displayName": 
"Ssl Enabled Protocols", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The list of protocols enabled for SSL 
connections. The default is TLSv1.2,TLSv1.3  [...]
+    "sslEndpointAlgorithm": { "index": 99, "kind": "property", "displayName": 
"Ssl Endpoint Algorithm", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"https", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The endpoint identification algorithm to 
validate serve [...]
+    "sslKeymanagerAlgorithm": { "index": 100, "kind": "property", 
"displayName": "Ssl Keymanager Algorithm", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SunX509", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The algorithm used by key manager factory for 
SS [...]
+    "sslKeyPassword": { "index": 101, "kind": "property", "displayName": "Ssl 
Key Password", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The password of the private key in the key 
store file or the PEM key specified in sslKeystor [...]
+    "sslKeystoreLocation": { "index": 102, "kind": "property", "displayName": 
"Ssl Keystore Location", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The location of the key store file. This is 
optional for the client and can be us [...]
+    "sslKeystorePassword": { "index": 103, "kind": "property", "displayName": 
"Ssl Keystore Password", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The store password for the key store file. 
This is optional for the client and onl [...]
+    "sslKeystoreType": { "index": 104, "kind": "property", "displayName": "Ssl 
Keystore Type", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "JKS", 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The file format of the 
key store file. This is optional for client [...]
+    "sslProtocol": { "index": 105, "kind": "property", "displayName": "Ssl 
Protocol", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The SSL protocol used to generate the 
SSLContext. The default is TLSv1.3 when running with Java 11 [...]
+    "sslProvider": { "index": 106, "kind": "property", "displayName": "Ssl 
Provider", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The name of the security provider used for SSL 
connections. Default value is the default security  [...]
+    "sslTrustmanagerAlgorithm": { "index": 107, "kind": "property", 
"displayName": "Ssl Trustmanager Algorithm", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "PKIX", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The algorithm used by trust manager factory 
for [...]
+    "sslTruststoreLocation": { "index": 108, "kind": "property", 
"displayName": "Ssl Truststore Location", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The location of the 
trust store file." },
+    "sslTruststorePassword": { "index": 109, "kind": "property", 
"displayName": "Ssl Truststore Password", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The password for the 
trust store file. If a password is not set, trust store f [...]
+    "sslTruststoreType": { "index": 110, "kind": "property", "displayName": 
"Ssl Truststore Type", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"JKS", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The file format of the trust store file. 
Default value is JKS." },
+    "useGlobalSslContextParameters": { "index": 111, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." }
   },
   "headers": {
     "kafka.PARTITION_KEY": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "producer", "required": false, "javaType": 
"Integer", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Explicitly specify the partition", 
"constantName": "org.apache.camel.component.kafka.KafkaConstants#PARTITION_KEY" 
},
diff --git 
a/components/camel-kafka/src/generated/java/org/apache/camel/component/kafka/KafkaComponentConfigurer.java
 
b/components/camel-kafka/src/generated/java/org/apache/camel/component/kafka/KafkaComponentConfigurer.java
index 91642bc2fcd..e3c39d7fcba 100644
--- 
a/components/camel-kafka/src/generated/java/org/apache/camel/component/kafka/KafkaComponentConfigurer.java
+++ 
b/components/camel-kafka/src/generated/java/org/apache/camel/component/kafka/KafkaComponentConfigurer.java
@@ -88,6 +88,12 @@ public class KafkaComponentConfigurer extends 
PropertyConfigurerSupport implemen
         case "headerFilterStrategy": 
getOrCreateConfiguration(target).setHeaderFilterStrategy(property(camelContext, 
org.apache.camel.spi.HeaderFilterStrategy.class, value)); return true;
         case "headerserializer":
         case "headerSerializer": 
getOrCreateConfiguration(target).setHeaderSerializer(property(camelContext, 
org.apache.camel.component.kafka.serde.KafkaHeaderSerializer.class, value)); 
return true;
+        case "healthcheckconsumerenabled":
+        case "healthCheckConsumerEnabled": 
target.setHealthCheckConsumerEnabled(property(camelContext, boolean.class, 
value)); return true;
+        case "healthcheckenabled":
+        case "healthCheckEnabled": 
target.setHealthCheckEnabled(property(camelContext, boolean.class, value)); 
return true;
+        case "healthcheckproducerenabled":
+        case "healthCheckProducerEnabled": 
target.setHealthCheckProducerEnabled(property(camelContext, boolean.class, 
value)); return true;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": 
getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, 
java.lang.Integer.class, value)); return true;
         case "interceptorclasses":
@@ -312,6 +318,12 @@ public class KafkaComponentConfigurer extends 
PropertyConfigurerSupport implemen
         case "headerFilterStrategy": return 
org.apache.camel.spi.HeaderFilterStrategy.class;
         case "headerserializer":
         case "headerSerializer": return 
org.apache.camel.component.kafka.serde.KafkaHeaderSerializer.class;
+        case "healthcheckconsumerenabled":
+        case "healthCheckConsumerEnabled": return boolean.class;
+        case "healthcheckenabled":
+        case "healthCheckEnabled": return boolean.class;
+        case "healthcheckproducerenabled":
+        case "healthCheckProducerEnabled": return boolean.class;
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return java.lang.Integer.class;
         case "interceptorclasses":
@@ -532,6 +544,12 @@ public class KafkaComponentConfigurer extends 
PropertyConfigurerSupport implemen
         case "headerFilterStrategy": return 
getOrCreateConfiguration(target).getHeaderFilterStrategy();
         case "headerserializer":
         case "headerSerializer": return 
getOrCreateConfiguration(target).getHeaderSerializer();
+        case "healthcheckconsumerenabled":
+        case "healthCheckConsumerEnabled": return 
target.isHealthCheckConsumerEnabled();
+        case "healthcheckenabled":
+        case "healthCheckEnabled": return target.isHealthCheckEnabled();
+        case "healthcheckproducerenabled":
+        case "healthCheckProducerEnabled": return 
target.isHealthCheckProducerEnabled();
         case "heartbeatintervalms":
         case "heartbeatIntervalMs": return 
getOrCreateConfiguration(target).getHeartbeatIntervalMs();
         case "interceptorclasses":
diff --git 
a/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
 
b/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
index 6d05755c43b..8efd5308fc8 100644
--- 
a/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
+++ 
b/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
@@ -104,33 +104,36 @@
     "kafkaClientFactory": { "index": 79, "kind": "property", "displayName": 
"Kafka Client Factory", "group": "advanced", "label": "advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.component.kafka.KafkaClientFactory", "deprecated": false, 
"autowired": true, "secret": false, "description": "Factory to use for creating 
org.apache.kafka.clients.consumer.KafkaConsumer and 
org.apache.kafka.clients.producer.KafkaProducer instances. This allows 
configuring a custom f [...]
     "synchronous": { "index": 80, "kind": "property", "displayName": 
"Synchronous", "group": "advanced", "label": "advanced", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Sets whether synchronous processing should be 
strictly used" },
     "schemaRegistryURL": { "index": 81, "kind": "property", "displayName": 
"Schema Registry URL", "group": "confluent", "label": "confluent", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "URL of the Confluent Platform schema registry 
servers to use. The format is host1:port1,hos [...]
-    "interceptorClasses": { "index": 82, "kind": "property", "displayName": 
"Interceptor Classes", "group": "monitoring", "label": "common,monitoring", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Sets interceptors for producer or consumers. 
Producer interceptors have to be cla [...]
-    "kerberosBeforeReloginMinTime": { "index": 83, "kind": "property", 
"displayName": "Kerberos Before Relogin Min Time", "group": "security", 
"label": "common,security", "required": false, "type": "integer", "javaType": 
"java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "60000", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Login thread sleep time between ref [...]
-    "kerberosConfigLocation": { "index": 84, "kind": "property", 
"displayName": "Kerberos Config Location", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "Location of the kerberos 
config file." },
-    "kerberosInitCmd": { "index": 85, "kind": "property", "displayName": 
"Kerberos Init Cmd", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"\/usr\/bin\/kinit", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Kerberos kinit command path. Default is 
\/usr\/bin\/k [...]
-    "kerberosPrincipalToLocalRules": { "index": 86, "kind": "property", 
"displayName": "Kerberos Principal To Local Rules", "group": "security", 
"label": "common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "DEFAULT", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "A list of rules for mapping from  [...]
-    "kerberosRenewJitter": { "index": 87, "kind": "property", "displayName": 
"Kerberos Renew Jitter", "group": "security", "label": "common,security", 
"required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"0.05", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Percentage of random jitter added to the 
renewal time." },
-    "kerberosRenewWindowFactor": { "index": 88, "kind": "property", 
"displayName": "Kerberos Renew Window Factor", "group": "security", "label": 
"common,security", "required": false, "type": "number", "javaType": 
"java.lang.Double", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "0.8", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Login thread will sleep until the specified wi 
[...]
-    "saslJaasConfig": { "index": 89, "kind": "property", "displayName": "Sasl 
Jaas Config", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Expose the kafka sasl.jaas.config parameter 
Example: org.apache.kafka.common.security.plain.P [...]
-    "saslKerberosServiceName": { "index": 90, "kind": "property", 
"displayName": "Sasl Kerberos Service Name", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The Kerberos principal 
name that Kafka runs as. This can be defined eithe [...]
-    "saslMechanism": { "index": 91, "kind": "property", "displayName": "Sasl 
Mechanism", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "GSSAPI", 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The Simple 
Authentication and Security Layer (SASL) Mechanism used. F [...]
-    "securityProtocol": { "index": 92, "kind": "property", "displayName": 
"Security Protocol", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"PLAINTEXT", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Protocol used to communicate with brokers. 
SASL_PLAINTEXT, P [...]
-    "sslCipherSuites": { "index": 93, "kind": "property", "displayName": "Ssl 
Cipher Suites", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "A list of cipher suites. This is a named 
combination of authentication, encryption, MAC an [...]
-    "sslContextParameters": { "index": 94, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "SSL configuration using a Camel SSLContextPara 
[...]
-    "sslEnabledProtocols": { "index": 95, "kind": "property", "displayName": 
"Ssl Enabled Protocols", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The list of protocols enabled for SSL 
connections. The default is TLSv1.2,TLSv1.3  [...]
-    "sslEndpointAlgorithm": { "index": 96, "kind": "property", "displayName": 
"Ssl Endpoint Algorithm", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"https", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The endpoint identification algorithm to 
validate serve [...]
-    "sslKeymanagerAlgorithm": { "index": 97, "kind": "property", 
"displayName": "Ssl Keymanager Algorithm", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SunX509", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The algorithm used by key manager factory for 
SSL [...]
-    "sslKeyPassword": { "index": 98, "kind": "property", "displayName": "Ssl 
Key Password", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The password of the private key in the key 
store file or the PEM key specified in sslKeystore [...]
-    "sslKeystoreLocation": { "index": 99, "kind": "property", "displayName": 
"Ssl Keystore Location", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The location of the key store file. This is 
optional for the client and can be use [...]
-    "sslKeystorePassword": { "index": 100, "kind": "property", "displayName": 
"Ssl Keystore Password", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The store password for the key store file. 
This is optional for the client and onl [...]
-    "sslKeystoreType": { "index": 101, "kind": "property", "displayName": "Ssl 
Keystore Type", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "JKS", 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The file format of the 
key store file. This is optional for client [...]
-    "sslProtocol": { "index": 102, "kind": "property", "displayName": "Ssl 
Protocol", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The SSL protocol used to generate the 
SSLContext. The default is TLSv1.3 when running with Java 11 [...]
-    "sslProvider": { "index": 103, "kind": "property", "displayName": "Ssl 
Provider", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The name of the security provider used for SSL 
connections. Default value is the default security  [...]
-    "sslTrustmanagerAlgorithm": { "index": 104, "kind": "property", 
"displayName": "Ssl Trustmanager Algorithm", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "PKIX", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The algorithm used by trust manager factory 
for [...]
-    "sslTruststoreLocation": { "index": 105, "kind": "property", 
"displayName": "Ssl Truststore Location", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The location of the 
trust store file." },
-    "sslTruststorePassword": { "index": 106, "kind": "property", 
"displayName": "Ssl Truststore Password", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The password for the 
trust store file. If a password is not set, trust store f [...]
-    "sslTruststoreType": { "index": 107, "kind": "property", "displayName": 
"Ssl Truststore Type", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"JKS", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The file format of the trust store file. 
Default value is JKS." },
-    "useGlobalSslContextParameters": { "index": 108, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." }
+    "healthCheckConsumerEnabled": { "index": 82, "kind": "property", 
"displayName": "Health Check Consumer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all consumer based health checks 
from this component" },
+    "healthCheckEnabled": { "index": 83, "kind": "property", "displayName": 
"Health Check Enabled", "group": "health", "label": "health", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, "description": "Used 
for enabling or disabling all health checks from this component" },
+    "healthCheckProducerEnabled": { "index": 84, "kind": "property", 
"displayName": "Health Check Producer Enabled", "group": "health", "label": 
"health", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": true, 
"description": "Used for enabling or disabling all producer based health checks 
from this component" },
+    "interceptorClasses": { "index": 85, "kind": "property", "displayName": 
"Interceptor Classes", "group": "monitoring", "label": "common,monitoring", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Sets interceptors for producer or consumers. 
Producer interceptors have to be cla [...]
+    "kerberosBeforeReloginMinTime": { "index": 86, "kind": "property", 
"displayName": "Kerberos Before Relogin Min Time", "group": "security", 
"label": "common,security", "required": false, "type": "integer", "javaType": 
"java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "60000", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Login thread sleep time between ref [...]
+    "kerberosConfigLocation": { "index": 87, "kind": "property", 
"displayName": "Kerberos Config Location", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "Location of the kerberos 
config file." },
+    "kerberosInitCmd": { "index": 88, "kind": "property", "displayName": 
"Kerberos Init Cmd", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"\/usr\/bin\/kinit", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Kerberos kinit command path. Default is 
\/usr\/bin\/k [...]
+    "kerberosPrincipalToLocalRules": { "index": 89, "kind": "property", 
"displayName": "Kerberos Principal To Local Rules", "group": "security", 
"label": "common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "DEFAULT", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "A list of rules for mapping from  [...]
+    "kerberosRenewJitter": { "index": 90, "kind": "property", "displayName": 
"Kerberos Renew Jitter", "group": "security", "label": "common,security", 
"required": false, "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"0.05", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Percentage of random jitter added to the 
renewal time." },
+    "kerberosRenewWindowFactor": { "index": 91, "kind": "property", 
"displayName": "Kerberos Renew Window Factor", "group": "security", "label": 
"common,security", "required": false, "type": "number", "javaType": 
"java.lang.Double", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "0.8", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Login thread will sleep until the specified wi 
[...]
+    "saslJaasConfig": { "index": 92, "kind": "property", "displayName": "Sasl 
Jaas Config", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Expose the kafka sasl.jaas.config parameter 
Example: org.apache.kafka.common.security.plain.P [...]
+    "saslKerberosServiceName": { "index": 93, "kind": "property", 
"displayName": "Sasl Kerberos Service Name", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The Kerberos principal 
name that Kafka runs as. This can be defined eithe [...]
+    "saslMechanism": { "index": 94, "kind": "property", "displayName": "Sasl 
Mechanism", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "GSSAPI", 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The Simple 
Authentication and Security Layer (SASL) Mechanism used. F [...]
+    "securityProtocol": { "index": 95, "kind": "property", "displayName": 
"Security Protocol", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"PLAINTEXT", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "Protocol used to communicate with brokers. 
SASL_PLAINTEXT, P [...]
+    "sslCipherSuites": { "index": 96, "kind": "property", "displayName": "Ssl 
Cipher Suites", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "A list of cipher suites. This is a named 
combination of authentication, encryption, MAC an [...]
+    "sslContextParameters": { "index": 97, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "common,security", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "SSL configuration using a Camel SSLContextPara 
[...]
+    "sslEnabledProtocols": { "index": 98, "kind": "property", "displayName": 
"Ssl Enabled Protocols", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The list of protocols enabled for SSL 
connections. The default is TLSv1.2,TLSv1.3  [...]
+    "sslEndpointAlgorithm": { "index": 99, "kind": "property", "displayName": 
"Ssl Endpoint Algorithm", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"https", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The endpoint identification algorithm to 
validate serve [...]
+    "sslKeymanagerAlgorithm": { "index": 100, "kind": "property", 
"displayName": "Ssl Keymanager Algorithm", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "SunX509", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The algorithm used by key manager factory for 
SS [...]
+    "sslKeyPassword": { "index": 101, "kind": "property", "displayName": "Ssl 
Key Password", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The password of the private key in the key 
store file or the PEM key specified in sslKeystor [...]
+    "sslKeystoreLocation": { "index": 102, "kind": "property", "displayName": 
"Ssl Keystore Location", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The location of the key store file. This is 
optional for the client and can be us [...]
+    "sslKeystorePassword": { "index": 103, "kind": "property", "displayName": 
"Ssl Keystore Password", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The store password for the key store file. 
This is optional for the client and onl [...]
+    "sslKeystoreType": { "index": 104, "kind": "property", "displayName": "Ssl 
Keystore Type", "group": "security", "label": "common,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": "JKS", 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The file format of the 
key store file. This is optional for client [...]
+    "sslProtocol": { "index": 105, "kind": "property", "displayName": "Ssl 
Protocol", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The SSL protocol used to generate the 
SSLContext. The default is TLSv1.3 when running with Java 11 [...]
+    "sslProvider": { "index": 106, "kind": "property", "displayName": "Ssl 
Provider", "group": "security", "label": "common,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The name of the security provider used for SSL 
connections. Default value is the default security  [...]
+    "sslTrustmanagerAlgorithm": { "index": 107, "kind": "property", 
"displayName": "Ssl Trustmanager Algorithm", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": "PKIX", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The algorithm used by trust manager factory 
for [...]
+    "sslTruststoreLocation": { "index": 108, "kind": "property", 
"displayName": "Ssl Truststore Location", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The location of the 
trust store file." },
+    "sslTruststorePassword": { "index": 109, "kind": "property", 
"displayName": "Ssl Truststore Password", "group": "security", "label": 
"common,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": true, 
"configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", 
"configurationField": "configuration", "description": "The password for the 
trust store file. If a password is not set, trust store f [...]
+    "sslTruststoreType": { "index": 110, "kind": "property", "displayName": 
"Ssl Truststore Type", "group": "security", "label": "common,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
"JKS", "configurationClass": 
"org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": 
"configuration", "description": "The file format of the trust store file. 
Default value is JKS." },
+    "useGlobalSslContextParameters": { "index": 111, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." }
   },
   "headers": {
     "kafka.PARTITION_KEY": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "producer", "required": false, "javaType": 
"Integer", "deprecated": false, "deprecationNote": "", "autowired": false, 
"secret": false, "description": "Explicitly specify the partition", 
"constantName": "org.apache.camel.component.kafka.KafkaConstants#PARTITION_KEY" 
},
diff --git 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
index 7b8b5322a2e..b55f4b9de31 100644
--- 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
+++ 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
@@ -27,12 +27,13 @@ import 
org.apache.camel.component.kafka.consumer.KafkaManualCommitFactory;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.support.DefaultComponent;
+import org.apache.camel.support.HealthCheckComponent;
 import org.apache.camel.support.PropertyBindingSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.PropertiesHelper;
 
 @Component("kafka")
-public class KafkaComponent extends DefaultComponent implements 
SSLContextParametersAware {
+public class KafkaComponent extends HealthCheckComponent implements 
SSLContextParametersAware {
 
     @Metadata
     private KafkaConfiguration configuration = new KafkaConfiguration();
diff --git 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
index 247395fab3c..c64f10db7c2 100644
--- 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
+++ 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConsumer.java
@@ -131,6 +131,7 @@ public class KafkaConsumer extends DefaultConsumer
 
         if (healthCheckRepository != null) {
             consumerHealthCheck = new KafkaConsumerHealthCheck(this, 
getRouteId());
+            
consumerHealthCheck.setEnabled(getEndpoint().getComponent().isHealthCheckEnabled()
 && getEndpoint().getComponent().isHealthCheckConsumerEnabled());
             healthCheckRepository.addHealthCheck(consumerHealthCheck);
         }
 
diff --git 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
index 73e02d323f1..2f507d3b9fd 100755
--- 
a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
+++ 
b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaProducer.java
@@ -196,6 +196,7 @@ public class KafkaProducer extends DefaultAsyncProducer {
 
         if (healthCheckRepository != null) {
             producerHealthCheck = new KafkaProducerHealthCheck(this, clientId);
+            
producerHealthCheck.setEnabled(getEndpoint().getComponent().isHealthCheckEnabled()
 && getEndpoint().getComponent().isHealthCheckProducerEnabled());
             healthCheckRepository.addHealthCheck(producerHealthCheck);
         }
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/HealthCheckComponent.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/HealthCheckComponent.java
new file mode 100644
index 00000000000..3263eeca25b
--- /dev/null
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/HealthCheckComponent.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.support;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.Metadata;
+
+/**
+ * Base class for components to support configuring {@link 
org.apache.camel.health.HealthCheck}.
+ */
+public abstract class HealthCheckComponent extends DefaultComponent {
+
+    @Metadata(label = "health", defaultValue = "true", description = "Used for 
enabling or disabling all health checks from this component")
+    private boolean healthCheckEnabled = true;
+
+    @Metadata(label = "health", defaultValue = "true", description = "Used for 
enabling or disabling all consumer based health checks from this component")
+    private boolean healthCheckConsumerEnabled = true;
+
+    @Metadata(label = "health", defaultValue = "true", description = "Used for 
enabling or disabling all producer based health checks from this component")
+    private boolean healthCheckProducerEnabled = true;
+
+    public HealthCheckComponent() {
+    }
+
+    public HealthCheckComponent(CamelContext context) {
+        super(context);
+    }
+
+    public boolean isHealthCheckEnabled() {
+        return healthCheckEnabled;
+    }
+
+    /**
+     * Used for enabling or disabling all health checks from this component
+     */
+    public void setHealthCheckEnabled(boolean healthCheckEnabled) {
+        this.healthCheckEnabled = healthCheckEnabled;
+    }
+
+    public boolean isHealthCheckConsumerEnabled() {
+        return healthCheckConsumerEnabled;
+    }
+
+    /**
+     * Used for enabling or disabling all consumer based health checks from 
this component
+     */
+    public void setHealthCheckConsumerEnabled(boolean 
healthCheckConsumerEnabled) {
+        this.healthCheckConsumerEnabled = healthCheckConsumerEnabled;
+    }
+
+    public boolean isHealthCheckProducerEnabled() {
+        return healthCheckProducerEnabled;
+    }
+
+    /**
+     * Used for enabling or disabling all producer based health checks from 
this component
+     */
+    public void setHealthCheckProducerEnabled(boolean 
healthCheckProducerEnabled) {
+        this.healthCheckProducerEnabled = healthCheckProducerEnabled;
+    }
+
+}
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KafkaComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KafkaComponentBuilderFactory.java
index d919a48dfea..9507fd9b207 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KafkaComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KafkaComponentBuilderFactory.java
@@ -1651,6 +1651,56 @@ public interface KafkaComponentBuilderFactory {
             doSetProperty("schemaRegistryURL", schemaRegistryURL);
             return this;
         }
+        /**
+         * Used for enabling or disabling all consumer based health checks from
+         * this component.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: health
+         * 
+         * @param healthCheckConsumerEnabled the value to set
+         * @return the dsl builder
+         */
+        default KafkaComponentBuilder healthCheckConsumerEnabled(
+                boolean healthCheckConsumerEnabled) {
+            doSetProperty("healthCheckConsumerEnabled", 
healthCheckConsumerEnabled);
+            return this;
+        }
+        /**
+         * Used for enabling or disabling all health checks from this 
component.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: health
+         * 
+         * @param healthCheckEnabled the value to set
+         * @return the dsl builder
+         */
+        default KafkaComponentBuilder healthCheckEnabled(
+                boolean healthCheckEnabled) {
+            doSetProperty("healthCheckEnabled", healthCheckEnabled);
+            return this;
+        }
+        /**
+         * Used for enabling or disabling all producer based health checks from
+         * this component.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: health
+         * 
+         * @param healthCheckProducerEnabled the value to set
+         * @return the dsl builder
+         */
+        default KafkaComponentBuilder healthCheckProducerEnabled(
+                boolean healthCheckProducerEnabled) {
+            doSetProperty("healthCheckProducerEnabled", 
healthCheckProducerEnabled);
+            return this;
+        }
         /**
          * Sets interceptors for producer or consumers. Producer interceptors
          * have to be classes implementing
@@ -2234,6 +2284,9 @@ public interface KafkaComponentBuilderFactory {
             case "kafkaClientFactory": ((KafkaComponent) 
component).setKafkaClientFactory((org.apache.camel.component.kafka.KafkaClientFactory)
 value); return true;
             case "synchronous": getOrCreateConfiguration((KafkaComponent) 
component).setSynchronous((boolean) value); return true;
             case "schemaRegistryURL": 
getOrCreateConfiguration((KafkaComponent) 
component).setSchemaRegistryURL((java.lang.String) value); return true;
+            case "healthCheckConsumerEnabled": ((KafkaComponent) 
component).setHealthCheckConsumerEnabled((boolean) value); return true;
+            case "healthCheckEnabled": ((KafkaComponent) 
component).setHealthCheckEnabled((boolean) value); return true;
+            case "healthCheckProducerEnabled": ((KafkaComponent) 
component).setHealthCheckProducerEnabled((boolean) value); return true;
             case "interceptorClasses": 
getOrCreateConfiguration((KafkaComponent) 
component).setInterceptorClasses((java.lang.String) value); return true;
             case "kerberosBeforeReloginMinTime": 
getOrCreateConfiguration((KafkaComponent) 
component).setKerberosBeforeReloginMinTime((java.lang.Integer) value); return 
true;
             case "kerberosConfigLocation": 
getOrCreateConfiguration((KafkaComponent) 
component).setKerberosConfigLocation((java.lang.String) value); return true;

Reply via email to