You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/01/11 06:57:49 UTC

[camel] branch master updated (5b8eebf -> 3756e00)

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

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 5b8eebf  Sync deps
     new c8d45ad  Upgrade Kafka to version 2.7.0
     new 3756e00  Regen and sync deps

The 2 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:
 camel-dependencies/pom.xml                         |   2 +-
 .../camel/catalog/components/vertx-kafka.json      |  34 +-
 .../camel/catalog/docs/vertx-kafka-component.adoc  |  38 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  |   3 +-
 .../vertx/kafka/VertxKafkaComponentConfigurer.java |  30 ++
 .../vertx/kafka/VertxKafkaEndpointConfigurer.java  |  30 ++
 .../vertx/kafka/VertxKafkaEndpointUriFactory.java  |   7 +-
 .../configuration/VertxKafkaConfiguration.java     | 129 +++++-
 .../camel/component/vertx/kafka/vertx-kafka.json   |  34 +-
 .../src/main/docs/vertx-kafka-component.adoc       |  38 +-
 .../dsl/VertxKafkaComponentBuilderFactory.java     | 128 +++++-
 .../dsl/VertxKafkaEndpointBuilderFactory.java      | 468 +++++++++++++++++++--
 .../modules/ROOT/pages/vertx-kafka-component.adoc  |  38 +-
 parent/pom.xml                                     |   2 +-
 14 files changed, 856 insertions(+), 125 deletions(-)


[camel] 01/02: Upgrade Kafka to version 2.7.0

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

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c8d45adcad377d4bb1bc3d79b2d3464c8519c725
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Jan 11 07:27:19 2021 +0100

    Upgrade Kafka to version 2.7.0
---
 parent/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/parent/pom.xml b/parent/pom.xml
index 01ef10f..81f2f91 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -352,7 +352,7 @@
         <jython-version>2.5.3</jython-version>
         <jython-standalone-version>2.5.3</jython-standalone-version>
         <jzlib-version>1.1.3</jzlib-version>
-        <kafka-version>2.6.0</kafka-version>
+        <kafka-version>2.7.0</kafka-version>
         <kie-version>7.47.0.Final</kie-version>
         <kubernetes-client-version>4.13.0</kubernetes-client-version>
         <kubernetes-model-version>4.13.0</kubernetes-model-version>


[camel] 02/02: Regen and sync deps

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

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 3756e00e26d2808ae8d7dd33833276bcfdd888f4
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Jan 11 07:40:28 2021 +0100

    Regen and sync deps
---
 camel-dependencies/pom.xml                         |   2 +-
 .../camel/catalog/components/vertx-kafka.json      |  34 +-
 .../camel/catalog/docs/vertx-kafka-component.adoc  |  38 +-
 .../apache/camel/catalog/schemas/camel-spring.xsd  |   3 +-
 .../vertx/kafka/VertxKafkaComponentConfigurer.java |  30 ++
 .../vertx/kafka/VertxKafkaEndpointConfigurer.java  |  30 ++
 .../vertx/kafka/VertxKafkaEndpointUriFactory.java  |   7 +-
 .../configuration/VertxKafkaConfiguration.java     | 129 +++++-
 .../camel/component/vertx/kafka/vertx-kafka.json   |  34 +-
 .../src/main/docs/vertx-kafka-component.adoc       |  38 +-
 .../dsl/VertxKafkaComponentBuilderFactory.java     | 128 +++++-
 .../dsl/VertxKafkaEndpointBuilderFactory.java      | 468 +++++++++++++++++++--
 .../modules/ROOT/pages/vertx-kafka-component.adoc  |  38 +-
 13 files changed, 855 insertions(+), 124 deletions(-)

diff --git a/camel-dependencies/pom.xml b/camel-dependencies/pom.xml
index 6508fd4..e084996 100644
--- a/camel-dependencies/pom.xml
+++ b/camel-dependencies/pom.xml
@@ -369,7 +369,7 @@
     <jython-standalone-version>2.5.3</jython-standalone-version>
     <jython-version>2.5.3</jython-version>
     <jzlib-version>1.1.3</jzlib-version>
-    <kafka-version>2.6.0</kafka-version>
+    <kafka-version>2.7.0</kafka-version>
     <kie-version>7.47.0.Final</kie-version>
     <kubernetes-client-version>4.13.0</kubernetes-client-version>
     <kubernetes-model-version>4.13.0</kubernetes-model-version>
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/vertx-kafka.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/vertx-kafka.json
index eeb88b5..31d231a 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/vertx-kafka.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/vertx-kafka.json
@@ -33,7 +33,7 @@
     "metadataMaxAgeMs": { "kind": "property", "displayName": "Metadata Max Age Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The period of time in milliseconds after which we force a refresh of metad [...]
     "metricReporters": { "kind": "property", "displayName": "Metric Reporters", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.me [...]
     "metricsNumSamples": { "kind": "property", "displayName": "Metrics Num Samples", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The number of samples maintained to compute metrics." },
-    "metricsRecordingLevel": { "kind": "property", "displayName": "Metrics Recording Level", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "INFO", "DEBUG" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The highest recording le [...]
+    "metricsRecordingLevel": { "kind": "property", "displayName": "Metrics Recording Level", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "INFO", "DEBUG", "TRACE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The highest rec [...]
     "metricsSampleWindowMs": { "kind": "property", "displayName": "Metrics Sample Window Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The window of time a metrics sample is computed over." },
     "partitionId": { "kind": "property", "displayName": "Partition Id", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The partition to which the record will be sent (or null if no partition was specified) or read f [...]
     "receiveBufferBytes": { "kind": "property", "displayName": "Receive Buffer Bytes", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 32768, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. [...]
@@ -42,6 +42,8 @@
     "requestTimeoutMs": { "kind": "property", "displayName": "Request Timeout Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls the maximum amount of time the client will wait  [...]
     "retryBackoffMs": { "kind": "property", "displayName": "Retry Backoff Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100ms", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The amount of time to wait before attempting to retry a failed request to a  [...]
     "sendBufferBytes": { "kind": "property", "displayName": "Send Buffer Bytes", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 131072, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the  [...]
+    "socketConnectionSetupTimeoutMaxMs": { "kind": "property", "displayName": "Socket Connection Setup Timeout Max Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "2m7s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time the clien [...]
+    "socketConnectionSetupTimeoutMs": { "kind": "property", "displayName": "Socket Connection Setup Timeout Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The amount of time the client will wait for  [...]
     "allowAutoCreateTopics": { "kind": "property", "displayName": "Allow Auto Create Topics", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Allow automatic topic creation on the broker when subscrib [...]
     "autoCommitIntervalMs": { "kind": "property", "displayName": "Auto Commit Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The frequency in milliseconds that the consumer offsets are aut [...]
     "autoOffsetReset": { "kind": "property", "displayName": "Auto Offset Reset", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "latest", "earliest", "none" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "latest", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "What to do when t [...]
@@ -76,14 +78,14 @@
     "keySerializer": { "kind": "property", "displayName": "Key Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Serializer class [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "lingerMs": { "kind": "property", "displayName": "Linger Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The producer groups together any records that arrive in between request transmissions i [...]
-    "maxBlockMs": { "kind": "property", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long KafkaProducer.send() and KafkaProducer.partitio [...]
+    "maxBlockMs": { "kind": "property", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), in [...]
     "maxInFlightRequestsPerConnection": { "kind": "property", "displayName": "Max In Flight Requests Per Connection", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of unacknowledged requ [...]
     "maxRequestSize": { "kind": "property", "displayName": "Max Request Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1048576, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum size of a request in bytes. This setting will limit the number [...]
     "metadataMaxIdleMs": { "kind": "property", "displayName": "Metadata Max Idle Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Controls how long the producer will cache metadata for a topic that' [...]
     "partitionerClass": { "kind": "property", "displayName": "Partitioner Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Pa [...]
     "retries": { "kind": "property", "displayName": "Retries", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2147483647, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Setting a value greater than zero will cause the client to resend any record whose send [...]
     "transactionalId": { "kind": "property", "displayName": "Transactional Id", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The TransactionalId to use for transactional delivery. This enables reliability semant [...]
-    "transactionTimeoutMs": { "kind": "property", "displayName": "Transaction Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in ms that the transaction coordinato [...]
+    "transactionTimeoutMs": { "kind": "property", "displayName": "Transaction Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in ms that the transaction coordinato [...]
     "valueSerializer": { "kind": "property", "displayName": "Value Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Serializer c [...]
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
     "vertx": { "kind": "property", "displayName": "Vertx", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.vertx.core.Vertx", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing vertx instead of creating a new instance" },
@@ -109,16 +111,19 @@
     "sslEndpointIdentificationAlgorithm": { "kind": "property", "displayName": "Ssl Endpoint Identification 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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The endpoint i [...]
     "sslEngineFactoryClass": { "kind": "property", "displayName": "Ssl Engine Factory Class", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The class of type org.apache.kafka.common.security.auth.SslEngine [...]
     "sslKeymanagerAlgorithm": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by key manager fac [...]
-    "sslKeyPassword": { "kind": "property", "displayName": "Ssl Key Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file. This is optional for client." },
+    "sslKeyPassword": { "kind": "property", "displayName": "Ssl Key Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file orthe PEM key specified in [...]
+    "sslKeystoreCertificateChain": { "kind": "property", "displayName": "Ssl Keystore Certificate Chain", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Certificate chain in the format specified by 'ssl.key [...]
+    "sslKeystoreKey": { "kind": "property", "displayName": "Ssl Keystore Key", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine f [...]
     "sslKeystoreLocation": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The location of the key store file. This is optional for client and ca [...]
-    "sslKeystorePassword": { "kind": "property", "displayName": "Ssl Keystore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file. This is optional for client [...]
+    "sslKeystorePassword": { "kind": "property", "displayName": "Ssl Keystore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file. This is optional for client [...]
     "sslKeystoreType": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The file format of the key store file. This is optional [...]
     "sslProtocol": { "kind": "property", "displayName": "Ssl Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TLSv1.2", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The SSL protocol used to generate the SSLContext. The defaul [...]
     "sslProvider": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The name of the security provider used for SSL connections. Default value is the defaul [...]
     "sslSecureRandomImplementation": { "kind": "property", "displayName": "Ssl Secure Random Implementation", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The SecureRandom PRNG implementation to use for S [...]
     "sslTrustmanagerAlgorithm": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by trust manager  [...]
+    "sslTruststoreCertificates": { "kind": "property", "displayName": "Ssl Truststore Certificates", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Trusted certificates in the format specified by 'ssl.trust [...]
     "sslTruststoreLocation": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The location of the trust store file." },
-    "sslTruststorePassword": { "kind": "property", "displayName": "Ssl Truststore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file. If a password is not set ac [...]
+    "sslTruststorePassword": { "kind": "property", "displayName": "Ssl Truststore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file. If a password is not set, t [...]
     "sslTruststoreType": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The file format of the trust store file." }
   },
   "properties": {
@@ -133,7 +138,7 @@
     "metadataMaxAgeMs": { "kind": "parameter", "displayName": "Metadata Max Age Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The period of time in milliseconds after which we force a refresh of meta [...]
     "metricReporters": { "kind": "parameter", "displayName": "Metric Reporters", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.m [...]
     "metricsNumSamples": { "kind": "parameter", "displayName": "Metrics Num Samples", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The number of samples maintained to compute metrics." },
-    "metricsRecordingLevel": { "kind": "parameter", "displayName": "Metrics Recording Level", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "INFO", "DEBUG" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The highest recording l [...]
+    "metricsRecordingLevel": { "kind": "parameter", "displayName": "Metrics Recording Level", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "INFO", "DEBUG", "TRACE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The highest re [...]
     "metricsSampleWindowMs": { "kind": "parameter", "displayName": "Metrics Sample Window Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The window of time a metrics sample is computed over." },
     "partitionId": { "kind": "parameter", "displayName": "Partition Id", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The partition to which the record will be sent (or null if no partition was specified) or read  [...]
     "receiveBufferBytes": { "kind": "parameter", "displayName": "Receive Buffer Bytes", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 32768, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data [...]
@@ -142,6 +147,8 @@
     "requestTimeoutMs": { "kind": "parameter", "displayName": "Request Timeout Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls the maximum amount of time the client will wait [...]
     "retryBackoffMs": { "kind": "parameter", "displayName": "Retry Backoff Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100ms", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The amount of time to wait before attempting to retry a failed request to a [...]
     "sendBufferBytes": { "kind": "parameter", "displayName": "Send Buffer Bytes", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 131072, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the [...]
+    "socketConnectionSetupTimeoutMaxMs": { "kind": "parameter", "displayName": "Socket Connection Setup Timeout Max Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "2m7s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time the clie [...]
+    "socketConnectionSetupTimeoutMs": { "kind": "parameter", "displayName": "Socket Connection Setup Timeout Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The amount of time the client will wait for [...]
     "allowAutoCreateTopics": { "kind": "parameter", "displayName": "Allow Auto Create Topics", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Allow automatic topic creation on the broker when subscri [...]
     "autoCommitIntervalMs": { "kind": "parameter", "displayName": "Auto Commit Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The frequency in milliseconds that the consumer offsets are au [...]
     "autoOffsetReset": { "kind": "parameter", "displayName": "Auto Offset Reset", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "latest", "earliest", "none" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "latest", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "What to do when  [...]
@@ -178,14 +185,14 @@
     "keySerializer": { "kind": "parameter", "displayName": "Key Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Serializer clas [...]
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
     "lingerMs": { "kind": "parameter", "displayName": "Linger Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The producer groups together any records that arrive in between request transmissions  [...]
-    "maxBlockMs": { "kind": "parameter", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long KafkaProducer.send() and KafkaProducer.partiti [...]
+    "maxBlockMs": { "kind": "parameter", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), i [...]
     "maxInFlightRequestsPerConnection": { "kind": "parameter", "displayName": "Max In Flight Requests Per Connection", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of unacknowledged req [...]
     "maxRequestSize": { "kind": "parameter", "displayName": "Max Request Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1048576, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum size of a request in bytes. This setting will limit the numbe [...]
     "metadataMaxIdleMs": { "kind": "parameter", "displayName": "Metadata Max Idle Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Controls how long the producer will cache metadata for a topic that [...]
     "partitionerClass": { "kind": "parameter", "displayName": "Partitioner Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "P [...]
     "retries": { "kind": "parameter", "displayName": "Retries", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2147483647, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Setting a value greater than zero will cause the client to resend any record whose sen [...]
     "transactionalId": { "kind": "parameter", "displayName": "Transactional Id", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The TransactionalId to use for transactional delivery. This enables reliability seman [...]
-    "transactionTimeoutMs": { "kind": "parameter", "displayName": "Transaction Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in ms that the transaction coordinat [...]
+    "transactionTimeoutMs": { "kind": "parameter", "displayName": "Transaction Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in ms that the transaction coordinat [...]
     "valueSerializer": { "kind": "parameter", "displayName": "Value Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Serializer  [...]
     "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
     "saslClientCallbackHandlerClass": { "kind": "parameter", "displayName": "Sasl Client Callback Handler Class", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The fully qualified name of a SASL client cal [...]
@@ -209,16 +216,19 @@
     "sslEndpointIdentificationAlgorithm": { "kind": "parameter", "displayName": "Ssl Endpoint Identification 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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The endpoint  [...]
     "sslEngineFactoryClass": { "kind": "parameter", "displayName": "Ssl Engine Factory Class", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The class of type org.apache.kafka.common.security.auth.SslEngin [...]
     "sslKeymanagerAlgorithm": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by key manager fa [...]
-    "sslKeyPassword": { "kind": "parameter", "displayName": "Ssl Key Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file. This is optional for cli [...]
+    "sslKeyPassword": { "kind": "parameter", "displayName": "Ssl Key Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file orthe PEM key specified i [...]
+    "sslKeystoreCertificateChain": { "kind": "parameter", "displayName": "Ssl Keystore Certificate Chain", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Certificate chain in the format specified by 'ssl.ke [...]
+    "sslKeystoreKey": { "kind": "parameter", "displayName": "Ssl Keystore Key", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine  [...]
     "sslKeystoreLocation": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The location of the key store file. This is optional for client and c [...]
-    "sslKeystorePassword": { "kind": "parameter", "displayName": "Ssl Keystore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file. This is optional for clien [...]
+    "sslKeystorePassword": { "kind": "parameter", "displayName": "Ssl Keystore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file. This is optional for clien [...]
     "sslKeystoreType": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The file format of the key store file. This is optiona [...]
     "sslProtocol": { "kind": "parameter", "displayName": "Ssl Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TLSv1.2", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The SSL protocol used to generate the SSLContext. The defau [...]
     "sslProvider": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The name of the security provider used for SSL connections. Default value is the defau [...]
     "sslSecureRandomImplementation": { "kind": "parameter", "displayName": "Ssl Secure Random Implementation", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The SecureRandom PRNG implementation to use for  [...]
     "sslTrustmanagerAlgorithm": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by trust manager [...]
+    "sslTruststoreCertificates": { "kind": "parameter", "displayName": "Ssl Truststore Certificates", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Trusted certificates in the format specified by 'ssl.trus [...]
     "sslTruststoreLocation": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The location of the trust store file." },
-    "sslTruststorePassword": { "kind": "parameter", "displayName": "Ssl Truststore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file. If a password is not set a [...]
+    "sslTruststorePassword": { "kind": "parameter", "displayName": "Ssl Truststore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file. If a password is not set,  [...]
     "sslTruststoreType": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The file format of the trust store file." }
   }
 }
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/vertx-kafka-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/vertx-kafka-component.adoc
index f598db2..1137e50 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/vertx-kafka-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/vertx-kafka-component.adoc
@@ -74,7 +74,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (97 parameters):
+=== Query Parameters (102 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -90,7 +90,7 @@ with the following path and query parameters:
 | *metadataMaxAgeMs* (common) | The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions. | 5m | long
 | *metricReporters* (common) | A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.metrics.MetricsReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics. |  | String
 | *metricsNumSamples* (common) | The number of samples maintained to compute metrics. | 2 | int
-| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 2 enums and the value can be one of: INFO, DEBUG | INFO | String
+| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 3 enums and the value can be one of: INFO, DEBUG, TRACE | INFO | String
 | *metricsSampleWindowMs* (common) | The window of time a metrics sample is computed over. | 30s | long
 | *partitionId* (common) | The partition to which the record will be sent (or null if no partition was specified) or read from a particular partition if set. Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence over this config |  | Integer
 | *receiveBufferBytes* (common) | The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used. | 32768 | int
@@ -99,6 +99,8 @@ with the following path and query parameters:
 | *requestTimeoutMs* (common) | The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted. This should be larger than replica.lag.time.max.ms (a broker configuration) to reduce the possibility of message duplication due to unnecessary producer retries. | 30s | int
 | *retryBackoffMs* (common) | The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios. | 100ms | long
 | *sendBufferBytes* (common) | The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used. | 131072 | int
+| *socketConnectionSetupTimeout{zwsp}MaxMs* (common) | The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value. | 2m7s | long
+| *socketConnectionSetupTimeoutMs* (common) | The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel. | 10s | long
 | *allowAutoCreateTopics* (consumer) | Allow automatic topic creation on the broker when subscribing to or assigning a topic. A topic being subscribed to will be automatically created only if the broker allows for it using auto.create.topics.enable broker configuration. This configuration must be set to false when using brokers older than 0.11.0 | true | boolean
 | *autoCommitIntervalMs* (consumer) | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5s | int
 | *autoOffsetReset* (consumer) | What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted): earliest: automatically reset the offset to the earliest offsetlatest: automatically reset the offset to the latest offsetnone: throw exception to the consumer if no previous offset is found for the consumer's groupanything else: throw exception to the consumer. There are 3 enums and the value can be [...]
@@ -135,14 +137,14 @@ with the following path and query parameters:
 | *keySerializer* (producer) | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *lingerMs* (producer) | The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay&mdash;that is, rather than immediately sending out a record the producer  [...]
-| *maxBlockMs* (producer) | The configuration controls how long KafkaProducer.send() and KafkaProducer.partitionsFor() will block.These methods can be blocked either because the buffer is full or metadata unavailable.Blocking in the user-supplied serializers or partitioner will not be counted against this timeout. | 1m | long
+| *maxBlockMs* (producer) | The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block. For send() this timeout bounds the total time waiting for both metadata fetch and buffer allocation (blocking in the user-supplied serializers or partitioner is not counted against this timeout). For partitionsFor() this timeout bounds the time spent waiting for metadata  [...]
 | *maxInFlightRequestsPer{zwsp}Connection* (producer) | The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled). | 5 | int
 | *maxRequestSize* (producer) | The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests. This is also effectively a cap on the maximum uncompressed record batch size. Note that the server has its own cap on the record batch size (after compression if compression is enabled) which may be different from this. | 1048576 | int
 | *metadataMaxIdleMs* (producer) | Controls how long the producer will cache metadata for a topic that's idle. If the elapsed time since a topic was last produced to exceeds the metadata idle duration, then the topic's metadata is forgotten and the next access to it will force a metadata fetch request. | 5m | long
 | *partitionerClass* (producer) | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | org.apache.kafka.clients.producer.internals.DefaultPartitioner | String
 | *retries* (producer) | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without setting max.in.flight.requests.per.connection to 1 will potentially change the ordering of records because if two batches are sent to a single partition, and the first fails and is retried but the second succeeds [...]
 | *transactionalId* (producer) | The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. If a TransactionalId is configured, enable.idempotence is implied. By default the TransactionI [...]
-| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTransactionTimeout error. | 1m | int
+| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTxnTimeoutException error. | 1m | int
 | *valueSerializer* (producer) | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 | *saslClientCallbackHandlerClass* (security) | The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface. |  | String
@@ -166,23 +168,26 @@ with the following path and query parameters:
 | *sslEndpointIdentification{zwsp}Algorithm* (security) | The endpoint identification algorithm to validate server hostname using server certificate. | https | String
 | *sslEngineFactoryClass* (security) | The class of type org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine objects. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory |  | String
 | *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key store file. This is optional for client. |  | String
+| *sslKeyPassword* (security) | The password of the private key in the key store file orthe PEM key specified in ssl.keystore.key'. This is required for clients only if two-way authentication is configured. |  | String
+| *sslKeystoreCertificateChain* (security) | Certificate chain in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with a list of X.509 certificates |  | String
+| *sslKeystoreKey* (security) | Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password' |  | String
 | *sslKeystoreLocation* (security) | The location of the key store file. This is optional for client and can be used for two-way authentication for client. |  | String
-| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. |  | String
+| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format. |  | String
 | *sslKeystoreType* (security) | The file format of the key store file. This is optional for client. | JKS | String
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients wil [...]
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslSecureRandomImplementation* (security) | The SecureRandom PRNG implementation to use for SSL cryptography operations. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreCertificates* (security) | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. |  | String
 | *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
-| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set access to the truststore is still available, but integrity checking is disabled. |  | String
+| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format. |  | String
 | *sslTruststoreType* (security) | The file format of the trust store file. | JKS | String
 |===
 // endpoint options: END
 
 == Component Options
 // component options: START
-The Vert.x Kafka component supports 98 options, which are listed below.
+The Vert.x Kafka component supports 103 options, which are listed below.
 
 
 
@@ -200,7 +205,7 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *metadataMaxAgeMs* (common) | The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions. | 5m | long
 | *metricReporters* (common) | A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.metrics.MetricsReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics. |  | String
 | *metricsNumSamples* (common) | The number of samples maintained to compute metrics. | 2 | int
-| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 2 enums and the value can be one of: INFO, DEBUG | INFO | String
+| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 3 enums and the value can be one of: INFO, DEBUG, TRACE | INFO | String
 | *metricsSampleWindowMs* (common) | The window of time a metrics sample is computed over. | 30s | long
 | *partitionId* (common) | The partition to which the record will be sent (or null if no partition was specified) or read from a particular partition if set. Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence over this config |  | Integer
 | *receiveBufferBytes* (common) | The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used. | 32768 | int
@@ -209,6 +214,8 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *requestTimeoutMs* (common) | The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted. This should be larger than replica.lag.time.max.ms (a broker configuration) to reduce the possibility of message duplication due to unnecessary producer retries. | 30s | int
 | *retryBackoffMs* (common) | The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios. | 100ms | long
 | *sendBufferBytes* (common) | The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used. | 131072 | int
+| *socketConnectionSetupTimeout{zwsp}MaxMs* (common) | The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value. | 2m7s | long
+| *socketConnectionSetupTimeoutMs* (common) | The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel. | 10s | long
 | *allowAutoCreateTopics* (consumer) | Allow automatic topic creation on the broker when subscribing to or assigning a topic. A topic being subscribed to will be automatically created only if the broker allows for it using auto.create.topics.enable broker configuration. This configuration must be set to false when using brokers older than 0.11.0 | true | boolean
 | *autoCommitIntervalMs* (consumer) | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5s | int
 | *autoOffsetReset* (consumer) | What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted): earliest: automatically reset the offset to the earliest offsetlatest: automatically reset the offset to the latest offsetnone: throw exception to the consumer if no previous offset is found for the consumer's groupanything else: throw exception to the consumer. There are 3 enums and the value can be [...]
@@ -243,14 +250,14 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *keySerializer* (producer) | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *lingerMs* (producer) | The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay&mdash;that is, rather than immediately sending out a record the producer  [...]
-| *maxBlockMs* (producer) | The configuration controls how long KafkaProducer.send() and KafkaProducer.partitionsFor() will block.These methods can be blocked either because the buffer is full or metadata unavailable.Blocking in the user-supplied serializers or partitioner will not be counted against this timeout. | 1m | long
+| *maxBlockMs* (producer) | The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block. For send() this timeout bounds the total time waiting for both metadata fetch and buffer allocation (blocking in the user-supplied serializers or partitioner is not counted against this timeout). For partitionsFor() this timeout bounds the time spent waiting for metadata  [...]
 | *maxInFlightRequestsPer{zwsp}Connection* (producer) | The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled). | 5 | int
 | *maxRequestSize* (producer) | The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests. This is also effectively a cap on the maximum uncompressed record batch size. Note that the server has its own cap on the record batch size (after compression if compression is enabled) which may be different from this. | 1048576 | int
 | *metadataMaxIdleMs* (producer) | Controls how long the producer will cache metadata for a topic that's idle. If the elapsed time since a topic was last produced to exceeds the metadata idle duration, then the topic's metadata is forgotten and the next access to it will force a metadata fetch request. | 5m | long
 | *partitionerClass* (producer) | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | org.apache.kafka.clients.producer.internals.DefaultPartitioner | String
 | *retries* (producer) | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without setting max.in.flight.requests.per.connection to 1 will potentially change the ordering of records because if two batches are sent to a single partition, and the first fails and is retried but the second succeeds [...]
 | *transactionalId* (producer) | The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. If a TransactionalId is configured, enable.idempotence is implied. By default the TransactionI [...]
-| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTransactionTimeout error. | 1m | int
+| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTxnTimeoutException error. | 1m | int
 | *valueSerializer* (producer) | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *vertx* (advanced) | *Autowired* To use an existing vertx instead of creating a new instance |  | Vertx
@@ -276,16 +283,19 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *sslEndpointIdentification{zwsp}Algorithm* (security) | The endpoint identification algorithm to validate server hostname using server certificate. | https | String
 | *sslEngineFactoryClass* (security) | The class of type org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine objects. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory |  | String
 | *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key store file. This is optional for client. |  | String
+| *sslKeyPassword* (security) | The password of the private key in the key store file orthe PEM key specified in ssl.keystore.key'. This is required for clients only if two-way authentication is configured. |  | String
+| *sslKeystoreCertificateChain* (security) | Certificate chain in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with a list of X.509 certificates |  | String
+| *sslKeystoreKey* (security) | Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password' |  | String
 | *sslKeystoreLocation* (security) | The location of the key store file. This is optional for client and can be used for two-way authentication for client. |  | String
-| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. |  | String
+| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format. |  | String
 | *sslKeystoreType* (security) | The file format of the key store file. This is optional for client. | JKS | String
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients wil [...]
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslSecureRandomImplementation* (security) | The SecureRandom PRNG implementation to use for SSL cryptography operations. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreCertificates* (security) | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. |  | String
 | *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
-| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set access to the truststore is still available, but integrity checking is disabled. |  | String
+| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format. |  | String
 | *sslTruststoreType* (security) | The file format of the trust store file. | JKS | String
 |===
 // component options: END
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
index 1dde93b..0530ef7 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/schemas/camel-spring.xsd
@@ -8451,7 +8451,6 @@ Will only synchronize when the org.apache.camel.Exchange ended with failure
 If enabled then the on completion process will run asynchronously by a separate
 thread from a thread pool. By default this is false, meaning the on completion
 process will run synchronously using the same caller thread as from the route.
-Default value: false
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
@@ -8460,7 +8459,7 @@ Default value: false
             <xs:documentation xml:lang="en"><![CDATA[
 Refers to a custom Thread Pool to be used for parallel processing. Notice if you
 set this option, then parallel processing is automatic implied, and you do not
-have to enable that option as well.
+have to enable that option as well. Default value: false
             ]]></xs:documentation>
           </xs:annotation>
         </xs:attribute>
diff --git a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaComponentConfigurer.java b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaComponentConfigurer.java
index ae96cd7..aec7061 100644
--- a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaComponentConfigurer.java
+++ b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaComponentConfigurer.java
@@ -177,6 +177,10 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sendBufferBytes": getOrCreateConfiguration(target).setSendBufferBytes(property(camelContext, int.class, value)); return true;
         case "sessiontimeoutms":
         case "sessionTimeoutMs": getOrCreateConfiguration(target).setSessionTimeoutMs(property(camelContext, int.class, value)); return true;
+        case "socketconnectionsetuptimeoutmaxms":
+        case "socketConnectionSetupTimeoutMaxMs": getOrCreateConfiguration(target).setSocketConnectionSetupTimeoutMaxMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
+        case "socketconnectionsetuptimeoutms":
+        case "socketConnectionSetupTimeoutMs": getOrCreateConfiguration(target).setSocketConnectionSetupTimeoutMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
         case "sslciphersuites":
         case "sslCipherSuites": getOrCreateConfiguration(target).setSslCipherSuites(property(camelContext, java.lang.String.class, value)); return true;
         case "sslenabledprotocols":
@@ -189,6 +193,10 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sslKeyPassword": getOrCreateConfiguration(target).setSslKeyPassword(property(camelContext, java.lang.String.class, value)); return true;
         case "sslkeymanageralgorithm":
         case "sslKeymanagerAlgorithm": getOrCreateConfiguration(target).setSslKeymanagerAlgorithm(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslkeystorecertificatechain":
+        case "sslKeystoreCertificateChain": getOrCreateConfiguration(target).setSslKeystoreCertificateChain(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslkeystorekey":
+        case "sslKeystoreKey": getOrCreateConfiguration(target).setSslKeystoreKey(property(camelContext, java.lang.String.class, value)); return true;
         case "sslkeystorelocation":
         case "sslKeystoreLocation": getOrCreateConfiguration(target).setSslKeystoreLocation(property(camelContext, java.lang.String.class, value)); return true;
         case "sslkeystorepassword":
@@ -203,6 +211,8 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sslSecureRandomImplementation": getOrCreateConfiguration(target).setSslSecureRandomImplementation(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltrustmanageralgorithm":
         case "sslTrustmanagerAlgorithm": getOrCreateConfiguration(target).setSslTrustmanagerAlgorithm(property(camelContext, java.lang.String.class, value)); return true;
+        case "ssltruststorecertificates":
+        case "sslTruststoreCertificates": getOrCreateConfiguration(target).setSslTruststoreCertificates(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltruststorelocation":
         case "sslTruststoreLocation": getOrCreateConfiguration(target).setSslTruststoreLocation(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltruststorepassword":
@@ -381,6 +391,10 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sendBufferBytes": return int.class;
         case "sessiontimeoutms":
         case "sessionTimeoutMs": return int.class;
+        case "socketconnectionsetuptimeoutmaxms":
+        case "socketConnectionSetupTimeoutMaxMs": return long.class;
+        case "socketconnectionsetuptimeoutms":
+        case "socketConnectionSetupTimeoutMs": return long.class;
         case "sslciphersuites":
         case "sslCipherSuites": return java.lang.String.class;
         case "sslenabledprotocols":
@@ -393,6 +407,10 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sslKeyPassword": return java.lang.String.class;
         case "sslkeymanageralgorithm":
         case "sslKeymanagerAlgorithm": return java.lang.String.class;
+        case "sslkeystorecertificatechain":
+        case "sslKeystoreCertificateChain": return java.lang.String.class;
+        case "sslkeystorekey":
+        case "sslKeystoreKey": return java.lang.String.class;
         case "sslkeystorelocation":
         case "sslKeystoreLocation": return java.lang.String.class;
         case "sslkeystorepassword":
@@ -407,6 +425,8 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sslSecureRandomImplementation": return java.lang.String.class;
         case "ssltrustmanageralgorithm":
         case "sslTrustmanagerAlgorithm": return java.lang.String.class;
+        case "ssltruststorecertificates":
+        case "sslTruststoreCertificates": return java.lang.String.class;
         case "ssltruststorelocation":
         case "sslTruststoreLocation": return java.lang.String.class;
         case "ssltruststorepassword":
@@ -581,6 +601,10 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sendBufferBytes": return getOrCreateConfiguration(target).getSendBufferBytes();
         case "sessiontimeoutms":
         case "sessionTimeoutMs": return getOrCreateConfiguration(target).getSessionTimeoutMs();
+        case "socketconnectionsetuptimeoutmaxms":
+        case "socketConnectionSetupTimeoutMaxMs": return getOrCreateConfiguration(target).getSocketConnectionSetupTimeoutMaxMs();
+        case "socketconnectionsetuptimeoutms":
+        case "socketConnectionSetupTimeoutMs": return getOrCreateConfiguration(target).getSocketConnectionSetupTimeoutMs();
         case "sslciphersuites":
         case "sslCipherSuites": return getOrCreateConfiguration(target).getSslCipherSuites();
         case "sslenabledprotocols":
@@ -593,6 +617,10 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sslKeyPassword": return getOrCreateConfiguration(target).getSslKeyPassword();
         case "sslkeymanageralgorithm":
         case "sslKeymanagerAlgorithm": return getOrCreateConfiguration(target).getSslKeymanagerAlgorithm();
+        case "sslkeystorecertificatechain":
+        case "sslKeystoreCertificateChain": return getOrCreateConfiguration(target).getSslKeystoreCertificateChain();
+        case "sslkeystorekey":
+        case "sslKeystoreKey": return getOrCreateConfiguration(target).getSslKeystoreKey();
         case "sslkeystorelocation":
         case "sslKeystoreLocation": return getOrCreateConfiguration(target).getSslKeystoreLocation();
         case "sslkeystorepassword":
@@ -607,6 +635,8 @@ public class VertxKafkaComponentConfigurer extends PropertyConfigurerSupport imp
         case "sslSecureRandomImplementation": return getOrCreateConfiguration(target).getSslSecureRandomImplementation();
         case "ssltrustmanageralgorithm":
         case "sslTrustmanagerAlgorithm": return getOrCreateConfiguration(target).getSslTrustmanagerAlgorithm();
+        case "ssltruststorecertificates":
+        case "sslTruststoreCertificates": return getOrCreateConfiguration(target).getSslTruststoreCertificates();
         case "ssltruststorelocation":
         case "sslTruststoreLocation": return getOrCreateConfiguration(target).getSslTruststoreLocation();
         case "ssltruststorepassword":
diff --git a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaEndpointConfigurer.java b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaEndpointConfigurer.java
index 6cbf1e4..cb4c03d 100644
--- a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaEndpointConfigurer.java
+++ b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaEndpointConfigurer.java
@@ -171,6 +171,10 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sendBufferBytes": target.getConfiguration().setSendBufferBytes(property(camelContext, int.class, value)); return true;
         case "sessiontimeoutms":
         case "sessionTimeoutMs": target.getConfiguration().setSessionTimeoutMs(property(camelContext, int.class, value)); return true;
+        case "socketconnectionsetuptimeoutmaxms":
+        case "socketConnectionSetupTimeoutMaxMs": target.getConfiguration().setSocketConnectionSetupTimeoutMaxMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
+        case "socketconnectionsetuptimeoutms":
+        case "socketConnectionSetupTimeoutMs": target.getConfiguration().setSocketConnectionSetupTimeoutMs(property(camelContext, java.time.Duration.class, value).toMillis()); return true;
         case "sslciphersuites":
         case "sslCipherSuites": target.getConfiguration().setSslCipherSuites(property(camelContext, java.lang.String.class, value)); return true;
         case "sslenabledprotocols":
@@ -183,6 +187,10 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sslKeyPassword": target.getConfiguration().setSslKeyPassword(property(camelContext, java.lang.String.class, value)); return true;
         case "sslkeymanageralgorithm":
         case "sslKeymanagerAlgorithm": target.getConfiguration().setSslKeymanagerAlgorithm(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslkeystorecertificatechain":
+        case "sslKeystoreCertificateChain": target.getConfiguration().setSslKeystoreCertificateChain(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslkeystorekey":
+        case "sslKeystoreKey": target.getConfiguration().setSslKeystoreKey(property(camelContext, java.lang.String.class, value)); return true;
         case "sslkeystorelocation":
         case "sslKeystoreLocation": target.getConfiguration().setSslKeystoreLocation(property(camelContext, java.lang.String.class, value)); return true;
         case "sslkeystorepassword":
@@ -197,6 +205,8 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sslSecureRandomImplementation": target.getConfiguration().setSslSecureRandomImplementation(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltrustmanageralgorithm":
         case "sslTrustmanagerAlgorithm": target.getConfiguration().setSslTrustmanagerAlgorithm(property(camelContext, java.lang.String.class, value)); return true;
+        case "ssltruststorecertificates":
+        case "sslTruststoreCertificates": target.getConfiguration().setSslTruststoreCertificates(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltruststorelocation":
         case "sslTruststoreLocation": target.getConfiguration().setSslTruststoreLocation(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltruststorepassword":
@@ -369,6 +379,10 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sendBufferBytes": return int.class;
         case "sessiontimeoutms":
         case "sessionTimeoutMs": return int.class;
+        case "socketconnectionsetuptimeoutmaxms":
+        case "socketConnectionSetupTimeoutMaxMs": return long.class;
+        case "socketconnectionsetuptimeoutms":
+        case "socketConnectionSetupTimeoutMs": return long.class;
         case "sslciphersuites":
         case "sslCipherSuites": return java.lang.String.class;
         case "sslenabledprotocols":
@@ -381,6 +395,10 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sslKeyPassword": return java.lang.String.class;
         case "sslkeymanageralgorithm":
         case "sslKeymanagerAlgorithm": return java.lang.String.class;
+        case "sslkeystorecertificatechain":
+        case "sslKeystoreCertificateChain": return java.lang.String.class;
+        case "sslkeystorekey":
+        case "sslKeystoreKey": return java.lang.String.class;
         case "sslkeystorelocation":
         case "sslKeystoreLocation": return java.lang.String.class;
         case "sslkeystorepassword":
@@ -395,6 +413,8 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sslSecureRandomImplementation": return java.lang.String.class;
         case "ssltrustmanageralgorithm":
         case "sslTrustmanagerAlgorithm": return java.lang.String.class;
+        case "ssltruststorecertificates":
+        case "sslTruststoreCertificates": return java.lang.String.class;
         case "ssltruststorelocation":
         case "sslTruststoreLocation": return java.lang.String.class;
         case "ssltruststorepassword":
@@ -568,6 +588,10 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sendBufferBytes": return target.getConfiguration().getSendBufferBytes();
         case "sessiontimeoutms":
         case "sessionTimeoutMs": return target.getConfiguration().getSessionTimeoutMs();
+        case "socketconnectionsetuptimeoutmaxms":
+        case "socketConnectionSetupTimeoutMaxMs": return target.getConfiguration().getSocketConnectionSetupTimeoutMaxMs();
+        case "socketconnectionsetuptimeoutms":
+        case "socketConnectionSetupTimeoutMs": return target.getConfiguration().getSocketConnectionSetupTimeoutMs();
         case "sslciphersuites":
         case "sslCipherSuites": return target.getConfiguration().getSslCipherSuites();
         case "sslenabledprotocols":
@@ -580,6 +604,10 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sslKeyPassword": return target.getConfiguration().getSslKeyPassword();
         case "sslkeymanageralgorithm":
         case "sslKeymanagerAlgorithm": return target.getConfiguration().getSslKeymanagerAlgorithm();
+        case "sslkeystorecertificatechain":
+        case "sslKeystoreCertificateChain": return target.getConfiguration().getSslKeystoreCertificateChain();
+        case "sslkeystorekey":
+        case "sslKeystoreKey": return target.getConfiguration().getSslKeystoreKey();
         case "sslkeystorelocation":
         case "sslKeystoreLocation": return target.getConfiguration().getSslKeystoreLocation();
         case "sslkeystorepassword":
@@ -594,6 +622,8 @@ public class VertxKafkaEndpointConfigurer extends PropertyConfigurerSupport impl
         case "sslSecureRandomImplementation": return target.getConfiguration().getSslSecureRandomImplementation();
         case "ssltrustmanageralgorithm":
         case "sslTrustmanagerAlgorithm": return target.getConfiguration().getSslTrustmanagerAlgorithm();
+        case "ssltruststorecertificates":
+        case "sslTruststoreCertificates": return target.getConfiguration().getSslTruststoreCertificates();
         case "ssltruststorelocation":
         case "sslTruststoreLocation": return target.getConfiguration().getSslTruststoreLocation();
         case "ssltruststorepassword":
diff --git a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaEndpointUriFactory.java b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaEndpointUriFactory.java
index e3b5b1a..cd4d433 100644
--- a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaEndpointUriFactory.java
+++ b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/VertxKafkaEndpointUriFactory.java
@@ -20,10 +20,11 @@ public class VertxKafkaEndpointUriFactory extends org.apache.camel.support.compo
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(98);
+        Set<String> props = new HashSet<>(103);
         props.add("synchronous");
         props.add("receiveBufferBytes");
         props.add("saslLoginRefreshWindowFactor");
+        props.add("socketConnectionSetupTimeoutMs");
         props.add("reconnectBackoffMaxMs");
         props.add("valueDeserializer");
         props.add("metricReporters");
@@ -49,7 +50,9 @@ public class VertxKafkaEndpointUriFactory extends org.apache.camel.support.compo
         props.add("saslKerberosKinitCmd");
         props.add("sslKeyPassword");
         props.add("keySerializer");
+        props.add("socketConnectionSetupTimeoutMaxMs");
         props.add("allowAutoCreateTopics");
+        props.add("sslTruststoreCertificates");
         props.add("maxPartitionFetchBytes");
         props.add("saslLoginCallbackHandlerClass");
         props.add("headerFilterStrategy");
@@ -63,10 +66,12 @@ public class VertxKafkaEndpointUriFactory extends org.apache.camel.support.compo
         props.add("maxInFlightRequestsPerConnection");
         props.add("partitionId");
         props.add("seekToOffset");
+        props.add("sslKeystoreKey");
         props.add("sslEngineFactoryClass");
         props.add("sslTrustmanagerAlgorithm");
         props.add("seekToPosition");
         props.add("saslKerberosMinTimeBeforeRelogin");
+        props.add("sslKeystoreCertificateChain");
         props.add("maxPollIntervalMs");
         props.add("reconnectBackoffMs");
         props.add("groupId");
diff --git a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/configuration/VertxKafkaConfiguration.java b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/configuration/VertxKafkaConfiguration.java
index d41ed44..8329473 100644
--- a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/configuration/VertxKafkaConfiguration.java
+++ b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/java/org/apache/camel/component/vertx/kafka/configuration/VertxKafkaConfiguration.java
@@ -58,7 +58,7 @@ public class VertxKafkaConfiguration
     @UriParam(label = "common", defaultValue = "2")
     private int metricsNumSamples = 2;
     // metrics.recording.level
-    @UriParam(label = "common", defaultValue = "INFO", enums = "INFO,DEBUG")
+    @UriParam(label = "common", defaultValue = "INFO", enums = "INFO,DEBUG,TRACE")
     private String metricsRecordingLevel = "INFO";
     // metric.reporters
     @UriParam(label = "common")
@@ -66,6 +66,12 @@ public class VertxKafkaConfiguration
     // request.timeout.ms
     @UriParam(label = "common", defaultValue = "30s", javaType = "java.time.Duration")
     private int requestTimeoutMs = 30000;
+    // socket.connection.setup.timeout.ms
+    @UriParam(label = "common", defaultValue = "10s", javaType = "java.time.Duration")
+    private long socketConnectionSetupTimeoutMs = 10000;
+    // socket.connection.setup.timeout.max.ms
+    @UriParam(label = "common", defaultValue = "2m7s", javaType = "java.time.Duration")
+    private long socketConnectionSetupTimeoutMaxMs = 127000;
     // connections.max.idle.ms
     @UriParam(label = "common", defaultValue = "9m", javaType = "java.time.Duration")
     private long connectionsMaxIdleMs = 540000;
@@ -102,6 +108,15 @@ public class VertxKafkaConfiguration
     // ssl.key.password
     @UriParam(label = "common,security")
     private String sslKeyPassword;
+    // ssl.keystore.key
+    @UriParam(label = "common,security")
+    private String sslKeystoreKey;
+    // ssl.keystore.certificate.chain
+    @UriParam(label = "common,security")
+    private String sslKeystoreCertificateChain;
+    // ssl.truststore.certificates
+    @UriParam(label = "common,security")
+    private String sslTruststoreCertificates;
     // ssl.truststore.type
     @UriParam(label = "common,security", defaultValue = "JKS")
     private String sslTruststoreType = "JKS";
@@ -521,6 +536,37 @@ public class VertxKafkaConfiguration
     }
 
     /**
+     * The amount of time the client will wait for the socket connection to be
+     * established. If the connection is not built before the timeout elapses,
+     * clients will close the socket channel.
+     */
+    public void setSocketConnectionSetupTimeoutMs(
+            long socketConnectionSetupTimeoutMs) {
+        this.socketConnectionSetupTimeoutMs = socketConnectionSetupTimeoutMs;
+    }
+
+    public long getSocketConnectionSetupTimeoutMs() {
+        return socketConnectionSetupTimeoutMs;
+    }
+
+    /**
+     * The maximum amount of time the client will wait for the socket connection
+     * to be established. The connection setup timeout will increase
+     * exponentially for each consecutive connection failure up to this maximum.
+     * To avoid connection storms, a randomization factor of 0.2 will be applied
+     * to the timeout resulting in a random range between 20% below and 20%
+     * above the computed value.
+     */
+    public void setSocketConnectionSetupTimeoutMaxMs(
+            long socketConnectionSetupTimeoutMaxMs) {
+        this.socketConnectionSetupTimeoutMaxMs = socketConnectionSetupTimeoutMaxMs;
+    }
+
+    public long getSocketConnectionSetupTimeoutMaxMs() {
+        return socketConnectionSetupTimeoutMaxMs;
+    }
+
+    /**
      * Close idle connections after the number of milliseconds specified by this
      * config.
      */
@@ -659,7 +705,8 @@ public class VertxKafkaConfiguration
 
     /**
      * The store password for the key store file. This is optional for client
-     * and only needed if ssl.keystore.location is configured. 
+     * and only needed if 'ssl.keystore.location' is configured.  Key store
+     * password is not supported for PEM format.
      */
     public void setSslKeystorePassword(String sslKeystorePassword) {
         this.sslKeystorePassword = sslKeystorePassword;
@@ -670,8 +717,9 @@ public class VertxKafkaConfiguration
     }
 
     /**
-     * The password of the private key in the key store file. This is optional
-     * for client.
+     * The password of the private key in the key store file orthe PEM key
+     * specified in `ssl.keystore.key'. This is required for clients only if
+     * two-way authentication is configured.
      */
     public void setSslKeyPassword(String sslKeyPassword) {
         this.sslKeyPassword = sslKeyPassword;
@@ -682,6 +730,46 @@ public class VertxKafkaConfiguration
     }
 
     /**
+     * Private key in the format specified by 'ssl.keystore.type'. Default SSL
+     * engine factory supports only PEM format with PKCS#8 keys. If the key is
+     * encrypted, key password must be specified using 'ssl.key.password'
+     */
+    public void setSslKeystoreKey(String sslKeystoreKey) {
+        this.sslKeystoreKey = sslKeystoreKey;
+    }
+
+    public String getSslKeystoreKey() {
+        return sslKeystoreKey;
+    }
+
+    /**
+     * Certificate chain in the format specified by 'ssl.keystore.type'. Default
+     * SSL engine factory supports only PEM format with a list of X.509
+     * certificates
+     */
+    public void setSslKeystoreCertificateChain(
+            String sslKeystoreCertificateChain) {
+        this.sslKeystoreCertificateChain = sslKeystoreCertificateChain;
+    }
+
+    public String getSslKeystoreCertificateChain() {
+        return sslKeystoreCertificateChain;
+    }
+
+    /**
+     * Trusted certificates in the format specified by 'ssl.truststore.type'.
+     * Default SSL engine factory supports only PEM format with X.509
+     * certificates.
+     */
+    public void setSslTruststoreCertificates(String sslTruststoreCertificates) {
+        this.sslTruststoreCertificates = sslTruststoreCertificates;
+    }
+
+    public String getSslTruststoreCertificates() {
+        return sslTruststoreCertificates;
+    }
+
+    /**
      * The file format of the trust store file.
      */
     public void setSslTruststoreType(String sslTruststoreType) {
@@ -704,8 +792,9 @@ public class VertxKafkaConfiguration
     }
 
     /**
-     * The password for the trust store file. If a password is not set access to
-     * the truststore is still available, but integrity checking is disabled.
+     * The password for the trust store file. If a password is not set, trust
+     * store file configured will still be used, but integrity checking is
+     * disabled. Trust store password is not supported for PEM format.
      */
     public void setSslTruststorePassword(String sslTruststorePassword) {
         this.sslTruststorePassword = sslTruststorePassword;
@@ -1539,11 +1628,17 @@ public class VertxKafkaConfiguration
     }
 
     /**
-     * The configuration controls how long <code>KafkaProducer.send()</code> and
-     * <code>KafkaProducer.partitionsFor()</code> will block.These methods can
-     * be blocked either because the buffer is full or metadata
-     * unavailable.Blocking in the user-supplied serializers or partitioner will
-     * not be counted against this timeout.
+     * The configuration controls how long the <code>KafkaProducer</code>'s
+     * <code>send()</code>, <code>partitionsFor()</code>,
+     * <code>initTransactions()</code>, <code>sendOffsetsToTransaction()</code>,
+     * <code>commitTransaction()</code> and <code>abortTransaction()</code>
+     * methods will block. For <code>send()</code> this timeout bounds the total
+     * time waiting for both metadata fetch and buffer allocation (blocking in
+     * the user-supplied serializers or partitioner is not counted against this
+     * timeout). For <code>partitionsFor()</code> this timeout bounds the time
+     * spent waiting for metadata if it is unavailable. The transaction-related
+     * methods always block, but may timeout if the transaction coordinator
+     * could not be discovered or did not respond within the timeout.
      */
     public void setMaxBlockMs(long maxBlockMs) {
         this.maxBlockMs = maxBlockMs;
@@ -1642,7 +1737,7 @@ public class VertxKafkaConfiguration
      * wait for a transaction status update from the producer before proactively
      * aborting the ongoing transaction.If this value is larger than the
      * transaction.max.timeout.ms setting in the broker, the request will fail
-     * with a <code>InvalidTransactionTimeout</code> error.
+     * with a <code>InvalidTxnTimeoutException</code> error.
      */
     public void setTransactionTimeoutMs(int transactionTimeoutMs) {
         this.transactionTimeoutMs = transactionTimeoutMs;
@@ -1692,6 +1787,8 @@ public class VertxKafkaConfiguration
         addPropertyIfNotNull(props, "metrics.recording.level", metricsRecordingLevel);
         addPropertyIfNotNull(props, "metric.reporters", metricReporters);
         addPropertyIfNotNull(props, "request.timeout.ms", requestTimeoutMs);
+        addPropertyIfNotNull(props, "socket.connection.setup.timeout.ms", socketConnectionSetupTimeoutMs);
+        addPropertyIfNotNull(props, "socket.connection.setup.timeout.max.ms", socketConnectionSetupTimeoutMaxMs);
         addPropertyIfNotNull(props, "connections.max.idle.ms", connectionsMaxIdleMs);
         addPropertyIfNotNull(props, "interceptor.classes", interceptorClasses);
         addPropertyIfNotNull(props, "security.providers", securityProviders);
@@ -1704,6 +1801,9 @@ public class VertxKafkaConfiguration
         addPropertyIfNotNull(props, "ssl.keystore.location", sslKeystoreLocation);
         addPropertyIfNotNull(props, "ssl.keystore.password", sslKeystorePassword);
         addPropertyIfNotNull(props, "ssl.key.password", sslKeyPassword);
+        addPropertyIfNotNull(props, "ssl.keystore.key", sslKeystoreKey);
+        addPropertyIfNotNull(props, "ssl.keystore.certificate.chain", sslKeystoreCertificateChain);
+        addPropertyIfNotNull(props, "ssl.truststore.certificates", sslTruststoreCertificates);
         addPropertyIfNotNull(props, "ssl.truststore.type", sslTruststoreType);
         addPropertyIfNotNull(props, "ssl.truststore.location", sslTruststoreLocation);
         addPropertyIfNotNull(props, "ssl.truststore.password", sslTruststorePassword);
@@ -1772,6 +1872,8 @@ public class VertxKafkaConfiguration
         addPropertyIfNotNull(props, "metrics.recording.level", metricsRecordingLevel);
         addPropertyIfNotNull(props, "metric.reporters", metricReporters);
         addPropertyIfNotNull(props, "request.timeout.ms", requestTimeoutMs);
+        addPropertyIfNotNull(props, "socket.connection.setup.timeout.ms", socketConnectionSetupTimeoutMs);
+        addPropertyIfNotNull(props, "socket.connection.setup.timeout.max.ms", socketConnectionSetupTimeoutMaxMs);
         addPropertyIfNotNull(props, "connections.max.idle.ms", connectionsMaxIdleMs);
         addPropertyIfNotNull(props, "interceptor.classes", interceptorClasses);
         addPropertyIfNotNull(props, "security.providers", securityProviders);
@@ -1784,6 +1886,9 @@ public class VertxKafkaConfiguration
         addPropertyIfNotNull(props, "ssl.keystore.location", sslKeystoreLocation);
         addPropertyIfNotNull(props, "ssl.keystore.password", sslKeystorePassword);
         addPropertyIfNotNull(props, "ssl.key.password", sslKeyPassword);
+        addPropertyIfNotNull(props, "ssl.keystore.key", sslKeystoreKey);
+        addPropertyIfNotNull(props, "ssl.keystore.certificate.chain", sslKeystoreCertificateChain);
+        addPropertyIfNotNull(props, "ssl.truststore.certificates", sslTruststoreCertificates);
         addPropertyIfNotNull(props, "ssl.truststore.type", sslTruststoreType);
         addPropertyIfNotNull(props, "ssl.truststore.location", sslTruststoreLocation);
         addPropertyIfNotNull(props, "ssl.truststore.password", sslTruststorePassword);
diff --git a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/resources/org/apache/camel/component/vertx/kafka/vertx-kafka.json b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/resources/org/apache/camel/component/vertx/kafka/vertx-kafka.json
index eeb88b5..31d231a 100644
--- a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/resources/org/apache/camel/component/vertx/kafka/vertx-kafka.json
+++ b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/generated/resources/org/apache/camel/component/vertx/kafka/vertx-kafka.json
@@ -33,7 +33,7 @@
     "metadataMaxAgeMs": { "kind": "property", "displayName": "Metadata Max Age Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The period of time in milliseconds after which we force a refresh of metad [...]
     "metricReporters": { "kind": "property", "displayName": "Metric Reporters", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.me [...]
     "metricsNumSamples": { "kind": "property", "displayName": "Metrics Num Samples", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The number of samples maintained to compute metrics." },
-    "metricsRecordingLevel": { "kind": "property", "displayName": "Metrics Recording Level", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "INFO", "DEBUG" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The highest recording le [...]
+    "metricsRecordingLevel": { "kind": "property", "displayName": "Metrics Recording Level", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "INFO", "DEBUG", "TRACE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The highest rec [...]
     "metricsSampleWindowMs": { "kind": "property", "displayName": "Metrics Sample Window Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The window of time a metrics sample is computed over." },
     "partitionId": { "kind": "property", "displayName": "Partition Id", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The partition to which the record will be sent (or null if no partition was specified) or read f [...]
     "receiveBufferBytes": { "kind": "property", "displayName": "Receive Buffer Bytes", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 32768, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. [...]
@@ -42,6 +42,8 @@
     "requestTimeoutMs": { "kind": "property", "displayName": "Request Timeout Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls the maximum amount of time the client will wait  [...]
     "retryBackoffMs": { "kind": "property", "displayName": "Retry Backoff Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100ms", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The amount of time to wait before attempting to retry a failed request to a  [...]
     "sendBufferBytes": { "kind": "property", "displayName": "Send Buffer Bytes", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 131072, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the  [...]
+    "socketConnectionSetupTimeoutMaxMs": { "kind": "property", "displayName": "Socket Connection Setup Timeout Max Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "2m7s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time the clien [...]
+    "socketConnectionSetupTimeoutMs": { "kind": "property", "displayName": "Socket Connection Setup Timeout Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The amount of time the client will wait for  [...]
     "allowAutoCreateTopics": { "kind": "property", "displayName": "Allow Auto Create Topics", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Allow automatic topic creation on the broker when subscrib [...]
     "autoCommitIntervalMs": { "kind": "property", "displayName": "Auto Commit Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The frequency in milliseconds that the consumer offsets are aut [...]
     "autoOffsetReset": { "kind": "property", "displayName": "Auto Offset Reset", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "latest", "earliest", "none" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "latest", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "What to do when t [...]
@@ -76,14 +78,14 @@
     "keySerializer": { "kind": "property", "displayName": "Key Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Serializer class [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "lingerMs": { "kind": "property", "displayName": "Linger Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The producer groups together any records that arrive in between request transmissions i [...]
-    "maxBlockMs": { "kind": "property", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long KafkaProducer.send() and KafkaProducer.partitio [...]
+    "maxBlockMs": { "kind": "property", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), in [...]
     "maxInFlightRequestsPerConnection": { "kind": "property", "displayName": "Max In Flight Requests Per Connection", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of unacknowledged requ [...]
     "maxRequestSize": { "kind": "property", "displayName": "Max Request Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1048576, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum size of a request in bytes. This setting will limit the number [...]
     "metadataMaxIdleMs": { "kind": "property", "displayName": "Metadata Max Idle Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Controls how long the producer will cache metadata for a topic that' [...]
     "partitionerClass": { "kind": "property", "displayName": "Partitioner Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Pa [...]
     "retries": { "kind": "property", "displayName": "Retries", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2147483647, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Setting a value greater than zero will cause the client to resend any record whose send [...]
     "transactionalId": { "kind": "property", "displayName": "Transactional Id", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The TransactionalId to use for transactional delivery. This enables reliability semant [...]
-    "transactionTimeoutMs": { "kind": "property", "displayName": "Transaction Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in ms that the transaction coordinato [...]
+    "transactionTimeoutMs": { "kind": "property", "displayName": "Transaction Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in ms that the transaction coordinato [...]
     "valueSerializer": { "kind": "property", "displayName": "Value Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Serializer c [...]
     "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
     "vertx": { "kind": "property", "displayName": "Vertx", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.vertx.core.Vertx", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing vertx instead of creating a new instance" },
@@ -109,16 +111,19 @@
     "sslEndpointIdentificationAlgorithm": { "kind": "property", "displayName": "Ssl Endpoint Identification 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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The endpoint i [...]
     "sslEngineFactoryClass": { "kind": "property", "displayName": "Ssl Engine Factory Class", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The class of type org.apache.kafka.common.security.auth.SslEngine [...]
     "sslKeymanagerAlgorithm": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by key manager fac [...]
-    "sslKeyPassword": { "kind": "property", "displayName": "Ssl Key Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file. This is optional for client." },
+    "sslKeyPassword": { "kind": "property", "displayName": "Ssl Key Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file orthe PEM key specified in [...]
+    "sslKeystoreCertificateChain": { "kind": "property", "displayName": "Ssl Keystore Certificate Chain", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Certificate chain in the format specified by 'ssl.key [...]
+    "sslKeystoreKey": { "kind": "property", "displayName": "Ssl Keystore Key", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine f [...]
     "sslKeystoreLocation": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The location of the key store file. This is optional for client and ca [...]
-    "sslKeystorePassword": { "kind": "property", "displayName": "Ssl Keystore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file. This is optional for client [...]
+    "sslKeystorePassword": { "kind": "property", "displayName": "Ssl Keystore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file. This is optional for client [...]
     "sslKeystoreType": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The file format of the key store file. This is optional [...]
     "sslProtocol": { "kind": "property", "displayName": "Ssl Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TLSv1.2", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The SSL protocol used to generate the SSLContext. The defaul [...]
     "sslProvider": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The name of the security provider used for SSL connections. Default value is the defaul [...]
     "sslSecureRandomImplementation": { "kind": "property", "displayName": "Ssl Secure Random Implementation", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The SecureRandom PRNG implementation to use for S [...]
     "sslTrustmanagerAlgorithm": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by trust manager  [...]
+    "sslTruststoreCertificates": { "kind": "property", "displayName": "Ssl Truststore Certificates", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Trusted certificates in the format specified by 'ssl.trust [...]
     "sslTruststoreLocation": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The location of the trust store file." },
-    "sslTruststorePassword": { "kind": "property", "displayName": "Ssl Truststore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file. If a password is not set ac [...]
+    "sslTruststorePassword": { "kind": "property", "displayName": "Ssl Truststore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file. If a password is not set, t [...]
     "sslTruststoreType": { "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The file format of the trust store file." }
   },
   "properties": {
@@ -133,7 +138,7 @@
     "metadataMaxAgeMs": { "kind": "parameter", "displayName": "Metadata Max Age Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The period of time in milliseconds after which we force a refresh of meta [...]
     "metricReporters": { "kind": "parameter", "displayName": "Metric Reporters", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.m [...]
     "metricsNumSamples": { "kind": "parameter", "displayName": "Metrics Num Samples", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The number of samples maintained to compute metrics." },
-    "metricsRecordingLevel": { "kind": "parameter", "displayName": "Metrics Recording Level", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "INFO", "DEBUG" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The highest recording l [...]
+    "metricsRecordingLevel": { "kind": "parameter", "displayName": "Metrics Recording Level", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "INFO", "DEBUG", "TRACE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The highest re [...]
     "metricsSampleWindowMs": { "kind": "parameter", "displayName": "Metrics Sample Window Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The window of time a metrics sample is computed over." },
     "partitionId": { "kind": "parameter", "displayName": "Partition Id", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The partition to which the record will be sent (or null if no partition was specified) or read  [...]
     "receiveBufferBytes": { "kind": "parameter", "displayName": "Receive Buffer Bytes", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 32768, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data [...]
@@ -142,6 +147,8 @@
     "requestTimeoutMs": { "kind": "parameter", "displayName": "Request Timeout Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls the maximum amount of time the client will wait [...]
     "retryBackoffMs": { "kind": "parameter", "displayName": "Retry Backoff Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100ms", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The amount of time to wait before attempting to retry a failed request to a [...]
     "sendBufferBytes": { "kind": "parameter", "displayName": "Send Buffer Bytes", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 131072, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the [...]
+    "socketConnectionSetupTimeoutMaxMs": { "kind": "parameter", "displayName": "Socket Connection Setup Timeout Max Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "2m7s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time the clie [...]
+    "socketConnectionSetupTimeoutMs": { "kind": "parameter", "displayName": "Socket Connection Setup Timeout Ms", "group": "common", "label": "common", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The amount of time the client will wait for [...]
     "allowAutoCreateTopics": { "kind": "parameter", "displayName": "Allow Auto Create Topics", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Allow automatic topic creation on the broker when subscri [...]
     "autoCommitIntervalMs": { "kind": "parameter", "displayName": "Auto Commit Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5s", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The frequency in milliseconds that the consumer offsets are au [...]
     "autoOffsetReset": { "kind": "parameter", "displayName": "Auto Offset Reset", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "latest", "earliest", "none" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "latest", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "What to do when  [...]
@@ -178,14 +185,14 @@
     "keySerializer": { "kind": "parameter", "displayName": "Key Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Serializer clas [...]
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
     "lingerMs": { "kind": "parameter", "displayName": "Linger Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0ms", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The producer groups together any records that arrive in between request transmissions  [...]
-    "maxBlockMs": { "kind": "parameter", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long KafkaProducer.send() and KafkaProducer.partiti [...]
+    "maxBlockMs": { "kind": "parameter", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), i [...]
     "maxInFlightRequestsPerConnection": { "kind": "parameter", "displayName": "Max In Flight Requests Per Connection", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of unacknowledged req [...]
     "maxRequestSize": { "kind": "parameter", "displayName": "Max Request Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1048576, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum size of a request in bytes. This setting will limit the numbe [...]
     "metadataMaxIdleMs": { "kind": "parameter", "displayName": "Metadata Max Idle Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Controls how long the producer will cache metadata for a topic that [...]
     "partitionerClass": { "kind": "parameter", "displayName": "Partitioner Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "P [...]
     "retries": { "kind": "parameter", "displayName": "Retries", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2147483647, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Setting a value greater than zero will cause the client to resend any record whose sen [...]
     "transactionalId": { "kind": "parameter", "displayName": "Transactional Id", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The TransactionalId to use for transactional delivery. This enables reliability seman [...]
-    "transactionTimeoutMs": { "kind": "parameter", "displayName": "Transaction Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in ms that the transaction coordinat [...]
+    "transactionTimeoutMs": { "kind": "parameter", "displayName": "Transaction Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1m", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in ms that the transaction coordinat [...]
     "valueSerializer": { "kind": "parameter", "displayName": "Value Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Serializer  [...]
     "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
     "saslClientCallbackHandlerClass": { "kind": "parameter", "displayName": "Sasl Client Callback Handler Class", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The fully qualified name of a SASL client cal [...]
@@ -209,16 +216,19 @@
     "sslEndpointIdentificationAlgorithm": { "kind": "parameter", "displayName": "Ssl Endpoint Identification 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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The endpoint  [...]
     "sslEngineFactoryClass": { "kind": "parameter", "displayName": "Ssl Engine Factory Class", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The class of type org.apache.kafka.common.security.auth.SslEngin [...]
     "sslKeymanagerAlgorithm": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by key manager fa [...]
-    "sslKeyPassword": { "kind": "parameter", "displayName": "Ssl Key Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file. This is optional for cli [...]
+    "sslKeyPassword": { "kind": "parameter", "displayName": "Ssl Key Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file orthe PEM key specified i [...]
+    "sslKeystoreCertificateChain": { "kind": "parameter", "displayName": "Ssl Keystore Certificate Chain", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Certificate chain in the format specified by 'ssl.ke [...]
+    "sslKeystoreKey": { "kind": "parameter", "displayName": "Ssl Keystore Key", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine  [...]
     "sslKeystoreLocation": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The location of the key store file. This is optional for client and c [...]
-    "sslKeystorePassword": { "kind": "parameter", "displayName": "Ssl Keystore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file. This is optional for clien [...]
+    "sslKeystorePassword": { "kind": "parameter", "displayName": "Ssl Keystore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file. This is optional for clien [...]
     "sslKeystoreType": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The file format of the key store file. This is optiona [...]
     "sslProtocol": { "kind": "parameter", "displayName": "Ssl Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TLSv1.2", "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The SSL protocol used to generate the SSLContext. The defau [...]
     "sslProvider": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The name of the security provider used for SSL connections. Default value is the defau [...]
     "sslSecureRandomImplementation": { "kind": "parameter", "displayName": "Ssl Secure Random Implementation", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The SecureRandom PRNG implementation to use for  [...]
     "sslTrustmanagerAlgorithm": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by trust manager [...]
+    "sslTruststoreCertificates": { "kind": "parameter", "displayName": "Ssl Truststore Certificates", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "Trusted certificates in the format specified by 'ssl.trus [...]
     "sslTruststoreLocation": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The location of the trust store file." },
-    "sslTruststorePassword": { "kind": "parameter", "displayName": "Ssl Truststore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file. If a password is not set a [...]
+    "sslTruststorePassword": { "kind": "parameter", "displayName": "Ssl Truststore Password", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file. If a password is not set,  [...]
     "sslTruststoreType": { "kind": "parameter", "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.vertx.kafka.configuration.VertxKafkaConfiguration", "configurationField": "configuration", "description": "The file format of the trust store file." }
   }
 }
diff --git a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/main/docs/vertx-kafka-component.adoc b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/main/docs/vertx-kafka-component.adoc
index f598db2..1137e50 100644
--- a/components/camel-vertx-kafka/camel-vertx-kafka-component/src/main/docs/vertx-kafka-component.adoc
+++ b/components/camel-vertx-kafka/camel-vertx-kafka-component/src/main/docs/vertx-kafka-component.adoc
@@ -74,7 +74,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (97 parameters):
+=== Query Parameters (102 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -90,7 +90,7 @@ with the following path and query parameters:
 | *metadataMaxAgeMs* (common) | The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions. | 5m | long
 | *metricReporters* (common) | A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.metrics.MetricsReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics. |  | String
 | *metricsNumSamples* (common) | The number of samples maintained to compute metrics. | 2 | int
-| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 2 enums and the value can be one of: INFO, DEBUG | INFO | String
+| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 3 enums and the value can be one of: INFO, DEBUG, TRACE | INFO | String
 | *metricsSampleWindowMs* (common) | The window of time a metrics sample is computed over. | 30s | long
 | *partitionId* (common) | The partition to which the record will be sent (or null if no partition was specified) or read from a particular partition if set. Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence over this config |  | Integer
 | *receiveBufferBytes* (common) | The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used. | 32768 | int
@@ -99,6 +99,8 @@ with the following path and query parameters:
 | *requestTimeoutMs* (common) | The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted. This should be larger than replica.lag.time.max.ms (a broker configuration) to reduce the possibility of message duplication due to unnecessary producer retries. | 30s | int
 | *retryBackoffMs* (common) | The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios. | 100ms | long
 | *sendBufferBytes* (common) | The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used. | 131072 | int
+| *socketConnectionSetupTimeout{zwsp}MaxMs* (common) | The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value. | 2m7s | long
+| *socketConnectionSetupTimeoutMs* (common) | The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel. | 10s | long
 | *allowAutoCreateTopics* (consumer) | Allow automatic topic creation on the broker when subscribing to or assigning a topic. A topic being subscribed to will be automatically created only if the broker allows for it using auto.create.topics.enable broker configuration. This configuration must be set to false when using brokers older than 0.11.0 | true | boolean
 | *autoCommitIntervalMs* (consumer) | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5s | int
 | *autoOffsetReset* (consumer) | What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted): earliest: automatically reset the offset to the earliest offsetlatest: automatically reset the offset to the latest offsetnone: throw exception to the consumer if no previous offset is found for the consumer's groupanything else: throw exception to the consumer. There are 3 enums and the value can be [...]
@@ -135,14 +137,14 @@ with the following path and query parameters:
 | *keySerializer* (producer) | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *lingerMs* (producer) | The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay&mdash;that is, rather than immediately sending out a record the producer  [...]
-| *maxBlockMs* (producer) | The configuration controls how long KafkaProducer.send() and KafkaProducer.partitionsFor() will block.These methods can be blocked either because the buffer is full or metadata unavailable.Blocking in the user-supplied serializers or partitioner will not be counted against this timeout. | 1m | long
+| *maxBlockMs* (producer) | The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block. For send() this timeout bounds the total time waiting for both metadata fetch and buffer allocation (blocking in the user-supplied serializers or partitioner is not counted against this timeout). For partitionsFor() this timeout bounds the time spent waiting for metadata  [...]
 | *maxInFlightRequestsPer{zwsp}Connection* (producer) | The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled). | 5 | int
 | *maxRequestSize* (producer) | The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests. This is also effectively a cap on the maximum uncompressed record batch size. Note that the server has its own cap on the record batch size (after compression if compression is enabled) which may be different from this. | 1048576 | int
 | *metadataMaxIdleMs* (producer) | Controls how long the producer will cache metadata for a topic that's idle. If the elapsed time since a topic was last produced to exceeds the metadata idle duration, then the topic's metadata is forgotten and the next access to it will force a metadata fetch request. | 5m | long
 | *partitionerClass* (producer) | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | org.apache.kafka.clients.producer.internals.DefaultPartitioner | String
 | *retries* (producer) | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without setting max.in.flight.requests.per.connection to 1 will potentially change the ordering of records because if two batches are sent to a single partition, and the first fails and is retried but the second succeeds [...]
 | *transactionalId* (producer) | The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. If a TransactionalId is configured, enable.idempotence is implied. By default the TransactionI [...]
-| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTransactionTimeout error. | 1m | int
+| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTxnTimeoutException error. | 1m | int
 | *valueSerializer* (producer) | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 | *saslClientCallbackHandlerClass* (security) | The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface. |  | String
@@ -166,23 +168,26 @@ with the following path and query parameters:
 | *sslEndpointIdentification{zwsp}Algorithm* (security) | The endpoint identification algorithm to validate server hostname using server certificate. | https | String
 | *sslEngineFactoryClass* (security) | The class of type org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine objects. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory |  | String
 | *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key store file. This is optional for client. |  | String
+| *sslKeyPassword* (security) | The password of the private key in the key store file orthe PEM key specified in ssl.keystore.key'. This is required for clients only if two-way authentication is configured. |  | String
+| *sslKeystoreCertificateChain* (security) | Certificate chain in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with a list of X.509 certificates |  | String
+| *sslKeystoreKey* (security) | Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password' |  | String
 | *sslKeystoreLocation* (security) | The location of the key store file. This is optional for client and can be used for two-way authentication for client. |  | String
-| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. |  | String
+| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format. |  | String
 | *sslKeystoreType* (security) | The file format of the key store file. This is optional for client. | JKS | String
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients wil [...]
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslSecureRandomImplementation* (security) | The SecureRandom PRNG implementation to use for SSL cryptography operations. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreCertificates* (security) | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. |  | String
 | *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
-| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set access to the truststore is still available, but integrity checking is disabled. |  | String
+| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format. |  | String
 | *sslTruststoreType* (security) | The file format of the trust store file. | JKS | String
 |===
 // endpoint options: END
 
 == Component Options
 // component options: START
-The Vert.x Kafka component supports 98 options, which are listed below.
+The Vert.x Kafka component supports 103 options, which are listed below.
 
 
 
@@ -200,7 +205,7 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *metadataMaxAgeMs* (common) | The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions. | 5m | long
 | *metricReporters* (common) | A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.metrics.MetricsReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics. |  | String
 | *metricsNumSamples* (common) | The number of samples maintained to compute metrics. | 2 | int
-| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 2 enums and the value can be one of: INFO, DEBUG | INFO | String
+| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 3 enums and the value can be one of: INFO, DEBUG, TRACE | INFO | String
 | *metricsSampleWindowMs* (common) | The window of time a metrics sample is computed over. | 30s | long
 | *partitionId* (common) | The partition to which the record will be sent (or null if no partition was specified) or read from a particular partition if set. Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence over this config |  | Integer
 | *receiveBufferBytes* (common) | The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used. | 32768 | int
@@ -209,6 +214,8 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *requestTimeoutMs* (common) | The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted. This should be larger than replica.lag.time.max.ms (a broker configuration) to reduce the possibility of message duplication due to unnecessary producer retries. | 30s | int
 | *retryBackoffMs* (common) | The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios. | 100ms | long
 | *sendBufferBytes* (common) | The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used. | 131072 | int
+| *socketConnectionSetupTimeout{zwsp}MaxMs* (common) | The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value. | 2m7s | long
+| *socketConnectionSetupTimeoutMs* (common) | The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel. | 10s | long
 | *allowAutoCreateTopics* (consumer) | Allow automatic topic creation on the broker when subscribing to or assigning a topic. A topic being subscribed to will be automatically created only if the broker allows for it using auto.create.topics.enable broker configuration. This configuration must be set to false when using brokers older than 0.11.0 | true | boolean
 | *autoCommitIntervalMs* (consumer) | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5s | int
 | *autoOffsetReset* (consumer) | What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted): earliest: automatically reset the offset to the earliest offsetlatest: automatically reset the offset to the latest offsetnone: throw exception to the consumer if no previous offset is found for the consumer's groupanything else: throw exception to the consumer. There are 3 enums and the value can be [...]
@@ -243,14 +250,14 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *keySerializer* (producer) | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *lingerMs* (producer) | The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay&mdash;that is, rather than immediately sending out a record the producer  [...]
-| *maxBlockMs* (producer) | The configuration controls how long KafkaProducer.send() and KafkaProducer.partitionsFor() will block.These methods can be blocked either because the buffer is full or metadata unavailable.Blocking in the user-supplied serializers or partitioner will not be counted against this timeout. | 1m | long
+| *maxBlockMs* (producer) | The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block. For send() this timeout bounds the total time waiting for both metadata fetch and buffer allocation (blocking in the user-supplied serializers or partitioner is not counted against this timeout). For partitionsFor() this timeout bounds the time spent waiting for metadata  [...]
 | *maxInFlightRequestsPer{zwsp}Connection* (producer) | The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled). | 5 | int
 | *maxRequestSize* (producer) | The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests. This is also effectively a cap on the maximum uncompressed record batch size. Note that the server has its own cap on the record batch size (after compression if compression is enabled) which may be different from this. | 1048576 | int
 | *metadataMaxIdleMs* (producer) | Controls how long the producer will cache metadata for a topic that's idle. If the elapsed time since a topic was last produced to exceeds the metadata idle duration, then the topic's metadata is forgotten and the next access to it will force a metadata fetch request. | 5m | long
 | *partitionerClass* (producer) | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | org.apache.kafka.clients.producer.internals.DefaultPartitioner | String
 | *retries* (producer) | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without setting max.in.flight.requests.per.connection to 1 will potentially change the ordering of records because if two batches are sent to a single partition, and the first fails and is retried but the second succeeds [...]
 | *transactionalId* (producer) | The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. If a TransactionalId is configured, enable.idempotence is implied. By default the TransactionI [...]
-| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTransactionTimeout error. | 1m | int
+| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTxnTimeoutException error. | 1m | int
 | *valueSerializer* (producer) | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *vertx* (advanced) | *Autowired* To use an existing vertx instead of creating a new instance |  | Vertx
@@ -276,16 +283,19 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *sslEndpointIdentification{zwsp}Algorithm* (security) | The endpoint identification algorithm to validate server hostname using server certificate. | https | String
 | *sslEngineFactoryClass* (security) | The class of type org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine objects. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory |  | String
 | *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key store file. This is optional for client. |  | String
+| *sslKeyPassword* (security) | The password of the private key in the key store file orthe PEM key specified in ssl.keystore.key'. This is required for clients only if two-way authentication is configured. |  | String
+| *sslKeystoreCertificateChain* (security) | Certificate chain in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with a list of X.509 certificates |  | String
+| *sslKeystoreKey* (security) | Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password' |  | String
 | *sslKeystoreLocation* (security) | The location of the key store file. This is optional for client and can be used for two-way authentication for client. |  | String
-| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. |  | String
+| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format. |  | String
 | *sslKeystoreType* (security) | The file format of the key store file. This is optional for client. | JKS | String
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients wil [...]
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslSecureRandomImplementation* (security) | The SecureRandom PRNG implementation to use for SSL cryptography operations. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreCertificates* (security) | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. |  | String
 | *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
-| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set access to the truststore is still available, but integrity checking is disabled. |  | String
+| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format. |  | String
 | *sslTruststoreType* (security) | The file format of the trust store file. | JKS | String
 |===
 // component options: END
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/VertxKafkaComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/VertxKafkaComponentBuilderFactory.java
index 569624e..250971c 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/VertxKafkaComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/VertxKafkaComponentBuilderFactory.java
@@ -423,6 +423,45 @@ public interface VertxKafkaComponentBuilderFactory {
             return this;
         }
         /**
+         * The maximum amount of time the client will wait for the socket
+         * connection to be established. The connection setup timeout will
+         * increase exponentially for each consecutive connection failure up to
+         * this maximum. To avoid connection storms, a randomization factor of
+         * 0.2 will be applied to the timeout resulting in a random range
+         * between 20% below and 20% above the computed value.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 2m7s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMaxMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaComponentBuilder socketConnectionSetupTimeoutMaxMs(
+                long socketConnectionSetupTimeoutMaxMs) {
+            doSetProperty("socketConnectionSetupTimeoutMaxMs", socketConnectionSetupTimeoutMaxMs);
+            return this;
+        }
+        /**
+         * The amount of time the client will wait for the socket connection to
+         * be established. If the connection is not built before the timeout
+         * elapses, clients will close the socket channel.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 10s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaComponentBuilder socketConnectionSetupTimeoutMs(
+                long socketConnectionSetupTimeoutMs) {
+            doSetProperty("socketConnectionSetupTimeoutMs", socketConnectionSetupTimeoutMs);
+            return this;
+        }
+        /**
          * Allow automatic topic creation on the broker when subscribing to or
          * assigning a topic. A topic being subscribed to will be automatically
          * created only if the broker allows for it using
@@ -1145,11 +1184,16 @@ public interface VertxKafkaComponentBuilderFactory {
             return this;
         }
         /**
-         * The configuration controls how long KafkaProducer.send() and
-         * KafkaProducer.partitionsFor() will block.These methods can be blocked
-         * either because the buffer is full or metadata unavailable.Blocking in
-         * the user-supplied serializers or partitioner will not be counted
-         * against this timeout.
+         * The configuration controls how long the KafkaProducer's send(),
+         * partitionsFor(), initTransactions(), sendOffsetsToTransaction(),
+         * commitTransaction() and abortTransaction() methods will block. For
+         * send() this timeout bounds the total time waiting for both metadata
+         * fetch and buffer allocation (blocking in the user-supplied
+         * serializers or partitioner is not counted against this timeout). For
+         * partitionsFor() this timeout bounds the time spent waiting for
+         * metadata if it is unavailable. The transaction-related methods always
+         * block, but may timeout if the transaction coordinator could not be
+         * discovered or did not respond within the timeout.
          * 
          * The option is a: &lt;code&gt;long&lt;/code&gt; type.
          * 
@@ -1297,7 +1341,7 @@ public interface VertxKafkaComponentBuilderFactory {
          * will wait for a transaction status update from the producer before
          * proactively aborting the ongoing transaction.If this value is larger
          * than the transaction.max.timeout.ms setting in the broker, the
-         * request will fail with a InvalidTransactionTimeout error.
+         * request will fail with a InvalidTxnTimeoutException error.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -1769,8 +1813,9 @@ public interface VertxKafkaComponentBuilderFactory {
             return this;
         }
         /**
-         * The password of the private key in the key store file. This is
-         * optional for client.
+         * The password of the private key in the key store file orthe PEM key
+         * specified in ssl.keystore.key'. This is required for clients only if
+         * two-way authentication is configured.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -1785,6 +1830,41 @@ public interface VertxKafkaComponentBuilderFactory {
             return this;
         }
         /**
+         * Certificate chain in the format specified by 'ssl.keystore.type'.
+         * Default SSL engine factory supports only PEM format with a list of
+         * X.509 certificates.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslKeystoreCertificateChain the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaComponentBuilder sslKeystoreCertificateChain(
+                java.lang.String sslKeystoreCertificateChain) {
+            doSetProperty("sslKeystoreCertificateChain", sslKeystoreCertificateChain);
+            return this;
+        }
+        /**
+         * Private key in the format specified by 'ssl.keystore.type'. Default
+         * SSL engine factory supports only PEM format with PKCS#8 keys. If the
+         * key is encrypted, key password must be specified using
+         * 'ssl.key.password'.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslKeystoreKey the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaComponentBuilder sslKeystoreKey(
+                java.lang.String sslKeystoreKey) {
+            doSetProperty("sslKeystoreKey", sslKeystoreKey);
+            return this;
+        }
+        /**
          * The location of the key store file. This is optional for client and
          * can be used for two-way authentication for client.
          * 
@@ -1802,7 +1882,8 @@ public interface VertxKafkaComponentBuilderFactory {
         }
         /**
          * The store password for the key store file. This is optional for
-         * client and only needed if ssl.keystore.location is configured.
+         * client and only needed if 'ssl.keystore.location' is configured. Key
+         * store password is not supported for PEM format.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -1909,6 +1990,23 @@ public interface VertxKafkaComponentBuilderFactory {
             return this;
         }
         /**
+         * Trusted certificates in the format specified by
+         * 'ssl.truststore.type'. Default SSL engine factory supports only PEM
+         * format with X.509 certificates.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslTruststoreCertificates the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaComponentBuilder sslTruststoreCertificates(
+                java.lang.String sslTruststoreCertificates) {
+            doSetProperty("sslTruststoreCertificates", sslTruststoreCertificates);
+            return this;
+        }
+        /**
          * The location of the trust store file.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
@@ -1924,9 +2022,10 @@ public interface VertxKafkaComponentBuilderFactory {
             return this;
         }
         /**
-         * The password for the trust store file. If a password is not set
-         * access to the truststore is still available, but integrity checking
-         * is disabled.
+         * The password for the trust store file. If a password is not set,
+         * trust store file configured will still be used, but integrity
+         * checking is disabled. Trust store password is not supported for PEM
+         * format.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -2000,6 +2099,8 @@ public interface VertxKafkaComponentBuilderFactory {
             case "requestTimeoutMs": getOrCreateConfiguration((VertxKafkaComponent) component).setRequestTimeoutMs((int) value); return true;
             case "retryBackoffMs": getOrCreateConfiguration((VertxKafkaComponent) component).setRetryBackoffMs((long) value); return true;
             case "sendBufferBytes": getOrCreateConfiguration((VertxKafkaComponent) component).setSendBufferBytes((int) value); return true;
+            case "socketConnectionSetupTimeoutMaxMs": getOrCreateConfiguration((VertxKafkaComponent) component).setSocketConnectionSetupTimeoutMaxMs((long) value); return true;
+            case "socketConnectionSetupTimeoutMs": getOrCreateConfiguration((VertxKafkaComponent) component).setSocketConnectionSetupTimeoutMs((long) value); return true;
             case "allowAutoCreateTopics": getOrCreateConfiguration((VertxKafkaComponent) component).setAllowAutoCreateTopics((boolean) value); return true;
             case "autoCommitIntervalMs": getOrCreateConfiguration((VertxKafkaComponent) component).setAutoCommitIntervalMs((int) value); return true;
             case "autoOffsetReset": getOrCreateConfiguration((VertxKafkaComponent) component).setAutoOffsetReset((java.lang.String) value); return true;
@@ -2068,6 +2169,8 @@ public interface VertxKafkaComponentBuilderFactory {
             case "sslEngineFactoryClass": getOrCreateConfiguration((VertxKafkaComponent) component).setSslEngineFactoryClass((java.lang.String) value); return true;
             case "sslKeymanagerAlgorithm": getOrCreateConfiguration((VertxKafkaComponent) component).setSslKeymanagerAlgorithm((java.lang.String) value); return true;
             case "sslKeyPassword": getOrCreateConfiguration((VertxKafkaComponent) component).setSslKeyPassword((java.lang.String) value); return true;
+            case "sslKeystoreCertificateChain": getOrCreateConfiguration((VertxKafkaComponent) component).setSslKeystoreCertificateChain((java.lang.String) value); return true;
+            case "sslKeystoreKey": getOrCreateConfiguration((VertxKafkaComponent) component).setSslKeystoreKey((java.lang.String) value); return true;
             case "sslKeystoreLocation": getOrCreateConfiguration((VertxKafkaComponent) component).setSslKeystoreLocation((java.lang.String) value); return true;
             case "sslKeystorePassword": getOrCreateConfiguration((VertxKafkaComponent) component).setSslKeystorePassword((java.lang.String) value); return true;
             case "sslKeystoreType": getOrCreateConfiguration((VertxKafkaComponent) component).setSslKeystoreType((java.lang.String) value); return true;
@@ -2075,6 +2178,7 @@ public interface VertxKafkaComponentBuilderFactory {
             case "sslProvider": getOrCreateConfiguration((VertxKafkaComponent) component).setSslProvider((java.lang.String) value); return true;
             case "sslSecureRandomImplementation": getOrCreateConfiguration((VertxKafkaComponent) component).setSslSecureRandomImplementation((java.lang.String) value); return true;
             case "sslTrustmanagerAlgorithm": getOrCreateConfiguration((VertxKafkaComponent) component).setSslTrustmanagerAlgorithm((java.lang.String) value); return true;
+            case "sslTruststoreCertificates": getOrCreateConfiguration((VertxKafkaComponent) component).setSslTruststoreCertificates((java.lang.String) value); return true;
             case "sslTruststoreLocation": getOrCreateConfiguration((VertxKafkaComponent) component).setSslTruststoreLocation((java.lang.String) value); return true;
             case "sslTruststorePassword": getOrCreateConfiguration((VertxKafkaComponent) component).setSslTruststorePassword((java.lang.String) value); return true;
             case "sslTruststoreType": getOrCreateConfiguration((VertxKafkaComponent) component).setSslTruststoreType((java.lang.String) value); return true;
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxKafkaEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxKafkaEndpointBuilderFactory.java
index ad17078..adaed98 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxKafkaEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/VertxKafkaEndpointBuilderFactory.java
@@ -647,6 +647,84 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * The maximum amount of time the client will wait for the socket
+         * connection to be established. The connection setup timeout will
+         * increase exponentially for each consecutive connection failure up to
+         * this maximum. To avoid connection storms, a randomization factor of
+         * 0.2 will be applied to the timeout resulting in a random range
+         * between 20% below and 20% above the computed value.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 2m7s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMaxMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointConsumerBuilder socketConnectionSetupTimeoutMaxMs(
+                long socketConnectionSetupTimeoutMaxMs) {
+            doSetProperty("socketConnectionSetupTimeoutMaxMs", socketConnectionSetupTimeoutMaxMs);
+            return this;
+        }
+        /**
+         * The maximum amount of time the client will wait for the socket
+         * connection to be established. The connection setup timeout will
+         * increase exponentially for each consecutive connection failure up to
+         * this maximum. To avoid connection storms, a randomization factor of
+         * 0.2 will be applied to the timeout resulting in a random range
+         * between 20% below and 20% above the computed value.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 2m7s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMaxMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointConsumerBuilder socketConnectionSetupTimeoutMaxMs(
+                String socketConnectionSetupTimeoutMaxMs) {
+            doSetProperty("socketConnectionSetupTimeoutMaxMs", socketConnectionSetupTimeoutMaxMs);
+            return this;
+        }
+        /**
+         * The amount of time the client will wait for the socket connection to
+         * be established. If the connection is not built before the timeout
+         * elapses, clients will close the socket channel.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 10s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointConsumerBuilder socketConnectionSetupTimeoutMs(
+                long socketConnectionSetupTimeoutMs) {
+            doSetProperty("socketConnectionSetupTimeoutMs", socketConnectionSetupTimeoutMs);
+            return this;
+        }
+        /**
+         * The amount of time the client will wait for the socket connection to
+         * be established. If the connection is not built before the timeout
+         * elapses, clients will close the socket channel.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 10s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointConsumerBuilder socketConnectionSetupTimeoutMs(
+                String socketConnectionSetupTimeoutMs) {
+            doSetProperty("socketConnectionSetupTimeoutMs", socketConnectionSetupTimeoutMs);
+            return this;
+        }
+        /**
          * Allow automatic topic creation on the broker when subscribing to or
          * assigning a topic. A topic being subscribed to will be automatically
          * created only if the broker allows for it using
@@ -2006,8 +2084,9 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
-         * The password of the private key in the key store file. This is
-         * optional for client.
+         * The password of the private key in the key store file orthe PEM key
+         * specified in ssl.keystore.key'. This is required for clients only if
+         * two-way authentication is configured.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -2022,6 +2101,41 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * Certificate chain in the format specified by 'ssl.keystore.type'.
+         * Default SSL engine factory supports only PEM format with a list of
+         * X.509 certificates.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslKeystoreCertificateChain the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointConsumerBuilder sslKeystoreCertificateChain(
+                String sslKeystoreCertificateChain) {
+            doSetProperty("sslKeystoreCertificateChain", sslKeystoreCertificateChain);
+            return this;
+        }
+        /**
+         * Private key in the format specified by 'ssl.keystore.type'. Default
+         * SSL engine factory supports only PEM format with PKCS#8 keys. If the
+         * key is encrypted, key password must be specified using
+         * 'ssl.key.password'.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslKeystoreKey the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointConsumerBuilder sslKeystoreKey(
+                String sslKeystoreKey) {
+            doSetProperty("sslKeystoreKey", sslKeystoreKey);
+            return this;
+        }
+        /**
          * The location of the key store file. This is optional for client and
          * can be used for two-way authentication for client.
          * 
@@ -2039,7 +2153,8 @@ public interface VertxKafkaEndpointBuilderFactory {
         }
         /**
          * The store password for the key store file. This is optional for
-         * client and only needed if ssl.keystore.location is configured.
+         * client and only needed if 'ssl.keystore.location' is configured. Key
+         * store password is not supported for PEM format.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -2144,6 +2259,23 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * Trusted certificates in the format specified by
+         * 'ssl.truststore.type'. Default SSL engine factory supports only PEM
+         * format with X.509 certificates.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslTruststoreCertificates the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointConsumerBuilder sslTruststoreCertificates(
+                String sslTruststoreCertificates) {
+            doSetProperty("sslTruststoreCertificates", sslTruststoreCertificates);
+            return this;
+        }
+        /**
          * The location of the trust store file.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
@@ -2159,9 +2291,10 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
-         * The password for the trust store file. If a password is not set
-         * access to the truststore is still available, but integrity checking
-         * is disabled.
+         * The password for the trust store file. If a password is not set,
+         * trust store file configured will still be used, but integrity
+         * checking is disabled. Trust store password is not supported for PEM
+         * format.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -2921,6 +3054,84 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * The maximum amount of time the client will wait for the socket
+         * connection to be established. The connection setup timeout will
+         * increase exponentially for each consecutive connection failure up to
+         * this maximum. To avoid connection storms, a randomization factor of
+         * 0.2 will be applied to the timeout resulting in a random range
+         * between 20% below and 20% above the computed value.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 2m7s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMaxMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointProducerBuilder socketConnectionSetupTimeoutMaxMs(
+                long socketConnectionSetupTimeoutMaxMs) {
+            doSetProperty("socketConnectionSetupTimeoutMaxMs", socketConnectionSetupTimeoutMaxMs);
+            return this;
+        }
+        /**
+         * The maximum amount of time the client will wait for the socket
+         * connection to be established. The connection setup timeout will
+         * increase exponentially for each consecutive connection failure up to
+         * this maximum. To avoid connection storms, a randomization factor of
+         * 0.2 will be applied to the timeout resulting in a random range
+         * between 20% below and 20% above the computed value.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 2m7s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMaxMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointProducerBuilder socketConnectionSetupTimeoutMaxMs(
+                String socketConnectionSetupTimeoutMaxMs) {
+            doSetProperty("socketConnectionSetupTimeoutMaxMs", socketConnectionSetupTimeoutMaxMs);
+            return this;
+        }
+        /**
+         * The amount of time the client will wait for the socket connection to
+         * be established. If the connection is not built before the timeout
+         * elapses, clients will close the socket channel.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 10s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointProducerBuilder socketConnectionSetupTimeoutMs(
+                long socketConnectionSetupTimeoutMs) {
+            doSetProperty("socketConnectionSetupTimeoutMs", socketConnectionSetupTimeoutMs);
+            return this;
+        }
+        /**
+         * The amount of time the client will wait for the socket connection to
+         * be established. If the connection is not built before the timeout
+         * elapses, clients will close the socket channel.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 10s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointProducerBuilder socketConnectionSetupTimeoutMs(
+                String socketConnectionSetupTimeoutMs) {
+            doSetProperty("socketConnectionSetupTimeoutMs", socketConnectionSetupTimeoutMs);
+            return this;
+        }
+        /**
          * The number of acknowledgments the producer requires the leader to
          * have received before considering a request complete. This controls
          * the durability of records that are sent. The following settings are
@@ -3300,11 +3511,16 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
-         * The configuration controls how long KafkaProducer.send() and
-         * KafkaProducer.partitionsFor() will block.These methods can be blocked
-         * either because the buffer is full or metadata unavailable.Blocking in
-         * the user-supplied serializers or partitioner will not be counted
-         * against this timeout.
+         * The configuration controls how long the KafkaProducer's send(),
+         * partitionsFor(), initTransactions(), sendOffsetsToTransaction(),
+         * commitTransaction() and abortTransaction() methods will block. For
+         * send() this timeout bounds the total time waiting for both metadata
+         * fetch and buffer allocation (blocking in the user-supplied
+         * serializers or partitioner is not counted against this timeout). For
+         * partitionsFor() this timeout bounds the time spent waiting for
+         * metadata if it is unavailable. The transaction-related methods always
+         * block, but may timeout if the transaction coordinator could not be
+         * discovered or did not respond within the timeout.
          * 
          * The option is a: &lt;code&gt;long&lt;/code&gt; type.
          * 
@@ -3319,11 +3535,16 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
-         * The configuration controls how long KafkaProducer.send() and
-         * KafkaProducer.partitionsFor() will block.These methods can be blocked
-         * either because the buffer is full or metadata unavailable.Blocking in
-         * the user-supplied serializers or partitioner will not be counted
-         * against this timeout.
+         * The configuration controls how long the KafkaProducer's send(),
+         * partitionsFor(), initTransactions(), sendOffsetsToTransaction(),
+         * commitTransaction() and abortTransaction() methods will block. For
+         * send() this timeout bounds the total time waiting for both metadata
+         * fetch and buffer allocation (blocking in the user-supplied
+         * serializers or partitioner is not counted against this timeout). For
+         * partitionsFor() this timeout bounds the time spent waiting for
+         * metadata if it is unavailable. The transaction-related methods always
+         * block, but may timeout if the transaction coordinator could not be
+         * discovered or did not respond within the timeout.
          * 
          * The option will be converted to a &lt;code&gt;long&lt;/code&gt; type.
          * 
@@ -3558,7 +3779,7 @@ public interface VertxKafkaEndpointBuilderFactory {
          * will wait for a transaction status update from the producer before
          * proactively aborting the ongoing transaction.If this value is larger
          * than the transaction.max.timeout.ms setting in the broker, the
-         * request will fail with a InvalidTransactionTimeout error.
+         * request will fail with a InvalidTxnTimeoutException error.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -3578,7 +3799,7 @@ public interface VertxKafkaEndpointBuilderFactory {
          * will wait for a transaction status update from the producer before
          * proactively aborting the ongoing transaction.If this value is larger
          * than the transaction.max.timeout.ms setting in the broker, the
-         * request will fail with a InvalidTransactionTimeout error.
+         * request will fail with a InvalidTxnTimeoutException error.
          * 
          * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -4140,8 +4361,9 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
-         * The password of the private key in the key store file. This is
-         * optional for client.
+         * The password of the private key in the key store file orthe PEM key
+         * specified in ssl.keystore.key'. This is required for clients only if
+         * two-way authentication is configured.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -4156,6 +4378,41 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * Certificate chain in the format specified by 'ssl.keystore.type'.
+         * Default SSL engine factory supports only PEM format with a list of
+         * X.509 certificates.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslKeystoreCertificateChain the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointProducerBuilder sslKeystoreCertificateChain(
+                String sslKeystoreCertificateChain) {
+            doSetProperty("sslKeystoreCertificateChain", sslKeystoreCertificateChain);
+            return this;
+        }
+        /**
+         * Private key in the format specified by 'ssl.keystore.type'. Default
+         * SSL engine factory supports only PEM format with PKCS#8 keys. If the
+         * key is encrypted, key password must be specified using
+         * 'ssl.key.password'.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslKeystoreKey the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointProducerBuilder sslKeystoreKey(
+                String sslKeystoreKey) {
+            doSetProperty("sslKeystoreKey", sslKeystoreKey);
+            return this;
+        }
+        /**
          * The location of the key store file. This is optional for client and
          * can be used for two-way authentication for client.
          * 
@@ -4173,7 +4430,8 @@ public interface VertxKafkaEndpointBuilderFactory {
         }
         /**
          * The store password for the key store file. This is optional for
-         * client and only needed if ssl.keystore.location is configured.
+         * client and only needed if 'ssl.keystore.location' is configured. Key
+         * store password is not supported for PEM format.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -4278,6 +4536,23 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * Trusted certificates in the format specified by
+         * 'ssl.truststore.type'. Default SSL engine factory supports only PEM
+         * format with X.509 certificates.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslTruststoreCertificates the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointProducerBuilder sslTruststoreCertificates(
+                String sslTruststoreCertificates) {
+            doSetProperty("sslTruststoreCertificates", sslTruststoreCertificates);
+            return this;
+        }
+        /**
          * The location of the trust store file.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
@@ -4293,9 +4568,10 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
-         * The password for the trust store file. If a password is not set
-         * access to the truststore is still available, but integrity checking
-         * is disabled.
+         * The password for the trust store file. If a password is not set,
+         * trust store file configured will still be used, but integrity
+         * checking is disabled. Trust store password is not supported for PEM
+         * format.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -4976,6 +5252,84 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * The maximum amount of time the client will wait for the socket
+         * connection to be established. The connection setup timeout will
+         * increase exponentially for each consecutive connection failure up to
+         * this maximum. To avoid connection storms, a randomization factor of
+         * 0.2 will be applied to the timeout resulting in a random range
+         * between 20% below and 20% above the computed value.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 2m7s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMaxMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointBuilder socketConnectionSetupTimeoutMaxMs(
+                long socketConnectionSetupTimeoutMaxMs) {
+            doSetProperty("socketConnectionSetupTimeoutMaxMs", socketConnectionSetupTimeoutMaxMs);
+            return this;
+        }
+        /**
+         * The maximum amount of time the client will wait for the socket
+         * connection to be established. The connection setup timeout will
+         * increase exponentially for each consecutive connection failure up to
+         * this maximum. To avoid connection storms, a randomization factor of
+         * 0.2 will be applied to the timeout resulting in a random range
+         * between 20% below and 20% above the computed value.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 2m7s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMaxMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointBuilder socketConnectionSetupTimeoutMaxMs(
+                String socketConnectionSetupTimeoutMaxMs) {
+            doSetProperty("socketConnectionSetupTimeoutMaxMs", socketConnectionSetupTimeoutMaxMs);
+            return this;
+        }
+        /**
+         * The amount of time the client will wait for the socket connection to
+         * be established. If the connection is not built before the timeout
+         * elapses, clients will close the socket channel.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 10s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointBuilder socketConnectionSetupTimeoutMs(
+                long socketConnectionSetupTimeoutMs) {
+            doSetProperty("socketConnectionSetupTimeoutMs", socketConnectionSetupTimeoutMs);
+            return this;
+        }
+        /**
+         * The amount of time the client will wait for the socket connection to
+         * be established. If the connection is not built before the timeout
+         * elapses, clients will close the socket channel.
+         * 
+         * The option will be converted to a &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 10s
+         * Group: common
+         * 
+         * @param socketConnectionSetupTimeoutMs the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointBuilder socketConnectionSetupTimeoutMs(
+                String socketConnectionSetupTimeoutMs) {
+            doSetProperty("socketConnectionSetupTimeoutMs", socketConnectionSetupTimeoutMs);
+            return this;
+        }
+        /**
          * The fully qualified name of a SASL client callback handler class that
          * implements the AuthenticateCallbackHandler interface.
          * 
@@ -5501,8 +5855,9 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
-         * The password of the private key in the key store file. This is
-         * optional for client.
+         * The password of the private key in the key store file orthe PEM key
+         * specified in ssl.keystore.key'. This is required for clients only if
+         * two-way authentication is configured.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -5516,6 +5871,40 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * Certificate chain in the format specified by 'ssl.keystore.type'.
+         * Default SSL engine factory supports only PEM format with a list of
+         * X.509 certificates.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslKeystoreCertificateChain the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointBuilder sslKeystoreCertificateChain(
+                String sslKeystoreCertificateChain) {
+            doSetProperty("sslKeystoreCertificateChain", sslKeystoreCertificateChain);
+            return this;
+        }
+        /**
+         * Private key in the format specified by 'ssl.keystore.type'. Default
+         * SSL engine factory supports only PEM format with PKCS#8 keys. If the
+         * key is encrypted, key password must be specified using
+         * 'ssl.key.password'.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslKeystoreKey the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointBuilder sslKeystoreKey(String sslKeystoreKey) {
+            doSetProperty("sslKeystoreKey", sslKeystoreKey);
+            return this;
+        }
+        /**
          * The location of the key store file. This is optional for client and
          * can be used for two-way authentication for client.
          * 
@@ -5533,7 +5922,8 @@ public interface VertxKafkaEndpointBuilderFactory {
         }
         /**
          * The store password for the key store file. This is optional for
-         * client and only needed if ssl.keystore.location is configured.
+         * client and only needed if 'ssl.keystore.location' is configured. Key
+         * store password is not supported for PEM format.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
@@ -5637,6 +6027,23 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
+         * Trusted certificates in the format specified by
+         * 'ssl.truststore.type'. Default SSL engine factory supports only PEM
+         * format with X.509 certificates.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param sslTruststoreCertificates the value to set
+         * @return the dsl builder
+         */
+        default VertxKafkaEndpointBuilder sslTruststoreCertificates(
+                String sslTruststoreCertificates) {
+            doSetProperty("sslTruststoreCertificates", sslTruststoreCertificates);
+            return this;
+        }
+        /**
          * The location of the trust store file.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
@@ -5652,9 +6059,10 @@ public interface VertxKafkaEndpointBuilderFactory {
             return this;
         }
         /**
-         * The password for the trust store file. If a password is not set
-         * access to the truststore is still available, but integrity checking
-         * is disabled.
+         * The password for the trust store file. If a password is not set,
+         * trust store file configured will still be used, but integrity
+         * checking is disabled. Trust store password is not supported for PEM
+         * format.
          * 
          * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
          * 
diff --git a/docs/components/modules/ROOT/pages/vertx-kafka-component.adoc b/docs/components/modules/ROOT/pages/vertx-kafka-component.adoc
index e73501b..2b9f4d7 100644
--- a/docs/components/modules/ROOT/pages/vertx-kafka-component.adoc
+++ b/docs/components/modules/ROOT/pages/vertx-kafka-component.adoc
@@ -76,7 +76,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (97 parameters):
+=== Query Parameters (102 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -92,7 +92,7 @@ with the following path and query parameters:
 | *metadataMaxAgeMs* (common) | The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions. | 5m | long
 | *metricReporters* (common) | A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.metrics.MetricsReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics. |  | String
 | *metricsNumSamples* (common) | The number of samples maintained to compute metrics. | 2 | int
-| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 2 enums and the value can be one of: INFO, DEBUG | INFO | String
+| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 3 enums and the value can be one of: INFO, DEBUG, TRACE | INFO | String
 | *metricsSampleWindowMs* (common) | The window of time a metrics sample is computed over. | 30s | long
 | *partitionId* (common) | The partition to which the record will be sent (or null if no partition was specified) or read from a particular partition if set. Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence over this config |  | Integer
 | *receiveBufferBytes* (common) | The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used. | 32768 | int
@@ -101,6 +101,8 @@ with the following path and query parameters:
 | *requestTimeoutMs* (common) | The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted. This should be larger than replica.lag.time.max.ms (a broker configuration) to reduce the possibility of message duplication due to unnecessary producer retries. | 30s | int
 | *retryBackoffMs* (common) | The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios. | 100ms | long
 | *sendBufferBytes* (common) | The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used. | 131072 | int
+| *socketConnectionSetupTimeout{zwsp}MaxMs* (common) | The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value. | 2m7s | long
+| *socketConnectionSetupTimeoutMs* (common) | The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel. | 10s | long
 | *allowAutoCreateTopics* (consumer) | Allow automatic topic creation on the broker when subscribing to or assigning a topic. A topic being subscribed to will be automatically created only if the broker allows for it using auto.create.topics.enable broker configuration. This configuration must be set to false when using brokers older than 0.11.0 | true | boolean
 | *autoCommitIntervalMs* (consumer) | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5s | int
 | *autoOffsetReset* (consumer) | What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted): earliest: automatically reset the offset to the earliest offsetlatest: automatically reset the offset to the latest offsetnone: throw exception to the consumer if no previous offset is found for the consumer's groupanything else: throw exception to the consumer. There are 3 enums and the value can be [...]
@@ -137,14 +139,14 @@ with the following path and query parameters:
 | *keySerializer* (producer) | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *lingerMs* (producer) | The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay&mdash;that is, rather than immediately sending out a record the producer  [...]
-| *maxBlockMs* (producer) | The configuration controls how long KafkaProducer.send() and KafkaProducer.partitionsFor() will block.These methods can be blocked either because the buffer is full or metadata unavailable.Blocking in the user-supplied serializers or partitioner will not be counted against this timeout. | 1m | long
+| *maxBlockMs* (producer) | The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block. For send() this timeout bounds the total time waiting for both metadata fetch and buffer allocation (blocking in the user-supplied serializers or partitioner is not counted against this timeout). For partitionsFor() this timeout bounds the time spent waiting for metadata  [...]
 | *maxInFlightRequestsPer{zwsp}Connection* (producer) | The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled). | 5 | int
 | *maxRequestSize* (producer) | The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests. This is also effectively a cap on the maximum uncompressed record batch size. Note that the server has its own cap on the record batch size (after compression if compression is enabled) which may be different from this. | 1048576 | int
 | *metadataMaxIdleMs* (producer) | Controls how long the producer will cache metadata for a topic that's idle. If the elapsed time since a topic was last produced to exceeds the metadata idle duration, then the topic's metadata is forgotten and the next access to it will force a metadata fetch request. | 5m | long
 | *partitionerClass* (producer) | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | org.apache.kafka.clients.producer.internals.DefaultPartitioner | String
 | *retries* (producer) | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without setting max.in.flight.requests.per.connection to 1 will potentially change the ordering of records because if two batches are sent to a single partition, and the first fails and is retried but the second succeeds [...]
 | *transactionalId* (producer) | The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. If a TransactionalId is configured, enable.idempotence is implied. By default the TransactionI [...]
-| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTransactionTimeout error. | 1m | int
+| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTxnTimeoutException error. | 1m | int
 | *valueSerializer* (producer) | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 | *saslClientCallbackHandlerClass* (security) | The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface. |  | String
@@ -168,23 +170,26 @@ with the following path and query parameters:
 | *sslEndpointIdentification{zwsp}Algorithm* (security) | The endpoint identification algorithm to validate server hostname using server certificate. | https | String
 | *sslEngineFactoryClass* (security) | The class of type org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine objects. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory |  | String
 | *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key store file. This is optional for client. |  | String
+| *sslKeyPassword* (security) | The password of the private key in the key store file orthe PEM key specified in ssl.keystore.key'. This is required for clients only if two-way authentication is configured. |  | String
+| *sslKeystoreCertificateChain* (security) | Certificate chain in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with a list of X.509 certificates |  | String
+| *sslKeystoreKey* (security) | Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password' |  | String
 | *sslKeystoreLocation* (security) | The location of the key store file. This is optional for client and can be used for two-way authentication for client. |  | String
-| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. |  | String
+| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format. |  | String
 | *sslKeystoreType* (security) | The file format of the key store file. This is optional for client. | JKS | String
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients wil [...]
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslSecureRandomImplementation* (security) | The SecureRandom PRNG implementation to use for SSL cryptography operations. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreCertificates* (security) | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. |  | String
 | *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
-| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set access to the truststore is still available, but integrity checking is disabled. |  | String
+| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format. |  | String
 | *sslTruststoreType* (security) | The file format of the trust store file. | JKS | String
 |===
 // endpoint options: END
 
 == Component Options
 // component options: START
-The Vert.x Kafka component supports 98 options, which are listed below.
+The Vert.x Kafka component supports 103 options, which are listed below.
 
 
 
@@ -202,7 +207,7 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *metadataMaxAgeMs* (common) | The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions. | 5m | long
 | *metricReporters* (common) | A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.metrics.MetricsReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics. |  | String
 | *metricsNumSamples* (common) | The number of samples maintained to compute metrics. | 2 | int
-| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 2 enums and the value can be one of: INFO, DEBUG | INFO | String
+| *metricsRecordingLevel* (common) | The highest recording level for metrics. There are 3 enums and the value can be one of: INFO, DEBUG, TRACE | INFO | String
 | *metricsSampleWindowMs* (common) | The window of time a metrics sample is computed over. | 30s | long
 | *partitionId* (common) | The partition to which the record will be sent (or null if no partition was specified) or read from a particular partition if set. Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence over this config |  | Integer
 | *receiveBufferBytes* (common) | The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used. | 32768 | int
@@ -211,6 +216,8 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *requestTimeoutMs* (common) | The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted. This should be larger than replica.lag.time.max.ms (a broker configuration) to reduce the possibility of message duplication due to unnecessary producer retries. | 30s | int
 | *retryBackoffMs* (common) | The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios. | 100ms | long
 | *sendBufferBytes* (common) | The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used. | 131072 | int
+| *socketConnectionSetupTimeout{zwsp}MaxMs* (common) | The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value. | 2m7s | long
+| *socketConnectionSetupTimeoutMs* (common) | The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel. | 10s | long
 | *allowAutoCreateTopics* (consumer) | Allow automatic topic creation on the broker when subscribing to or assigning a topic. A topic being subscribed to will be automatically created only if the broker allows for it using auto.create.topics.enable broker configuration. This configuration must be set to false when using brokers older than 0.11.0 | true | boolean
 | *autoCommitIntervalMs* (consumer) | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5s | int
 | *autoOffsetReset* (consumer) | What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted): earliest: automatically reset the offset to the earliest offsetlatest: automatically reset the offset to the latest offsetnone: throw exception to the consumer if no previous offset is found for the consumer's groupanything else: throw exception to the consumer. There are 3 enums and the value can be [...]
@@ -245,14 +252,14 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *keySerializer* (producer) | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *lingerMs* (producer) | The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay&mdash;that is, rather than immediately sending out a record the producer  [...]
-| *maxBlockMs* (producer) | The configuration controls how long KafkaProducer.send() and KafkaProducer.partitionsFor() will block.These methods can be blocked either because the buffer is full or metadata unavailable.Blocking in the user-supplied serializers or partitioner will not be counted against this timeout. | 1m | long
+| *maxBlockMs* (producer) | The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block. For send() this timeout bounds the total time waiting for both metadata fetch and buffer allocation (blocking in the user-supplied serializers or partitioner is not counted against this timeout). For partitionsFor() this timeout bounds the time spent waiting for metadata  [...]
 | *maxInFlightRequestsPer{zwsp}Connection* (producer) | The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled). | 5 | int
 | *maxRequestSize* (producer) | The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests. This is also effectively a cap on the maximum uncompressed record batch size. Note that the server has its own cap on the record batch size (after compression if compression is enabled) which may be different from this. | 1048576 | int
 | *metadataMaxIdleMs* (producer) | Controls how long the producer will cache metadata for a topic that's idle. If the elapsed time since a topic was last produced to exceeds the metadata idle duration, then the topic's metadata is forgotten and the next access to it will force a metadata fetch request. | 5m | long
 | *partitionerClass* (producer) | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | org.apache.kafka.clients.producer.internals.DefaultPartitioner | String
 | *retries* (producer) | Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without setting max.in.flight.requests.per.connection to 1 will potentially change the ordering of records because if two batches are sent to a single partition, and the first fails and is retried but the second succeeds [...]
 | *transactionalId* (producer) | The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. If a TransactionalId is configured, enable.idempotence is implied. By default the TransactionI [...]
-| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTransactionTimeout error. | 1m | int
+| *transactionTimeoutMs* (producer) | The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTxnTimeoutException error. | 1m | int
 | *valueSerializer* (producer) | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | org.apache.kafka.common.serialization.StringSerializer | String
 | *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
 | *vertx* (advanced) | *Autowired* To use an existing vertx instead of creating a new instance |  | Vertx
@@ -278,16 +285,19 @@ The Vert.x Kafka component supports 98 options, which are listed below.
 | *sslEndpointIdentification{zwsp}Algorithm* (security) | The endpoint identification algorithm to validate server hostname using server certificate. | https | String
 | *sslEngineFactoryClass* (security) | The class of type org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine objects. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory |  | String
 | *sslKeymanagerAlgorithm* (security) | The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine. | SunX509 | String
-| *sslKeyPassword* (security) | The password of the private key in the key store file. This is optional for client. |  | String
+| *sslKeyPassword* (security) | The password of the private key in the key store file orthe PEM key specified in ssl.keystore.key'. This is required for clients only if two-way authentication is configured. |  | String
+| *sslKeystoreCertificateChain* (security) | Certificate chain in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with a list of X.509 certificates |  | String
+| *sslKeystoreKey* (security) | Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password' |  | String
 | *sslKeystoreLocation* (security) | The location of the key store file. This is optional for client and can be used for two-way authentication for client. |  | String
-| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. |  | String
+| *sslKeystorePassword* (security) | The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format. |  | String
 | *sslKeystoreType* (security) | The file format of the key store file. This is optional for client. | JKS | String
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients wil [...]
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslSecureRandomImplementation* (security) | The SecureRandom PRNG implementation to use for SSL cryptography operations. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreCertificates* (security) | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. |  | String
 | *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
-| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set access to the truststore is still available, but integrity checking is disabled. |  | String
+| *sslTruststorePassword* (security) | The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format. |  | String
 | *sslTruststoreType* (security) | The file format of the trust store file. | JKS | String
 |===
 // component options: END