You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gi...@apache.org on 2021/01/14 02:16:03 UTC

[camel-kafka-connector] 05/06: [create-pull-request] automated change

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

github-bot pushed a commit to branch camel-master
in repository https://gitbox.apache.org/repos/asf/camel-kafka-connector.git

commit 1e9512036c8e0d1dc50295597c3f379b33312dd3
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Tue Jan 12 04:09:52 2021 +0000

    [create-pull-request] automated change
---
 .../resources/connectors/camel-aws2-iam-sink.json  |  12 +-
 .../resources/connectors/camel-aws2-sns-sink.json  |   4 +-
 .../resources/connectors/camel-aws2-sqs-sink.json  |   4 +-
 .../connectors/camel-aws2-sqs-source.json          |   4 +-
 .../resources/connectors/camel-file-source.json    |  12 +
 .../resources/connectors/camel-ftp-source.json     |  12 +
 .../resources/connectors/camel-ftps-source.json    |  12 +
 .../connectors/camel-google-calendar-sink.json     |  72 +++---
 .../connectors/camel-google-calendar-source.json   |  72 +++---
 .../camel-google-calendar-stream-source.json       |  36 +++
 .../resources/connectors/camel-imap-source.json    |  14 ++
 .../resources/connectors/camel-imaps-source.json   |  14 ++
 .../resources/connectors/camel-jclouds-sink.json   |   2 +-
 .../resources/connectors/camel-jclouds-source.json |   2 +-
 .../resources/connectors/camel-jms-sink.json       |   4 +-
 .../resources/connectors/camel-jsonata-sink.json   |   2 +-
 .../resources/connectors/camel-pop3-source.json    |  14 ++
 .../resources/connectors/camel-pop3s-source.json   |  14 ++
 .../resources/connectors/camel-sftp-source.json    |  12 +
 .../resources/connectors/camel-sip-source.json     |   2 +-
 .../resources/connectors/camel-sips-source.json    |   2 +-
 .../resources/connectors/camel-sjms-sink.json      | 231 +++++++++++--------
 .../resources/connectors/camel-sjms-source.json    | 247 +++++++++-----------
 .../resources/connectors/camel-sjms2-sink.json     | 231 +++++++++++--------
 .../resources/connectors/camel-sjms2-source.json   | 251 +++++++++------------
 .../resources/connectors/camel-smtp-source.json    |  14 ++
 .../resources/connectors/camel-smtps-source.json   |  14 ++
 .../connectors/camel-vertx-kafka-sink.json         |  94 ++++++--
 .../connectors/camel-vertx-kafka-source.json       |  86 ++++++-
 .../generated/resources/camel-aws2-iam-sink.json   |  12 +-
 .../docs/camel-aws2-iam-kafka-sink-connector.adoc  |   4 +-
 .../examples/CamelAws2iamSinkConnector.properties  |   4 -
 .../aws2iam/CamelAws2iamSinkConnectorConfig.java   |   8 +-
 .../generated/resources/camel-aws2-sns-sink.json   |   4 +-
 .../docs/camel-aws2-sns-kafka-sink-connector.adoc  |   4 +-
 .../aws2sns/CamelAws2snsSinkConnectorConfig.java   |   4 +-
 .../generated/resources/camel-aws2-sqs-sink.json   |   4 +-
 .../generated/resources/camel-aws2-sqs-source.json |   4 +-
 .../docs/camel-aws2-sqs-kafka-sink-connector.adoc  |   4 +-
 .../camel-aws2-sqs-kafka-source-connector.adoc     |   4 +-
 .../aws2sqs/CamelAws2sqsSinkConnectorConfig.java   |   4 +-
 .../aws2sqs/CamelAws2sqsSourceConnectorConfig.java |   4 +-
 .../src/generated/resources/camel-file-source.json |  12 +
 .../docs/camel-file-kafka-source-connector.adoc    |   4 +-
 .../file/CamelFileSourceConnectorConfig.java       |   8 +
 .../src/generated/resources/camel-ftp-source.json  |  12 +
 .../docs/camel-ftp-kafka-source-connector.adoc     |   4 +-
 .../ftp/CamelFtpSourceConnectorConfig.java         |   8 +
 .../src/generated/resources/camel-ftps-source.json |  12 +
 .../docs/camel-ftps-kafka-source-connector.adoc    |   4 +-
 .../ftps/CamelFtpsSourceConnectorConfig.java       |   8 +
 .../resources/camel-google-calendar-sink.json      |  72 +++---
 .../resources/camel-google-calendar-source.json    |  72 +++---
 ...camel-google-calendar-kafka-sink-connector.adoc |  12 +-
 ...mel-google-calendar-kafka-source-connector.adoc |  12 +-
 .../CamelGooglecalendarSinkConnectorConfig.java    |  48 ++--
 .../CamelGooglecalendarSourceConnectorConfig.java  |  48 ++--
 .../camel-google-calendar-stream-source.json       |  36 +++
 ...gle-calendar-stream-kafka-source-connector.adoc |   8 +-
 ...lGooglecalendarstreamSourceConnectorConfig.java |  24 ++
 .../src/generated/resources/camel-imap-source.json |  14 ++
 .../docs/camel-imap-kafka-source-connector.adoc    |   4 +-
 .../imap/CamelImapSourceConnectorConfig.java       |   8 +
 .../generated/resources/camel-imaps-source.json    |  14 ++
 .../docs/camel-imaps-kafka-source-connector.adoc   |   4 +-
 .../imaps/CamelImapsSourceConnectorConfig.java     |   8 +
 .../generated/resources/camel-jclouds-sink.json    |   2 +-
 .../generated/resources/camel-jclouds-source.json  |   2 +-
 .../src/generated/resources/camel-jms-sink.json    |   4 +-
 .../main/docs/camel-jms-kafka-sink-connector.adoc  |   4 +-
 .../jms/CamelJmsSinkConnectorConfig.java           |   4 +-
 .../generated/resources/camel-jsonata-sink.json    |   2 +-
 .../src/generated/resources/camel-pop3-source.json |  14 ++
 .../docs/camel-pop3-kafka-source-connector.adoc    |   4 +-
 .../pop3/CamelPop3SourceConnectorConfig.java       |   8 +
 .../generated/resources/camel-pop3s-source.json    |  14 ++
 .../docs/camel-pop3s-kafka-source-connector.adoc   |   4 +-
 .../pop3s/CamelPop3sSourceConnectorConfig.java     |   8 +
 .../src/generated/resources/camel-sftp-source.json |  12 +
 .../docs/camel-sftp-kafka-source-connector.adoc    |   4 +-
 .../sftp/CamelSftpSourceConnectorConfig.java       |   8 +
 .../src/generated/resources/camel-sip-source.json  |   2 +-
 .../docs/camel-sip-kafka-source-connector.adoc     |   2 +-
 .../sip/CamelSipSourceConnectorConfig.java         |   2 +-
 .../src/generated/resources/camel-sips-source.json |   2 +-
 .../docs/camel-sips-kafka-source-connector.adoc    |   2 +-
 .../sips/CamelSipsSourceConnectorConfig.java       |   2 +-
 .../src/generated/resources/camel-sjms-sink.json   | 231 +++++++++++--------
 .../src/generated/resources/camel-sjms-source.json | 247 +++++++++-----------
 .../main/docs/camel-sjms-kafka-sink-connector.adoc |  46 ++--
 .../docs/camel-sjms-kafka-source-connector.adoc    |  48 ++--
 .../sjms/CamelSjmsSinkConnectorConfig.java         | 170 +++++++-------
 .../sjms/CamelSjmsSourceConnectorConfig.java       | 178 +++++++--------
 .../src/generated/resources/camel-sjms2-sink.json  | 231 +++++++++++--------
 .../generated/resources/camel-sjms2-source.json    | 251 +++++++++------------
 .../docs/camel-sjms2-kafka-sink-connector.adoc     |  46 ++--
 .../docs/camel-sjms2-kafka-source-connector.adoc   |  48 ++--
 .../sjms2/CamelSjms2SinkConnectorConfig.java       | 170 +++++++-------
 .../sjms2/CamelSjms2SourceConnectorConfig.java     | 178 +++++++--------
 .../src/generated/resources/camel-smtp-source.json |  14 ++
 .../docs/camel-smtp-kafka-source-connector.adoc    |   4 +-
 .../smtp/CamelSmtpSourceConnectorConfig.java       |   8 +
 .../generated/resources/camel-smtps-source.json    |  14 ++
 .../docs/camel-smtps-kafka-source-connector.adoc   |   4 +-
 .../smtps/CamelSmtpsSourceConnectorConfig.java     |   8 +
 .../resources/camel-vertx-kafka-sink.json          |  94 ++++++--
 .../resources/camel-vertx-kafka-source.json        |  86 ++++++-
 .../camel-vertx-kafka-kafka-sink-connector.adoc    |  40 ++--
 .../camel-vertx-kafka-kafka-source-connector.adoc  |  28 ++-
 .../CamelVertxkafkaSinkConnectorConfig.java        |  64 +++++-
 .../CamelVertxkafkaSourceConnectorConfig.java      |  56 ++++-
 .../camel-aws2-iam-kafka-sink-connector.adoc       |   4 +-
 .../camel-aws2-sns-kafka-sink-connector.adoc       |   4 +-
 .../camel-aws2-sqs-kafka-sink-connector.adoc       |   4 +-
 .../camel-aws2-sqs-kafka-source-connector.adoc     |   4 +-
 .../camel-file-kafka-source-connector.adoc         |   4 +-
 .../camel-ftp-kafka-source-connector.adoc          |   4 +-
 .../camel-ftps-kafka-source-connector.adoc         |   4 +-
 ...camel-google-calendar-kafka-sink-connector.adoc |  12 +-
 ...mel-google-calendar-kafka-source-connector.adoc |  12 +-
 ...gle-calendar-stream-kafka-source-connector.adoc |   8 +-
 .../camel-imap-kafka-source-connector.adoc         |   4 +-
 .../camel-imaps-kafka-source-connector.adoc        |   4 +-
 .../connectors/camel-jms-kafka-sink-connector.adoc |   4 +-
 .../camel-pop3-kafka-source-connector.adoc         |   4 +-
 .../camel-pop3s-kafka-source-connector.adoc        |   4 +-
 .../camel-sftp-kafka-source-connector.adoc         |   4 +-
 .../camel-sip-kafka-source-connector.adoc          |   2 +-
 .../camel-sips-kafka-source-connector.adoc         |   2 +-
 .../camel-sjms-kafka-sink-connector.adoc           |  46 ++--
 .../camel-sjms-kafka-source-connector.adoc         |  48 ++--
 .../camel-sjms2-kafka-sink-connector.adoc          |  46 ++--
 .../camel-sjms2-kafka-source-connector.adoc        |  48 ++--
 .../camel-smtp-kafka-source-connector.adoc         |   4 +-
 .../camel-smtps-kafka-source-connector.adoc        |   4 +-
 .../camel-vertx-kafka-kafka-sink-connector.adoc    |  40 ++--
 .../camel-vertx-kafka-kafka-source-connector.adoc  |  28 ++-
 137 files changed, 2766 insertions(+), 1966 deletions(-)

diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-iam-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-iam-sink.json
index 02b3282..30a0fad 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-iam-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-iam-sink.json
@@ -30,9 +30,9 @@
 		},
 		"camel.sink.endpoint.operation": {
 			"name": "camel.sink.endpoint.operation",
-			"description": "The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]",
-			"priority": "HIGH",
-			"required": "true",
+			"description": "The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]",
+			"priority": "MEDIUM",
+			"required": "false",
 			"enum": [
 				"listAccessKeys",
 				"createUser",
@@ -133,9 +133,9 @@
 		},
 		"camel.component.aws2-iam.operation": {
 			"name": "camel.component.aws2-iam.operation",
-			"description": "The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]",
-			"priority": "HIGH",
-			"required": "true",
+			"description": "The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]",
+			"priority": "MEDIUM",
+			"required": "false",
 			"enum": [
 				"listAccessKeys",
 				"createUser",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sns-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sns-sink.json
index 4a610d0..6d6627a 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sns-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sns-sink.json
@@ -77,7 +77,7 @@
 		},
 		"camel.sink.endpoint.policy": {
 			"name": "camel.sink.endpoint.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -231,7 +231,7 @@
 		},
 		"camel.component.aws2-sns.policy": {
 			"name": "camel.component.aws2-sns.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sqs-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sqs-sink.json
index 2d59b1f..09edbad 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sqs-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sqs-sink.json
@@ -178,7 +178,7 @@
 		},
 		"camel.sink.endpoint.policy": {
 			"name": "camel.sink.endpoint.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -369,7 +369,7 @@
 		},
 		"camel.component.aws2-sqs.policy": {
 			"name": "camel.component.aws2-sqs.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sqs-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sqs-source.json
index 0ee90d5..b987e2f 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sqs-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-aws2-sqs-source.json
@@ -251,7 +251,7 @@
 		},
 		"camel.source.endpoint.policy": {
 			"name": "camel.source.endpoint.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -589,7 +589,7 @@
 		},
 		"camel.component.aws2-sqs.policy": {
 			"name": "camel.component.aws2-sqs.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-file-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-file-source.json
index 16a81a4..bfa86db 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-file-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-file-source.json
@@ -235,6 +235,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.excludeExt": {
+			"name": "camel.source.endpoint.excludeExt",
+			"description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.filter": {
 			"name": "camel.source.endpoint.filter",
 			"description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.",
@@ -278,6 +284,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.includeExt": {
+			"name": "camel.source.endpoint.includeExt",
+			"description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.maxDepth": {
 			"name": "camel.source.endpoint.maxDepth",
 			"description": "The maximum depth to traverse when recursively processing a directory.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-ftp-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-ftp-source.json
index 5a224ba..c91f6f9 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-ftp-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-ftp-source.json
@@ -393,6 +393,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.excludeExt": {
+			"name": "camel.source.endpoint.excludeExt",
+			"description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.filter": {
 			"name": "camel.source.endpoint.filter",
 			"description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.",
@@ -436,6 +442,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.includeExt": {
+			"name": "camel.source.endpoint.includeExt",
+			"description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.maxDepth": {
 			"name": "camel.source.endpoint.maxDepth",
 			"description": "The maximum depth to traverse when recursively processing a directory.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-ftps-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-ftps-source.json
index 1f1dac8..94031d0 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-ftps-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-ftps-source.json
@@ -393,6 +393,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.excludeExt": {
+			"name": "camel.source.endpoint.excludeExt",
+			"description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.filter": {
 			"name": "camel.source.endpoint.filter",
 			"description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.",
@@ -436,6 +442,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.includeExt": {
+			"name": "camel.source.endpoint.includeExt",
+			"description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.maxDepth": {
 			"name": "camel.source.endpoint.maxDepth",
 			"description": "The maximum depth to traverse when recursively processing a directory.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-sink.json
index e70ee97..e6ec1ab 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-sink.json
@@ -59,24 +59,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.emailAddress": {
-			"name": "camel.sink.endpoint.emailAddress",
-			"description": "The emailAddress of the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.inBody": {
 			"name": "camel.sink.endpoint.inBody",
 			"description": "Sets the name of a parameter to be passed in the exchange In Body",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.p12FileName": {
-			"name": "camel.sink.endpoint.p12FileName",
-			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.scopes": {
 			"name": "camel.sink.endpoint.scopes",
 			"description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
@@ -84,12 +72,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.user": {
-			"name": "camel.sink.endpoint.user",
-			"description": "The email address of the user the application is trying to impersonate in the service account flow",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.lazyStartProducer": {
 			"name": "camel.sink.endpoint.lazyStartProducer",
 			"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 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 starting the pr [...]
@@ -116,12 +98,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.sink.endpoint.emailAddress": {
+			"name": "camel.sink.endpoint.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.p12FileName": {
+			"name": "camel.sink.endpoint.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.refreshToken": {
 			"name": "camel.sink.endpoint.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.sink.endpoint.user": {
+			"name": "camel.sink.endpoint.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar.applicationName": {
 			"name": "camel.component.google-calendar.applicationName",
 			"description": "Google calendar application name. Example would be camel-google-calendar\/1.0",
@@ -140,18 +140,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.google-calendar.emailAddress": {
-			"name": "camel.component.google-calendar.emailAddress",
-			"description": "The emailAddress of the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.google-calendar.p12FileName": {
-			"name": "camel.component.google-calendar.p12FileName",
-			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.google-calendar.scopes": {
 			"name": "camel.component.google-calendar.scopes",
 			"description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
@@ -159,12 +147,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.google-calendar.user": {
-			"name": "camel.component.google-calendar.user",
-			"description": "The email address of the user the application is trying to impersonate in the service account flow",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.google-calendar.lazyStartProducer": {
 			"name": "camel.component.google-calendar.lazyStartProducer",
 			"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 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 starting the pr [...]
@@ -197,11 +179,29 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.google-calendar.emailAddress": {
+			"name": "camel.component.google-calendar.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.google-calendar.p12FileName": {
+			"name": "camel.component.google-calendar.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar.refreshToken": {
 			"name": "camel.component.google-calendar.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
+		},
+		"camel.component.google-calendar.user": {
+			"name": "camel.component.google-calendar.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow",
+			"priority": "MEDIUM",
+			"required": "false"
 		}
 	}
 }
\ No newline at end of file
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-source.json
index accf3b9..eb51346 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-source.json
@@ -59,24 +59,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.emailAddress": {
-			"name": "camel.source.endpoint.emailAddress",
-			"description": "The emailAddress of the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.inBody": {
 			"name": "camel.source.endpoint.inBody",
 			"description": "Sets the name of a parameter to be passed in the exchange In Body",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.p12FileName": {
-			"name": "camel.source.endpoint.p12FileName",
-			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.scopes": {
 			"name": "camel.source.endpoint.scopes",
 			"description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
@@ -84,12 +72,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.user": {
-			"name": "camel.source.endpoint.user",
-			"description": "The email address of the user the application is trying to impersonate in the service account flow",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.bridgeErrorHandler": {
 			"name": "camel.source.endpoint.bridgeErrorHandler",
 			"description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
@@ -256,12 +238,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.emailAddress": {
+			"name": "camel.source.endpoint.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.p12FileName": {
+			"name": "camel.source.endpoint.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.refreshToken": {
 			"name": "camel.source.endpoint.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.user": {
+			"name": "camel.source.endpoint.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar.applicationName": {
 			"name": "camel.component.google-calendar.applicationName",
 			"description": "Google calendar application name. Example would be camel-google-calendar\/1.0",
@@ -280,18 +280,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.google-calendar.emailAddress": {
-			"name": "camel.component.google-calendar.emailAddress",
-			"description": "The emailAddress of the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.google-calendar.p12FileName": {
-			"name": "camel.component.google-calendar.p12FileName",
-			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.google-calendar.scopes": {
 			"name": "camel.component.google-calendar.scopes",
 			"description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
@@ -299,12 +287,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.google-calendar.user": {
-			"name": "camel.component.google-calendar.user",
-			"description": "The email address of the user the application is trying to impersonate in the service account flow",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.google-calendar.bridgeErrorHandler": {
 			"name": "camel.component.google-calendar.bridgeErrorHandler",
 			"description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
@@ -337,11 +319,29 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.google-calendar.emailAddress": {
+			"name": "camel.component.google-calendar.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.google-calendar.p12FileName": {
+			"name": "camel.component.google-calendar.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar.refreshToken": {
 			"name": "camel.component.google-calendar.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
+		},
+		"camel.component.google-calendar.user": {
+			"name": "camel.component.google-calendar.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow",
+			"priority": "MEDIUM",
+			"required": "false"
 		}
 	}
 }
\ No newline at end of file
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-stream-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-stream-source.json
index aef3a79..73aa06b 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-stream-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-google-calendar-stream-source.json
@@ -233,12 +233,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.emailAddress": {
+			"name": "camel.source.endpoint.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.p12FileName": {
+			"name": "camel.source.endpoint.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.refreshToken": {
 			"name": "camel.source.endpoint.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.user": {
+			"name": "camel.source.endpoint.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar-stream.applicationName": {
 			"name": "camel.component.google-calendar-stream.applicationName",
 			"description": "Google Calendar application name. Example would be camel-google-calendar\/1.0",
@@ -329,11 +347,29 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.google-calendar-stream.emailAddress": {
+			"name": "camel.component.google-calendar-stream.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.google-calendar-stream.p12FileName": {
+			"name": "camel.component.google-calendar-stream.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar-stream.refreshToken": {
 			"name": "camel.component.google-calendar-stream.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
+		},
+		"camel.component.google-calendar-stream.user": {
+			"name": "camel.component.google-calendar-stream.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow.",
+			"priority": "MEDIUM",
+			"required": "false"
 		}
 	}
 }
\ No newline at end of file
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-imap-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-imap-source.json
index 692ce34..92022fc 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-imap-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-imap-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.imap.decodeFilename": {
+			"name": "camel.component.imap.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.imap.delete": {
 			"name": "camel.component.imap.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-imaps-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-imaps-source.json
index 40b44bc..9eb15c5 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-imaps-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-imaps-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.imaps.decodeFilename": {
+			"name": "camel.component.imaps.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.imaps.delete": {
 			"name": "camel.component.imaps.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jclouds-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jclouds-sink.json
index 65e00c5..7465892 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jclouds-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jclouds-sink.json
@@ -6,7 +6,7 @@
 		"id": "camel-jclouds-sink",
 		"type": "sink",
 		"version": "0.8.0-SNAPSHOT",
-		"description": "Interact with jclouds compute & blobstore service."
+		"description": "Interact with jclouds compute and blobstore service."
 	},
 	"properties": {
 		"camel.sink.path.command": {
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jclouds-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jclouds-source.json
index b3598e9..acc9bb3 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jclouds-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jclouds-source.json
@@ -6,7 +6,7 @@
 		"id": "camel-jclouds-source",
 		"type": "source",
 		"version": "0.8.0-SNAPSHOT",
-		"description": "Interact with jclouds compute & blobstore service."
+		"description": "Interact with jclouds compute and blobstore service."
 	},
 	"properties": {
 		"camel.source.path.command": {
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jms-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jms-sink.json
index 6ef9a15..08e2a2e 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jms-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jms-sink.json
@@ -133,7 +133,7 @@
 		},
 		"camel.sink.endpoint.priority": {
 			"name": "camel.sink.endpoint.priority",
-			"description": "Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
+			"description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
 			"defaultValue": "4",
 			"priority": "MEDIUM",
 			"required": "false",
@@ -629,7 +629,7 @@
 		},
 		"camel.component.jms.priority": {
 			"name": "camel.component.jms.priority",
-			"description": "Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
+			"description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
 			"defaultValue": "4",
 			"priority": "MEDIUM",
 			"required": "false",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jsonata-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jsonata-sink.json
index 6ebb15d..022903b 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jsonata-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-jsonata-sink.json
@@ -6,7 +6,7 @@
 		"id": "camel-jsonata-sink",
 		"type": "sink",
 		"version": "0.8.0-SNAPSHOT",
-		"description": "JSON to JSON transformation using JSONATA."
+		"description": "Transforms JSON payload using JSONata transformation."
 	},
 	"properties": {
 		"camel.sink.path.resourceUri": {
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-pop3-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-pop3-source.json
index 7e6847a..9fca2b3 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-pop3-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-pop3-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.pop3.decodeFilename": {
+			"name": "camel.component.pop3.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.pop3.delete": {
 			"name": "camel.component.pop3.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-pop3s-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-pop3s-source.json
index 0f992d0..dff0351 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-pop3s-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-pop3s-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.pop3s.decodeFilename": {
+			"name": "camel.component.pop3s.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.pop3s.delete": {
 			"name": "camel.component.pop3s.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sftp-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sftp-source.json
index 826d84b..5aa136f 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sftp-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sftp-source.json
@@ -366,6 +366,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.excludeExt": {
+			"name": "camel.source.endpoint.excludeExt",
+			"description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.filter": {
 			"name": "camel.source.endpoint.filter",
 			"description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.",
@@ -409,6 +415,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.includeExt": {
+			"name": "camel.source.endpoint.includeExt",
+			"description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.maxDepth": {
 			"name": "camel.source.endpoint.maxDepth",
 			"description": "The maximum depth to traverse when recursively processing a directory.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sip-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sip-source.json
index e0c43d0..adbaf8d 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sip-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sip-source.json
@@ -132,7 +132,7 @@
 		},
 		"camel.source.endpoint.presenceAgent": {
 			"name": "camel.source.endpoint.presenceAgent",
-			"description": "This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.",
+			"description": "This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.",
 			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sips-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sips-source.json
index b6b0e27..f8f5e0b 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sips-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sips-source.json
@@ -132,7 +132,7 @@
 		},
 		"camel.source.endpoint.presenceAgent": {
 			"name": "camel.source.endpoint.presenceAgent",
-			"description": "This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.",
+			"description": "This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.",
 			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms-sink.json
index 15b5961..415d28e 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms-sink.json
@@ -39,6 +39,49 @@
 				"DUPS_OK_ACKNOWLEDGE"
 			]
 		},
+		"camel.sink.endpoint.connectionFactory": {
+			"name": "camel.sink.endpoint.connectionFactory",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.disableReplyTo": {
+			"name": "camel.sink.endpoint.disableReplyTo",
+			"description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you w [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.replyTo": {
+			"name": "camel.sink.endpoint.replyTo",
+			"description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.testConnectionOnStartup": {
+			"name": "camel.sink.endpoint.testConnectionOnStartup",
+			"description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.deliveryMode": {
+			"name": "camel.sink.endpoint.deliveryMode",
+			"description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2]",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"1",
+				"2"
+			]
+		},
+		"camel.sink.endpoint.deliveryPersistent": {
+			"name": "camel.sink.endpoint.deliveryPersistent",
+			"description": "Specifies whether persistent delivery is used by default.",
+			"defaultValue": "true",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.lazyStartProducer": {
 			"name": "camel.sink.endpoint.lazyStartProducer",
 			"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 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 starting the pr [...]
@@ -46,29 +89,57 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.namedReplyTo": {
-			"name": "camel.sink.endpoint.namedReplyTo",
-			"description": "Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name.",
+		"camel.sink.endpoint.priority": {
+			"name": "camel.sink.endpoint.priority",
+			"description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
+			"defaultValue": "4",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"1",
+				"2",
+				"3",
+				"4",
+				"5",
+				"6",
+				"7",
+				"8",
+				"9"
+			]
+		},
+		"camel.sink.endpoint.replyToConcurrentConsumers": {
+			"name": "camel.sink.endpoint.replyToConcurrentConsumers",
+			"description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.persistent": {
-			"name": "camel.sink.endpoint.persistent",
-			"description": "Flag used to enable\/disable message persistence.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.replyToOverride": {
+			"name": "camel.sink.endpoint.replyToOverride",
+			"description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.producerCount": {
-			"name": "camel.sink.endpoint.producerCount",
-			"description": "Sets the number of producers used for this endpoint.",
-			"defaultValue": "1",
+		"camel.sink.endpoint.replyToType": {
+			"name": "camel.sink.endpoint.replyToType",
+			"description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive]",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"Temporary",
+				"Exclusive"
+			]
+		},
+		"camel.sink.endpoint.requestTimeout": {
+			"name": "camel.sink.endpoint.requestTimeout",
+			"description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option.",
+			"defaultValue": "20000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.ttl": {
-			"name": "camel.sink.endpoint.ttl",
-			"description": "Flag used to adjust the Time To Live value of produced messages.",
+		"camel.sink.endpoint.timeToLive": {
+			"name": "camel.sink.endpoint.timeToLive",
+			"description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
 			"defaultValue": "-1L",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -80,17 +151,24 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.prefillPool": {
-			"name": "camel.sink.endpoint.prefillPool",
-			"description": "Whether to prefill the producer connection pool on startup, or create connections lazy when needed.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.disableTimeToLive": {
+			"name": "camel.sink.endpoint.disableTimeToLive",
+			"description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire  [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.responseTimeOut": {
-			"name": "camel.sink.endpoint.responseTimeOut",
-			"description": "Sets the amount of time we should wait before timing out a InOut response.",
-			"defaultValue": "5000L",
+		"camel.sink.endpoint.explicitQosEnabled": {
+			"name": "camel.sink.endpoint.explicitQosEnabled",
+			"description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+			"defaultValue": "\"false\"",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.preserveMessageQos": {
+			"name": "camel.sink.endpoint.preserveMessageQos",
+			"description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by cont [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -108,24 +186,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.connectionCount": {
-			"name": "camel.sink.endpoint.connectionCount",
-			"description": "The maximum number of connections available to this endpoint",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.sink.endpoint.connectionFactory": {
-			"name": "camel.sink.endpoint.connectionFactory",
-			"description": "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.sink.endpoint.connectionResource": {
-			"name": "camel.sink.endpoint.connectionResource",
-			"description": "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.destinationCreationStrategy": {
 			"name": "camel.sink.endpoint.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -170,29 +230,37 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.transactionCommitStrategy": {
-			"name": "camel.sink.endpoint.transactionCommitStrategy",
-			"description": "Sets the commit strategy.",
+		"camel.sink.endpoint.recoveryInterval": {
+			"name": "camel.sink.endpoint.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.sharedJMSSession": {
-			"name": "camel.sink.endpoint.sharedJMSSession",
-			"description": "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.synchronous": {
+			"name": "camel.sink.endpoint.synchronous",
+			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionCount": {
-			"name": "camel.component.sjms.connectionCount",
-			"description": "The maximum number of connections available to endpoints started under this component",
-			"defaultValue": "\"1\"",
+		"camel.sink.endpoint.transferException": {
+			"name": "camel.sink.endpoint.transferException",
+			"description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.transacted": {
+			"name": "camel.sink.endpoint.transacted",
+			"description": "Specifies whether to use transacted mode",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
 		"camel.component.sjms.connectionFactory": {
 			"name": "camel.component.sjms.connectionFactory",
-			"description": "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -210,32 +278,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionClientId": {
-			"name": "camel.component.sjms.connectionClientId",
-			"description": "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionMaxWait": {
-			"name": "camel.component.sjms.connectionMaxWait",
-			"description": "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionResource": {
-			"name": "camel.component.sjms.connectionResource",
-			"description": "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionTestOnBorrow": {
-			"name": "camel.component.sjms.connectionTestOnBorrow",
-			"description": "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms.destinationCreationStrategy": {
 			"name": "camel.component.sjms.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -254,33 +296,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.timedTaskManager": {
-			"name": "camel.component.sjms.timedTaskManager",
-			"description": "To use a custom TimedTaskManager",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.headerFilterStrategy": {
-			"name": "camel.component.sjms.headerFilterStrategy",
-			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
+		"camel.component.sjms.recoveryInterval": {
+			"name": "camel.component.sjms.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionPassword": {
-			"name": "camel.component.sjms.connectionPassword",
-			"description": "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers": {
+			"name": "camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers",
+			"description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionUsername": {
-			"name": "camel.component.sjms.connectionUsername",
-			"description": "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms.requestTimeoutCheckerInterval": {
+			"name": "camel.component.sjms.requestTimeoutCheckerInterval",
+			"description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.",
+			"defaultValue": "1000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.transactionCommitStrategy": {
-			"name": "camel.component.sjms.transactionCommitStrategy",
-			"description": "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.",
+		"camel.component.sjms.headerFilterStrategy": {
+			"name": "camel.component.sjms.headerFilterStrategy",
+			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
 			"priority": "MEDIUM",
 			"required": "false"
 		}
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms-source.json
index c3ec0f4..89c7f9b 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms-source.json
@@ -39,6 +39,46 @@
 				"DUPS_OK_ACKNOWLEDGE"
 			]
 		},
+		"camel.source.endpoint.connectionFactory": {
+			"name": "camel.source.endpoint.connectionFactory",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.disableReplyTo": {
+			"name": "camel.source.endpoint.disableReplyTo",
+			"description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you w [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.replyTo": {
+			"name": "camel.source.endpoint.replyTo",
+			"description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.testConnectionOnStartup": {
+			"name": "camel.source.endpoint.testConnectionOnStartup",
+			"description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.asyncConsumer": {
+			"name": "camel.source.endpoint.asyncConsumer",
+			"description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.autoStartup": {
+			"name": "camel.source.endpoint.autoStartup",
+			"description": "Specifies whether the consumer container should auto-startup.",
+			"defaultValue": "true",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.bridgeErrorHandler": {
 			"name": "camel.source.endpoint.bridgeErrorHandler",
 			"description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
@@ -46,37 +86,43 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.consumerCount": {
-			"name": "camel.source.endpoint.consumerCount",
-			"description": "Sets the number of consumer listeners used for this endpoint.",
-			"defaultValue": "1",
+		"camel.source.endpoint.clientId": {
+			"name": "camel.source.endpoint.clientId",
+			"description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.durableSubscriptionId": {
-			"name": "camel.source.endpoint.durableSubscriptionId",
-			"description": "Sets the durable subscription Id required for durable topics.",
+		"camel.source.endpoint.concurrentConsumers": {
+			"name": "camel.source.endpoint.concurrentConsumers",
+			"description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.reconnectBackOff": {
-			"name": "camel.source.endpoint.reconnectBackOff",
-			"description": "Backoff in millis on consumer pool reconnection attempts",
-			"defaultValue": "5000L",
+		"camel.source.endpoint.durableSubscriptionName": {
+			"name": "camel.source.endpoint.durableSubscriptionName",
+			"description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.reconnectOnError": {
-			"name": "camel.source.endpoint.reconnectOnError",
-			"description": "Try to apply reconnection logic on consumer pool",
+		"camel.source.endpoint.replyToDeliveryPersistent": {
+			"name": "camel.source.endpoint.replyToDeliveryPersistent",
+			"description": "Specifies whether to use persistent delivery by default for replies.",
 			"defaultValue": "true",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.synchronous": {
-			"name": "camel.source.endpoint.synchronous",
-			"description": "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).",
-			"defaultValue": "true",
+		"camel.source.endpoint.eagerLoadingOfProperties": {
+			"name": "camel.source.endpoint.eagerLoadingOfProperties",
+			"description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.eagerPoisonBody": {
+			"name": "camel.source.endpoint.eagerPoisonBody",
+			"description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+			"defaultValue": "\"Poison JMS message due to ${exception.message}\"",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -103,6 +149,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.replyToSameDestinationAllowed": {
+			"name": "camel.source.endpoint.replyToSameDestinationAllowed",
+			"description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.asyncStartListener": {
 			"name": "camel.source.endpoint.asyncStartListener",
 			"description": "Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if th [...]
@@ -117,24 +170,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.connectionCount": {
-			"name": "camel.source.endpoint.connectionCount",
-			"description": "The maximum number of connections available to this endpoint",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.connectionFactory": {
-			"name": "camel.source.endpoint.connectionFactory",
-			"description": "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.connectionResource": {
-			"name": "camel.source.endpoint.connectionResource",
-			"description": "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.destinationCreationStrategy": {
 			"name": "camel.source.endpoint.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -179,72 +214,37 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.errorHandlerLoggingLevel": {
-			"name": "camel.source.endpoint.errorHandlerLoggingLevel",
-			"description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF]",
-			"defaultValue": "\"WARN\"",
-			"priority": "MEDIUM",
-			"required": "false",
-			"enum": [
-				"TRACE",
-				"DEBUG",
-				"INFO",
-				"WARN",
-				"ERROR",
-				"OFF"
-			]
-		},
-		"camel.source.endpoint.errorHandlerLogStackTrace": {
-			"name": "camel.source.endpoint.errorHandlerLogStackTrace",
-			"description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
-			"defaultValue": "true",
+		"camel.source.endpoint.recoveryInterval": {
+			"name": "camel.source.endpoint.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.transacted": {
-			"name": "camel.source.endpoint.transacted",
-			"description": "Specifies whether to use transacted mode",
+		"camel.source.endpoint.synchronous": {
+			"name": "camel.source.endpoint.synchronous",
+			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
 			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.transactionBatchCount": {
-			"name": "camel.source.endpoint.transactionBatchCount",
-			"description": "If transacted sets the number of messages to process before committing a transaction.",
-			"defaultValue": "-1",
-			"priority": "LOW",
-			"required": "false"
-		},
-		"camel.source.endpoint.transactionBatchTimeout": {
-			"name": "camel.source.endpoint.transactionBatchTimeout",
-			"description": "Sets timeout (in millis) for batch transactions, the value should be 1000 or higher.",
-			"defaultValue": "5000L",
-			"priority": "LOW",
-			"required": "false"
-		},
-		"camel.source.endpoint.transactionCommitStrategy": {
-			"name": "camel.source.endpoint.transactionCommitStrategy",
-			"description": "Sets the commit strategy.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.sharedJMSSession": {
-			"name": "camel.source.endpoint.sharedJMSSession",
-			"description": "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.",
-			"defaultValue": "true",
+		"camel.source.endpoint.transferException": {
+			"name": "camel.source.endpoint.transferException",
+			"description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionCount": {
-			"name": "camel.component.sjms.connectionCount",
-			"description": "The maximum number of connections available to endpoints started under this component",
-			"defaultValue": "\"1\"",
+		"camel.source.endpoint.transacted": {
+			"name": "camel.source.endpoint.transacted",
+			"description": "Specifies whether to use transacted mode",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
 		"camel.component.sjms.connectionFactory": {
 			"name": "camel.component.sjms.connectionFactory",
-			"description": "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -255,20 +255,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.reconnectBackOff": {
-			"name": "camel.component.sjms.reconnectBackOff",
-			"description": "Backoff in millis on consumer pool reconnection attempts",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.reconnectOnError": {
-			"name": "camel.component.sjms.reconnectOnError",
-			"description": "Try to apply reconnection logic on consumer pool",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms.autowiredEnabled": {
 			"name": "camel.component.sjms.autowiredEnabled",
 			"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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
@@ -276,32 +262,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionClientId": {
-			"name": "camel.component.sjms.connectionClientId",
-			"description": "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionMaxWait": {
-			"name": "camel.component.sjms.connectionMaxWait",
-			"description": "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionResource": {
-			"name": "camel.component.sjms.connectionResource",
-			"description": "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionTestOnBorrow": {
-			"name": "camel.component.sjms.connectionTestOnBorrow",
-			"description": "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms.destinationCreationStrategy": {
 			"name": "camel.component.sjms.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -320,33 +280,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.timedTaskManager": {
-			"name": "camel.component.sjms.timedTaskManager",
-			"description": "To use a custom TimedTaskManager",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.headerFilterStrategy": {
-			"name": "camel.component.sjms.headerFilterStrategy",
-			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
+		"camel.component.sjms.recoveryInterval": {
+			"name": "camel.component.sjms.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionPassword": {
-			"name": "camel.component.sjms.connectionPassword",
-			"description": "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers": {
+			"name": "camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers",
+			"description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionUsername": {
-			"name": "camel.component.sjms.connectionUsername",
-			"description": "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms.requestTimeoutCheckerInterval": {
+			"name": "camel.component.sjms.requestTimeoutCheckerInterval",
+			"description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.",
+			"defaultValue": "1000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.transactionCommitStrategy": {
-			"name": "camel.component.sjms.transactionCommitStrategy",
-			"description": "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.",
+		"camel.component.sjms.headerFilterStrategy": {
+			"name": "camel.component.sjms.headerFilterStrategy",
+			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
 			"priority": "MEDIUM",
 			"required": "false"
 		}
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms2-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms2-sink.json
index 6bca2c5..11774d6 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms2-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms2-sink.json
@@ -39,6 +39,49 @@
 				"DUPS_OK_ACKNOWLEDGE"
 			]
 		},
+		"camel.sink.endpoint.connectionFactory": {
+			"name": "camel.sink.endpoint.connectionFactory",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.disableReplyTo": {
+			"name": "camel.sink.endpoint.disableReplyTo",
+			"description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you w [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.replyTo": {
+			"name": "camel.sink.endpoint.replyTo",
+			"description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.testConnectionOnStartup": {
+			"name": "camel.sink.endpoint.testConnectionOnStartup",
+			"description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.deliveryMode": {
+			"name": "camel.sink.endpoint.deliveryMode",
+			"description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2]",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"1",
+				"2"
+			]
+		},
+		"camel.sink.endpoint.deliveryPersistent": {
+			"name": "camel.sink.endpoint.deliveryPersistent",
+			"description": "Specifies whether persistent delivery is used by default.",
+			"defaultValue": "true",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.lazyStartProducer": {
 			"name": "camel.sink.endpoint.lazyStartProducer",
 			"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 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 starting the pr [...]
@@ -46,29 +89,57 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.namedReplyTo": {
-			"name": "camel.sink.endpoint.namedReplyTo",
-			"description": "Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name.",
+		"camel.sink.endpoint.priority": {
+			"name": "camel.sink.endpoint.priority",
+			"description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
+			"defaultValue": "4",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"1",
+				"2",
+				"3",
+				"4",
+				"5",
+				"6",
+				"7",
+				"8",
+				"9"
+			]
+		},
+		"camel.sink.endpoint.replyToConcurrentConsumers": {
+			"name": "camel.sink.endpoint.replyToConcurrentConsumers",
+			"description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.persistent": {
-			"name": "camel.sink.endpoint.persistent",
-			"description": "Flag used to enable\/disable message persistence.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.replyToOverride": {
+			"name": "camel.sink.endpoint.replyToOverride",
+			"description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.producerCount": {
-			"name": "camel.sink.endpoint.producerCount",
-			"description": "Sets the number of producers used for this endpoint.",
-			"defaultValue": "1",
+		"camel.sink.endpoint.replyToType": {
+			"name": "camel.sink.endpoint.replyToType",
+			"description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive]",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"Temporary",
+				"Exclusive"
+			]
+		},
+		"camel.sink.endpoint.requestTimeout": {
+			"name": "camel.sink.endpoint.requestTimeout",
+			"description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option.",
+			"defaultValue": "20000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.ttl": {
-			"name": "camel.sink.endpoint.ttl",
-			"description": "Flag used to adjust the Time To Live value of produced messages.",
+		"camel.sink.endpoint.timeToLive": {
+			"name": "camel.sink.endpoint.timeToLive",
+			"description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
 			"defaultValue": "-1L",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -80,17 +151,24 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.prefillPool": {
-			"name": "camel.sink.endpoint.prefillPool",
-			"description": "Whether to prefill the producer connection pool on startup, or create connections lazy when needed.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.disableTimeToLive": {
+			"name": "camel.sink.endpoint.disableTimeToLive",
+			"description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire  [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.responseTimeOut": {
-			"name": "camel.sink.endpoint.responseTimeOut",
-			"description": "Sets the amount of time we should wait before timing out a InOut response.",
-			"defaultValue": "5000L",
+		"camel.sink.endpoint.explicitQosEnabled": {
+			"name": "camel.sink.endpoint.explicitQosEnabled",
+			"description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+			"defaultValue": "\"false\"",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.preserveMessageQos": {
+			"name": "camel.sink.endpoint.preserveMessageQos",
+			"description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by cont [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -108,24 +186,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.connectionCount": {
-			"name": "camel.sink.endpoint.connectionCount",
-			"description": "The maximum number of connections available to this endpoint",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.sink.endpoint.connectionFactory": {
-			"name": "camel.sink.endpoint.connectionFactory",
-			"description": "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.sink.endpoint.connectionResource": {
-			"name": "camel.sink.endpoint.connectionResource",
-			"description": "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.destinationCreationStrategy": {
 			"name": "camel.sink.endpoint.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -170,29 +230,37 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.transactionCommitStrategy": {
-			"name": "camel.sink.endpoint.transactionCommitStrategy",
-			"description": "Sets the commit strategy.",
+		"camel.sink.endpoint.recoveryInterval": {
+			"name": "camel.sink.endpoint.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.sharedJMSSession": {
-			"name": "camel.sink.endpoint.sharedJMSSession",
-			"description": "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.synchronous": {
+			"name": "camel.sink.endpoint.synchronous",
+			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionCount": {
-			"name": "camel.component.sjms2.connectionCount",
-			"description": "The maximum number of connections available to endpoints started under this component",
-			"defaultValue": "\"1\"",
+		"camel.sink.endpoint.transferException": {
+			"name": "camel.sink.endpoint.transferException",
+			"description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.transacted": {
+			"name": "camel.sink.endpoint.transacted",
+			"description": "Specifies whether to use transacted mode",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
 		"camel.component.sjms2.connectionFactory": {
 			"name": "camel.component.sjms2.connectionFactory",
-			"description": "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -210,32 +278,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionClientId": {
-			"name": "camel.component.sjms2.connectionClientId",
-			"description": "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionMaxWait": {
-			"name": "camel.component.sjms2.connectionMaxWait",
-			"description": "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionResource": {
-			"name": "camel.component.sjms2.connectionResource",
-			"description": "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionTestOnBorrow": {
-			"name": "camel.component.sjms2.connectionTestOnBorrow",
-			"description": "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms2.destinationCreationStrategy": {
 			"name": "camel.component.sjms2.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -254,33 +296,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.timedTaskManager": {
-			"name": "camel.component.sjms2.timedTaskManager",
-			"description": "To use a custom TimedTaskManager",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.headerFilterStrategy": {
-			"name": "camel.component.sjms2.headerFilterStrategy",
-			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
+		"camel.component.sjms2.recoveryInterval": {
+			"name": "camel.component.sjms2.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionPassword": {
-			"name": "camel.component.sjms2.connectionPassword",
-			"description": "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers": {
+			"name": "camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers",
+			"description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionUsername": {
-			"name": "camel.component.sjms2.connectionUsername",
-			"description": "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms2.requestTimeoutCheckerInterval": {
+			"name": "camel.component.sjms2.requestTimeoutCheckerInterval",
+			"description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.",
+			"defaultValue": "1000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.transactionCommitStrategy": {
-			"name": "camel.component.sjms2.transactionCommitStrategy",
-			"description": "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.",
+		"camel.component.sjms2.headerFilterStrategy": {
+			"name": "camel.component.sjms2.headerFilterStrategy",
+			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
 			"priority": "MEDIUM",
 			"required": "false"
 		}
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms2-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms2-source.json
index 46d8f72..863d662 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms2-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-sjms2-source.json
@@ -39,6 +39,46 @@
 				"DUPS_OK_ACKNOWLEDGE"
 			]
 		},
+		"camel.source.endpoint.connectionFactory": {
+			"name": "camel.source.endpoint.connectionFactory",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.disableReplyTo": {
+			"name": "camel.source.endpoint.disableReplyTo",
+			"description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you w [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.replyTo": {
+			"name": "camel.source.endpoint.replyTo",
+			"description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.testConnectionOnStartup": {
+			"name": "camel.source.endpoint.testConnectionOnStartup",
+			"description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.asyncConsumer": {
+			"name": "camel.source.endpoint.asyncConsumer",
+			"description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.autoStartup": {
+			"name": "camel.source.endpoint.autoStartup",
+			"description": "Specifies whether the consumer container should auto-startup.",
+			"defaultValue": "true",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.bridgeErrorHandler": {
 			"name": "camel.source.endpoint.bridgeErrorHandler",
 			"description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
@@ -46,9 +86,15 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.consumerCount": {
-			"name": "camel.source.endpoint.consumerCount",
-			"description": "Sets the number of consumer listeners used for this endpoint.",
+		"camel.source.endpoint.clientId": {
+			"name": "camel.source.endpoint.clientId",
+			"description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.concurrentConsumers": {
+			"name": "camel.source.endpoint.concurrentConsumers",
+			"description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
 			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -60,22 +106,15 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.durableSubscriptionId": {
-			"name": "camel.source.endpoint.durableSubscriptionId",
-			"description": "Sets the durable subscription Id required for durable topics.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.reconnectBackOff": {
-			"name": "camel.source.endpoint.reconnectBackOff",
-			"description": "Backoff in millis on consumer pool reconnection attempts",
-			"defaultValue": "5000L",
+		"camel.source.endpoint.durableSubscriptionName": {
+			"name": "camel.source.endpoint.durableSubscriptionName",
+			"description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.reconnectOnError": {
-			"name": "camel.source.endpoint.reconnectOnError",
-			"description": "Try to apply reconnection logic on consumer pool",
+		"camel.source.endpoint.replyToDeliveryPersistent": {
+			"name": "camel.source.endpoint.replyToDeliveryPersistent",
+			"description": "Specifies whether to use persistent delivery by default for replies.",
 			"defaultValue": "true",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -93,10 +132,17 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.synchronous": {
-			"name": "camel.source.endpoint.synchronous",
-			"description": "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).",
-			"defaultValue": "true",
+		"camel.source.endpoint.eagerLoadingOfProperties": {
+			"name": "camel.source.endpoint.eagerLoadingOfProperties",
+			"description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.eagerPoisonBody": {
+			"name": "camel.source.endpoint.eagerPoisonBody",
+			"description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+			"defaultValue": "\"Poison JMS message due to ${exception.message}\"",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -123,6 +169,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.replyToSameDestinationAllowed": {
+			"name": "camel.source.endpoint.replyToSameDestinationAllowed",
+			"description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.asyncStartListener": {
 			"name": "camel.source.endpoint.asyncStartListener",
 			"description": "Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if th [...]
@@ -137,24 +190,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.connectionCount": {
-			"name": "camel.source.endpoint.connectionCount",
-			"description": "The maximum number of connections available to this endpoint",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.connectionFactory": {
-			"name": "camel.source.endpoint.connectionFactory",
-			"description": "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.connectionResource": {
-			"name": "camel.source.endpoint.connectionResource",
-			"description": "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.destinationCreationStrategy": {
 			"name": "camel.source.endpoint.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -199,72 +234,37 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.errorHandlerLoggingLevel": {
-			"name": "camel.source.endpoint.errorHandlerLoggingLevel",
-			"description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF]",
-			"defaultValue": "\"WARN\"",
-			"priority": "MEDIUM",
-			"required": "false",
-			"enum": [
-				"TRACE",
-				"DEBUG",
-				"INFO",
-				"WARN",
-				"ERROR",
-				"OFF"
-			]
-		},
-		"camel.source.endpoint.errorHandlerLogStackTrace": {
-			"name": "camel.source.endpoint.errorHandlerLogStackTrace",
-			"description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
-			"defaultValue": "true",
+		"camel.source.endpoint.recoveryInterval": {
+			"name": "camel.source.endpoint.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.transacted": {
-			"name": "camel.source.endpoint.transacted",
-			"description": "Specifies whether to use transacted mode",
+		"camel.source.endpoint.synchronous": {
+			"name": "camel.source.endpoint.synchronous",
+			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
 			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.transactionBatchCount": {
-			"name": "camel.source.endpoint.transactionBatchCount",
-			"description": "If transacted sets the number of messages to process before committing a transaction.",
-			"defaultValue": "-1",
-			"priority": "LOW",
-			"required": "false"
-		},
-		"camel.source.endpoint.transactionBatchTimeout": {
-			"name": "camel.source.endpoint.transactionBatchTimeout",
-			"description": "Sets timeout (in millis) for batch transactions, the value should be 1000 or higher.",
-			"defaultValue": "5000L",
-			"priority": "LOW",
-			"required": "false"
-		},
-		"camel.source.endpoint.transactionCommitStrategy": {
-			"name": "camel.source.endpoint.transactionCommitStrategy",
-			"description": "Sets the commit strategy.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.sharedJMSSession": {
-			"name": "camel.source.endpoint.sharedJMSSession",
-			"description": "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.",
-			"defaultValue": "true",
+		"camel.source.endpoint.transferException": {
+			"name": "camel.source.endpoint.transferException",
+			"description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionCount": {
-			"name": "camel.component.sjms2.connectionCount",
-			"description": "The maximum number of connections available to endpoints started under this component",
-			"defaultValue": "\"1\"",
+		"camel.source.endpoint.transacted": {
+			"name": "camel.source.endpoint.transacted",
+			"description": "Specifies whether to use transacted mode",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
 		"camel.component.sjms2.connectionFactory": {
 			"name": "camel.component.sjms2.connectionFactory",
-			"description": "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -275,20 +275,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.reconnectBackOff": {
-			"name": "camel.component.sjms2.reconnectBackOff",
-			"description": "Backoff in millis on consumer pool reconnection attempts",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.reconnectOnError": {
-			"name": "camel.component.sjms2.reconnectOnError",
-			"description": "Try to apply reconnection logic on consumer pool",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms2.autowiredEnabled": {
 			"name": "camel.component.sjms2.autowiredEnabled",
 			"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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
@@ -296,32 +282,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionClientId": {
-			"name": "camel.component.sjms2.connectionClientId",
-			"description": "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionMaxWait": {
-			"name": "camel.component.sjms2.connectionMaxWait",
-			"description": "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionResource": {
-			"name": "camel.component.sjms2.connectionResource",
-			"description": "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionTestOnBorrow": {
-			"name": "camel.component.sjms2.connectionTestOnBorrow",
-			"description": "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms2.destinationCreationStrategy": {
 			"name": "camel.component.sjms2.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -340,33 +300,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.timedTaskManager": {
-			"name": "camel.component.sjms2.timedTaskManager",
-			"description": "To use a custom TimedTaskManager",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.headerFilterStrategy": {
-			"name": "camel.component.sjms2.headerFilterStrategy",
-			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
+		"camel.component.sjms2.recoveryInterval": {
+			"name": "camel.component.sjms2.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionPassword": {
-			"name": "camel.component.sjms2.connectionPassword",
-			"description": "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers": {
+			"name": "camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers",
+			"description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionUsername": {
-			"name": "camel.component.sjms2.connectionUsername",
-			"description": "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms2.requestTimeoutCheckerInterval": {
+			"name": "camel.component.sjms2.requestTimeoutCheckerInterval",
+			"description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.",
+			"defaultValue": "1000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.transactionCommitStrategy": {
-			"name": "camel.component.sjms2.transactionCommitStrategy",
-			"description": "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.",
+		"camel.component.sjms2.headerFilterStrategy": {
+			"name": "camel.component.sjms2.headerFilterStrategy",
+			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
 			"priority": "MEDIUM",
 			"required": "false"
 		}
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-smtp-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-smtp-source.json
index d7fa953..211b7dc 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-smtp-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-smtp-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.smtp.decodeFilename": {
+			"name": "camel.component.smtp.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.smtp.delete": {
 			"name": "camel.component.smtp.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-smtps-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-smtps-source.json
index 61ce78e..319bf6f 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-smtps-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-smtps-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.smtps.decodeFilename": {
+			"name": "camel.component.smtps.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.smtps.delete": {
 			"name": "camel.component.smtps.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-vertx-kafka-sink.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-vertx-kafka-sink.json
index 665ffc2..54d308e 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-vertx-kafka-sink.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-vertx-kafka-sink.json
@@ -86,13 +86,14 @@
 		},
 		"camel.sink.endpoint.metricsRecordingLevel": {
 			"name": "camel.sink.endpoint.metricsRecordingLevel",
-			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG]",
+			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]",
 			"defaultValue": "\"INFO\"",
 			"priority": "MEDIUM",
 			"required": "false",
 			"enum": [
 				"INFO",
-				"DEBUG"
+				"DEBUG",
+				"TRACE"
 			]
 		},
 		"camel.sink.endpoint.metricsSampleWindowMs": {
@@ -150,6 +151,20 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.sink.endpoint.socketConnectionSetupTimeoutMaxMs": {
+			"name": "camel.sink.endpoint.socketConnectionSetupTimeoutMaxMs",
+			"description": "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.",
+			"defaultValue": "127000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.socketConnectionSetupTimeoutMs": {
+			"name": "camel.sink.endpoint.socketConnectionSetupTimeoutMs",
+			"description": "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.",
+			"defaultValue": "10000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.acks": {
 			"name": "camel.sink.endpoint.acks",
 			"description": "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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and  [...]
@@ -221,7 +236,7 @@
 		},
 		"camel.sink.endpoint.maxBlockMs": {
 			"name": "camel.sink.endpoint.maxBlockMs",
-			"description": "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.",
+			"description": "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  [...]
 			"defaultValue": "60000L",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -269,7 +284,7 @@
 		},
 		"camel.sink.endpoint.transactionTimeoutMs": {
 			"name": "camel.sink.endpoint.transactionTimeoutMs",
-			"description": "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.",
+			"description": "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.",
 			"defaultValue": "60000",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -429,7 +444,19 @@
 		},
 		"camel.sink.endpoint.sslKeyPassword": {
 			"name": "camel.sink.endpoint.sslKeyPassword",
-			"description": "The password of the private key in the key store file. This is optional for client.",
+			"description": "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.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.sslKeystoreCertificateChain": {
+			"name": "camel.sink.endpoint.sslKeystoreCertificateChain",
+			"description": "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",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.sslKeystoreKey": {
+			"name": "camel.sink.endpoint.sslKeystoreKey",
+			"description": "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'",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -441,7 +468,7 @@
 		},
 		"camel.sink.endpoint.sslKeystorePassword": {
 			"name": "camel.sink.endpoint.sslKeystorePassword",
-			"description": "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -478,6 +505,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.sink.endpoint.sslTruststoreCertificates": {
+			"name": "camel.sink.endpoint.sslTruststoreCertificates",
+			"description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.sslTruststoreLocation": {
 			"name": "camel.sink.endpoint.sslTruststoreLocation",
 			"description": "The location of the trust store file.",
@@ -486,7 +519,7 @@
 		},
 		"camel.sink.endpoint.sslTruststorePassword": {
 			"name": "camel.sink.endpoint.sslTruststorePassword",
-			"description": "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.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -574,13 +607,14 @@
 		},
 		"camel.component.vertx-kafka.metricsRecordingLevel": {
 			"name": "camel.component.vertx-kafka.metricsRecordingLevel",
-			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG]",
+			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]",
 			"defaultValue": "\"INFO\"",
 			"priority": "MEDIUM",
 			"required": "false",
 			"enum": [
 				"INFO",
-				"DEBUG"
+				"DEBUG",
+				"TRACE"
 			]
 		},
 		"camel.component.vertx-kafka.metricsSampleWindowMs": {
@@ -638,6 +672,20 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs": {
+			"name": "camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs",
+			"description": "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.",
+			"defaultValue": "127000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.socketConnectionSetupTimeoutMs": {
+			"name": "camel.component.vertx-kafka.socketConnectionSetupTimeoutMs",
+			"description": "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.",
+			"defaultValue": "10000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.vertx-kafka.acks": {
 			"name": "camel.component.vertx-kafka.acks",
 			"description": "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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and  [...]
@@ -709,7 +757,7 @@
 		},
 		"camel.component.vertx-kafka.maxBlockMs": {
 			"name": "camel.component.vertx-kafka.maxBlockMs",
-			"description": "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.",
+			"description": "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  [...]
 			"defaultValue": "60000L",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -757,7 +805,7 @@
 		},
 		"camel.component.vertx-kafka.transactionTimeoutMs": {
 			"name": "camel.component.vertx-kafka.transactionTimeoutMs",
-			"description": "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.",
+			"description": "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.",
 			"defaultValue": "60000",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -929,7 +977,19 @@
 		},
 		"camel.component.vertx-kafka.sslKeyPassword": {
 			"name": "camel.component.vertx-kafka.sslKeyPassword",
-			"description": "The password of the private key in the key store file. This is optional for client.",
+			"description": "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.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.sslKeystoreCertificateChain": {
+			"name": "camel.component.vertx-kafka.sslKeystoreCertificateChain",
+			"description": "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",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.sslKeystoreKey": {
+			"name": "camel.component.vertx-kafka.sslKeystoreKey",
+			"description": "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'",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -941,7 +1001,7 @@
 		},
 		"camel.component.vertx-kafka.sslKeystorePassword": {
 			"name": "camel.component.vertx-kafka.sslKeystorePassword",
-			"description": "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -978,6 +1038,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.vertx-kafka.sslTruststoreCertificates": {
+			"name": "camel.component.vertx-kafka.sslTruststoreCertificates",
+			"description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.vertx-kafka.sslTruststoreLocation": {
 			"name": "camel.component.vertx-kafka.sslTruststoreLocation",
 			"description": "The location of the trust store file.",
@@ -986,7 +1052,7 @@
 		},
 		"camel.component.vertx-kafka.sslTruststorePassword": {
 			"name": "camel.component.vertx-kafka.sslTruststorePassword",
-			"description": "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.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-vertx-kafka-source.json b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-vertx-kafka-source.json
index 98bd882..bc45096 100644
--- a/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-vertx-kafka-source.json
+++ b/camel-kafka-connector-catalog/src/generated/resources/connectors/camel-vertx-kafka-source.json
@@ -86,13 +86,14 @@
 		},
 		"camel.source.endpoint.metricsRecordingLevel": {
 			"name": "camel.source.endpoint.metricsRecordingLevel",
-			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG]",
+			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]",
 			"defaultValue": "\"INFO\"",
 			"priority": "MEDIUM",
 			"required": "false",
 			"enum": [
 				"INFO",
-				"DEBUG"
+				"DEBUG",
+				"TRACE"
 			]
 		},
 		"camel.source.endpoint.metricsSampleWindowMs": {
@@ -150,6 +151,20 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.socketConnectionSetupTimeoutMaxMs": {
+			"name": "camel.source.endpoint.socketConnectionSetupTimeoutMaxMs",
+			"description": "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.",
+			"defaultValue": "127000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.socketConnectionSetupTimeoutMs": {
+			"name": "camel.source.endpoint.socketConnectionSetupTimeoutMs",
+			"description": "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.",
+			"defaultValue": "10000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.allowAutoCreateTopics": {
 			"name": "camel.source.endpoint.allowAutoCreateTopics",
 			"description": "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",
@@ -498,7 +513,19 @@
 		},
 		"camel.source.endpoint.sslKeyPassword": {
 			"name": "camel.source.endpoint.sslKeyPassword",
-			"description": "The password of the private key in the key store file. This is optional for client.",
+			"description": "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.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.sslKeystoreCertificateChain": {
+			"name": "camel.source.endpoint.sslKeystoreCertificateChain",
+			"description": "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",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.sslKeystoreKey": {
+			"name": "camel.source.endpoint.sslKeystoreKey",
+			"description": "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'",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -510,7 +537,7 @@
 		},
 		"camel.source.endpoint.sslKeystorePassword": {
 			"name": "camel.source.endpoint.sslKeystorePassword",
-			"description": "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -547,6 +574,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.sslTruststoreCertificates": {
+			"name": "camel.source.endpoint.sslTruststoreCertificates",
+			"description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.sslTruststoreLocation": {
 			"name": "camel.source.endpoint.sslTruststoreLocation",
 			"description": "The location of the trust store file.",
@@ -555,7 +588,7 @@
 		},
 		"camel.source.endpoint.sslTruststorePassword": {
 			"name": "camel.source.endpoint.sslTruststorePassword",
-			"description": "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.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -643,13 +676,14 @@
 		},
 		"camel.component.vertx-kafka.metricsRecordingLevel": {
 			"name": "camel.component.vertx-kafka.metricsRecordingLevel",
-			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG]",
+			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]",
 			"defaultValue": "\"INFO\"",
 			"priority": "MEDIUM",
 			"required": "false",
 			"enum": [
 				"INFO",
-				"DEBUG"
+				"DEBUG",
+				"TRACE"
 			]
 		},
 		"camel.component.vertx-kafka.metricsSampleWindowMs": {
@@ -707,6 +741,20 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs": {
+			"name": "camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs",
+			"description": "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.",
+			"defaultValue": "127000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.socketConnectionSetupTimeoutMs": {
+			"name": "camel.component.vertx-kafka.socketConnectionSetupTimeoutMs",
+			"description": "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.",
+			"defaultValue": "10000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.vertx-kafka.allowAutoCreateTopics": {
 			"name": "camel.component.vertx-kafka.allowAutoCreateTopics",
 			"description": "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",
@@ -1050,7 +1098,19 @@
 		},
 		"camel.component.vertx-kafka.sslKeyPassword": {
 			"name": "camel.component.vertx-kafka.sslKeyPassword",
-			"description": "The password of the private key in the key store file. This is optional for client.",
+			"description": "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.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.sslKeystoreCertificateChain": {
+			"name": "camel.component.vertx-kafka.sslKeystoreCertificateChain",
+			"description": "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",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.sslKeystoreKey": {
+			"name": "camel.component.vertx-kafka.sslKeystoreKey",
+			"description": "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'",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -1062,7 +1122,7 @@
 		},
 		"camel.component.vertx-kafka.sslKeystorePassword": {
 			"name": "camel.component.vertx-kafka.sslKeystorePassword",
-			"description": "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -1099,6 +1159,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.vertx-kafka.sslTruststoreCertificates": {
+			"name": "camel.component.vertx-kafka.sslTruststoreCertificates",
+			"description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.vertx-kafka.sslTruststoreLocation": {
 			"name": "camel.component.vertx-kafka.sslTruststoreLocation",
 			"description": "The location of the trust store file.",
@@ -1107,7 +1173,7 @@
 		},
 		"camel.component.vertx-kafka.sslTruststorePassword": {
 			"name": "camel.component.vertx-kafka.sslTruststorePassword",
-			"description": "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.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/connectors/camel-aws2-iam-kafka-connector/src/generated/resources/camel-aws2-iam-sink.json b/connectors/camel-aws2-iam-kafka-connector/src/generated/resources/camel-aws2-iam-sink.json
index 02b3282..30a0fad 100644
--- a/connectors/camel-aws2-iam-kafka-connector/src/generated/resources/camel-aws2-iam-sink.json
+++ b/connectors/camel-aws2-iam-kafka-connector/src/generated/resources/camel-aws2-iam-sink.json
@@ -30,9 +30,9 @@
 		},
 		"camel.sink.endpoint.operation": {
 			"name": "camel.sink.endpoint.operation",
-			"description": "The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]",
-			"priority": "HIGH",
-			"required": "true",
+			"description": "The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]",
+			"priority": "MEDIUM",
+			"required": "false",
 			"enum": [
 				"listAccessKeys",
 				"createUser",
@@ -133,9 +133,9 @@
 		},
 		"camel.component.aws2-iam.operation": {
 			"name": "camel.component.aws2-iam.operation",
-			"description": "The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]",
-			"priority": "HIGH",
-			"required": "true",
+			"description": "The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]",
+			"priority": "MEDIUM",
+			"required": "false",
 			"enum": [
 				"listAccessKeys",
 				"createUser",
diff --git a/connectors/camel-aws2-iam-kafka-connector/src/main/docs/camel-aws2-iam-kafka-sink-connector.adoc b/connectors/camel-aws2-iam-kafka-connector/src/main/docs/camel-aws2-iam-kafka-sink-connector.adoc
index 2478c9a..4ac9c8c 100644
--- a/connectors/camel-aws2-iam-kafka-connector/src/main/docs/camel-aws2-iam-kafka-sink-connector.adoc
+++ b/connectors/camel-aws2-iam-kafka-connector/src/main/docs/camel-aws2-iam-kafka-sink-connector.adoc
@@ -32,7 +32,7 @@ The camel-aws2-iam sink connector supports 26 options, which are listed below.
 | *camel.sink.path.label* | Logical name | null | true | HIGH
 | *camel.sink.endpoint.iamClient* | To use a existing configured AWS IAM as client | null | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
-| *camel.sink.endpoint.operation* | The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup] | null | true | HIGH
+| *camel.sink.endpoint.operation* | The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup] | null | false | MEDIUM
 | *camel.sink.endpoint.pojoRequest* | If we want to use a POJO request as body or not | false | false | MEDIUM
 | *camel.sink.endpoint.proxyHost* | To define a proxy host when instantiating the IAM client | null | false | MEDIUM
 | *camel.sink.endpoint.proxyPort* | To define a proxy port when instantiating the IAM client | null | false | MEDIUM
@@ -45,7 +45,7 @@ The camel-aws2-iam sink connector supports 26 options, which are listed below.
 | *camel.component.aws2-iam.configuration* | Component configuration | null | false | MEDIUM
 | *camel.component.aws2-iam.iamClient* | To use a existing configured AWS IAM as client | null | false | MEDIUM
 | *camel.component.aws2-iam.lazyStartProducer* | 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 the [...]
-| *camel.component.aws2-iam.operation* | The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup] | null | true | HIGH
+| *camel.component.aws2-iam.operation* | The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup] | null | false | MEDIUM
 | *camel.component.aws2-iam.pojoRequest* | If we want to use a POJO request as body or not | false | false | MEDIUM
 | *camel.component.aws2-iam.proxyHost* | To define a proxy host when instantiating the IAM client | null | false | MEDIUM
 | *camel.component.aws2-iam.proxyPort* | To define a proxy port when instantiating the IAM client | null | false | MEDIUM
diff --git a/connectors/camel-aws2-iam-kafka-connector/src/main/docs/examples/CamelAws2iamSinkConnector.properties b/connectors/camel-aws2-iam-kafka-connector/src/main/docs/examples/CamelAws2iamSinkConnector.properties
index 0ebb09f..4655785 100644
--- a/connectors/camel-aws2-iam-kafka-connector/src/main/docs/examples/CamelAws2iamSinkConnector.properties
+++ b/connectors/camel-aws2-iam-kafka-connector/src/main/docs/examples/CamelAws2iamSinkConnector.properties
@@ -28,10 +28,6 @@ topics=
 
 # mandatory properties (for a complete properties list see the connector documentation):
 
-# The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]
-camel.component.aws2-iam.operation=
-# The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]
-camel.sink.endpoint.operation=
 # Logical name
 camel.sink.path.label=
 
diff --git a/connectors/camel-aws2-iam-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2iam/CamelAws2iamSinkConnectorConfig.java b/connectors/camel-aws2-iam-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2iam/CamelAws2iamSinkConnectorConfig.java
index 6d2ffbb..5d5bc5e 100644
--- a/connectors/camel-aws2-iam-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2iam/CamelAws2iamSinkConnectorConfig.java
+++ b/connectors/camel-aws2-iam-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2iam/CamelAws2iamSinkConnectorConfig.java
@@ -34,7 +34,7 @@ public class CamelAws2iamSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_AWS2IAM_ENDPOINT_LAZY_START_PRODUCER_DOC = "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 wh [...]
     public static final Boolean CAMEL_SINK_AWS2IAM_ENDPOINT_LAZY_START_PRODUCER_DEFAULT = false;
     public static final String CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_CONF = "camel.sink.endpoint.operation";
-    public static final String CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_DOC = "The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]";
+    public static final String CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_DOC = "The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]";
     public static final String CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2IAM_ENDPOINT_POJO_REQUEST_CONF = "camel.sink.endpoint.pojoRequest";
     public static final String CAMEL_SINK_AWS2IAM_ENDPOINT_POJO_REQUEST_DOC = "If we want to use a POJO request as body or not";
@@ -73,7 +73,7 @@ public class CamelAws2iamSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_AWS2IAM_COMPONENT_LAZY_START_PRODUCER_DOC = "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 w [...]
     public static final Boolean CAMEL_SINK_AWS2IAM_COMPONENT_LAZY_START_PRODUCER_DEFAULT = false;
     public static final String CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_CONF = "camel.component.aws2-iam.operation";
-    public static final String CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_DOC = "The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]";
+    public static final String CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_DOC = "The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup]";
     public static final String CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2IAM_COMPONENT_POJO_REQUEST_CONF = "camel.component.aws2-iam.pojoRequest";
     public static final String CAMEL_SINK_AWS2IAM_COMPONENT_POJO_REQUEST_DOC = "If we want to use a POJO request as body or not";
@@ -118,7 +118,7 @@ public class CamelAws2iamSinkConnectorConfig extends CamelSinkConnectorConfig {
         conf.define(CAMEL_SINK_AWS2IAM_PATH_LABEL_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_PATH_LABEL_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SINK_AWS2IAM_PATH_LABEL_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_ENDPOINT_IAM_CLIENT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_ENDPOINT_IAM_CLIENT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_ENDPOINT_IAM_CLIENT_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_ENDPOINT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_AWS2IAM_ENDPOINT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_ENDPOINT_LAZY_START_PRODUCER_DOC);
-        conf.define(CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_DOC);
+        conf.define(CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_ENDPOINT_OPERATION_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_ENDPOINT_POJO_REQUEST_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_AWS2IAM_ENDPOINT_POJO_REQUEST_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_ENDPOINT_POJO_REQUEST_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_ENDPOINT_PROXY_HOST_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_ENDPOINT_PROXY_HOST_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_ENDPOINT_PROXY_HOST_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_ENDPOINT_PROXY_PORT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_ENDPOINT_PROXY_PORT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_ENDPOINT_PROXY_PORT_DOC);
@@ -131,7 +131,7 @@ public class CamelAws2iamSinkConnectorConfig extends CamelSinkConnectorConfig {
         conf.define(CAMEL_SINK_AWS2IAM_COMPONENT_CONFIGURATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_COMPONENT_CONFIGURATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_COMPONENT_CONFIGURATION_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_COMPONENT_IAM_CLIENT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_COMPONENT_IAM_CLIENT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_COMPONENT_IAM_CLIENT_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_COMPONENT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_AWS2IAM_COMPONENT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_COMPONENT_LAZY_START_PRODUCER_DOC);
-        conf.define(CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_DOC);
+        conf.define(CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_COMPONENT_OPERATION_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_COMPONENT_POJO_REQUEST_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_AWS2IAM_COMPONENT_POJO_REQUEST_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_COMPONENT_POJO_REQUEST_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_COMPONENT_PROXY_HOST_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_COMPONENT_PROXY_HOST_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_COMPONENT_PROXY_HOST_DOC);
         conf.define(CAMEL_SINK_AWS2IAM_COMPONENT_PROXY_PORT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_AWS2IAM_COMPONENT_PROXY_PORT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_AWS2IAM_COMPONENT_PROXY_PORT_DOC);
diff --git a/connectors/camel-aws2-sns-kafka-connector/src/generated/resources/camel-aws2-sns-sink.json b/connectors/camel-aws2-sns-kafka-connector/src/generated/resources/camel-aws2-sns-sink.json
index 4a610d0..6d6627a 100644
--- a/connectors/camel-aws2-sns-kafka-connector/src/generated/resources/camel-aws2-sns-sink.json
+++ b/connectors/camel-aws2-sns-kafka-connector/src/generated/resources/camel-aws2-sns-sink.json
@@ -77,7 +77,7 @@
 		},
 		"camel.sink.endpoint.policy": {
 			"name": "camel.sink.endpoint.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -231,7 +231,7 @@
 		},
 		"camel.component.aws2-sns.policy": {
 			"name": "camel.component.aws2-sns.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/connectors/camel-aws2-sns-kafka-connector/src/main/docs/camel-aws2-sns-kafka-sink-connector.adoc b/connectors/camel-aws2-sns-kafka-connector/src/main/docs/camel-aws2-sns-kafka-sink-connector.adoc
index 57ab430..715de44 100644
--- a/connectors/camel-aws2-sns-kafka-connector/src/main/docs/camel-aws2-sns-kafka-sink-connector.adoc
+++ b/connectors/camel-aws2-sns-kafka-connector/src/main/docs/camel-aws2-sns-kafka-sink-connector.adoc
@@ -38,7 +38,7 @@ The camel-aws2-sns sink connector supports 45 options, which are listed below.
 | *camel.sink.endpoint.messageDeduplicationIdStrategy* | Only for FIFO Topic. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message. One of: [useExchangeId] [useContentBasedDeduplication] | "useExchangeId" | false | MEDIUM
 | *camel.sink.endpoint.messageGroupIdStrategy* | Only for FIFO Topic. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used. One of: [useConstant] [useExchangeId] [usePropertyValue] | null | false | MEDIUM
 | *camel.sink.endpoint.messageStructure* | The message structure to use such as json | null | false | MEDIUM
-| *camel.sink.endpoint.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.sink.endpoint.policy* | The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.sink.endpoint.proxyHost* | To define a proxy host when instantiating the SNS client | null | false | MEDIUM
 | *camel.sink.endpoint.proxyPort* | To define a proxy port when instantiating the SNS client | null | false | MEDIUM
 | *camel.sink.endpoint.proxyProtocol* | To define a proxy protocol when instantiating the SNS client One of: [HTTP] [HTTPS] | "HTTPS" | false | MEDIUM
@@ -60,7 +60,7 @@ The camel-aws2-sns sink connector supports 45 options, which are listed below.
 | *camel.component.aws2-sns.messageDeduplicationId Strategy* | Only for FIFO Topic. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message. One of: [useExchangeId] [useContentBasedDeduplication] | "useExchangeId" | false | MEDIUM
 | *camel.component.aws2-sns.messageGroupIdStrategy* | Only for FIFO Topic. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used. One of: [useConstant] [useExchangeId] [usePropertyValue] | null | false | MEDIUM
 | *camel.component.aws2-sns.messageStructure* | The message structure to use such as json | null | false | MEDIUM
-| *camel.component.aws2-sns.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.component.aws2-sns.policy* | The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.component.aws2-sns.proxyHost* | To define a proxy host when instantiating the SNS client | null | false | MEDIUM
 | *camel.component.aws2-sns.proxyPort* | To define a proxy port when instantiating the SNS client | null | false | MEDIUM
 | *camel.component.aws2-sns.proxyProtocol* | To define a proxy protocol when instantiating the SNS client One of: [HTTP] [HTTPS] | "HTTPS" | false | MEDIUM
diff --git a/connectors/camel-aws2-sns-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sns/CamelAws2snsSinkConnectorConfig.java b/connectors/camel-aws2-sns-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sns/CamelAws2snsSinkConnectorConfig.java
index 23e21b5..d8d0952 100644
--- a/connectors/camel-aws2-sns-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sns/CamelAws2snsSinkConnectorConfig.java
+++ b/connectors/camel-aws2-sns-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sns/CamelAws2snsSinkConnectorConfig.java
@@ -52,7 +52,7 @@ public class CamelAws2snsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_AWS2SNS_ENDPOINT_MESSAGE_STRUCTURE_DOC = "The message structure to use such as json";
     public static final String CAMEL_SINK_AWS2SNS_ENDPOINT_MESSAGE_STRUCTURE_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2SNS_ENDPOINT_POLICY_CONF = "camel.sink.endpoint.policy";
-    public static final String CAMEL_SINK_AWS2SNS_ENDPOINT_POLICY_DOC = "The policy for this queue";
+    public static final String CAMEL_SINK_AWS2SNS_ENDPOINT_POLICY_DOC = "The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.";
     public static final String CAMEL_SINK_AWS2SNS_ENDPOINT_POLICY_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2SNS_ENDPOINT_PROXY_HOST_CONF = "camel.sink.endpoint.proxyHost";
     public static final String CAMEL_SINK_AWS2SNS_ENDPOINT_PROXY_HOST_DOC = "To define a proxy host when instantiating the SNS client";
@@ -118,7 +118,7 @@ public class CamelAws2snsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_AWS2SNS_COMPONENT_MESSAGE_STRUCTURE_DOC = "The message structure to use such as json";
     public static final String CAMEL_SINK_AWS2SNS_COMPONENT_MESSAGE_STRUCTURE_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2SNS_COMPONENT_POLICY_CONF = "camel.component.aws2-sns.policy";
-    public static final String CAMEL_SINK_AWS2SNS_COMPONENT_POLICY_DOC = "The policy for this queue";
+    public static final String CAMEL_SINK_AWS2SNS_COMPONENT_POLICY_DOC = "The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.";
     public static final String CAMEL_SINK_AWS2SNS_COMPONENT_POLICY_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2SNS_COMPONENT_PROXY_HOST_CONF = "camel.component.aws2-sns.proxyHost";
     public static final String CAMEL_SINK_AWS2SNS_COMPONENT_PROXY_HOST_DOC = "To define a proxy host when instantiating the SNS client";
diff --git a/connectors/camel-aws2-sqs-kafka-connector/src/generated/resources/camel-aws2-sqs-sink.json b/connectors/camel-aws2-sqs-kafka-connector/src/generated/resources/camel-aws2-sqs-sink.json
index 2d59b1f..09edbad 100644
--- a/connectors/camel-aws2-sqs-kafka-connector/src/generated/resources/camel-aws2-sqs-sink.json
+++ b/connectors/camel-aws2-sqs-kafka-connector/src/generated/resources/camel-aws2-sqs-sink.json
@@ -178,7 +178,7 @@
 		},
 		"camel.sink.endpoint.policy": {
 			"name": "camel.sink.endpoint.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -369,7 +369,7 @@
 		},
 		"camel.component.aws2-sqs.policy": {
 			"name": "camel.component.aws2-sqs.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/connectors/camel-aws2-sqs-kafka-connector/src/generated/resources/camel-aws2-sqs-source.json b/connectors/camel-aws2-sqs-kafka-connector/src/generated/resources/camel-aws2-sqs-source.json
index 0ee90d5..b987e2f 100644
--- a/connectors/camel-aws2-sqs-kafka-connector/src/generated/resources/camel-aws2-sqs-source.json
+++ b/connectors/camel-aws2-sqs-kafka-connector/src/generated/resources/camel-aws2-sqs-source.json
@@ -251,7 +251,7 @@
 		},
 		"camel.source.endpoint.policy": {
 			"name": "camel.source.endpoint.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -589,7 +589,7 @@
 		},
 		"camel.component.aws2-sqs.policy": {
 			"name": "camel.component.aws2-sqs.policy",
-			"description": "The policy for this queue",
+			"description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/connectors/camel-aws2-sqs-kafka-connector/src/main/docs/camel-aws2-sqs-kafka-sink-connector.adoc b/connectors/camel-aws2-sqs-kafka-connector/src/main/docs/camel-aws2-sqs-kafka-sink-connector.adoc
index 636d972..f72c9a3 100644
--- a/connectors/camel-aws2-sqs-kafka-connector/src/main/docs/camel-aws2-sqs-kafka-sink-connector.adoc
+++ b/connectors/camel-aws2-sqs-kafka-connector/src/main/docs/camel-aws2-sqs-kafka-sink-connector.adoc
@@ -52,7 +52,7 @@ The camel-aws2-sqs sink connector supports 55 options, which are listed below.
 | *camel.sink.endpoint.proxyPort* | To define a proxy port when instantiating the SQS client | null | false | MEDIUM
 | *camel.sink.endpoint.maximumMessageSize* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. | null | false | MEDIUM
 | *camel.sink.endpoint.messageRetentionPeriod* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. | null | false | MEDIUM
-| *camel.sink.endpoint.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.sink.endpoint.policy* | The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.sink.endpoint.receiveMessageWaitTimeSeconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. | null | false | MEDIUM
 | *camel.sink.endpoint.redrivePolicy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. | null | false | MEDIUM
 | *camel.sink.endpoint.accessKey* | Amazon AWS Access Key | null | false | MEDIUM
@@ -79,7 +79,7 @@ The camel-aws2-sqs sink connector supports 55 options, which are listed below.
 | *camel.component.aws2-sqs.proxyPort* | To define a proxy port when instantiating the SQS client | null | false | MEDIUM
 | *camel.component.aws2-sqs.maximumMessageSize* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. | null | false | MEDIUM
 | *camel.component.aws2-sqs.messageRetentionPeriod* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. | null | false | MEDIUM
-| *camel.component.aws2-sqs.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.component.aws2-sqs.policy* | The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.component.aws2-sqs.receiveMessageWaitTime Seconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. | null | false | MEDIUM
 | *camel.component.aws2-sqs.redrivePolicy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. | null | false | MEDIUM
 | *camel.component.aws2-sqs.accessKey* | Amazon AWS Access Key | null | false | MEDIUM
diff --git a/connectors/camel-aws2-sqs-kafka-connector/src/main/docs/camel-aws2-sqs-kafka-source-connector.adoc b/connectors/camel-aws2-sqs-kafka-connector/src/main/docs/camel-aws2-sqs-kafka-source-connector.adoc
index f078343..8abc4ce 100644
--- a/connectors/camel-aws2-sqs-kafka-connector/src/main/docs/camel-aws2-sqs-kafka-source-connector.adoc
+++ b/connectors/camel-aws2-sqs-kafka-connector/src/main/docs/camel-aws2-sqs-kafka-source-connector.adoc
@@ -65,7 +65,7 @@ The camel-aws2-sqs source connector supports 90 options, which are listed below.
 | *camel.source.endpoint.proxyPort* | To define a proxy port when instantiating the SQS client | null | false | MEDIUM
 | *camel.source.endpoint.maximumMessageSize* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. | null | false | MEDIUM
 | *camel.source.endpoint.messageRetentionPeriod* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. | null | false | MEDIUM
-| *camel.source.endpoint.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.source.endpoint.policy* | The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.source.endpoint.receiveMessageWaitTime Seconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. | null | false | MEDIUM
 | *camel.source.endpoint.redrivePolicy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. | null | false | MEDIUM
 | *camel.source.endpoint.backoffErrorThreshold* | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. | null | false | MEDIUM
@@ -114,7 +114,7 @@ The camel-aws2-sqs source connector supports 90 options, which are listed below.
 | *camel.component.aws2-sqs.proxyPort* | To define a proxy port when instantiating the SQS client | null | false | MEDIUM
 | *camel.component.aws2-sqs.maximumMessageSize* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. | null | false | MEDIUM
 | *camel.component.aws2-sqs.messageRetentionPeriod* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. | null | false | MEDIUM
-| *camel.component.aws2-sqs.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.component.aws2-sqs.policy* | The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.component.aws2-sqs.receiveMessageWaitTime Seconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. | null | false | MEDIUM
 | *camel.component.aws2-sqs.redrivePolicy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. | null | false | MEDIUM
 | *camel.component.aws2-sqs.accessKey* | Amazon AWS Access Key | null | false | MEDIUM
diff --git a/connectors/camel-aws2-sqs-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sqs/CamelAws2sqsSinkConnectorConfig.java b/connectors/camel-aws2-sqs-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sqs/CamelAws2sqsSinkConnectorConfig.java
index 47fb020..b30d3e6 100644
--- a/connectors/camel-aws2-sqs-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sqs/CamelAws2sqsSinkConnectorConfig.java
+++ b/connectors/camel-aws2-sqs-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sqs/CamelAws2sqsSinkConnectorConfig.java
@@ -94,7 +94,7 @@ public class CamelAws2sqsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_AWS2SQS_ENDPOINT_MESSAGE_RETENTION_PERIOD_DOC = "The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue.";
     public static final String CAMEL_SINK_AWS2SQS_ENDPOINT_MESSAGE_RETENTION_PERIOD_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2SQS_ENDPOINT_POLICY_CONF = "camel.sink.endpoint.policy";
-    public static final String CAMEL_SINK_AWS2SQS_ENDPOINT_POLICY_DOC = "The policy for this queue";
+    public static final String CAMEL_SINK_AWS2SQS_ENDPOINT_POLICY_DOC = "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.";
     public static final String CAMEL_SINK_AWS2SQS_ENDPOINT_POLICY_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2SQS_ENDPOINT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS_CONF = "camel.sink.endpoint.receiveMessageWaitTimeSeconds";
     public static final String CAMEL_SINK_AWS2SQS_ENDPOINT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS_DOC = "If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait.";
@@ -175,7 +175,7 @@ public class CamelAws2sqsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_AWS2SQS_COMPONENT_MESSAGE_RETENTION_PERIOD_DOC = "The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue.";
     public static final String CAMEL_SINK_AWS2SQS_COMPONENT_MESSAGE_RETENTION_PERIOD_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2SQS_COMPONENT_POLICY_CONF = "camel.component.aws2-sqs.policy";
-    public static final String CAMEL_SINK_AWS2SQS_COMPONENT_POLICY_DOC = "The policy for this queue";
+    public static final String CAMEL_SINK_AWS2SQS_COMPONENT_POLICY_DOC = "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.";
     public static final String CAMEL_SINK_AWS2SQS_COMPONENT_POLICY_DEFAULT = null;
     public static final String CAMEL_SINK_AWS2SQS_COMPONENT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS_CONF = "camel.component.aws2-sqs.receiveMessageWaitTimeSeconds";
     public static final String CAMEL_SINK_AWS2SQS_COMPONENT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS_DOC = "If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait.";
diff --git a/connectors/camel-aws2-sqs-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sqs/CamelAws2sqsSourceConnectorConfig.java b/connectors/camel-aws2-sqs-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sqs/CamelAws2sqsSourceConnectorConfig.java
index 4146bc4..ba34e6e 100644
--- a/connectors/camel-aws2-sqs-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sqs/CamelAws2sqsSourceConnectorConfig.java
+++ b/connectors/camel-aws2-sqs-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/aws2sqs/CamelAws2sqsSourceConnectorConfig.java
@@ -135,7 +135,7 @@ public class CamelAws2sqsSourceConnectorConfig
     public static final String CAMEL_SOURCE_AWS2SQS_ENDPOINT_MESSAGE_RETENTION_PERIOD_DOC = "The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue.";
     public static final String CAMEL_SOURCE_AWS2SQS_ENDPOINT_MESSAGE_RETENTION_PERIOD_DEFAULT = null;
     public static final String CAMEL_SOURCE_AWS2SQS_ENDPOINT_POLICY_CONF = "camel.source.endpoint.policy";
-    public static final String CAMEL_SOURCE_AWS2SQS_ENDPOINT_POLICY_DOC = "The policy for this queue";
+    public static final String CAMEL_SOURCE_AWS2SQS_ENDPOINT_POLICY_DOC = "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.";
     public static final String CAMEL_SOURCE_AWS2SQS_ENDPOINT_POLICY_DEFAULT = null;
     public static final String CAMEL_SOURCE_AWS2SQS_ENDPOINT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS_CONF = "camel.source.endpoint.receiveMessageWaitTimeSeconds";
     public static final String CAMEL_SOURCE_AWS2SQS_ENDPOINT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS_DOC = "If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait.";
@@ -282,7 +282,7 @@ public class CamelAws2sqsSourceConnectorConfig
     public static final String CAMEL_SOURCE_AWS2SQS_COMPONENT_MESSAGE_RETENTION_PERIOD_DOC = "The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue.";
     public static final String CAMEL_SOURCE_AWS2SQS_COMPONENT_MESSAGE_RETENTION_PERIOD_DEFAULT = null;
     public static final String CAMEL_SOURCE_AWS2SQS_COMPONENT_POLICY_CONF = "camel.component.aws2-sqs.policy";
-    public static final String CAMEL_SOURCE_AWS2SQS_COMPONENT_POLICY_DOC = "The policy for this queue";
+    public static final String CAMEL_SOURCE_AWS2SQS_COMPONENT_POLICY_DOC = "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.";
     public static final String CAMEL_SOURCE_AWS2SQS_COMPONENT_POLICY_DEFAULT = null;
     public static final String CAMEL_SOURCE_AWS2SQS_COMPONENT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS_CONF = "camel.component.aws2-sqs.receiveMessageWaitTimeSeconds";
     public static final String CAMEL_SOURCE_AWS2SQS_COMPONENT_RECEIVE_MESSAGE_WAIT_TIME_SECONDS_DOC = "If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait.";
diff --git a/connectors/camel-file-kafka-connector/src/generated/resources/camel-file-source.json b/connectors/camel-file-kafka-connector/src/generated/resources/camel-file-source.json
index 40ce062..3bfb806 100644
--- a/connectors/camel-file-kafka-connector/src/generated/resources/camel-file-source.json
+++ b/connectors/camel-file-kafka-connector/src/generated/resources/camel-file-source.json
@@ -235,6 +235,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.excludeExt": {
+			"name": "camel.source.endpoint.excludeExt",
+			"description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.filter": {
 			"name": "camel.source.endpoint.filter",
 			"description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.",
@@ -278,6 +284,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.includeExt": {
+			"name": "camel.source.endpoint.includeExt",
+			"description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.maxDepth": {
 			"name": "camel.source.endpoint.maxDepth",
 			"description": "The maximum depth to traverse when recursively processing a directory.",
diff --git a/connectors/camel-file-kafka-connector/src/main/docs/camel-file-kafka-source-connector.adoc b/connectors/camel-file-kafka-connector/src/main/docs/camel-file-kafka-source-connector.adoc
index 75a0328..3add636 100644
--- a/connectors/camel-file-kafka-connector/src/main/docs/camel-file-kafka-source-connector.adoc
+++ b/connectors/camel-file-kafka-connector/src/main/docs/camel-file-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.file.CamelFileSourceConnector
 ----
 
 
-The camel-file source connector supports 79 options, which are listed below.
+The camel-file source connector supports 81 options, which are listed below.
 
 
 
@@ -63,6 +63,7 @@ The camel-file source connector supports 79 options, which are listed below.
 | *camel.source.endpoint.antInclude* | Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format. | null | false | MEDIUM
 | *camel.source.endpoint.eagerMaxMessagesPerPoll* | Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. | true | false | MEDIUM
 | *camel.source.endpoint.exclude* | Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.excludeExt* | Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat. | null | false | MEDIUM
 | *camel.source.endpoint.filter* | Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method. | null | false | MEDIUM
 | *camel.source.endpoint.filterDirectory* | Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd} | null | false | MEDIUM
 | *camel.source.endpoint.filterFile* | Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000 | null | false | MEDIUM
@@ -70,6 +71,7 @@ The camel-file source connector supports 79 options, which are listed below.
 | *camel.source.endpoint.idempotentKey* | To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size} | null | false | MEDIUM
 | *camel.source.endpoint.idempotentRepository* | A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true. | null | false | MEDIUM
 | *camel.source.endpoint.include* | Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.includeExt* | Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml | null | false | MEDIUM
 | *camel.source.endpoint.maxDepth* | The maximum depth to traverse when recursively processing a directory. | 2147483647 | false | MEDIUM
 | *camel.source.endpoint.maxMessagesPerPoll* | To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picke [...]
 | *camel.source.endpoint.minDepth* | The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. | null | false | MEDIUM
diff --git a/connectors/camel-file-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/file/CamelFileSourceConnectorConfig.java b/connectors/camel-file-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/file/CamelFileSourceConnectorConfig.java
index 1b4b3d5..610f92c 100644
--- a/connectors/camel-file-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/file/CamelFileSourceConnectorConfig.java
+++ b/connectors/camel-file-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/file/CamelFileSourceConnectorConfig.java
@@ -128,6 +128,9 @@ public class CamelFileSourceConnectorConfig
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_CONF = "camel.source.endpoint.exclude";
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_DOC = "Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris";
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_DEFAULT = null;
+    public static final String CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_EXT_CONF = "camel.source.endpoint.excludeExt";
+    public static final String CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_EXT_DOC = "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.";
+    public static final String CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_EXT_DEFAULT = null;
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_FILTER_CONF = "camel.source.endpoint.filter";
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_FILTER_DOC = "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.";
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_FILTER_DEFAULT = null;
@@ -149,6 +152,9 @@ public class CamelFileSourceConnectorConfig
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_CONF = "camel.source.endpoint.include";
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_DOC = "Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris";
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_DEFAULT = null;
+    public static final String CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_EXT_CONF = "camel.source.endpoint.includeExt";
+    public static final String CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_EXT_DOC = "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml";
+    public static final String CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_EXT_DEFAULT = null;
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_MAX_DEPTH_CONF = "camel.source.endpoint.maxDepth";
     public static final String CAMEL_SOURCE_FILE_ENDPOINT_MAX_DEPTH_DOC = "The maximum depth to traverse when recursively processing a directory.";
     public static final Integer CAMEL_SOURCE_FILE_ENDPOINT_MAX_DEPTH_DEFAULT = 2147483647;
@@ -310,6 +316,7 @@ public class CamelFileSourceConnectorConfig
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_ANT_INCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_ANT_INCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_ANT_INCLUDE_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_FILE_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_DOC);
+        conf.define(CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_EXT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_EXT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_EXCLUDE_EXT_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_FILTER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_FILTER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_FILTER_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_FILTER_DIRECTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_FILTER_DIRECTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_FILTER_DIRECTORY_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_FILTER_FILE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_FILTER_FILE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_FILTER_FILE_DOC);
@@ -317,6 +324,7 @@ public class CamelFileSourceConnectorConfig
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_IDEMPOTENT_KEY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_IDEMPOTENT_KEY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_IDEMPOTENT_KEY_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_IDEMPOTENT_REPOSITORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_IDEMPOTENT_REPOSITORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_IDEMPOTENT_REPOSITORY_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_DOC);
+        conf.define(CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_EXT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_EXT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_INCLUDE_EXT_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_MAX_DEPTH_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FILE_ENDPOINT_MAX_DEPTH_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_MAX_DEPTH_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_MAX_MESSAGES_PER_POLL_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FILE_ENDPOINT_MAX_MESSAGES_PER_POLL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_MAX_MESSAGES_PER_POLL_DOC);
         conf.define(CAMEL_SOURCE_FILE_ENDPOINT_MIN_DEPTH_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FILE_ENDPOINT_MIN_DEPTH_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FILE_ENDPOINT_MIN_DEPTH_DOC);
diff --git a/connectors/camel-ftp-kafka-connector/src/generated/resources/camel-ftp-source.json b/connectors/camel-ftp-kafka-connector/src/generated/resources/camel-ftp-source.json
index e396acb..75fd956 100644
--- a/connectors/camel-ftp-kafka-connector/src/generated/resources/camel-ftp-source.json
+++ b/connectors/camel-ftp-kafka-connector/src/generated/resources/camel-ftp-source.json
@@ -393,6 +393,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.excludeExt": {
+			"name": "camel.source.endpoint.excludeExt",
+			"description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.filter": {
 			"name": "camel.source.endpoint.filter",
 			"description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.",
@@ -436,6 +442,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.includeExt": {
+			"name": "camel.source.endpoint.includeExt",
+			"description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.maxDepth": {
 			"name": "camel.source.endpoint.maxDepth",
 			"description": "The maximum depth to traverse when recursively processing a directory.",
diff --git a/connectors/camel-ftp-kafka-connector/src/main/docs/camel-ftp-kafka-source-connector.adoc b/connectors/camel-ftp-kafka-connector/src/main/docs/camel-ftp-kafka-source-connector.adoc
index 5f23db8..526626a 100644
--- a/connectors/camel-ftp-kafka-connector/src/main/docs/camel-ftp-kafka-source-connector.adoc
+++ b/connectors/camel-ftp-kafka-connector/src/main/docs/camel-ftp-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.ftp.CamelFtpSourceConnector
 ----
 
 
-The camel-ftp source connector supports 100 options, which are listed below.
+The camel-ftp source connector supports 102 options, which are listed below.
 
 
 
@@ -85,6 +85,7 @@ The camel-ftp source connector supports 100 options, which are listed below.
 | *camel.source.endpoint.antInclude* | Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format. | null | false | MEDIUM
 | *camel.source.endpoint.eagerMaxMessagesPerPoll* | Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. | true | false | MEDIUM
 | *camel.source.endpoint.exclude* | Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.excludeExt* | Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat. | null | false | MEDIUM
 | *camel.source.endpoint.filter* | Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method. | null | false | MEDIUM
 | *camel.source.endpoint.filterDirectory* | Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd} | null | false | MEDIUM
 | *camel.source.endpoint.filterFile* | Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000 | null | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-ftp source connector supports 100 options, which are listed below.
 | *camel.source.endpoint.idempotentKey* | To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size} | null | false | MEDIUM
 | *camel.source.endpoint.idempotentRepository* | A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true. | null | false | MEDIUM
 | *camel.source.endpoint.include* | Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.includeExt* | Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml | null | false | MEDIUM
 | *camel.source.endpoint.maxDepth* | The maximum depth to traverse when recursively processing a directory. | 2147483647 | false | MEDIUM
 | *camel.source.endpoint.maxMessagesPerPoll* | To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picke [...]
 | *camel.source.endpoint.minDepth* | The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. | null | false | MEDIUM
diff --git a/connectors/camel-ftp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/ftp/CamelFtpSourceConnectorConfig.java b/connectors/camel-ftp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/ftp/CamelFtpSourceConnectorConfig.java
index 07e4d12..5e37884 100644
--- a/connectors/camel-ftp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/ftp/CamelFtpSourceConnectorConfig.java
+++ b/connectors/camel-ftp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/ftp/CamelFtpSourceConnectorConfig.java
@@ -192,6 +192,9 @@ public class CamelFtpSourceConnectorConfig extends CamelSourceConnectorConfig {
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_CONF = "camel.source.endpoint.exclude";
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_DOC = "Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris";
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_DEFAULT = null;
+    public static final String CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_EXT_CONF = "camel.source.endpoint.excludeExt";
+    public static final String CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_EXT_DOC = "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.";
+    public static final String CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_EXT_DEFAULT = null;
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_FILTER_CONF = "camel.source.endpoint.filter";
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_FILTER_DOC = "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.";
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_FILTER_DEFAULT = null;
@@ -213,6 +216,9 @@ public class CamelFtpSourceConnectorConfig extends CamelSourceConnectorConfig {
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_CONF = "camel.source.endpoint.include";
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_DOC = "Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris";
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_DEFAULT = null;
+    public static final String CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_EXT_CONF = "camel.source.endpoint.includeExt";
+    public static final String CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_EXT_DOC = "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml";
+    public static final String CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_EXT_DEFAULT = null;
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_MAX_DEPTH_CONF = "camel.source.endpoint.maxDepth";
     public static final String CAMEL_SOURCE_FTP_ENDPOINT_MAX_DEPTH_DOC = "The maximum depth to traverse when recursively processing a directory.";
     public static final Integer CAMEL_SOURCE_FTP_ENDPOINT_MAX_DEPTH_DEFAULT = 2147483647;
@@ -393,6 +399,7 @@ public class CamelFtpSourceConnectorConfig extends CamelSourceConnectorConfig {
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_ANT_INCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_ANT_INCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_ANT_INCLUDE_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_FTP_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_DOC);
+        conf.define(CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_EXT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_EXT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_EXCLUDE_EXT_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_FILTER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_FILTER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_FILTER_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_FILTER_DIRECTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_FILTER_DIRECTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_FILTER_DIRECTORY_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_FILTER_FILE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_FILTER_FILE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_FILTER_FILE_DOC);
@@ -400,6 +407,7 @@ public class CamelFtpSourceConnectorConfig extends CamelSourceConnectorConfig {
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_IDEMPOTENT_KEY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_IDEMPOTENT_KEY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_IDEMPOTENT_KEY_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_IDEMPOTENT_REPOSITORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_IDEMPOTENT_REPOSITORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_IDEMPOTENT_REPOSITORY_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_DOC);
+        conf.define(CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_EXT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_EXT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_INCLUDE_EXT_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_MAX_DEPTH_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FTP_ENDPOINT_MAX_DEPTH_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_MAX_DEPTH_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_MAX_MESSAGES_PER_POLL_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FTP_ENDPOINT_MAX_MESSAGES_PER_POLL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_MAX_MESSAGES_PER_POLL_DOC);
         conf.define(CAMEL_SOURCE_FTP_ENDPOINT_MIN_DEPTH_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FTP_ENDPOINT_MIN_DEPTH_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTP_ENDPOINT_MIN_DEPTH_DOC);
diff --git a/connectors/camel-ftps-kafka-connector/src/generated/resources/camel-ftps-source.json b/connectors/camel-ftps-kafka-connector/src/generated/resources/camel-ftps-source.json
index 41423d1..d37c9de 100644
--- a/connectors/camel-ftps-kafka-connector/src/generated/resources/camel-ftps-source.json
+++ b/connectors/camel-ftps-kafka-connector/src/generated/resources/camel-ftps-source.json
@@ -393,6 +393,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.excludeExt": {
+			"name": "camel.source.endpoint.excludeExt",
+			"description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.filter": {
 			"name": "camel.source.endpoint.filter",
 			"description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.",
@@ -436,6 +442,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.includeExt": {
+			"name": "camel.source.endpoint.includeExt",
+			"description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.maxDepth": {
 			"name": "camel.source.endpoint.maxDepth",
 			"description": "The maximum depth to traverse when recursively processing a directory.",
diff --git a/connectors/camel-ftps-kafka-connector/src/main/docs/camel-ftps-kafka-source-connector.adoc b/connectors/camel-ftps-kafka-connector/src/main/docs/camel-ftps-kafka-source-connector.adoc
index 4c46bf4..4e91254 100644
--- a/connectors/camel-ftps-kafka-connector/src/main/docs/camel-ftps-kafka-source-connector.adoc
+++ b/connectors/camel-ftps-kafka-connector/src/main/docs/camel-ftps-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.ftps.CamelFtpsSourceConnector
 ----
 
 
-The camel-ftps source connector supports 109 options, which are listed below.
+The camel-ftps source connector supports 111 options, which are listed below.
 
 
 
@@ -85,6 +85,7 @@ The camel-ftps source connector supports 109 options, which are listed below.
 | *camel.source.endpoint.antInclude* | Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format. | null | false | MEDIUM
 | *camel.source.endpoint.eagerMaxMessagesPerPoll* | Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. | true | false | MEDIUM
 | *camel.source.endpoint.exclude* | Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.excludeExt* | Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat. | null | false | MEDIUM
 | *camel.source.endpoint.filter* | Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method. | null | false | MEDIUM
 | *camel.source.endpoint.filterDirectory* | Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd} | null | false | MEDIUM
 | *camel.source.endpoint.filterFile* | Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000 | null | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-ftps source connector supports 109 options, which are listed below.
 | *camel.source.endpoint.idempotentKey* | To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size} | null | false | MEDIUM
 | *camel.source.endpoint.idempotentRepository* | A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true. | null | false | MEDIUM
 | *camel.source.endpoint.include* | Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.includeExt* | Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml | null | false | MEDIUM
 | *camel.source.endpoint.maxDepth* | The maximum depth to traverse when recursively processing a directory. | 2147483647 | false | MEDIUM
 | *camel.source.endpoint.maxMessagesPerPoll* | To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picke [...]
 | *camel.source.endpoint.minDepth* | The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. | null | false | MEDIUM
diff --git a/connectors/camel-ftps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/ftps/CamelFtpsSourceConnectorConfig.java b/connectors/camel-ftps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/ftps/CamelFtpsSourceConnectorConfig.java
index 33ca7c5..57dd503 100644
--- a/connectors/camel-ftps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/ftps/CamelFtpsSourceConnectorConfig.java
+++ b/connectors/camel-ftps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/ftps/CamelFtpsSourceConnectorConfig.java
@@ -194,6 +194,9 @@ public class CamelFtpsSourceConnectorConfig
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_CONF = "camel.source.endpoint.exclude";
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_DOC = "Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris";
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_DEFAULT = null;
+    public static final String CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_EXT_CONF = "camel.source.endpoint.excludeExt";
+    public static final String CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_EXT_DOC = "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.";
+    public static final String CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_EXT_DEFAULT = null;
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_CONF = "camel.source.endpoint.filter";
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_DOC = "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.";
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_DEFAULT = null;
@@ -215,6 +218,9 @@ public class CamelFtpsSourceConnectorConfig
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_CONF = "camel.source.endpoint.include";
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_DOC = "Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris";
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_DEFAULT = null;
+    public static final String CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_EXT_CONF = "camel.source.endpoint.includeExt";
+    public static final String CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_EXT_DOC = "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml";
+    public static final String CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_EXT_DEFAULT = null;
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_MAX_DEPTH_CONF = "camel.source.endpoint.maxDepth";
     public static final String CAMEL_SOURCE_FTPS_ENDPOINT_MAX_DEPTH_DOC = "The maximum depth to traverse when recursively processing a directory.";
     public static final Integer CAMEL_SOURCE_FTPS_ENDPOINT_MAX_DEPTH_DEFAULT = 2147483647;
@@ -422,6 +428,7 @@ public class CamelFtpsSourceConnectorConfig
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_ANT_INCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_ANT_INCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_ANT_INCLUDE_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_FTPS_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_DOC);
+        conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_EXT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_EXT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_EXCLUDE_EXT_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_DIRECTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_DIRECTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_DIRECTORY_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_FILE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_FILE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_FILTER_FILE_DOC);
@@ -429,6 +436,7 @@ public class CamelFtpsSourceConnectorConfig
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_IDEMPOTENT_KEY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_IDEMPOTENT_KEY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_IDEMPOTENT_KEY_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_IDEMPOTENT_REPOSITORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_IDEMPOTENT_REPOSITORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_IDEMPOTENT_REPOSITORY_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_DOC);
+        conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_EXT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_EXT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_INCLUDE_EXT_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_MAX_DEPTH_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FTPS_ENDPOINT_MAX_DEPTH_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_MAX_DEPTH_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_MAX_MESSAGES_PER_POLL_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FTPS_ENDPOINT_MAX_MESSAGES_PER_POLL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_MAX_MESSAGES_PER_POLL_DOC);
         conf.define(CAMEL_SOURCE_FTPS_ENDPOINT_MIN_DEPTH_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_FTPS_ENDPOINT_MIN_DEPTH_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_FTPS_ENDPOINT_MIN_DEPTH_DOC);
diff --git a/connectors/camel-google-calendar-kafka-connector/src/generated/resources/camel-google-calendar-sink.json b/connectors/camel-google-calendar-kafka-connector/src/generated/resources/camel-google-calendar-sink.json
index e70ee97..e6ec1ab 100644
--- a/connectors/camel-google-calendar-kafka-connector/src/generated/resources/camel-google-calendar-sink.json
+++ b/connectors/camel-google-calendar-kafka-connector/src/generated/resources/camel-google-calendar-sink.json
@@ -59,24 +59,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.emailAddress": {
-			"name": "camel.sink.endpoint.emailAddress",
-			"description": "The emailAddress of the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.inBody": {
 			"name": "camel.sink.endpoint.inBody",
 			"description": "Sets the name of a parameter to be passed in the exchange In Body",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.p12FileName": {
-			"name": "camel.sink.endpoint.p12FileName",
-			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.scopes": {
 			"name": "camel.sink.endpoint.scopes",
 			"description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
@@ -84,12 +72,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.user": {
-			"name": "camel.sink.endpoint.user",
-			"description": "The email address of the user the application is trying to impersonate in the service account flow",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.lazyStartProducer": {
 			"name": "camel.sink.endpoint.lazyStartProducer",
 			"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 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 starting the pr [...]
@@ -116,12 +98,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.sink.endpoint.emailAddress": {
+			"name": "camel.sink.endpoint.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.p12FileName": {
+			"name": "camel.sink.endpoint.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.refreshToken": {
 			"name": "camel.sink.endpoint.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.sink.endpoint.user": {
+			"name": "camel.sink.endpoint.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar.applicationName": {
 			"name": "camel.component.google-calendar.applicationName",
 			"description": "Google calendar application name. Example would be camel-google-calendar\/1.0",
@@ -140,18 +140,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.google-calendar.emailAddress": {
-			"name": "camel.component.google-calendar.emailAddress",
-			"description": "The emailAddress of the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.google-calendar.p12FileName": {
-			"name": "camel.component.google-calendar.p12FileName",
-			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.google-calendar.scopes": {
 			"name": "camel.component.google-calendar.scopes",
 			"description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
@@ -159,12 +147,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.google-calendar.user": {
-			"name": "camel.component.google-calendar.user",
-			"description": "The email address of the user the application is trying to impersonate in the service account flow",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.google-calendar.lazyStartProducer": {
 			"name": "camel.component.google-calendar.lazyStartProducer",
 			"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 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 starting the pr [...]
@@ -197,11 +179,29 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.google-calendar.emailAddress": {
+			"name": "camel.component.google-calendar.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.google-calendar.p12FileName": {
+			"name": "camel.component.google-calendar.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar.refreshToken": {
 			"name": "camel.component.google-calendar.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
+		},
+		"camel.component.google-calendar.user": {
+			"name": "camel.component.google-calendar.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow",
+			"priority": "MEDIUM",
+			"required": "false"
 		}
 	}
 }
\ No newline at end of file
diff --git a/connectors/camel-google-calendar-kafka-connector/src/generated/resources/camel-google-calendar-source.json b/connectors/camel-google-calendar-kafka-connector/src/generated/resources/camel-google-calendar-source.json
index accf3b9..eb51346 100644
--- a/connectors/camel-google-calendar-kafka-connector/src/generated/resources/camel-google-calendar-source.json
+++ b/connectors/camel-google-calendar-kafka-connector/src/generated/resources/camel-google-calendar-source.json
@@ -59,24 +59,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.emailAddress": {
-			"name": "camel.source.endpoint.emailAddress",
-			"description": "The emailAddress of the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.inBody": {
 			"name": "camel.source.endpoint.inBody",
 			"description": "Sets the name of a parameter to be passed in the exchange In Body",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.p12FileName": {
-			"name": "camel.source.endpoint.p12FileName",
-			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.scopes": {
 			"name": "camel.source.endpoint.scopes",
 			"description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
@@ -84,12 +72,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.user": {
-			"name": "camel.source.endpoint.user",
-			"description": "The email address of the user the application is trying to impersonate in the service account flow",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.bridgeErrorHandler": {
 			"name": "camel.source.endpoint.bridgeErrorHandler",
 			"description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
@@ -256,12 +238,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.emailAddress": {
+			"name": "camel.source.endpoint.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.p12FileName": {
+			"name": "camel.source.endpoint.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.refreshToken": {
 			"name": "camel.source.endpoint.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.user": {
+			"name": "camel.source.endpoint.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar.applicationName": {
 			"name": "camel.component.google-calendar.applicationName",
 			"description": "Google calendar application name. Example would be camel-google-calendar\/1.0",
@@ -280,18 +280,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.google-calendar.emailAddress": {
-			"name": "camel.component.google-calendar.emailAddress",
-			"description": "The emailAddress of the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.google-calendar.p12FileName": {
-			"name": "camel.component.google-calendar.p12FileName",
-			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.google-calendar.scopes": {
 			"name": "camel.component.google-calendar.scopes",
 			"description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
@@ -299,12 +287,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.google-calendar.user": {
-			"name": "camel.component.google-calendar.user",
-			"description": "The email address of the user the application is trying to impersonate in the service account flow",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.google-calendar.bridgeErrorHandler": {
 			"name": "camel.component.google-calendar.bridgeErrorHandler",
 			"description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
@@ -337,11 +319,29 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.google-calendar.emailAddress": {
+			"name": "camel.component.google-calendar.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.google-calendar.p12FileName": {
+			"name": "camel.component.google-calendar.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar.refreshToken": {
 			"name": "camel.component.google-calendar.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
+		},
+		"camel.component.google-calendar.user": {
+			"name": "camel.component.google-calendar.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow",
+			"priority": "MEDIUM",
+			"required": "false"
 		}
 	}
 }
\ No newline at end of file
diff --git a/connectors/camel-google-calendar-kafka-connector/src/main/docs/camel-google-calendar-kafka-sink-connector.adoc b/connectors/camel-google-calendar-kafka-connector/src/main/docs/camel-google-calendar-kafka-sink-connector.adoc
index bfa7e38..8badab2 100644
--- a/connectors/camel-google-calendar-kafka-connector/src/main/docs/camel-google-calendar-kafka-sink-connector.adoc
+++ b/connectors/camel-google-calendar-kafka-connector/src/main/docs/camel-google-calendar-kafka-sink-connector.adoc
@@ -33,29 +33,29 @@ The camel-google-calendar sink connector supports 27 options, which are listed b
 | *camel.sink.path.methodName* | What sub operation to use for the selected operation One of: [calendarImport] [clear] [delete] [get] [insert] [instances] [list] [move] [patch] [query] [quickAdd] [stop] [update] [watch] | null | true | HIGH
 | *camel.sink.endpoint.applicationName* | Google calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.sink.endpoint.clientId* | Client ID of the calendar application | null | false | MEDIUM
-| *camel.sink.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
 | *camel.sink.endpoint.inBody* | Sets the name of a parameter to be passed in the exchange In Body | null | false | MEDIUM
-| *camel.sink.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.sink.endpoint.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | "https://www.googleapis.com/auth/calendar" | false | MEDIUM
-| *camel.sink.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
 | *camel.sink.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
 | *camel.sink.endpoint.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.sink.endpoint.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.sink.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.sink.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.sink.endpoint.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.sink.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.component.google-calendar.applicationName* | Google calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.component.google-calendar.clientId* | Client ID of the calendar application | null | false | MEDIUM
 | *camel.component.google-calendar.configuration* | To use the shared configuration | null | false | MEDIUM
-| *camel.component.google-calendar.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
-| *camel.component.google-calendar.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | "https://www.googleapis.com/auth/calendar" | false | MEDIUM
-| *camel.component.google-calendar.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.component.google-calendar.lazyStartProducer* | 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 proces [...]
 | *camel.component.google-calendar.autowiredEnabled* | 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 | false | MEDIUM
 | *camel.component.google-calendar.clientFactory* | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory | null | false | MEDIUM
 | *camel.component.google-calendar.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.component.google-calendar.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.component.google-calendar.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.component.google-calendar.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.component.google-calendar.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 |===
 
 
diff --git a/connectors/camel-google-calendar-kafka-connector/src/main/docs/camel-google-calendar-kafka-source-connector.adoc b/connectors/camel-google-calendar-kafka-connector/src/main/docs/camel-google-calendar-kafka-source-connector.adoc
index f6905ac..dd055db 100644
--- a/connectors/camel-google-calendar-kafka-connector/src/main/docs/camel-google-calendar-kafka-source-connector.adoc
+++ b/connectors/camel-google-calendar-kafka-connector/src/main/docs/camel-google-calendar-kafka-source-connector.adoc
@@ -33,11 +33,8 @@ The camel-google-calendar source connector supports 45 options, which are listed
 | *camel.source.path.methodName* | What sub operation to use for the selected operation One of: [calendarImport] [clear] [delete] [get] [insert] [instances] [list] [move] [patch] [query] [quickAdd] [stop] [update] [watch] | null | true | HIGH
 | *camel.source.endpoint.applicationName* | Google calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.source.endpoint.clientId* | Client ID of the calendar application | null | false | MEDIUM
-| *camel.source.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
 | *camel.source.endpoint.inBody* | Sets the name of a parameter to be passed in the exchange In Body | null | false | MEDIUM
-| *camel.source.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.source.endpoint.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | "https://www.googleapis.com/auth/calendar" | false | MEDIUM
-| *camel.source.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.sendEmptyMessageWhenIdle* | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
@@ -60,20 +57,23 @@ The camel-google-calendar source connector supports 45 options, which are listed
 | *camel.source.endpoint.useFixedDelay* | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | false | MEDIUM
 | *camel.source.endpoint.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.source.endpoint.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.source.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.source.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.source.endpoint.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.source.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.component.google-calendar.applicationName* | Google calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.component.google-calendar.clientId* | Client ID of the calendar application | null | false | MEDIUM
 | *camel.component.google-calendar.configuration* | To use the shared configuration | null | false | MEDIUM
-| *camel.component.google-calendar.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
-| *camel.component.google-calendar.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | "https://www.googleapis.com/auth/calendar" | false | MEDIUM
-| *camel.component.google-calendar.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.component.google-calendar.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.google-calendar.autowiredEnabled* | 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 | false | MEDIUM
 | *camel.component.google-calendar.clientFactory* | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory | null | false | MEDIUM
 | *camel.component.google-calendar.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.component.google-calendar.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.component.google-calendar.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.component.google-calendar.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.component.google-calendar.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 |===
 
 
diff --git a/connectors/camel-google-calendar-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendar/CamelGooglecalendarSinkConnectorConfig.java b/connectors/camel-google-calendar-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendar/CamelGooglecalendarSinkConnectorConfig.java
index 3a03fa4..f497d5b 100644
--- a/connectors/camel-google-calendar-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendar/CamelGooglecalendarSinkConnectorConfig.java
+++ b/connectors/camel-google-calendar-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendar/CamelGooglecalendarSinkConnectorConfig.java
@@ -38,21 +38,12 @@ public class CamelGooglecalendarSinkConnectorConfig
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_CONF = "camel.sink.endpoint.clientId";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_DOC = "Client ID of the calendar application";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_DEFAULT = null;
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_CONF = "camel.sink.endpoint.emailAddress";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DEFAULT = null;
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_IN_BODY_CONF = "camel.sink.endpoint.inBody";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_IN_BODY_DOC = "Sets the name of a parameter to be passed in the exchange In Body";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_IN_BODY_DEFAULT = null;
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_CONF = "camel.sink.endpoint.p12FileName";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SCOPES_CONF = "camel.sink.endpoint.scopes";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SCOPES_DOC = "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https://developers.google.com/google-apps/calendar/auth for more info.";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SCOPES_DEFAULT = "https://www.googleapis.com/auth/calendar";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_CONF = "camel.sink.endpoint.user";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_DEFAULT = null;
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_LAZY_START_PRODUCER_CONF = "camel.sink.endpoint.lazyStartProducer";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_LAZY_START_PRODUCER_DOC = "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  [...]
     public static final Boolean CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_LAZY_START_PRODUCER_DEFAULT = false;
@@ -65,9 +56,18 @@ public class CamelGooglecalendarSinkConnectorConfig
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_CONF = "camel.sink.endpoint.clientSecret";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_DOC = "Client secret of the calendar application";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_DEFAULT = null;
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_CONF = "camel.sink.endpoint.emailAddress";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DEFAULT = null;
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_CONF = "camel.sink.endpoint.p12FileName";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_CONF = "camel.sink.endpoint.refreshToken";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_DOC = "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.";
     public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_DEFAULT = null;
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_CONF = "camel.sink.endpoint.user";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_DEFAULT = null;
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_CONF = "camel.component.google-calendar.applicationName";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_DOC = "Google calendar application name. Example would be camel-google-calendar/1.0";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_DEFAULT = null;
@@ -77,18 +77,9 @@ public class CamelGooglecalendarSinkConnectorConfig
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CONFIGURATION_CONF = "camel.component.google-calendar.configuration";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CONFIGURATION_DOC = "To use the shared configuration";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CONFIGURATION_DEFAULT = null;
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_CONF = "camel.component.google-calendar.emailAddress";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DEFAULT = null;
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_CONF = "camel.component.google-calendar.p12FileName";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_SCOPES_CONF = "camel.component.google-calendar.scopes";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_SCOPES_DOC = "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https://developers.google.com/google-apps/calendar/auth for more info.";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_SCOPES_DEFAULT = "https://www.googleapis.com/auth/calendar";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_CONF = "camel.component.google-calendar.user";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow";
-    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_DEFAULT = null;
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_LAZY_START_PRODUCER_CONF = "camel.component.google-calendar.lazyStartProducer";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_LAZY_START_PRODUCER_DOC = "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 [...]
     public static final Boolean CAMEL_SINK_GOOGLECALENDAR_COMPONENT_LAZY_START_PRODUCER_DEFAULT = false;
@@ -104,9 +95,18 @@ public class CamelGooglecalendarSinkConnectorConfig
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_CONF = "camel.component.google-calendar.clientSecret";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_DOC = "Client secret of the calendar application";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_DEFAULT = null;
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_CONF = "camel.component.google-calendar.emailAddress";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DEFAULT = null;
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_CONF = "camel.component.google-calendar.p12FileName";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_CONF = "camel.component.google-calendar.refreshToken";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_DOC = "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.";
     public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_DEFAULT = null;
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_CONF = "camel.component.google-calendar.user";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow";
+    public static final String CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_DEFAULT = null;
 
     public CamelGooglecalendarSinkConnectorConfig(
             ConfigDef config,
@@ -125,29 +125,29 @@ public class CamelGooglecalendarSinkConnectorConfig
         conf.define(CAMEL_SINK_GOOGLECALENDAR_PATH_METHOD_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_PATH_METHOD_NAME_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SINK_GOOGLECALENDAR_PATH_METHOD_NAME_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_APPLICATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_APPLICATION_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_APPLICATION_NAME_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_DOC);
-        conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_IN_BODY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_IN_BODY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_IN_BODY_DOC);
-        conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SCOPES_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SCOPES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SCOPES_DOC);
-        conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_LAZY_START_PRODUCER_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SYNCHRONOUS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SYNCHRONOUS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_SYNCHRONOUS_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_ACCESS_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_ACCESS_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_ACCESS_TOKEN_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_DOC);
+        conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DOC);
+        conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_DOC);
+        conf.define(CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_ENDPOINT_USER_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_ID_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CONFIGURATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CONFIGURATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CONFIGURATION_DOC);
-        conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DOC);
-        conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_SCOPES_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_SCOPES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_SCOPES_DOC);
-        conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_LAZY_START_PRODUCER_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_AUTOWIRED_ENABLED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_AUTOWIRED_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_AUTOWIRED_ENABLED_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_FACTORY_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_ACCESS_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_ACCESS_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_ACCESS_TOKEN_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_DOC);
+        conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DOC);
+        conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_DOC);
+        conf.define(CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_GOOGLECALENDAR_COMPONENT_USER_DOC);
         return conf;
     }
 }
\ No newline at end of file
diff --git a/connectors/camel-google-calendar-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendar/CamelGooglecalendarSourceConnectorConfig.java b/connectors/camel-google-calendar-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendar/CamelGooglecalendarSourceConnectorConfig.java
index b41a3aa..3468586 100644
--- a/connectors/camel-google-calendar-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendar/CamelGooglecalendarSourceConnectorConfig.java
+++ b/connectors/camel-google-calendar-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendar/CamelGooglecalendarSourceConnectorConfig.java
@@ -38,21 +38,12 @@ public class CamelGooglecalendarSourceConnectorConfig
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_CONF = "camel.source.endpoint.clientId";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_DOC = "Client ID of the calendar application";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_DEFAULT = null;
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_CONF = "camel.source.endpoint.emailAddress";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_IN_BODY_CONF = "camel.source.endpoint.inBody";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_IN_BODY_DOC = "Sets the name of a parameter to be passed in the exchange In Body";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_IN_BODY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_CONF = "camel.source.endpoint.p12FileName";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SCOPES_CONF = "camel.source.endpoint.scopes";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SCOPES_DOC = "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https://developers.google.com/google-apps/calendar/auth for more info.";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SCOPES_DEFAULT = "https://www.googleapis.com/auth/calendar";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_CONF = "camel.source.endpoint.user";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF = "camel.source.endpoint.bridgeErrorHandler";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level  [...]
     public static final Boolean CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT = false;
@@ -119,9 +110,18 @@ public class CamelGooglecalendarSourceConnectorConfig
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_CONF = "camel.source.endpoint.clientSecret";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_DOC = "Client secret of the calendar application";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_CONF = "camel.source.endpoint.emailAddress";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_CONF = "camel.source.endpoint.p12FileName";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_CONF = "camel.source.endpoint.refreshToken";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_DOC = "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_CONF = "camel.source.endpoint.user";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_CONF = "camel.component.google-calendar.applicationName";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_DOC = "Google calendar application name. Example would be camel-google-calendar/1.0";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_DEFAULT = null;
@@ -131,18 +131,9 @@ public class CamelGooglecalendarSourceConnectorConfig
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CONFIGURATION_CONF = "camel.component.google-calendar.configuration";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CONFIGURATION_DOC = "To use the shared configuration";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CONFIGURATION_DEFAULT = null;
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_CONF = "camel.component.google-calendar.emailAddress";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DEFAULT = null;
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_CONF = "camel.component.google-calendar.p12FileName";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_SCOPES_CONF = "camel.component.google-calendar.scopes";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_SCOPES_DOC = "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https://developers.google.com/google-apps/calendar/auth for more info.";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_SCOPES_DEFAULT = "https://www.googleapis.com/auth/calendar";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_CONF = "camel.component.google-calendar.user";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow";
-    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_BRIDGE_ERROR_HANDLER_CONF = "camel.component.google-calendar.bridgeErrorHandler";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_BRIDGE_ERROR_HANDLER_DOC = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level [...]
     public static final Boolean CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT = false;
@@ -158,9 +149,18 @@ public class CamelGooglecalendarSourceConnectorConfig
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_CONF = "camel.component.google-calendar.clientSecret";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_DOC = "Client secret of the calendar application";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_CONF = "camel.component.google-calendar.emailAddress";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_CONF = "camel.component.google-calendar.p12FileName";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_CONF = "camel.component.google-calendar.refreshToken";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_DOC = "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.";
     public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_CONF = "camel.component.google-calendar.user";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow";
+    public static final String CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_DEFAULT = null;
 
     public CamelGooglecalendarSourceConnectorConfig(
             ConfigDef config,
@@ -179,11 +179,8 @@ public class CamelGooglecalendarSourceConnectorConfig
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_PATH_METHOD_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_PATH_METHOD_NAME_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SOURCE_GOOGLECALENDAR_PATH_METHOD_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_APPLICATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_APPLICATION_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_APPLICATION_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_ID_DOC);
-        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_IN_BODY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_IN_BODY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_IN_BODY_DOC);
-        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SCOPES_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SCOPES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SCOPES_DOC);
-        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SEND_EMPTY_MESSAGE_WHEN_IDLE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SEND_EMPTY_MESSAGE_WHEN_IDLE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_SEND_EMPTY_MESSAGE_WHEN_IDLE_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EXCEPTION_HANDLER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EXCEPTION_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EXCEPTION_HANDLER_DOC);
@@ -206,20 +203,23 @@ public class CamelGooglecalendarSourceConnectorConfig
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USE_FIXED_DELAY_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USE_FIXED_DELAY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USE_FIXED_DELAY_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_ACCESS_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_ACCESS_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_ACCESS_TOKEN_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_CLIENT_SECRET_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_EMAIL_ADDRESS_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_REFRESH_TOKEN_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_ENDPOINT_USER_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_APPLICATION_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_ID_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CONFIGURATION_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CONFIGURATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CONFIGURATION_DOC);
-        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DOC);
-        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_SCOPES_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_SCOPES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_SCOPES_DOC);
-        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_AUTOWIRED_ENABLED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_AUTOWIRED_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_AUTOWIRED_ENABLED_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_FACTORY_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_ACCESS_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_ACCESS_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_ACCESS_TOKEN_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_CLIENT_SECRET_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_EMAIL_ADDRESS_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_REFRESH_TOKEN_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDAR_COMPONENT_USER_DOC);
         return conf;
     }
 }
\ No newline at end of file
diff --git a/connectors/camel-google-calendar-stream-kafka-connector/src/generated/resources/camel-google-calendar-stream-source.json b/connectors/camel-google-calendar-stream-kafka-connector/src/generated/resources/camel-google-calendar-stream-source.json
index aef3a79..73aa06b 100644
--- a/connectors/camel-google-calendar-stream-kafka-connector/src/generated/resources/camel-google-calendar-stream-source.json
+++ b/connectors/camel-google-calendar-stream-kafka-connector/src/generated/resources/camel-google-calendar-stream-source.json
@@ -233,12 +233,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.emailAddress": {
+			"name": "camel.source.endpoint.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.p12FileName": {
+			"name": "camel.source.endpoint.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.refreshToken": {
 			"name": "camel.source.endpoint.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.user": {
+			"name": "camel.source.endpoint.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar-stream.applicationName": {
 			"name": "camel.component.google-calendar-stream.applicationName",
 			"description": "Google Calendar application name. Example would be camel-google-calendar\/1.0",
@@ -329,11 +347,29 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.google-calendar-stream.emailAddress": {
+			"name": "camel.component.google-calendar-stream.emailAddress",
+			"description": "The emailAddress of the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.google-calendar-stream.p12FileName": {
+			"name": "camel.component.google-calendar-stream.p12FileName",
+			"description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.google-calendar-stream.refreshToken": {
 			"name": "camel.component.google-calendar-stream.refreshToken",
 			"description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
 			"priority": "MEDIUM",
 			"required": "false"
+		},
+		"camel.component.google-calendar-stream.user": {
+			"name": "camel.component.google-calendar-stream.user",
+			"description": "The email address of the user the application is trying to impersonate in the service account flow.",
+			"priority": "MEDIUM",
+			"required": "false"
 		}
 	}
 }
\ No newline at end of file
diff --git a/connectors/camel-google-calendar-stream-kafka-connector/src/main/docs/camel-google-calendar-stream-kafka-source-connector.adoc b/connectors/camel-google-calendar-stream-kafka-connector/src/main/docs/camel-google-calendar-stream-kafka-source-connector.adoc
index 62cbbaa..648c2f2 100644
--- a/connectors/camel-google-calendar-stream-kafka-connector/src/main/docs/camel-google-calendar-stream-kafka-source-connector.adoc
+++ b/connectors/camel-google-calendar-stream-kafka-connector/src/main/docs/camel-google-calendar-stream-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.googlecalendarstream.CamelGoogle
 ----
 
 
-The camel-google-calendar-stream source connector supports 47 options, which are listed below.
+The camel-google-calendar-stream source connector supports 53 options, which are listed below.
 
 
 
@@ -60,7 +60,10 @@ The camel-google-calendar-stream source connector supports 47 options, which are
 | *camel.source.endpoint.useFixedDelay* | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | false | MEDIUM
 | *camel.source.endpoint.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.source.endpoint.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.source.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.source.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.source.endpoint.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.source.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow. | null | false | MEDIUM
 | *camel.component.google-calendar-stream.application Name* | Google Calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.component.google-calendar-stream.bridgeError Handler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.google-calendar-stream.calendarId* | The calendarId to be used | "primary" | false | MEDIUM
@@ -75,7 +78,10 @@ The camel-google-calendar-stream source connector supports 47 options, which are
 | *camel.component.google-calendar-stream.client Factory* | The client Factory | null | false | MEDIUM
 | *camel.component.google-calendar-stream.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.component.google-calendar-stream.client Secret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.component.google-calendar-stream.email Address* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.component.google-calendar-stream.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar-stream.refresh Token* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.component.google-calendar-stream.user* | The email address of the user the application is trying to impersonate in the service account flow. | null | false | MEDIUM
 |===
 
 
diff --git a/connectors/camel-google-calendar-stream-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendarstream/CamelGooglecalendarstreamSourceConnectorConfig.java b/connectors/camel-google-calendar-stream-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendarstream/CamelGooglecalendarstreamSourceConnectorConfig.java
index 3a10b5b..6478255 100644
--- a/connectors/camel-google-calendar-stream-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendarstream/CamelGooglecalendarstreamSourceConnectorConfig.java
+++ b/connectors/camel-google-calendar-stream-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/googlecalendarstream/CamelGooglecalendarstreamSourceConnectorConfig.java
@@ -119,9 +119,18 @@ public class CamelGooglecalendarstreamSourceConnectorConfig
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_CLIENT_SECRET_CONF = "camel.source.endpoint.clientSecret";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_CLIENT_SECRET_DOC = "Client secret of the calendar application";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_CLIENT_SECRET_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_EMAIL_ADDRESS_CONF = "camel.source.endpoint.emailAddress";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_EMAIL_ADDRESS_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_P12FILE_NAME_CONF = "camel.source.endpoint.p12FileName";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_REFRESH_TOKEN_CONF = "camel.source.endpoint.refreshToken";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_REFRESH_TOKEN_DOC = "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_REFRESH_TOKEN_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USER_CONF = "camel.source.endpoint.user";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USER_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_APPLICATION_NAME_CONF = "camel.component.google-calendar-stream.applicationName";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_APPLICATION_NAME_DOC = "Google Calendar application name. Example would be camel-google-calendar/1.0";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_APPLICATION_NAME_DEFAULT = null;
@@ -164,9 +173,18 @@ public class CamelGooglecalendarstreamSourceConnectorConfig
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_SECRET_CONF = "camel.component.google-calendar-stream.clientSecret";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_SECRET_DOC = "Client secret of the calendar application";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_SECRET_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_EMAIL_ADDRESS_CONF = "camel.component.google-calendar-stream.emailAddress";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_EMAIL_ADDRESS_DOC = "The emailAddress of the Google Service Account.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_EMAIL_ADDRESS_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_P12FILE_NAME_CONF = "camel.component.google-calendar-stream.p12FileName";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_P12FILE_NAME_DOC = "The name of the p12 file which has the private key to use with the Google Service Account.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_P12FILE_NAME_DEFAULT = null;
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_REFRESH_TOKEN_CONF = "camel.component.google-calendar-stream.refreshToken";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_REFRESH_TOKEN_DOC = "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.";
     public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_REFRESH_TOKEN_DEFAULT = null;
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_USER_CONF = "camel.component.google-calendar-stream.user";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_USER_DOC = "The email address of the user the application is trying to impersonate in the service account flow.";
+    public static final String CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_USER_DEFAULT = null;
 
     public CamelGooglecalendarstreamSourceConnectorConfig(
             ConfigDef config,
@@ -212,7 +230,10 @@ public class CamelGooglecalendarstreamSourceConnectorConfig
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USE_FIXED_DELAY_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USE_FIXED_DELAY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USE_FIXED_DELAY_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_ACCESS_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_ACCESS_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_ACCESS_TOKEN_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_CLIENT_SECRET_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_CLIENT_SECRET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_CLIENT_SECRET_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_EMAIL_ADDRESS_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_REFRESH_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_REFRESH_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_REFRESH_TOKEN_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_ENDPOINT_USER_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_APPLICATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_APPLICATION_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_APPLICATION_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CALENDAR_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CALENDAR_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CALENDAR_ID_DOC);
@@ -227,7 +248,10 @@ public class CamelGooglecalendarstreamSourceConnectorConfig
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_FACTORY_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_ACCESS_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_ACCESS_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_ACCESS_TOKEN_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_SECRET_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_SECRET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_CLIENT_SECRET_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_EMAIL_ADDRESS_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_EMAIL_ADDRESS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_EMAIL_ADDRESS_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_P12FILE_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_P12FILE_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_P12FILE_NAME_DOC);
         conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_REFRESH_TOKEN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_REFRESH_TOKEN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_REFRESH_TOKEN_DOC);
+        conf.define(CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_USER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_USER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_GOOGLECALENDARSTREAM_COMPONENT_USER_DOC);
         return conf;
     }
 }
\ No newline at end of file
diff --git a/connectors/camel-imap-kafka-connector/src/generated/resources/camel-imap-source.json b/connectors/camel-imap-kafka-connector/src/generated/resources/camel-imap-source.json
index 692ce34..92022fc 100644
--- a/connectors/camel-imap-kafka-connector/src/generated/resources/camel-imap-source.json
+++ b/connectors/camel-imap-kafka-connector/src/generated/resources/camel-imap-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.imap.decodeFilename": {
+			"name": "camel.component.imap.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.imap.delete": {
 			"name": "camel.component.imap.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/connectors/camel-imap-kafka-connector/src/main/docs/camel-imap-kafka-source-connector.adoc b/connectors/camel-imap-kafka-connector/src/main/docs/camel-imap-kafka-source-connector.adoc
index c6f1127..ad5b660 100644
--- a/connectors/camel-imap-kafka-connector/src/main/docs/camel-imap-kafka-source-connector.adoc
+++ b/connectors/camel-imap-kafka-connector/src/main/docs/camel-imap-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.imap.CamelImapSourceConnector
 ----
 
 
-The camel-imap source connector supports 94 options, which are listed below.
+The camel-imap source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-imap source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-imap source connector supports 94 options, which are listed below.
 | *camel.component.imap.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.imap.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.imap.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.imap.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.imap.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.imap.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.imap.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/connectors/camel-imap-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/imap/CamelImapSourceConnectorConfig.java b/connectors/camel-imap-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/imap/CamelImapSourceConnectorConfig.java
index 77669a6..d1c42a2 100644
--- a/connectors/camel-imap-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/imap/CamelImapSourceConnectorConfig.java
+++ b/connectors/camel-imap-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/imap/CamelImapSourceConnectorConfig.java
@@ -41,6 +41,9 @@ public class CamelImapSourceConnectorConfig
     public static final String CAMEL_SOURCE_IMAP_ENDPOINT_COPY_TO_CONF = "camel.source.endpoint.copyTo";
     public static final String CAMEL_SOURCE_IMAP_ENDPOINT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_IMAP_ENDPOINT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_IMAP_ENDPOINT_DECODE_FILENAME_CONF = "camel.source.endpoint.decodeFilename";
+    public static final String CAMEL_SOURCE_IMAP_ENDPOINT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_IMAP_ENDPOINT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_IMAP_ENDPOINT_DELETE_CONF = "camel.source.endpoint.delete";
     public static final String CAMEL_SOURCE_IMAP_ENDPOINT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_IMAP_ENDPOINT_DELETE_DEFAULT = false;
@@ -215,6 +218,9 @@ public class CamelImapSourceConnectorConfig
     public static final String CAMEL_SOURCE_IMAP_COMPONENT_COPY_TO_CONF = "camel.component.imap.copyTo";
     public static final String CAMEL_SOURCE_IMAP_COMPONENT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_IMAP_COMPONENT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_IMAP_COMPONENT_DECODE_FILENAME_CONF = "camel.component.imap.decodeFilename";
+    public static final String CAMEL_SOURCE_IMAP_COMPONENT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_IMAP_COMPONENT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_IMAP_COMPONENT_DELETE_CONF = "camel.component.imap.delete";
     public static final String CAMEL_SOURCE_IMAP_COMPONENT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_IMAP_COMPONENT_DELETE_DEFAULT = false;
@@ -326,6 +332,7 @@ public class CamelImapSourceConnectorConfig
         conf.define(CAMEL_SOURCE_IMAP_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_IMAP_ENDPOINT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_ENDPOINT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_ENDPOINT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_IMAP_ENDPOINT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_IMAP_ENDPOINT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_ENDPOINT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_IMAP_ENDPOINT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_ENDPOINT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_ENDPOINT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_IMAP_ENDPOINT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_ENDPOINT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_ENDPOINT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_IMAP_ENDPOINT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_ENDPOINT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_ENDPOINT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_IMAP_ENDPOINT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_ENDPOINT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_ENDPOINT_HANDLE_FAILED_MESSAGE_DOC);
@@ -384,6 +391,7 @@ public class CamelImapSourceConnectorConfig
         conf.define(CAMEL_SOURCE_IMAP_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_IMAP_COMPONENT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_COMPONENT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_COMPONENT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_IMAP_COMPONENT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_IMAP_COMPONENT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_COMPONENT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_IMAP_COMPONENT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_COMPONENT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_COMPONENT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_IMAP_COMPONENT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_COMPONENT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_COMPONENT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_IMAP_COMPONENT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_COMPONENT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_COMPONENT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_IMAP_COMPONENT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAP_COMPONENT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAP_COMPONENT_HANDLE_FAILED_MESSAGE_DOC);
diff --git a/connectors/camel-imaps-kafka-connector/src/generated/resources/camel-imaps-source.json b/connectors/camel-imaps-kafka-connector/src/generated/resources/camel-imaps-source.json
index 40b44bc..9eb15c5 100644
--- a/connectors/camel-imaps-kafka-connector/src/generated/resources/camel-imaps-source.json
+++ b/connectors/camel-imaps-kafka-connector/src/generated/resources/camel-imaps-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.imaps.decodeFilename": {
+			"name": "camel.component.imaps.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.imaps.delete": {
 			"name": "camel.component.imaps.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/connectors/camel-imaps-kafka-connector/src/main/docs/camel-imaps-kafka-source-connector.adoc b/connectors/camel-imaps-kafka-connector/src/main/docs/camel-imaps-kafka-source-connector.adoc
index 2965862..efbfbd6 100644
--- a/connectors/camel-imaps-kafka-connector/src/main/docs/camel-imaps-kafka-source-connector.adoc
+++ b/connectors/camel-imaps-kafka-connector/src/main/docs/camel-imaps-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.imaps.CamelImapsSourceConnector
 ----
 
 
-The camel-imaps source connector supports 94 options, which are listed below.
+The camel-imaps source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-imaps source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-imaps source connector supports 94 options, which are listed below.
 | *camel.component.imaps.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.imaps.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.imaps.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.imaps.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.imaps.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.imaps.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.imaps.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/connectors/camel-imaps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/imaps/CamelImapsSourceConnectorConfig.java b/connectors/camel-imaps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/imaps/CamelImapsSourceConnectorConfig.java
index 3b0ab4d..43e9f40 100644
--- a/connectors/camel-imaps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/imaps/CamelImapsSourceConnectorConfig.java
+++ b/connectors/camel-imaps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/imaps/CamelImapsSourceConnectorConfig.java
@@ -41,6 +41,9 @@ public class CamelImapsSourceConnectorConfig
     public static final String CAMEL_SOURCE_IMAPS_ENDPOINT_COPY_TO_CONF = "camel.source.endpoint.copyTo";
     public static final String CAMEL_SOURCE_IMAPS_ENDPOINT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_IMAPS_ENDPOINT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_IMAPS_ENDPOINT_DECODE_FILENAME_CONF = "camel.source.endpoint.decodeFilename";
+    public static final String CAMEL_SOURCE_IMAPS_ENDPOINT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_IMAPS_ENDPOINT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_IMAPS_ENDPOINT_DELETE_CONF = "camel.source.endpoint.delete";
     public static final String CAMEL_SOURCE_IMAPS_ENDPOINT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_IMAPS_ENDPOINT_DELETE_DEFAULT = false;
@@ -215,6 +218,9 @@ public class CamelImapsSourceConnectorConfig
     public static final String CAMEL_SOURCE_IMAPS_COMPONENT_COPY_TO_CONF = "camel.component.imaps.copyTo";
     public static final String CAMEL_SOURCE_IMAPS_COMPONENT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_IMAPS_COMPONENT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_IMAPS_COMPONENT_DECODE_FILENAME_CONF = "camel.component.imaps.decodeFilename";
+    public static final String CAMEL_SOURCE_IMAPS_COMPONENT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_IMAPS_COMPONENT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_IMAPS_COMPONENT_DELETE_CONF = "camel.component.imaps.delete";
     public static final String CAMEL_SOURCE_IMAPS_COMPONENT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_IMAPS_COMPONENT_DELETE_DEFAULT = false;
@@ -326,6 +332,7 @@ public class CamelImapsSourceConnectorConfig
         conf.define(CAMEL_SOURCE_IMAPS_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_ENDPOINT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_ENDPOINT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_ENDPOINT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_ENDPOINT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_IMAPS_ENDPOINT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_ENDPOINT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_IMAPS_ENDPOINT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_ENDPOINT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_ENDPOINT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_ENDPOINT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_ENDPOINT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_ENDPOINT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_ENDPOINT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_ENDPOINT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_ENDPOINT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_ENDPOINT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_ENDPOINT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_ENDPOINT_HANDLE_FAILED_MESSAGE_DOC);
@@ -384,6 +391,7 @@ public class CamelImapsSourceConnectorConfig
         conf.define(CAMEL_SOURCE_IMAPS_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_COMPONENT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_COMPONENT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_COMPONENT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_COMPONENT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_IMAPS_COMPONENT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_COMPONENT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_IMAPS_COMPONENT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_COMPONENT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_COMPONENT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_COMPONENT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_COMPONENT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_COMPONENT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_COMPONENT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_COMPONENT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_COMPONENT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_IMAPS_COMPONENT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_IMAPS_COMPONENT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_IMAPS_COMPONENT_HANDLE_FAILED_MESSAGE_DOC);
diff --git a/connectors/camel-jclouds-kafka-connector/src/generated/resources/camel-jclouds-sink.json b/connectors/camel-jclouds-kafka-connector/src/generated/resources/camel-jclouds-sink.json
index 65e00c5..7465892 100644
--- a/connectors/camel-jclouds-kafka-connector/src/generated/resources/camel-jclouds-sink.json
+++ b/connectors/camel-jclouds-kafka-connector/src/generated/resources/camel-jclouds-sink.json
@@ -6,7 +6,7 @@
 		"id": "camel-jclouds-sink",
 		"type": "sink",
 		"version": "0.8.0-SNAPSHOT",
-		"description": "Interact with jclouds compute & blobstore service."
+		"description": "Interact with jclouds compute and blobstore service."
 	},
 	"properties": {
 		"camel.sink.path.command": {
diff --git a/connectors/camel-jclouds-kafka-connector/src/generated/resources/camel-jclouds-source.json b/connectors/camel-jclouds-kafka-connector/src/generated/resources/camel-jclouds-source.json
index b3598e9..acc9bb3 100644
--- a/connectors/camel-jclouds-kafka-connector/src/generated/resources/camel-jclouds-source.json
+++ b/connectors/camel-jclouds-kafka-connector/src/generated/resources/camel-jclouds-source.json
@@ -6,7 +6,7 @@
 		"id": "camel-jclouds-source",
 		"type": "source",
 		"version": "0.8.0-SNAPSHOT",
-		"description": "Interact with jclouds compute & blobstore service."
+		"description": "Interact with jclouds compute and blobstore service."
 	},
 	"properties": {
 		"camel.source.path.command": {
diff --git a/connectors/camel-jms-kafka-connector/src/generated/resources/camel-jms-sink.json b/connectors/camel-jms-kafka-connector/src/generated/resources/camel-jms-sink.json
index 6ef9a15..08e2a2e 100644
--- a/connectors/camel-jms-kafka-connector/src/generated/resources/camel-jms-sink.json
+++ b/connectors/camel-jms-kafka-connector/src/generated/resources/camel-jms-sink.json
@@ -133,7 +133,7 @@
 		},
 		"camel.sink.endpoint.priority": {
 			"name": "camel.sink.endpoint.priority",
-			"description": "Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
+			"description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
 			"defaultValue": "4",
 			"priority": "MEDIUM",
 			"required": "false",
@@ -629,7 +629,7 @@
 		},
 		"camel.component.jms.priority": {
 			"name": "camel.component.jms.priority",
-			"description": "Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
+			"description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
 			"defaultValue": "4",
 			"priority": "MEDIUM",
 			"required": "false",
diff --git a/connectors/camel-jms-kafka-connector/src/main/docs/camel-jms-kafka-sink-connector.adoc b/connectors/camel-jms-kafka-connector/src/main/docs/camel-jms-kafka-sink-connector.adoc
index 612b280..dc40042 100644
--- a/connectors/camel-jms-kafka-connector/src/main/docs/camel-jms-kafka-sink-connector.adoc
+++ b/connectors/camel-jms-kafka-connector/src/main/docs/camel-jms-kafka-sink-connector.adoc
@@ -45,7 +45,7 @@ The camel-jms sink connector supports 144 options, which are listed below.
 | *camel.sink.endpoint.formatDateHeadersToIso8601* | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
 | *camel.sink.endpoint.preserveMessageQos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicit [...]
-| *camel.sink.endpoint.priority* | Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
+| *camel.sink.endpoint.priority* | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
 | *camel.sink.endpoint.replyToConcurrentConsumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | false | MEDIUM
 | *camel.sink.endpoint.replyToMaxConcurrentConsumers* | Specifies the maximum number of concurrent consumers when using request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | null | false | MEDIUM
 | *camel.sink.endpoint.replyToOnTimeoutMaxConcurrent Consumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
@@ -114,7 +114,7 @@ The camel-jms sink connector supports 144 options, which are listed below.
 | *camel.component.jms.formatDateHeadersToIso8601* | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | false | MEDIUM
 | *camel.component.jms.lazyStartProducer* | 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 cre [...]
 | *camel.component.jms.preserveMessageQos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicit [...]
-| *camel.component.jms.priority* | Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
+| *camel.component.jms.priority* | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
 | *camel.component.jms.replyToConcurrentConsumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | false | MEDIUM
 | *camel.component.jms.replyToMaxConcurrentConsumers* | Specifies the maximum number of concurrent consumers when using request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | null | false | MEDIUM
 | *camel.component.jms.replyToOnTimeoutMaxConcurrent Consumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
diff --git a/connectors/camel-jms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/jms/CamelJmsSinkConnectorConfig.java b/connectors/camel-jms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/jms/CamelJmsSinkConnectorConfig.java
index 09167f9..59c85d0 100644
--- a/connectors/camel-jms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/jms/CamelJmsSinkConnectorConfig.java
+++ b/connectors/camel-jms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/jms/CamelJmsSinkConnectorConfig.java
@@ -73,7 +73,7 @@ public class CamelJmsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_JMS_ENDPOINT_PRESERVE_MESSAGE_QOS_DOC = "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the  [...]
     public static final Boolean CAMEL_SINK_JMS_ENDPOINT_PRESERVE_MESSAGE_QOS_DEFAULT = false;
     public static final String CAMEL_SINK_JMS_ENDPOINT_PRIORITY_CONF = "camel.sink.endpoint.priority";
-    public static final String CAMEL_SINK_JMS_ENDPOINT_PRIORITY_DOC = "Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]";
+    public static final String CAMEL_SINK_JMS_ENDPOINT_PRIORITY_DOC = "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]";
     public static final Integer CAMEL_SINK_JMS_ENDPOINT_PRIORITY_DEFAULT = 4;
     public static final String CAMEL_SINK_JMS_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_CONF = "camel.sink.endpoint.replyToConcurrentConsumers";
     public static final String CAMEL_SINK_JMS_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DOC = "Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads.";
@@ -280,7 +280,7 @@ public class CamelJmsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_JMS_COMPONENT_PRESERVE_MESSAGE_QOS_DOC = "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the [...]
     public static final Boolean CAMEL_SINK_JMS_COMPONENT_PRESERVE_MESSAGE_QOS_DEFAULT = false;
     public static final String CAMEL_SINK_JMS_COMPONENT_PRIORITY_CONF = "camel.component.jms.priority";
-    public static final String CAMEL_SINK_JMS_COMPONENT_PRIORITY_DOC = "Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]";
+    public static final String CAMEL_SINK_JMS_COMPONENT_PRIORITY_DOC = "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]";
     public static final Integer CAMEL_SINK_JMS_COMPONENT_PRIORITY_DEFAULT = 4;
     public static final String CAMEL_SINK_JMS_COMPONENT_REPLY_TO_CONCURRENT_CONSUMERS_CONF = "camel.component.jms.replyToConcurrentConsumers";
     public static final String CAMEL_SINK_JMS_COMPONENT_REPLY_TO_CONCURRENT_CONSUMERS_DOC = "Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads.";
diff --git a/connectors/camel-jsonata-kafka-connector/src/generated/resources/camel-jsonata-sink.json b/connectors/camel-jsonata-kafka-connector/src/generated/resources/camel-jsonata-sink.json
index 6ebb15d..022903b 100644
--- a/connectors/camel-jsonata-kafka-connector/src/generated/resources/camel-jsonata-sink.json
+++ b/connectors/camel-jsonata-kafka-connector/src/generated/resources/camel-jsonata-sink.json
@@ -6,7 +6,7 @@
 		"id": "camel-jsonata-sink",
 		"type": "sink",
 		"version": "0.8.0-SNAPSHOT",
-		"description": "JSON to JSON transformation using JSONATA."
+		"description": "Transforms JSON payload using JSONata transformation."
 	},
 	"properties": {
 		"camel.sink.path.resourceUri": {
diff --git a/connectors/camel-pop3-kafka-connector/src/generated/resources/camel-pop3-source.json b/connectors/camel-pop3-kafka-connector/src/generated/resources/camel-pop3-source.json
index 7e6847a..9fca2b3 100644
--- a/connectors/camel-pop3-kafka-connector/src/generated/resources/camel-pop3-source.json
+++ b/connectors/camel-pop3-kafka-connector/src/generated/resources/camel-pop3-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.pop3.decodeFilename": {
+			"name": "camel.component.pop3.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.pop3.delete": {
 			"name": "camel.component.pop3.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/connectors/camel-pop3-kafka-connector/src/main/docs/camel-pop3-kafka-source-connector.adoc b/connectors/camel-pop3-kafka-connector/src/main/docs/camel-pop3-kafka-source-connector.adoc
index 5c91154..3c2a24f 100644
--- a/connectors/camel-pop3-kafka-connector/src/main/docs/camel-pop3-kafka-source-connector.adoc
+++ b/connectors/camel-pop3-kafka-connector/src/main/docs/camel-pop3-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.pop3.CamelPop3SourceConnector
 ----
 
 
-The camel-pop3 source connector supports 94 options, which are listed below.
+The camel-pop3 source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-pop3 source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-pop3 source connector supports 94 options, which are listed below.
 | *camel.component.pop3.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.pop3.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.pop3.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.pop3.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.pop3.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.pop3.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.pop3.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/connectors/camel-pop3-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/pop3/CamelPop3SourceConnectorConfig.java b/connectors/camel-pop3-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/pop3/CamelPop3SourceConnectorConfig.java
index c35840c..485645c 100644
--- a/connectors/camel-pop3-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/pop3/CamelPop3SourceConnectorConfig.java
+++ b/connectors/camel-pop3-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/pop3/CamelPop3SourceConnectorConfig.java
@@ -41,6 +41,9 @@ public class CamelPop3SourceConnectorConfig
     public static final String CAMEL_SOURCE_POP3_ENDPOINT_COPY_TO_CONF = "camel.source.endpoint.copyTo";
     public static final String CAMEL_SOURCE_POP3_ENDPOINT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_POP3_ENDPOINT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_POP3_ENDPOINT_DECODE_FILENAME_CONF = "camel.source.endpoint.decodeFilename";
+    public static final String CAMEL_SOURCE_POP3_ENDPOINT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_POP3_ENDPOINT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_POP3_ENDPOINT_DELETE_CONF = "camel.source.endpoint.delete";
     public static final String CAMEL_SOURCE_POP3_ENDPOINT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_POP3_ENDPOINT_DELETE_DEFAULT = false;
@@ -215,6 +218,9 @@ public class CamelPop3SourceConnectorConfig
     public static final String CAMEL_SOURCE_POP3_COMPONENT_COPY_TO_CONF = "camel.component.pop3.copyTo";
     public static final String CAMEL_SOURCE_POP3_COMPONENT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_POP3_COMPONENT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_POP3_COMPONENT_DECODE_FILENAME_CONF = "camel.component.pop3.decodeFilename";
+    public static final String CAMEL_SOURCE_POP3_COMPONENT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_POP3_COMPONENT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_POP3_COMPONENT_DELETE_CONF = "camel.component.pop3.delete";
     public static final String CAMEL_SOURCE_POP3_COMPONENT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_POP3_COMPONENT_DELETE_DEFAULT = false;
@@ -326,6 +332,7 @@ public class CamelPop3SourceConnectorConfig
         conf.define(CAMEL_SOURCE_POP3_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_POP3_ENDPOINT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_ENDPOINT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_ENDPOINT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_POP3_ENDPOINT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_POP3_ENDPOINT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_ENDPOINT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_POP3_ENDPOINT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_ENDPOINT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_ENDPOINT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_POP3_ENDPOINT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_ENDPOINT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_ENDPOINT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_POP3_ENDPOINT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_ENDPOINT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_ENDPOINT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_POP3_ENDPOINT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_ENDPOINT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_ENDPOINT_HANDLE_FAILED_MESSAGE_DOC);
@@ -384,6 +391,7 @@ public class CamelPop3SourceConnectorConfig
         conf.define(CAMEL_SOURCE_POP3_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_POP3_COMPONENT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_COMPONENT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_COMPONENT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_POP3_COMPONENT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_POP3_COMPONENT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_COMPONENT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_POP3_COMPONENT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_COMPONENT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_COMPONENT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_POP3_COMPONENT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_COMPONENT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_COMPONENT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_POP3_COMPONENT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_COMPONENT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_COMPONENT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_POP3_COMPONENT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3_COMPONENT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3_COMPONENT_HANDLE_FAILED_MESSAGE_DOC);
diff --git a/connectors/camel-pop3s-kafka-connector/src/generated/resources/camel-pop3s-source.json b/connectors/camel-pop3s-kafka-connector/src/generated/resources/camel-pop3s-source.json
index 0f992d0..dff0351 100644
--- a/connectors/camel-pop3s-kafka-connector/src/generated/resources/camel-pop3s-source.json
+++ b/connectors/camel-pop3s-kafka-connector/src/generated/resources/camel-pop3s-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.pop3s.decodeFilename": {
+			"name": "camel.component.pop3s.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.pop3s.delete": {
 			"name": "camel.component.pop3s.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/connectors/camel-pop3s-kafka-connector/src/main/docs/camel-pop3s-kafka-source-connector.adoc b/connectors/camel-pop3s-kafka-connector/src/main/docs/camel-pop3s-kafka-source-connector.adoc
index fafd763..79be67b 100644
--- a/connectors/camel-pop3s-kafka-connector/src/main/docs/camel-pop3s-kafka-source-connector.adoc
+++ b/connectors/camel-pop3s-kafka-connector/src/main/docs/camel-pop3s-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.pop3s.CamelPop3sSourceConnector
 ----
 
 
-The camel-pop3s source connector supports 94 options, which are listed below.
+The camel-pop3s source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-pop3s source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-pop3s source connector supports 94 options, which are listed below.
 | *camel.component.pop3s.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.pop3s.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.pop3s.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.pop3s.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.pop3s.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.pop3s.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.pop3s.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/connectors/camel-pop3s-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/pop3s/CamelPop3sSourceConnectorConfig.java b/connectors/camel-pop3s-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/pop3s/CamelPop3sSourceConnectorConfig.java
index efeb864..10a0316 100644
--- a/connectors/camel-pop3s-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/pop3s/CamelPop3sSourceConnectorConfig.java
+++ b/connectors/camel-pop3s-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/pop3s/CamelPop3sSourceConnectorConfig.java
@@ -41,6 +41,9 @@ public class CamelPop3sSourceConnectorConfig
     public static final String CAMEL_SOURCE_POP3S_ENDPOINT_COPY_TO_CONF = "camel.source.endpoint.copyTo";
     public static final String CAMEL_SOURCE_POP3S_ENDPOINT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_POP3S_ENDPOINT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_POP3S_ENDPOINT_DECODE_FILENAME_CONF = "camel.source.endpoint.decodeFilename";
+    public static final String CAMEL_SOURCE_POP3S_ENDPOINT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_POP3S_ENDPOINT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_POP3S_ENDPOINT_DELETE_CONF = "camel.source.endpoint.delete";
     public static final String CAMEL_SOURCE_POP3S_ENDPOINT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_POP3S_ENDPOINT_DELETE_DEFAULT = false;
@@ -215,6 +218,9 @@ public class CamelPop3sSourceConnectorConfig
     public static final String CAMEL_SOURCE_POP3S_COMPONENT_COPY_TO_CONF = "camel.component.pop3s.copyTo";
     public static final String CAMEL_SOURCE_POP3S_COMPONENT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_POP3S_COMPONENT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_POP3S_COMPONENT_DECODE_FILENAME_CONF = "camel.component.pop3s.decodeFilename";
+    public static final String CAMEL_SOURCE_POP3S_COMPONENT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_POP3S_COMPONENT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_POP3S_COMPONENT_DELETE_CONF = "camel.component.pop3s.delete";
     public static final String CAMEL_SOURCE_POP3S_COMPONENT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_POP3S_COMPONENT_DELETE_DEFAULT = false;
@@ -326,6 +332,7 @@ public class CamelPop3sSourceConnectorConfig
         conf.define(CAMEL_SOURCE_POP3S_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_POP3S_ENDPOINT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_ENDPOINT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_ENDPOINT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_POP3S_ENDPOINT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_POP3S_ENDPOINT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_ENDPOINT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_POP3S_ENDPOINT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_ENDPOINT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_ENDPOINT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_POP3S_ENDPOINT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_ENDPOINT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_ENDPOINT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_POP3S_ENDPOINT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_ENDPOINT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_ENDPOINT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_POP3S_ENDPOINT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_ENDPOINT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_ENDPOINT_HANDLE_FAILED_MESSAGE_DOC);
@@ -384,6 +391,7 @@ public class CamelPop3sSourceConnectorConfig
         conf.define(CAMEL_SOURCE_POP3S_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_POP3S_COMPONENT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_COMPONENT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_COMPONENT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_POP3S_COMPONENT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_POP3S_COMPONENT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_COMPONENT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_POP3S_COMPONENT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_COMPONENT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_COMPONENT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_POP3S_COMPONENT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_COMPONENT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_COMPONENT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_POP3S_COMPONENT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_COMPONENT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_COMPONENT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_POP3S_COMPONENT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_POP3S_COMPONENT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_POP3S_COMPONENT_HANDLE_FAILED_MESSAGE_DOC);
diff --git a/connectors/camel-sftp-kafka-connector/src/generated/resources/camel-sftp-source.json b/connectors/camel-sftp-kafka-connector/src/generated/resources/camel-sftp-source.json
index 2389447..947984c 100644
--- a/connectors/camel-sftp-kafka-connector/src/generated/resources/camel-sftp-source.json
+++ b/connectors/camel-sftp-kafka-connector/src/generated/resources/camel-sftp-source.json
@@ -366,6 +366,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.excludeExt": {
+			"name": "camel.source.endpoint.excludeExt",
+			"description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.filter": {
 			"name": "camel.source.endpoint.filter",
 			"description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.",
@@ -409,6 +415,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.includeExt": {
+			"name": "camel.source.endpoint.includeExt",
+			"description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.maxDepth": {
 			"name": "camel.source.endpoint.maxDepth",
 			"description": "The maximum depth to traverse when recursively processing a directory.",
diff --git a/connectors/camel-sftp-kafka-connector/src/main/docs/camel-sftp-kafka-source-connector.adoc b/connectors/camel-sftp-kafka-connector/src/main/docs/camel-sftp-kafka-source-connector.adoc
index 2230a34..1701149 100644
--- a/connectors/camel-sftp-kafka-connector/src/main/docs/camel-sftp-kafka-source-connector.adoc
+++ b/connectors/camel-sftp-kafka-connector/src/main/docs/camel-sftp-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sftp.CamelSftpSourceConnector
 ----
 
 
-The camel-sftp source connector supports 111 options, which are listed below.
+The camel-sftp source connector supports 113 options, which are listed below.
 
 
 
@@ -81,6 +81,7 @@ The camel-sftp source connector supports 111 options, which are listed below.
 | *camel.source.endpoint.antInclude* | Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format. | null | false | MEDIUM
 | *camel.source.endpoint.eagerMaxMessagesPerPoll* | Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. | true | false | MEDIUM
 | *camel.source.endpoint.exclude* | Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.excludeExt* | Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat. | null | false | MEDIUM
 | *camel.source.endpoint.filter* | Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method. | null | false | MEDIUM
 | *camel.source.endpoint.filterDirectory* | Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd} | null | false | MEDIUM
 | *camel.source.endpoint.filterFile* | Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000 | null | false | MEDIUM
@@ -88,6 +89,7 @@ The camel-sftp source connector supports 111 options, which are listed below.
 | *camel.source.endpoint.idempotentKey* | To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size} | null | false | MEDIUM
 | *camel.source.endpoint.idempotentRepository* | A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true. | null | false | MEDIUM
 | *camel.source.endpoint.include* | Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.includeExt* | Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml | null | false | MEDIUM
 | *camel.source.endpoint.maxDepth* | The maximum depth to traverse when recursively processing a directory. | 2147483647 | false | MEDIUM
 | *camel.source.endpoint.maxMessagesPerPoll* | To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picke [...]
 | *camel.source.endpoint.minDepth* | The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. | null | false | MEDIUM
diff --git a/connectors/camel-sftp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sftp/CamelSftpSourceConnectorConfig.java b/connectors/camel-sftp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sftp/CamelSftpSourceConnectorConfig.java
index 925b0a4..54dfe70 100644
--- a/connectors/camel-sftp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sftp/CamelSftpSourceConnectorConfig.java
+++ b/connectors/camel-sftp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sftp/CamelSftpSourceConnectorConfig.java
@@ -182,6 +182,9 @@ public class CamelSftpSourceConnectorConfig
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_CONF = "camel.source.endpoint.exclude";
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_DOC = "Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris";
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_EXT_CONF = "camel.source.endpoint.excludeExt";
+    public static final String CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_EXT_DOC = "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat.";
+    public static final String CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_EXT_DEFAULT = null;
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_CONF = "camel.source.endpoint.filter";
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_DOC = "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method.";
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_DEFAULT = null;
@@ -203,6 +206,9 @@ public class CamelSftpSourceConnectorConfig
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_CONF = "camel.source.endpoint.include";
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_DOC = "Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris";
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_EXT_CONF = "camel.source.endpoint.includeExt";
+    public static final String CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_EXT_DOC = "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml";
+    public static final String CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_EXT_DEFAULT = null;
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_MAX_DEPTH_CONF = "camel.source.endpoint.maxDepth";
     public static final String CAMEL_SOURCE_SFTP_ENDPOINT_MAX_DEPTH_DOC = "The maximum depth to traverse when recursively processing a directory.";
     public static final Integer CAMEL_SOURCE_SFTP_ENDPOINT_MAX_DEPTH_DEFAULT = 2147483647;
@@ -424,6 +430,7 @@ public class CamelSftpSourceConnectorConfig
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_ANT_INCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_ANT_INCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_ANT_INCLUDE_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SFTP_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_EAGER_MAX_MESSAGES_PER_POLL_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_DOC);
+        conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_EXT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_EXT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_EXCLUDE_EXT_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_DIRECTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_DIRECTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_DIRECTORY_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_FILE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_FILE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_FILTER_FILE_DOC);
@@ -431,6 +438,7 @@ public class CamelSftpSourceConnectorConfig
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_IDEMPOTENT_KEY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_IDEMPOTENT_KEY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_IDEMPOTENT_KEY_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_IDEMPOTENT_REPOSITORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_IDEMPOTENT_REPOSITORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_IDEMPOTENT_REPOSITORY_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_DOC);
+        conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_EXT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_EXT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_INCLUDE_EXT_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_MAX_DEPTH_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SFTP_ENDPOINT_MAX_DEPTH_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_MAX_DEPTH_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_MAX_MESSAGES_PER_POLL_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SFTP_ENDPOINT_MAX_MESSAGES_PER_POLL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_MAX_MESSAGES_PER_POLL_DOC);
         conf.define(CAMEL_SOURCE_SFTP_ENDPOINT_MIN_DEPTH_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SFTP_ENDPOINT_MIN_DEPTH_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SFTP_ENDPOINT_MIN_DEPTH_DOC);
diff --git a/connectors/camel-sip-kafka-connector/src/generated/resources/camel-sip-source.json b/connectors/camel-sip-kafka-connector/src/generated/resources/camel-sip-source.json
index e0c43d0..adbaf8d 100644
--- a/connectors/camel-sip-kafka-connector/src/generated/resources/camel-sip-source.json
+++ b/connectors/camel-sip-kafka-connector/src/generated/resources/camel-sip-source.json
@@ -132,7 +132,7 @@
 		},
 		"camel.source.endpoint.presenceAgent": {
 			"name": "camel.source.endpoint.presenceAgent",
-			"description": "This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.",
+			"description": "This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.",
 			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
diff --git a/connectors/camel-sip-kafka-connector/src/main/docs/camel-sip-kafka-source-connector.adoc b/connectors/camel-sip-kafka-connector/src/main/docs/camel-sip-kafka-source-connector.adoc
index 8365abd..c6b394f 100644
--- a/connectors/camel-sip-kafka-connector/src/main/docs/camel-sip-kafka-source-connector.adoc
+++ b/connectors/camel-sip-kafka-connector/src/main/docs/camel-sip-kafka-source-connector.adoc
@@ -47,7 +47,7 @@ The camel-sip source connector supports 47 options, which are listed below.
 | *camel.source.endpoint.transport* | Setting for choice of transport protocol. Valid choices are tcp or udp. One of: [tcp] [udp] | "tcp" | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.consumer* | This setting is used to determine whether the kind of header (FromHeader,ToHeader etc) that needs to be created for this endpoint | false | false | MEDIUM
-| *camel.source.endpoint.presenceAgent* | This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true. | false | false | MEDIUM
+| *camel.source.endpoint.presenceAgent* | This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true. | false | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
 | *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
 | *camel.source.endpoint.addressFactory* | To use a custom AddressFactory | null | false | MEDIUM
diff --git a/connectors/camel-sip-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sip/CamelSipSourceConnectorConfig.java b/connectors/camel-sip-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sip/CamelSipSourceConnectorConfig.java
index 77c63f0..fb3c98f 100644
--- a/connectors/camel-sip-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sip/CamelSipSourceConnectorConfig.java
+++ b/connectors/camel-sip-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sip/CamelSipSourceConnectorConfig.java
@@ -79,7 +79,7 @@ public class CamelSipSourceConnectorConfig extends CamelSourceConnectorConfig {
     public static final String CAMEL_SOURCE_SIP_ENDPOINT_CONSUMER_DOC = "This setting is used to determine whether the kind of header (FromHeader,ToHeader etc) that needs to be created for this endpoint";
     public static final Boolean CAMEL_SOURCE_SIP_ENDPOINT_CONSUMER_DEFAULT = false;
     public static final String CAMEL_SOURCE_SIP_ENDPOINT_PRESENCE_AGENT_CONF = "camel.source.endpoint.presenceAgent";
-    public static final String CAMEL_SOURCE_SIP_ENDPOINT_PRESENCE_AGENT_DOC = "This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.";
+    public static final String CAMEL_SOURCE_SIP_ENDPOINT_PRESENCE_AGENT_DOC = "This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.";
     public static final Boolean CAMEL_SOURCE_SIP_ENDPOINT_PRESENCE_AGENT_DEFAULT = false;
     public static final String CAMEL_SOURCE_SIP_ENDPOINT_EXCEPTION_HANDLER_CONF = "camel.source.endpoint.exceptionHandler";
     public static final String CAMEL_SOURCE_SIP_ENDPOINT_EXCEPTION_HANDLER_DOC = "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.";
diff --git a/connectors/camel-sips-kafka-connector/src/generated/resources/camel-sips-source.json b/connectors/camel-sips-kafka-connector/src/generated/resources/camel-sips-source.json
index b6b0e27..f8f5e0b 100644
--- a/connectors/camel-sips-kafka-connector/src/generated/resources/camel-sips-source.json
+++ b/connectors/camel-sips-kafka-connector/src/generated/resources/camel-sips-source.json
@@ -132,7 +132,7 @@
 		},
 		"camel.source.endpoint.presenceAgent": {
 			"name": "camel.source.endpoint.presenceAgent",
-			"description": "This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.",
+			"description": "This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.",
 			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
diff --git a/connectors/camel-sips-kafka-connector/src/main/docs/camel-sips-kafka-source-connector.adoc b/connectors/camel-sips-kafka-connector/src/main/docs/camel-sips-kafka-source-connector.adoc
index 7ac248e..6a5d155 100644
--- a/connectors/camel-sips-kafka-connector/src/main/docs/camel-sips-kafka-source-connector.adoc
+++ b/connectors/camel-sips-kafka-connector/src/main/docs/camel-sips-kafka-source-connector.adoc
@@ -47,7 +47,7 @@ The camel-sips source connector supports 47 options, which are listed below.
 | *camel.source.endpoint.transport* | Setting for choice of transport protocol. Valid choices are tcp or udp. One of: [tcp] [udp] | "tcp" | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.consumer* | This setting is used to determine whether the kind of header (FromHeader,ToHeader etc) that needs to be created for this endpoint | false | false | MEDIUM
-| *camel.source.endpoint.presenceAgent* | This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true. | false | false | MEDIUM
+| *camel.source.endpoint.presenceAgent* | This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true. | false | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
 | *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
 | *camel.source.endpoint.addressFactory* | To use a custom AddressFactory | null | false | MEDIUM
diff --git a/connectors/camel-sips-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sips/CamelSipsSourceConnectorConfig.java b/connectors/camel-sips-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sips/CamelSipsSourceConnectorConfig.java
index 15e2987..0f3f038 100644
--- a/connectors/camel-sips-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sips/CamelSipsSourceConnectorConfig.java
+++ b/connectors/camel-sips-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sips/CamelSipsSourceConnectorConfig.java
@@ -81,7 +81,7 @@ public class CamelSipsSourceConnectorConfig
     public static final String CAMEL_SOURCE_SIPS_ENDPOINT_CONSUMER_DOC = "This setting is used to determine whether the kind of header (FromHeader,ToHeader etc) that needs to be created for this endpoint";
     public static final Boolean CAMEL_SOURCE_SIPS_ENDPOINT_CONSUMER_DEFAULT = false;
     public static final String CAMEL_SOURCE_SIPS_ENDPOINT_PRESENCE_AGENT_CONF = "camel.source.endpoint.presenceAgent";
-    public static final String CAMEL_SOURCE_SIPS_ENDPOINT_PRESENCE_AGENT_DOC = "This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.";
+    public static final String CAMEL_SOURCE_SIPS_ENDPOINT_PRESENCE_AGENT_DOC = "This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true.";
     public static final Boolean CAMEL_SOURCE_SIPS_ENDPOINT_PRESENCE_AGENT_DEFAULT = false;
     public static final String CAMEL_SOURCE_SIPS_ENDPOINT_EXCEPTION_HANDLER_CONF = "camel.source.endpoint.exceptionHandler";
     public static final String CAMEL_SOURCE_SIPS_ENDPOINT_EXCEPTION_HANDLER_DOC = "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.";
diff --git a/connectors/camel-sjms-kafka-connector/src/generated/resources/camel-sjms-sink.json b/connectors/camel-sjms-kafka-connector/src/generated/resources/camel-sjms-sink.json
index 15b5961..415d28e 100644
--- a/connectors/camel-sjms-kafka-connector/src/generated/resources/camel-sjms-sink.json
+++ b/connectors/camel-sjms-kafka-connector/src/generated/resources/camel-sjms-sink.json
@@ -39,6 +39,49 @@
 				"DUPS_OK_ACKNOWLEDGE"
 			]
 		},
+		"camel.sink.endpoint.connectionFactory": {
+			"name": "camel.sink.endpoint.connectionFactory",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.disableReplyTo": {
+			"name": "camel.sink.endpoint.disableReplyTo",
+			"description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you w [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.replyTo": {
+			"name": "camel.sink.endpoint.replyTo",
+			"description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.testConnectionOnStartup": {
+			"name": "camel.sink.endpoint.testConnectionOnStartup",
+			"description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.deliveryMode": {
+			"name": "camel.sink.endpoint.deliveryMode",
+			"description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2]",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"1",
+				"2"
+			]
+		},
+		"camel.sink.endpoint.deliveryPersistent": {
+			"name": "camel.sink.endpoint.deliveryPersistent",
+			"description": "Specifies whether persistent delivery is used by default.",
+			"defaultValue": "true",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.lazyStartProducer": {
 			"name": "camel.sink.endpoint.lazyStartProducer",
 			"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 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 starting the pr [...]
@@ -46,29 +89,57 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.namedReplyTo": {
-			"name": "camel.sink.endpoint.namedReplyTo",
-			"description": "Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name.",
+		"camel.sink.endpoint.priority": {
+			"name": "camel.sink.endpoint.priority",
+			"description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
+			"defaultValue": "4",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"1",
+				"2",
+				"3",
+				"4",
+				"5",
+				"6",
+				"7",
+				"8",
+				"9"
+			]
+		},
+		"camel.sink.endpoint.replyToConcurrentConsumers": {
+			"name": "camel.sink.endpoint.replyToConcurrentConsumers",
+			"description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.persistent": {
-			"name": "camel.sink.endpoint.persistent",
-			"description": "Flag used to enable\/disable message persistence.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.replyToOverride": {
+			"name": "camel.sink.endpoint.replyToOverride",
+			"description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.producerCount": {
-			"name": "camel.sink.endpoint.producerCount",
-			"description": "Sets the number of producers used for this endpoint.",
-			"defaultValue": "1",
+		"camel.sink.endpoint.replyToType": {
+			"name": "camel.sink.endpoint.replyToType",
+			"description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive]",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"Temporary",
+				"Exclusive"
+			]
+		},
+		"camel.sink.endpoint.requestTimeout": {
+			"name": "camel.sink.endpoint.requestTimeout",
+			"description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option.",
+			"defaultValue": "20000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.ttl": {
-			"name": "camel.sink.endpoint.ttl",
-			"description": "Flag used to adjust the Time To Live value of produced messages.",
+		"camel.sink.endpoint.timeToLive": {
+			"name": "camel.sink.endpoint.timeToLive",
+			"description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
 			"defaultValue": "-1L",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -80,17 +151,24 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.prefillPool": {
-			"name": "camel.sink.endpoint.prefillPool",
-			"description": "Whether to prefill the producer connection pool on startup, or create connections lazy when needed.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.disableTimeToLive": {
+			"name": "camel.sink.endpoint.disableTimeToLive",
+			"description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire  [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.responseTimeOut": {
-			"name": "camel.sink.endpoint.responseTimeOut",
-			"description": "Sets the amount of time we should wait before timing out a InOut response.",
-			"defaultValue": "5000L",
+		"camel.sink.endpoint.explicitQosEnabled": {
+			"name": "camel.sink.endpoint.explicitQosEnabled",
+			"description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+			"defaultValue": "\"false\"",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.preserveMessageQos": {
+			"name": "camel.sink.endpoint.preserveMessageQos",
+			"description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by cont [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -108,24 +186,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.connectionCount": {
-			"name": "camel.sink.endpoint.connectionCount",
-			"description": "The maximum number of connections available to this endpoint",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.sink.endpoint.connectionFactory": {
-			"name": "camel.sink.endpoint.connectionFactory",
-			"description": "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.sink.endpoint.connectionResource": {
-			"name": "camel.sink.endpoint.connectionResource",
-			"description": "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.destinationCreationStrategy": {
 			"name": "camel.sink.endpoint.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -170,29 +230,37 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.transactionCommitStrategy": {
-			"name": "camel.sink.endpoint.transactionCommitStrategy",
-			"description": "Sets the commit strategy.",
+		"camel.sink.endpoint.recoveryInterval": {
+			"name": "camel.sink.endpoint.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.sharedJMSSession": {
-			"name": "camel.sink.endpoint.sharedJMSSession",
-			"description": "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.synchronous": {
+			"name": "camel.sink.endpoint.synchronous",
+			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionCount": {
-			"name": "camel.component.sjms.connectionCount",
-			"description": "The maximum number of connections available to endpoints started under this component",
-			"defaultValue": "\"1\"",
+		"camel.sink.endpoint.transferException": {
+			"name": "camel.sink.endpoint.transferException",
+			"description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.transacted": {
+			"name": "camel.sink.endpoint.transacted",
+			"description": "Specifies whether to use transacted mode",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
 		"camel.component.sjms.connectionFactory": {
 			"name": "camel.component.sjms.connectionFactory",
-			"description": "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -210,32 +278,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionClientId": {
-			"name": "camel.component.sjms.connectionClientId",
-			"description": "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionMaxWait": {
-			"name": "camel.component.sjms.connectionMaxWait",
-			"description": "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionResource": {
-			"name": "camel.component.sjms.connectionResource",
-			"description": "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionTestOnBorrow": {
-			"name": "camel.component.sjms.connectionTestOnBorrow",
-			"description": "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms.destinationCreationStrategy": {
 			"name": "camel.component.sjms.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -254,33 +296,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.timedTaskManager": {
-			"name": "camel.component.sjms.timedTaskManager",
-			"description": "To use a custom TimedTaskManager",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.headerFilterStrategy": {
-			"name": "camel.component.sjms.headerFilterStrategy",
-			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
+		"camel.component.sjms.recoveryInterval": {
+			"name": "camel.component.sjms.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionPassword": {
-			"name": "camel.component.sjms.connectionPassword",
-			"description": "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers": {
+			"name": "camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers",
+			"description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionUsername": {
-			"name": "camel.component.sjms.connectionUsername",
-			"description": "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms.requestTimeoutCheckerInterval": {
+			"name": "camel.component.sjms.requestTimeoutCheckerInterval",
+			"description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.",
+			"defaultValue": "1000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.transactionCommitStrategy": {
-			"name": "camel.component.sjms.transactionCommitStrategy",
-			"description": "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.",
+		"camel.component.sjms.headerFilterStrategy": {
+			"name": "camel.component.sjms.headerFilterStrategy",
+			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
 			"priority": "MEDIUM",
 			"required": "false"
 		}
diff --git a/connectors/camel-sjms-kafka-connector/src/generated/resources/camel-sjms-source.json b/connectors/camel-sjms-kafka-connector/src/generated/resources/camel-sjms-source.json
index c3ec0f4..89c7f9b 100644
--- a/connectors/camel-sjms-kafka-connector/src/generated/resources/camel-sjms-source.json
+++ b/connectors/camel-sjms-kafka-connector/src/generated/resources/camel-sjms-source.json
@@ -39,6 +39,46 @@
 				"DUPS_OK_ACKNOWLEDGE"
 			]
 		},
+		"camel.source.endpoint.connectionFactory": {
+			"name": "camel.source.endpoint.connectionFactory",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.disableReplyTo": {
+			"name": "camel.source.endpoint.disableReplyTo",
+			"description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you w [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.replyTo": {
+			"name": "camel.source.endpoint.replyTo",
+			"description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.testConnectionOnStartup": {
+			"name": "camel.source.endpoint.testConnectionOnStartup",
+			"description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.asyncConsumer": {
+			"name": "camel.source.endpoint.asyncConsumer",
+			"description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.autoStartup": {
+			"name": "camel.source.endpoint.autoStartup",
+			"description": "Specifies whether the consumer container should auto-startup.",
+			"defaultValue": "true",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.bridgeErrorHandler": {
 			"name": "camel.source.endpoint.bridgeErrorHandler",
 			"description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
@@ -46,37 +86,43 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.consumerCount": {
-			"name": "camel.source.endpoint.consumerCount",
-			"description": "Sets the number of consumer listeners used for this endpoint.",
-			"defaultValue": "1",
+		"camel.source.endpoint.clientId": {
+			"name": "camel.source.endpoint.clientId",
+			"description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.durableSubscriptionId": {
-			"name": "camel.source.endpoint.durableSubscriptionId",
-			"description": "Sets the durable subscription Id required for durable topics.",
+		"camel.source.endpoint.concurrentConsumers": {
+			"name": "camel.source.endpoint.concurrentConsumers",
+			"description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.reconnectBackOff": {
-			"name": "camel.source.endpoint.reconnectBackOff",
-			"description": "Backoff in millis on consumer pool reconnection attempts",
-			"defaultValue": "5000L",
+		"camel.source.endpoint.durableSubscriptionName": {
+			"name": "camel.source.endpoint.durableSubscriptionName",
+			"description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.reconnectOnError": {
-			"name": "camel.source.endpoint.reconnectOnError",
-			"description": "Try to apply reconnection logic on consumer pool",
+		"camel.source.endpoint.replyToDeliveryPersistent": {
+			"name": "camel.source.endpoint.replyToDeliveryPersistent",
+			"description": "Specifies whether to use persistent delivery by default for replies.",
 			"defaultValue": "true",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.synchronous": {
-			"name": "camel.source.endpoint.synchronous",
-			"description": "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).",
-			"defaultValue": "true",
+		"camel.source.endpoint.eagerLoadingOfProperties": {
+			"name": "camel.source.endpoint.eagerLoadingOfProperties",
+			"description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.eagerPoisonBody": {
+			"name": "camel.source.endpoint.eagerPoisonBody",
+			"description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+			"defaultValue": "\"Poison JMS message due to ${exception.message}\"",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -103,6 +149,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.replyToSameDestinationAllowed": {
+			"name": "camel.source.endpoint.replyToSameDestinationAllowed",
+			"description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.asyncStartListener": {
 			"name": "camel.source.endpoint.asyncStartListener",
 			"description": "Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if th [...]
@@ -117,24 +170,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.connectionCount": {
-			"name": "camel.source.endpoint.connectionCount",
-			"description": "The maximum number of connections available to this endpoint",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.connectionFactory": {
-			"name": "camel.source.endpoint.connectionFactory",
-			"description": "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.connectionResource": {
-			"name": "camel.source.endpoint.connectionResource",
-			"description": "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.destinationCreationStrategy": {
 			"name": "camel.source.endpoint.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -179,72 +214,37 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.errorHandlerLoggingLevel": {
-			"name": "camel.source.endpoint.errorHandlerLoggingLevel",
-			"description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF]",
-			"defaultValue": "\"WARN\"",
-			"priority": "MEDIUM",
-			"required": "false",
-			"enum": [
-				"TRACE",
-				"DEBUG",
-				"INFO",
-				"WARN",
-				"ERROR",
-				"OFF"
-			]
-		},
-		"camel.source.endpoint.errorHandlerLogStackTrace": {
-			"name": "camel.source.endpoint.errorHandlerLogStackTrace",
-			"description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
-			"defaultValue": "true",
+		"camel.source.endpoint.recoveryInterval": {
+			"name": "camel.source.endpoint.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.transacted": {
-			"name": "camel.source.endpoint.transacted",
-			"description": "Specifies whether to use transacted mode",
+		"camel.source.endpoint.synchronous": {
+			"name": "camel.source.endpoint.synchronous",
+			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
 			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.transactionBatchCount": {
-			"name": "camel.source.endpoint.transactionBatchCount",
-			"description": "If transacted sets the number of messages to process before committing a transaction.",
-			"defaultValue": "-1",
-			"priority": "LOW",
-			"required": "false"
-		},
-		"camel.source.endpoint.transactionBatchTimeout": {
-			"name": "camel.source.endpoint.transactionBatchTimeout",
-			"description": "Sets timeout (in millis) for batch transactions, the value should be 1000 or higher.",
-			"defaultValue": "5000L",
-			"priority": "LOW",
-			"required": "false"
-		},
-		"camel.source.endpoint.transactionCommitStrategy": {
-			"name": "camel.source.endpoint.transactionCommitStrategy",
-			"description": "Sets the commit strategy.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.sharedJMSSession": {
-			"name": "camel.source.endpoint.sharedJMSSession",
-			"description": "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.",
-			"defaultValue": "true",
+		"camel.source.endpoint.transferException": {
+			"name": "camel.source.endpoint.transferException",
+			"description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionCount": {
-			"name": "camel.component.sjms.connectionCount",
-			"description": "The maximum number of connections available to endpoints started under this component",
-			"defaultValue": "\"1\"",
+		"camel.source.endpoint.transacted": {
+			"name": "camel.source.endpoint.transacted",
+			"description": "Specifies whether to use transacted mode",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
 		"camel.component.sjms.connectionFactory": {
 			"name": "camel.component.sjms.connectionFactory",
-			"description": "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -255,20 +255,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.reconnectBackOff": {
-			"name": "camel.component.sjms.reconnectBackOff",
-			"description": "Backoff in millis on consumer pool reconnection attempts",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.reconnectOnError": {
-			"name": "camel.component.sjms.reconnectOnError",
-			"description": "Try to apply reconnection logic on consumer pool",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms.autowiredEnabled": {
 			"name": "camel.component.sjms.autowiredEnabled",
 			"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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
@@ -276,32 +262,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionClientId": {
-			"name": "camel.component.sjms.connectionClientId",
-			"description": "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionMaxWait": {
-			"name": "camel.component.sjms.connectionMaxWait",
-			"description": "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionResource": {
-			"name": "camel.component.sjms.connectionResource",
-			"description": "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.connectionTestOnBorrow": {
-			"name": "camel.component.sjms.connectionTestOnBorrow",
-			"description": "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms.destinationCreationStrategy": {
 			"name": "camel.component.sjms.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -320,33 +280,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.timedTaskManager": {
-			"name": "camel.component.sjms.timedTaskManager",
-			"description": "To use a custom TimedTaskManager",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms.headerFilterStrategy": {
-			"name": "camel.component.sjms.headerFilterStrategy",
-			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
+		"camel.component.sjms.recoveryInterval": {
+			"name": "camel.component.sjms.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionPassword": {
-			"name": "camel.component.sjms.connectionPassword",
-			"description": "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers": {
+			"name": "camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers",
+			"description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.connectionUsername": {
-			"name": "camel.component.sjms.connectionUsername",
-			"description": "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms.requestTimeoutCheckerInterval": {
+			"name": "camel.component.sjms.requestTimeoutCheckerInterval",
+			"description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.",
+			"defaultValue": "1000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms.transactionCommitStrategy": {
-			"name": "camel.component.sjms.transactionCommitStrategy",
-			"description": "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.",
+		"camel.component.sjms.headerFilterStrategy": {
+			"name": "camel.component.sjms.headerFilterStrategy",
+			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
 			"priority": "MEDIUM",
 			"required": "false"
 		}
diff --git a/connectors/camel-sjms-kafka-connector/src/main/docs/camel-sjms-kafka-sink-connector.adoc b/connectors/camel-sjms-kafka-connector/src/main/docs/camel-sjms-kafka-sink-connector.adoc
index c851f00..187d815 100644
--- a/connectors/camel-sjms-kafka-connector/src/main/docs/camel-sjms-kafka-sink-connector.adoc
+++ b/connectors/camel-sjms-kafka-connector/src/main/docs/camel-sjms-kafka-sink-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sjms.CamelSjmsSinkConnector
 ----
 
 
-The camel-sjms sink connector supports 41 options, which are listed below.
+The camel-sjms sink connector supports 43 options, which are listed below.
 
 
 
@@ -32,19 +32,25 @@ The camel-sjms sink connector supports 41 options, which are listed below.
 | *camel.sink.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
 | *camel.sink.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
 | *camel.sink.endpoint.acknowledgementMode* | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE] | "AUTO_ACKNOWLEDGE" | false | MEDIUM
+| *camel.sink.endpoint.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
+| *camel.sink.endpoint.disableReplyTo* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different mes [...]
+| *camel.sink.endpoint.replyTo* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). | null | false | MEDIUM
+| *camel.sink.endpoint.testConnectionOnStartup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | false | MEDIUM
+| *camel.sink.endpoint.deliveryMode* | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2] | null | false | MEDIUM
+| *camel.sink.endpoint.deliveryPersistent* | Specifies whether persistent delivery is used by default. | true | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
-| *camel.sink.endpoint.namedReplyTo* | Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name. | null | false | MEDIUM
-| *camel.sink.endpoint.persistent* | Flag used to enable/disable message persistence. | true | false | MEDIUM
-| *camel.sink.endpoint.producerCount* | Sets the number of producers used for this endpoint. | 1 | false | MEDIUM
-| *camel.sink.endpoint.ttl* | Flag used to adjust the Time To Live value of produced messages. | -1L | false | MEDIUM
+| *camel.sink.endpoint.priority* | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
+| *camel.sink.endpoint.replyToConcurrentConsumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | false | MEDIUM
+| *camel.sink.endpoint.replyToOverride* | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. | null | false | MEDIUM
+| *camel.sink.endpoint.replyToType* | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive] | null | false | MEDIUM
+| *camel.sink.endpoint.requestTimeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000L | false | MEDIUM
+| *camel.sink.endpoint.timeToLive* | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1L | false | MEDIUM
 | *camel.sink.endpoint.allowNullBody* | Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown. | true | false | MEDIUM
-| *camel.sink.endpoint.prefillPool* | Whether to prefill the producer connection pool on startup, or create connections lazy when needed. | true | false | MEDIUM
-| *camel.sink.endpoint.responseTimeOut* | Sets the amount of time we should wait before timing out a InOut response. | 5000L | false | MEDIUM
+| *camel.sink.endpoint.disableTimeToLive* | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the  [...]
+| *camel.sink.endpoint.explicitQosEnabled* | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | "false" | false | MEDIUM
+| *camel.sink.endpoint.preserveMessageQos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicit [...]
 | *camel.sink.endpoint.asyncStartListener* | Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is use [...]
 | *camel.sink.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
-| *camel.sink.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
-| *camel.sink.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
-| *camel.sink.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
 | *camel.sink.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.sink.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
 | *camel.sink.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
@@ -52,24 +58,20 @@ The camel-sjms sink connector supports 41 options, which are listed below.
 | *camel.sink.endpoint.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the o [...]
 | *camel.sink.endpoint.mapJmsMessage* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details. | true | false | MEDIUM
 | *camel.sink.endpoint.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.sink.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
-| *camel.sink.endpoint.sharedJMSSession* | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction. | true | false | MEDIUM
-| *camel.component.sjms.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
-| *camel.component.sjms.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
+| *camel.sink.endpoint.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.sink.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
+| *camel.sink.endpoint.transferException* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option tak [...]
+| *camel.sink.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
+| *camel.component.sjms.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
 | *camel.component.sjms.lazyStartProducer* | 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 cr [...]
 | *camel.component.sjms.autowiredEnabled* | 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 | false | MEDIUM
-| *camel.component.sjms.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.connectionMaxWait* | The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | 5000L | false | MEDIUM
-| *camel.component.sjms.connectionResource* | A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details. | null | false | MEDIUM
-| *camel.component.sjms.connectionTestOnBorrow* | When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool. | true | false | MEDIUM
 | *camel.component.sjms.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.component.sjms.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to [...]
 | *camel.component.sjms.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.component.sjms.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
+| *camel.component.sjms.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.component.sjms.replyToOnTimeoutMaxConcurrent Consumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
+| *camel.component.sjms.requestTimeoutCheckerInterval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000L | false | MEDIUM
 | *camel.component.sjms.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
-| *camel.component.sjms.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
 |===
 
 
diff --git a/connectors/camel-sjms-kafka-connector/src/main/docs/camel-sjms-kafka-source-connector.adoc b/connectors/camel-sjms-kafka-connector/src/main/docs/camel-sjms-kafka-source-connector.adoc
index faf012e..f542d46 100644
--- a/connectors/camel-sjms-kafka-connector/src/main/docs/camel-sjms-kafka-source-connector.adoc
+++ b/connectors/camel-sjms-kafka-connector/src/main/docs/camel-sjms-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sjms.CamelSjmsSourceConnector
 ----
 
 
-The camel-sjms source connector supports 49 options, which are listed below.
+The camel-sjms source connector supports 43 options, which are listed below.
 
 
 
@@ -32,20 +32,25 @@ The camel-sjms source connector supports 49 options, which are listed below.
 | *camel.source.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
 | *camel.source.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
 | *camel.source.endpoint.acknowledgementMode* | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE] | "AUTO_ACKNOWLEDGE" | false | MEDIUM
+| *camel.source.endpoint.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
+| *camel.source.endpoint.disableReplyTo* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different m [...]
+| *camel.source.endpoint.replyTo* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). | null | false | MEDIUM
+| *camel.source.endpoint.testConnectionOnStartup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | false | MEDIUM
+| *camel.source.endpoint.asyncConsumer* | Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note [...]
+| *camel.source.endpoint.autoStartup* | Specifies whether the consumer container should auto-startup. | true | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
-| *camel.source.endpoint.consumerCount* | Sets the number of consumer listeners used for this endpoint. | 1 | false | MEDIUM
-| *camel.source.endpoint.durableSubscriptionId* | Sets the durable subscription Id required for durable topics. | null | false | MEDIUM
-| *camel.source.endpoint.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
-| *camel.source.endpoint.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
-| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | true | false | MEDIUM
+| *camel.source.endpoint.clientId* | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. | null | false | MEDIUM
+| *camel.source.endpoint.concurrentConsumers* | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | false | MEDIUM
+| *camel.source.endpoint.durableSubscriptionName* | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. | null | false | MEDIUM
+| *camel.source.endpoint.replyToDeliveryPersistent* | Specifies whether to use persistent delivery by default for replies. | true | false | MEDIUM
+| *camel.source.endpoint.eagerLoadingOfProperties* | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | false | MEDIUM
+| *camel.source.endpoint.eagerPoisonBody* | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | "Poison JMS message due to ${exception.message}" | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
 | *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
 | *camel.source.endpoint.messageSelector* | Sets the JMS Message selector syntax. | null | false | MEDIUM
+| *camel.source.endpoint.replyToSameDestination Allowed* | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | false | MEDIUM
 | *camel.source.endpoint.asyncStartListener* | Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is u [...]
 | *camel.source.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
-| *camel.source.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
-| *camel.source.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
-| *camel.source.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
 | *camel.source.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.source.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
 | *camel.source.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
@@ -53,31 +58,20 @@ The camel-sjms source connector supports 49 options, which are listed below.
 | *camel.source.endpoint.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the [...]
 | *camel.source.endpoint.mapJmsMessage* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details. | true | false | MEDIUM
 | *camel.source.endpoint.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.source.endpoint.errorHandlerLoggingLevel* | Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF] | "WARN" | false | MEDIUM
-| *camel.source.endpoint.errorHandlerLogStackTrace* | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | false | MEDIUM
+| *camel.source.endpoint.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
+| *camel.source.endpoint.transferException* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option t [...]
 | *camel.source.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
-| *camel.source.endpoint.transactionBatchCount* | If transacted sets the number of messages to process before committing a transaction. | -1 | false | LOW
-| *camel.source.endpoint.transactionBatchTimeout* | Sets timeout (in millis) for batch transactions, the value should be 1000 or higher. | 5000L | false | LOW
-| *camel.source.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
-| *camel.source.endpoint.sharedJMSSession* | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction. | true | false | MEDIUM
-| *camel.component.sjms.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
-| *camel.component.sjms.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
+| *camel.component.sjms.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
 | *camel.component.sjms.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
-| *camel.component.sjms.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
-| *camel.component.sjms.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
 | *camel.component.sjms.autowiredEnabled* | 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 | false | MEDIUM
-| *camel.component.sjms.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.connectionMaxWait* | The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | 5000L | false | MEDIUM
-| *camel.component.sjms.connectionResource* | A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details. | null | false | MEDIUM
-| *camel.component.sjms.connectionTestOnBorrow* | When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool. | true | false | MEDIUM
 | *camel.component.sjms.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.component.sjms.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to [...]
 | *camel.component.sjms.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.component.sjms.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
+| *camel.component.sjms.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.component.sjms.replyToOnTimeoutMaxConcurrent Consumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
+| *camel.component.sjms.requestTimeoutCheckerInterval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000L | false | MEDIUM
 | *camel.component.sjms.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
-| *camel.component.sjms.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
 |===
 
 
diff --git a/connectors/camel-sjms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms/CamelSjmsSinkConnectorConfig.java b/connectors/camel-sjms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms/CamelSjmsSinkConnectorConfig.java
index a826147..cb4c60b 100644
--- a/connectors/camel-sjms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms/CamelSjmsSinkConnectorConfig.java
+++ b/connectors/camel-sjms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms/CamelSjmsSinkConnectorConfig.java
@@ -33,45 +33,63 @@ public class CamelSjmsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_CONF = "camel.sink.endpoint.acknowledgementMode";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_DOC = "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE]";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_DEFAULT = "AUTO_ACKNOWLEDGE";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_CONF = "camel.sink.endpoint.connectionFactory";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_DOC = "The connection factory to be use. A connection factory must be configured either on the component or endpoint.";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DISABLE_REPLY_TO_CONF = "camel.sink.endpoint.disableReplyTo";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DISABLE_REPLY_TO_DOC = "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use [...]
+    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_DISABLE_REPLY_TO_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_CONF = "camel.sink.endpoint.replyTo";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_DOC = "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_CONF = "camel.sink.endpoint.testConnectionOnStartup";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DOC = "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.";
+    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_MODE_CONF = "camel.sink.endpoint.deliveryMode";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_MODE_DOC = "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2]";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_MODE_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_PERSISTENT_CONF = "camel.sink.endpoint.deliveryPersistent";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_PERSISTENT_DOC = "Specifies whether persistent delivery is used by default.";
+    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_PERSISTENT_DEFAULT = true;
     public static final String CAMEL_SINK_SJMS_ENDPOINT_LAZY_START_PRODUCER_CONF = "camel.sink.endpoint.lazyStartProducer";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_LAZY_START_PRODUCER_DOC = "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  [...]
     public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_LAZY_START_PRODUCER_DEFAULT = false;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_NAMED_REPLY_TO_CONF = "camel.sink.endpoint.namedReplyTo";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_NAMED_REPLY_TO_DOC = "Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name.";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_NAMED_REPLY_TO_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_PERSISTENT_CONF = "camel.sink.endpoint.persistent";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_PERSISTENT_DOC = "Flag used to enable/disable message persistence.";
-    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_PERSISTENT_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_PRODUCER_COUNT_CONF = "camel.sink.endpoint.producerCount";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_PRODUCER_COUNT_DOC = "Sets the number of producers used for this endpoint.";
-    public static final Integer CAMEL_SINK_SJMS_ENDPOINT_PRODUCER_COUNT_DEFAULT = 1;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_TTL_CONF = "camel.sink.endpoint.ttl";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_TTL_DOC = "Flag used to adjust the Time To Live value of produced messages.";
-    public static final Long CAMEL_SINK_SJMS_ENDPOINT_TTL_DEFAULT = -1L;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_PRIORITY_CONF = "camel.sink.endpoint.priority";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_PRIORITY_DOC = "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]";
+    public static final Integer CAMEL_SINK_SJMS_ENDPOINT_PRIORITY_DEFAULT = 4;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_CONF = "camel.sink.endpoint.replyToConcurrentConsumers";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DOC = "Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads.";
+    public static final Integer CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DEFAULT = 1;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_OVERRIDE_CONF = "camel.sink.endpoint.replyToOverride";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_OVERRIDE_DOC = "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_OVERRIDE_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_TYPE_CONF = "camel.sink.endpoint.replyToType";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_TYPE_DOC = "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive]";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_TYPE_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REQUEST_TIMEOUT_CONF = "camel.sink.endpoint.requestTimeout";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_REQUEST_TIMEOUT_DOC = "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option.";
+    public static final Long CAMEL_SINK_SJMS_ENDPOINT_REQUEST_TIMEOUT_DEFAULT = 20000L;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_TIME_TO_LIVE_CONF = "camel.sink.endpoint.timeToLive";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_TIME_TO_LIVE_DOC = "When sending messages, specifies the time-to-live of the message (in milliseconds).";
+    public static final Long CAMEL_SINK_SJMS_ENDPOINT_TIME_TO_LIVE_DEFAULT = -1L;
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ALLOW_NULL_BODY_CONF = "camel.sink.endpoint.allowNullBody";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ALLOW_NULL_BODY_DOC = "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.";
     public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_ALLOW_NULL_BODY_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_PREFILL_POOL_CONF = "camel.sink.endpoint.prefillPool";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_PREFILL_POOL_DOC = "Whether to prefill the producer connection pool on startup, or create connections lazy when needed.";
-    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_PREFILL_POOL_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_RESPONSE_TIME_OUT_CONF = "camel.sink.endpoint.responseTimeOut";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_RESPONSE_TIME_OUT_DOC = "Sets the amount of time we should wait before timing out a InOut response.";
-    public static final Long CAMEL_SINK_SJMS_ENDPOINT_RESPONSE_TIME_OUT_DEFAULT = 5000L;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DISABLE_TIME_TO_LIVE_CONF = "camel.sink.endpoint.disableTimeToLive";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_DISABLE_TIME_TO_LIVE_DOC = "Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to l [...]
+    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_DISABLE_TIME_TO_LIVE_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_EXPLICIT_QOS_ENABLED_CONF = "camel.sink.endpoint.explicitQosEnabled";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_EXPLICIT_QOS_ENABLED_DOC = "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_EXPLICIT_QOS_ENABLED_DEFAULT = "false";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_PRESERVE_MESSAGE_QOS_CONF = "camel.sink.endpoint.preserveMessageQos";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_PRESERVE_MESSAGE_QOS_DOC = "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the [...]
+    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_PRESERVE_MESSAGE_QOS_DEFAULT = false;
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ASYNC_START_LISTENER_CONF = "camel.sink.endpoint.asyncStartListener";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ASYNC_START_LISTENER_DOC = "Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in a [...]
     public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_ASYNC_START_LISTENER_DEFAULT = false;
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_CONF = "camel.sink.endpoint.asyncStopListener";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_DOC = "Whether to stop the consumer message listener asynchronously, when stopping a route.";
     public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_DEFAULT = false;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_COUNT_CONF = "camel.sink.endpoint.connectionCount";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_COUNT_DOC = "The maximum number of connections available to this endpoint";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_COUNT_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_CONF = "camel.sink.endpoint.connectionFactory";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_DOC = "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_RESOURCE_CONF = "camel.sink.endpoint.connectionResource";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_RESOURCE_DOC = "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_RESOURCE_DEFAULT = null;
     public static final String CAMEL_SINK_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_CONF = "camel.sink.endpoint.destinationCreationStrategy";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_DOC = "To use a custom DestinationCreationStrategy.";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_DEFAULT = null;
@@ -93,17 +111,20 @@ public class CamelSjmsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_CONF = "camel.sink.endpoint.messageCreatedStrategy";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_DOC = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.";
     public static final String CAMEL_SINK_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_CONF = "camel.sink.endpoint.transactionCommitStrategy";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DOC = "Sets the commit strategy.";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_SHARED_JMSSESSION_CONF = "camel.sink.endpoint.sharedJMSSession";
-    public static final String CAMEL_SINK_SJMS_ENDPOINT_SHARED_JMSSESSION_DOC = "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.";
-    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_SHARED_JMSSESSION_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_COUNT_CONF = "camel.component.sjms.connectionCount";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_COUNT_DOC = "The maximum number of connections available to endpoints started under this component";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_COUNT_DEFAULT = "1";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_RECOVERY_INTERVAL_CONF = "camel.sink.endpoint.recoveryInterval";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_RECOVERY_INTERVAL_DOC = "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.";
+    public static final Long CAMEL_SINK_SJMS_ENDPOINT_RECOVERY_INTERVAL_DEFAULT = 5000L;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_SYNCHRONOUS_CONF = "camel.sink.endpoint.synchronous";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_SYNCHRONOUS_DOC = "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).";
+    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_SYNCHRONOUS_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_TRANSFER_EXCEPTION_CONF = "camel.sink.endpoint.transferException";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_TRANSFER_EXCEPTION_DOC = "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have tra [...]
+    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_TRANSFER_EXCEPTION_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_TRANSACTED_CONF = "camel.sink.endpoint.transacted";
+    public static final String CAMEL_SINK_SJMS_ENDPOINT_TRANSACTED_DOC = "Specifies whether to use transacted mode";
+    public static final Boolean CAMEL_SINK_SJMS_ENDPOINT_TRANSACTED_DEFAULT = false;
     public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_FACTORY_CONF = "camel.component.sjms.connectionFactory";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_FACTORY_DOC = "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.";
+    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_FACTORY_DOC = "The connection factory to be use. A connection factory must be configured either on the component or endpoint.";
     public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_FACTORY_DEFAULT = null;
     public static final String CAMEL_SINK_SJMS_COMPONENT_LAZY_START_PRODUCER_CONF = "camel.component.sjms.lazyStartProducer";
     public static final String CAMEL_SINK_SJMS_COMPONENT_LAZY_START_PRODUCER_DOC = "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 [...]
@@ -111,18 +132,6 @@ public class CamelSjmsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_SJMS_COMPONENT_AUTOWIRED_ENABLED_CONF = "camel.component.sjms.autowiredEnabled";
     public static final String CAMEL_SINK_SJMS_COMPONENT_AUTOWIRED_ENABLED_DOC = "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.";
     public static final Boolean CAMEL_SINK_SJMS_COMPONENT_AUTOWIRED_ENABLED_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_CLIENT_ID_CONF = "camel.component.sjms.connectionClientId";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_CLIENT_ID_DOC = "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_CLIENT_ID_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_MAX_WAIT_CONF = "camel.component.sjms.connectionMaxWait";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_MAX_WAIT_DOC = "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final Long CAMEL_SINK_SJMS_COMPONENT_CONNECTION_MAX_WAIT_DEFAULT = 5000L;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_RESOURCE_CONF = "camel.component.sjms.connectionResource";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_RESOURCE_DOC = "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_RESOURCE_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_CONF = "camel.component.sjms.connectionTestOnBorrow";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_DOC = "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.";
-    public static final Boolean CAMEL_SINK_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_DEFAULT = true;
     public static final String CAMEL_SINK_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_CONF = "camel.component.sjms.destinationCreationStrategy";
     public static final String CAMEL_SINK_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_DOC = "To use a custom DestinationCreationStrategy.";
     public static final String CAMEL_SINK_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_DEFAULT = null;
@@ -132,21 +141,18 @@ public class CamelSjmsSinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_CONF = "camel.component.sjms.messageCreatedStrategy";
     public static final String CAMEL_SINK_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_DOC = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.";
     public static final String CAMEL_SINK_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_TIMED_TASK_MANAGER_CONF = "camel.component.sjms.timedTaskManager";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_TIMED_TASK_MANAGER_DOC = "To use a custom TimedTaskManager";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_TIMED_TASK_MANAGER_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS_COMPONENT_RECOVERY_INTERVAL_CONF = "camel.component.sjms.recoveryInterval";
+    public static final String CAMEL_SINK_SJMS_COMPONENT_RECOVERY_INTERVAL_DOC = "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.";
+    public static final Long CAMEL_SINK_SJMS_COMPONENT_RECOVERY_INTERVAL_DEFAULT = 5000L;
+    public static final String CAMEL_SINK_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_CONF = "camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers";
+    public static final String CAMEL_SINK_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DOC = "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS.";
+    public static final Integer CAMEL_SINK_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DEFAULT = 1;
+    public static final String CAMEL_SINK_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_CONF = "camel.component.sjms.requestTimeoutCheckerInterval";
+    public static final String CAMEL_SINK_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DOC = "Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.";
+    public static final Long CAMEL_SINK_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DEFAULT = 1000L;
     public static final String CAMEL_SINK_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_CONF = "camel.component.sjms.headerFilterStrategy";
     public static final String CAMEL_SINK_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_DOC = "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.";
     public static final String CAMEL_SINK_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_PASSWORD_CONF = "camel.component.sjms.connectionPassword";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_PASSWORD_DOC = "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_PASSWORD_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_USERNAME_CONF = "camel.component.sjms.connectionUsername";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_USERNAME_DOC = "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_CONNECTION_USERNAME_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_CONF = "camel.component.sjms.transactionCommitStrategy";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DOC = "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.";
-    public static final String CAMEL_SINK_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DEFAULT = null;
 
     public CamelSjmsSinkConnectorConfig(
             ConfigDef config,
@@ -163,19 +169,25 @@ public class CamelSjmsSinkConnectorConfig extends CamelSinkConnectorConfig {
         conf.define(CAMEL_SINK_SJMS_PATH_DESTINATION_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_PATH_DESTINATION_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_PATH_DESTINATION_TYPE_DOC);
         conf.define(CAMEL_SINK_SJMS_PATH_DESTINATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_PATH_DESTINATION_NAME_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SINK_SJMS_PATH_DESTINATION_NAME_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_DISABLE_REPLY_TO_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_DISABLE_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_DISABLE_REPLY_TO_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_MODE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_MODE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_MODE_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_PERSISTENT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_PERSISTENT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_DELIVERY_PERSISTENT_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_LAZY_START_PRODUCER_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_NAMED_REPLY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_NAMED_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_NAMED_REPLY_TO_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_PERSISTENT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_PERSISTENT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_PERSISTENT_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_PRODUCER_COUNT_CONF, ConfigDef.Type.INT, CAMEL_SINK_SJMS_ENDPOINT_PRODUCER_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_PRODUCER_COUNT_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_TTL_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS_ENDPOINT_TTL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_TTL_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_PRIORITY_CONF, ConfigDef.Type.INT, CAMEL_SINK_SJMS_ENDPOINT_PRIORITY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_PRIORITY_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_CONF, ConfigDef.Type.INT, CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_OVERRIDE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_OVERRIDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_OVERRIDE_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_REPLY_TO_TYPE_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_REQUEST_TIMEOUT_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS_ENDPOINT_REQUEST_TIMEOUT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_REQUEST_TIMEOUT_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_TIME_TO_LIVE_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS_ENDPOINT_TIME_TO_LIVE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_TIME_TO_LIVE_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_ALLOW_NULL_BODY_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_ALLOW_NULL_BODY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_ALLOW_NULL_BODY_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_PREFILL_POOL_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_PREFILL_POOL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_PREFILL_POOL_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_RESPONSE_TIME_OUT_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS_ENDPOINT_RESPONSE_TIME_OUT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_RESPONSE_TIME_OUT_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_DISABLE_TIME_TO_LIVE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_DISABLE_TIME_TO_LIVE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_DISABLE_TIME_TO_LIVE_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_EXPLICIT_QOS_ENABLED_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_EXPLICIT_QOS_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_EXPLICIT_QOS_ENABLED_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_PRESERVE_MESSAGE_QOS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_PRESERVE_MESSAGE_QOS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_PRESERVE_MESSAGE_QOS_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_ASYNC_START_LISTENER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_ASYNC_START_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_ASYNC_START_LISTENER_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_COUNT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_COUNT_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_FACTORY_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_RESOURCE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_RESOURCE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_CONNECTION_RESOURCE_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_EXCEPTION_LISTENER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_EXCEPTION_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_EXCEPTION_LISTENER_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_HEADER_FILTER_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_HEADER_FILTER_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_HEADER_FILTER_STRATEGY_DOC);
@@ -183,24 +195,20 @@ public class CamelSjmsSinkConnectorConfig extends CamelSinkConnectorConfig {
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_MAP_JMS_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_MAP_JMS_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_MAP_JMS_MESSAGE_DOC);
         conf.define(CAMEL_SINK_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DOC);
-        conf.define(CAMEL_SINK_SJMS_ENDPOINT_SHARED_JMSSESSION_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_SHARED_JMSSESSION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_SHARED_JMSSESSION_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_CONNECTION_COUNT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_COUNT_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_RECOVERY_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS_ENDPOINT_RECOVERY_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_RECOVERY_INTERVAL_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_SYNCHRONOUS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_SYNCHRONOUS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_SYNCHRONOUS_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_TRANSFER_EXCEPTION_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_TRANSFER_EXCEPTION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_TRANSFER_EXCEPTION_DOC);
+        conf.define(CAMEL_SINK_SJMS_ENDPOINT_TRANSACTED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_ENDPOINT_TRANSACTED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_ENDPOINT_TRANSACTED_DOC);
         conf.define(CAMEL_SINK_SJMS_COMPONENT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_FACTORY_DOC);
         conf.define(CAMEL_SINK_SJMS_COMPONENT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_COMPONENT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_LAZY_START_PRODUCER_DOC);
         conf.define(CAMEL_SINK_SJMS_COMPONENT_AUTOWIRED_ENABLED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_COMPONENT_AUTOWIRED_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_AUTOWIRED_ENABLED_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_CONNECTION_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_CLIENT_ID_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_CONNECTION_MAX_WAIT_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_MAX_WAIT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_MAX_WAIT_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_CONNECTION_RESOURCE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_RESOURCE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_RESOURCE_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_DOC);
         conf.define(CAMEL_SINK_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_DOC);
         conf.define(CAMEL_SINK_SJMS_COMPONENT_JMS_KEY_FORMAT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_JMS_KEY_FORMAT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_JMS_KEY_FORMAT_STRATEGY_DOC);
         conf.define(CAMEL_SINK_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_TIMED_TASK_MANAGER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_TIMED_TASK_MANAGER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_TIMED_TASK_MANAGER_DOC);
+        conf.define(CAMEL_SINK_SJMS_COMPONENT_RECOVERY_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS_COMPONENT_RECOVERY_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_RECOVERY_INTERVAL_DOC);
+        conf.define(CAMEL_SINK_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_CONF, ConfigDef.Type.INT, CAMEL_SINK_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DOC);
+        conf.define(CAMEL_SINK_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DOC);
         conf.define(CAMEL_SINK_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_CONNECTION_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_PASSWORD_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_CONNECTION_USERNAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_USERNAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_CONNECTION_USERNAME_DOC);
-        conf.define(CAMEL_SINK_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DOC);
         return conf;
     }
 }
\ No newline at end of file
diff --git a/connectors/camel-sjms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms/CamelSjmsSourceConnectorConfig.java b/connectors/camel-sjms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms/CamelSjmsSourceConnectorConfig.java
index 8a7570c..1fe88de 100644
--- a/connectors/camel-sjms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms/CamelSjmsSourceConnectorConfig.java
+++ b/connectors/camel-sjms-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms/CamelSjmsSourceConnectorConfig.java
@@ -35,24 +35,45 @@ public class CamelSjmsSourceConnectorConfig
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_CONF = "camel.source.endpoint.acknowledgementMode";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_DOC = "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE]";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_DEFAULT = "AUTO_ACKNOWLEDGE";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_CONF = "camel.source.endpoint.connectionFactory";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_DOC = "The connection factory to be use. A connection factory must be configured either on the component or endpoint.";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DISABLE_REPLY_TO_CONF = "camel.source.endpoint.disableReplyTo";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DISABLE_REPLY_TO_DOC = "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to u [...]
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_DISABLE_REPLY_TO_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_CONF = "camel.source.endpoint.replyTo";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DOC = "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_CONF = "camel.source.endpoint.testConnectionOnStartup";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DOC = "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.";
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_CONSUMER_CONF = "camel.source.endpoint.asyncConsumer";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_CONSUMER_DOC = "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the [...]
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_CONSUMER_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_AUTO_STARTUP_CONF = "camel.source.endpoint.autoStartup";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_AUTO_STARTUP_DOC = "Specifies whether the consumer container should auto-startup.";
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_AUTO_STARTUP_DEFAULT = true;
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF = "camel.source.endpoint.bridgeErrorHandler";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.";
     public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONSUMER_COUNT_CONF = "camel.source.endpoint.consumerCount";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONSUMER_COUNT_DOC = "Sets the number of consumer listeners used for this endpoint.";
-    public static final Integer CAMEL_SOURCE_SJMS_ENDPOINT_CONSUMER_COUNT_DEFAULT = 1;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_ID_CONF = "camel.source.endpoint.durableSubscriptionId";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_ID_DOC = "Sets the durable subscription Id required for durable topics.";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_ID_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_BACK_OFF_CONF = "camel.source.endpoint.reconnectBackOff";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_BACK_OFF_DOC = "Backoff in millis on consumer pool reconnection attempts";
-    public static final Long CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_BACK_OFF_DEFAULT = 5000L;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_ON_ERROR_CONF = "camel.source.endpoint.reconnectOnError";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_ON_ERROR_DOC = "Try to apply reconnection logic on consumer pool";
-    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_ON_ERROR_DEFAULT = true;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_CONF = "camel.source.endpoint.synchronous";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_DOC = "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).";
-    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_DEFAULT = true;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CLIENT_ID_CONF = "camel.source.endpoint.clientId";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CLIENT_ID_DOC = "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CLIENT_ID_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONCURRENT_CONSUMERS_CONF = "camel.source.endpoint.concurrentConsumers";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONCURRENT_CONSUMERS_DOC = "Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.";
+    public static final Integer CAMEL_SOURCE_SJMS_ENDPOINT_CONCURRENT_CONSUMERS_DEFAULT = 1;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_CONF = "camel.source.endpoint.durableSubscriptionName";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_DOC = "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_CONF = "camel.source.endpoint.replyToDeliveryPersistent";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_DOC = "Specifies whether to use persistent delivery by default for replies.";
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_DEFAULT = true;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_CONF = "camel.source.endpoint.eagerLoadingOfProperties";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_DOC = "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.";
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_POISON_BODY_CONF = "camel.source.endpoint.eagerPoisonBody";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_POISON_BODY_DOC = "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_POISON_BODY_DEFAULT = "Poison JMS message due to ${exception.message}";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_HANDLER_CONF = "camel.source.endpoint.exceptionHandler";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_HANDLER_DOC = "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_HANDLER_DEFAULT = null;
@@ -62,21 +83,15 @@ public class CamelSjmsSourceConnectorConfig
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_SELECTOR_CONF = "camel.source.endpoint.messageSelector";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_SELECTOR_DOC = "Sets the JMS Message selector syntax.";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_SELECTOR_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_CONF = "camel.source.endpoint.replyToSameDestinationAllowed";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_DOC = "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.";
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_DEFAULT = false;
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_START_LISTENER_CONF = "camel.source.endpoint.asyncStartListener";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_START_LISTENER_DOC = "Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in [...]
     public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_START_LISTENER_DEFAULT = false;
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_CONF = "camel.source.endpoint.asyncStopListener";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_DOC = "Whether to stop the consumer message listener asynchronously, when stopping a route.";
     public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_COUNT_CONF = "camel.source.endpoint.connectionCount";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_COUNT_DOC = "The maximum number of connections available to this endpoint";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_COUNT_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_CONF = "camel.source.endpoint.connectionFactory";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_DOC = "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_RESOURCE_CONF = "camel.source.endpoint.connectionResource";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_RESOURCE_DOC = "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_RESOURCE_DEFAULT = null;
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_CONF = "camel.source.endpoint.destinationCreationStrategy";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_DOC = "To use a custom DestinationCreationStrategy.";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_DEFAULT = null;
@@ -98,57 +113,27 @@ public class CamelSjmsSourceConnectorConfig
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_CONF = "camel.source.endpoint.messageCreatedStrategy";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_DOC = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_CONF = "camel.source.endpoint.errorHandlerLoggingLevel";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_DOC = "Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF]";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_DEFAULT = "WARN";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_CONF = "camel.source.endpoint.errorHandlerLogStackTrace";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_DOC = "Allows to control whether stacktraces should be logged or not, by the default errorHandler.";
-    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_DEFAULT = true;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_RECOVERY_INTERVAL_CONF = "camel.source.endpoint.recoveryInterval";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_RECOVERY_INTERVAL_DOC = "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.";
+    public static final Long CAMEL_SOURCE_SJMS_ENDPOINT_RECOVERY_INTERVAL_DEFAULT = 5000L;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_CONF = "camel.source.endpoint.synchronous";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_DOC = "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).";
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSFER_EXCEPTION_CONF = "camel.source.endpoint.transferException";
+    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSFER_EXCEPTION_DOC = "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have t [...]
+    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_TRANSFER_EXCEPTION_DEFAULT = false;
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTED_CONF = "camel.source.endpoint.transacted";
     public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTED_DOC = "Specifies whether to use transacted mode";
     public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTED_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_COUNT_CONF = "camel.source.endpoint.transactionBatchCount";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_COUNT_DOC = "If transacted sets the number of messages to process before committing a transaction.";
-    public static final Integer CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_COUNT_DEFAULT = -1;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_CONF = "camel.source.endpoint.transactionBatchTimeout";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_DOC = "Sets timeout (in millis) for batch transactions, the value should be 1000 or higher.";
-    public static final Long CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_DEFAULT = 5000L;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_CONF = "camel.source.endpoint.transactionCommitStrategy";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DOC = "Sets the commit strategy.";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_SHARED_JMSSESSION_CONF = "camel.source.endpoint.sharedJMSSession";
-    public static final String CAMEL_SOURCE_SJMS_ENDPOINT_SHARED_JMSSESSION_DOC = "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.";
-    public static final Boolean CAMEL_SOURCE_SJMS_ENDPOINT_SHARED_JMSSESSION_DEFAULT = true;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_COUNT_CONF = "camel.component.sjms.connectionCount";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_COUNT_DOC = "The maximum number of connections available to endpoints started under this component";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_COUNT_DEFAULT = "1";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_FACTORY_CONF = "camel.component.sjms.connectionFactory";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_FACTORY_DOC = "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.";
+    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_FACTORY_DOC = "The connection factory to be use. A connection factory must be configured either on the component or endpoint.";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_FACTORY_DEFAULT = null;
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_BRIDGE_ERROR_HANDLER_CONF = "camel.component.sjms.bridgeErrorHandler";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_BRIDGE_ERROR_HANDLER_DOC = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.";
     public static final Boolean CAMEL_SOURCE_SJMS_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_BACK_OFF_CONF = "camel.component.sjms.reconnectBackOff";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_BACK_OFF_DOC = "Backoff in millis on consumer pool reconnection attempts";
-    public static final Long CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_BACK_OFF_DEFAULT = 5000L;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_ON_ERROR_CONF = "camel.component.sjms.reconnectOnError";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_ON_ERROR_DOC = "Try to apply reconnection logic on consumer pool";
-    public static final Boolean CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_ON_ERROR_DEFAULT = true;
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_AUTOWIRED_ENABLED_CONF = "camel.component.sjms.autowiredEnabled";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_AUTOWIRED_ENABLED_DOC = "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.";
     public static final Boolean CAMEL_SOURCE_SJMS_COMPONENT_AUTOWIRED_ENABLED_DEFAULT = true;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_CLIENT_ID_CONF = "camel.component.sjms.connectionClientId";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_CLIENT_ID_DOC = "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_CLIENT_ID_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_MAX_WAIT_CONF = "camel.component.sjms.connectionMaxWait";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_MAX_WAIT_DOC = "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final Long CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_MAX_WAIT_DEFAULT = 5000L;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_RESOURCE_CONF = "camel.component.sjms.connectionResource";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_RESOURCE_DOC = "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_RESOURCE_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_CONF = "camel.component.sjms.connectionTestOnBorrow";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_DOC = "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.";
-    public static final Boolean CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_DEFAULT = true;
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_CONF = "camel.component.sjms.destinationCreationStrategy";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_DOC = "To use a custom DestinationCreationStrategy.";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_DEFAULT = null;
@@ -158,21 +143,18 @@ public class CamelSjmsSourceConnectorConfig
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_CONF = "camel.component.sjms.messageCreatedStrategy";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_DOC = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_TIMED_TASK_MANAGER_CONF = "camel.component.sjms.timedTaskManager";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_TIMED_TASK_MANAGER_DOC = "To use a custom TimedTaskManager";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_TIMED_TASK_MANAGER_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS_COMPONENT_RECOVERY_INTERVAL_CONF = "camel.component.sjms.recoveryInterval";
+    public static final String CAMEL_SOURCE_SJMS_COMPONENT_RECOVERY_INTERVAL_DOC = "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.";
+    public static final Long CAMEL_SOURCE_SJMS_COMPONENT_RECOVERY_INTERVAL_DEFAULT = 5000L;
+    public static final String CAMEL_SOURCE_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_CONF = "camel.component.sjms.replyToOnTimeoutMaxConcurrentConsumers";
+    public static final String CAMEL_SOURCE_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DOC = "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS.";
+    public static final Integer CAMEL_SOURCE_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DEFAULT = 1;
+    public static final String CAMEL_SOURCE_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_CONF = "camel.component.sjms.requestTimeoutCheckerInterval";
+    public static final String CAMEL_SOURCE_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DOC = "Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.";
+    public static final Long CAMEL_SOURCE_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DEFAULT = 1000L;
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_CONF = "camel.component.sjms.headerFilterStrategy";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_DOC = "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.";
     public static final String CAMEL_SOURCE_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_PASSWORD_CONF = "camel.component.sjms.connectionPassword";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_PASSWORD_DOC = "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_PASSWORD_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_USERNAME_CONF = "camel.component.sjms.connectionUsername";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_USERNAME_DOC = "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_USERNAME_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_CONF = "camel.component.sjms.transactionCommitStrategy";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DOC = "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.";
-    public static final String CAMEL_SOURCE_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DEFAULT = null;
 
     public CamelSjmsSourceConnectorConfig(
             ConfigDef config,
@@ -189,20 +171,25 @@ public class CamelSjmsSourceConnectorConfig
         conf.define(CAMEL_SOURCE_SJMS_PATH_DESTINATION_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_PATH_DESTINATION_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_PATH_DESTINATION_TYPE_DOC);
         conf.define(CAMEL_SOURCE_SJMS_PATH_DESTINATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_PATH_DESTINATION_NAME_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SOURCE_SJMS_PATH_DESTINATION_NAME_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_ACKNOWLEDGEMENT_MODE_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_DISABLE_REPLY_TO_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_DISABLE_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_DISABLE_REPLY_TO_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_CONSUMER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_CONSUMER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_CONSUMER_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_AUTO_STARTUP_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_AUTO_STARTUP_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_AUTO_STARTUP_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_CONSUMER_COUNT_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SJMS_ENDPOINT_CONSUMER_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_CONSUMER_COUNT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_ID_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_BACK_OFF_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_BACK_OFF_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_BACK_OFF_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_ON_ERROR_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_ON_ERROR_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_RECONNECT_ON_ERROR_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_CLIENT_ID_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_CONCURRENT_CONSUMERS_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SJMS_ENDPOINT_CONCURRENT_CONSUMERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_CONCURRENT_CONSUMERS_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_POISON_BODY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_POISON_BODY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_EAGER_POISON_BODY_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_HANDLER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_EXCHANGE_PATTERN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_EXCHANGE_PATTERN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_EXCHANGE_PATTERN_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_SELECTOR_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_SELECTOR_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_SELECTOR_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_START_LISTENER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_START_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_START_LISTENER_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_ASYNC_STOP_LISTENER_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_COUNT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_COUNT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_FACTORY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_RESOURCE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_RESOURCE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_CONNECTION_RESOURCE_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_DESTINATION_CREATION_STRATEGY_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_LISTENER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_EXCEPTION_LISTENER_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_HEADER_FILTER_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_HEADER_FILTER_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_HEADER_FILTER_STRATEGY_DOC);
@@ -210,31 +197,20 @@ public class CamelSjmsSourceConnectorConfig
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_MAP_JMS_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_MAP_JMS_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_MAP_JMS_MESSAGE_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_MESSAGE_CREATED_STRATEGY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_RECOVERY_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS_ENDPOINT_RECOVERY_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_RECOVERY_INTERVAL_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_SYNCHRONOUS_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_TRANSFER_EXCEPTION_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSFER_EXCEPTION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSFER_EXCEPTION_DOC);
         conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTED_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_COUNT_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_COUNT_DEFAULT, ConfigDef.Importance.LOW, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_COUNT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_DEFAULT, ConfigDef.Importance.LOW, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_ENDPOINT_SHARED_JMSSESSION_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_ENDPOINT_SHARED_JMSSESSION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_ENDPOINT_SHARED_JMSSESSION_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_COUNT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_COUNT_DOC);
         conf.define(CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_FACTORY_DOC);
         conf.define(CAMEL_SOURCE_SJMS_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_BACK_OFF_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_BACK_OFF_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_BACK_OFF_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_ON_ERROR_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_ON_ERROR_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_RECONNECT_ON_ERROR_DOC);
         conf.define(CAMEL_SOURCE_SJMS_COMPONENT_AUTOWIRED_ENABLED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_COMPONENT_AUTOWIRED_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_AUTOWIRED_ENABLED_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_CLIENT_ID_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_MAX_WAIT_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_MAX_WAIT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_MAX_WAIT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_RESOURCE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_RESOURCE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_RESOURCE_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_TEST_ON_BORROW_DOC);
         conf.define(CAMEL_SOURCE_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_DESTINATION_CREATION_STRATEGY_DOC);
         conf.define(CAMEL_SOURCE_SJMS_COMPONENT_JMS_KEY_FORMAT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_JMS_KEY_FORMAT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_JMS_KEY_FORMAT_STRATEGY_DOC);
         conf.define(CAMEL_SOURCE_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_MESSAGE_CREATED_STRATEGY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_TIMED_TASK_MANAGER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_TIMED_TASK_MANAGER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_TIMED_TASK_MANAGER_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_RECOVERY_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS_COMPONENT_RECOVERY_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_RECOVERY_INTERVAL_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DOC);
+        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DOC);
         conf.define(CAMEL_SOURCE_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_HEADER_FILTER_STRATEGY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_PASSWORD_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_USERNAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_USERNAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_CONNECTION_USERNAME_DOC);
-        conf.define(CAMEL_SOURCE_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DOC);
         return conf;
     }
 }
\ No newline at end of file
diff --git a/connectors/camel-sjms2-kafka-connector/src/generated/resources/camel-sjms2-sink.json b/connectors/camel-sjms2-kafka-connector/src/generated/resources/camel-sjms2-sink.json
index 6bca2c5..11774d6 100644
--- a/connectors/camel-sjms2-kafka-connector/src/generated/resources/camel-sjms2-sink.json
+++ b/connectors/camel-sjms2-kafka-connector/src/generated/resources/camel-sjms2-sink.json
@@ -39,6 +39,49 @@
 				"DUPS_OK_ACKNOWLEDGE"
 			]
 		},
+		"camel.sink.endpoint.connectionFactory": {
+			"name": "camel.sink.endpoint.connectionFactory",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.disableReplyTo": {
+			"name": "camel.sink.endpoint.disableReplyTo",
+			"description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you w [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.replyTo": {
+			"name": "camel.sink.endpoint.replyTo",
+			"description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.testConnectionOnStartup": {
+			"name": "camel.sink.endpoint.testConnectionOnStartup",
+			"description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.deliveryMode": {
+			"name": "camel.sink.endpoint.deliveryMode",
+			"description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2]",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"1",
+				"2"
+			]
+		},
+		"camel.sink.endpoint.deliveryPersistent": {
+			"name": "camel.sink.endpoint.deliveryPersistent",
+			"description": "Specifies whether persistent delivery is used by default.",
+			"defaultValue": "true",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.lazyStartProducer": {
 			"name": "camel.sink.endpoint.lazyStartProducer",
 			"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 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 starting the pr [...]
@@ -46,29 +89,57 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.namedReplyTo": {
-			"name": "camel.sink.endpoint.namedReplyTo",
-			"description": "Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name.",
+		"camel.sink.endpoint.priority": {
+			"name": "camel.sink.endpoint.priority",
+			"description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]",
+			"defaultValue": "4",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"1",
+				"2",
+				"3",
+				"4",
+				"5",
+				"6",
+				"7",
+				"8",
+				"9"
+			]
+		},
+		"camel.sink.endpoint.replyToConcurrentConsumers": {
+			"name": "camel.sink.endpoint.replyToConcurrentConsumers",
+			"description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.persistent": {
-			"name": "camel.sink.endpoint.persistent",
-			"description": "Flag used to enable\/disable message persistence.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.replyToOverride": {
+			"name": "camel.sink.endpoint.replyToOverride",
+			"description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.producerCount": {
-			"name": "camel.sink.endpoint.producerCount",
-			"description": "Sets the number of producers used for this endpoint.",
-			"defaultValue": "1",
+		"camel.sink.endpoint.replyToType": {
+			"name": "camel.sink.endpoint.replyToType",
+			"description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive]",
+			"priority": "MEDIUM",
+			"required": "false",
+			"enum": [
+				"Temporary",
+				"Exclusive"
+			]
+		},
+		"camel.sink.endpoint.requestTimeout": {
+			"name": "camel.sink.endpoint.requestTimeout",
+			"description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option.",
+			"defaultValue": "20000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.ttl": {
-			"name": "camel.sink.endpoint.ttl",
-			"description": "Flag used to adjust the Time To Live value of produced messages.",
+		"camel.sink.endpoint.timeToLive": {
+			"name": "camel.sink.endpoint.timeToLive",
+			"description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
 			"defaultValue": "-1L",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -80,17 +151,24 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.prefillPool": {
-			"name": "camel.sink.endpoint.prefillPool",
-			"description": "Whether to prefill the producer connection pool on startup, or create connections lazy when needed.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.disableTimeToLive": {
+			"name": "camel.sink.endpoint.disableTimeToLive",
+			"description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire  [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.responseTimeOut": {
-			"name": "camel.sink.endpoint.responseTimeOut",
-			"description": "Sets the amount of time we should wait before timing out a InOut response.",
-			"defaultValue": "5000L",
+		"camel.sink.endpoint.explicitQosEnabled": {
+			"name": "camel.sink.endpoint.explicitQosEnabled",
+			"description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+			"defaultValue": "\"false\"",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.preserveMessageQos": {
+			"name": "camel.sink.endpoint.preserveMessageQos",
+			"description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by cont [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -108,24 +186,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.connectionCount": {
-			"name": "camel.sink.endpoint.connectionCount",
-			"description": "The maximum number of connections available to this endpoint",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.sink.endpoint.connectionFactory": {
-			"name": "camel.sink.endpoint.connectionFactory",
-			"description": "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.sink.endpoint.connectionResource": {
-			"name": "camel.sink.endpoint.connectionResource",
-			"description": "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.sink.endpoint.destinationCreationStrategy": {
 			"name": "camel.sink.endpoint.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -170,29 +230,37 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.transactionCommitStrategy": {
-			"name": "camel.sink.endpoint.transactionCommitStrategy",
-			"description": "Sets the commit strategy.",
+		"camel.sink.endpoint.recoveryInterval": {
+			"name": "camel.sink.endpoint.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.sink.endpoint.sharedJMSSession": {
-			"name": "camel.sink.endpoint.sharedJMSSession",
-			"description": "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.",
-			"defaultValue": "true",
+		"camel.sink.endpoint.synchronous": {
+			"name": "camel.sink.endpoint.synchronous",
+			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionCount": {
-			"name": "camel.component.sjms2.connectionCount",
-			"description": "The maximum number of connections available to endpoints started under this component",
-			"defaultValue": "\"1\"",
+		"camel.sink.endpoint.transferException": {
+			"name": "camel.sink.endpoint.transferException",
+			"description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.transacted": {
+			"name": "camel.sink.endpoint.transacted",
+			"description": "Specifies whether to use transacted mode",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
 		"camel.component.sjms2.connectionFactory": {
 			"name": "camel.component.sjms2.connectionFactory",
-			"description": "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -210,32 +278,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionClientId": {
-			"name": "camel.component.sjms2.connectionClientId",
-			"description": "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionMaxWait": {
-			"name": "camel.component.sjms2.connectionMaxWait",
-			"description": "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionResource": {
-			"name": "camel.component.sjms2.connectionResource",
-			"description": "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionTestOnBorrow": {
-			"name": "camel.component.sjms2.connectionTestOnBorrow",
-			"description": "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms2.destinationCreationStrategy": {
 			"name": "camel.component.sjms2.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -254,33 +296,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.timedTaskManager": {
-			"name": "camel.component.sjms2.timedTaskManager",
-			"description": "To use a custom TimedTaskManager",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.headerFilterStrategy": {
-			"name": "camel.component.sjms2.headerFilterStrategy",
-			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
+		"camel.component.sjms2.recoveryInterval": {
+			"name": "camel.component.sjms2.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionPassword": {
-			"name": "camel.component.sjms2.connectionPassword",
-			"description": "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers": {
+			"name": "camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers",
+			"description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionUsername": {
-			"name": "camel.component.sjms2.connectionUsername",
-			"description": "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms2.requestTimeoutCheckerInterval": {
+			"name": "camel.component.sjms2.requestTimeoutCheckerInterval",
+			"description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.",
+			"defaultValue": "1000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.transactionCommitStrategy": {
-			"name": "camel.component.sjms2.transactionCommitStrategy",
-			"description": "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.",
+		"camel.component.sjms2.headerFilterStrategy": {
+			"name": "camel.component.sjms2.headerFilterStrategy",
+			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
 			"priority": "MEDIUM",
 			"required": "false"
 		}
diff --git a/connectors/camel-sjms2-kafka-connector/src/generated/resources/camel-sjms2-source.json b/connectors/camel-sjms2-kafka-connector/src/generated/resources/camel-sjms2-source.json
index 46d8f72..863d662 100644
--- a/connectors/camel-sjms2-kafka-connector/src/generated/resources/camel-sjms2-source.json
+++ b/connectors/camel-sjms2-kafka-connector/src/generated/resources/camel-sjms2-source.json
@@ -39,6 +39,46 @@
 				"DUPS_OK_ACKNOWLEDGE"
 			]
 		},
+		"camel.source.endpoint.connectionFactory": {
+			"name": "camel.source.endpoint.connectionFactory",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.disableReplyTo": {
+			"name": "camel.source.endpoint.disableReplyTo",
+			"description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you w [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.replyTo": {
+			"name": "camel.source.endpoint.replyTo",
+			"description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.testConnectionOnStartup": {
+			"name": "camel.source.endpoint.testConnectionOnStartup",
+			"description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.asyncConsumer": {
+			"name": "camel.source.endpoint.asyncConsumer",
+			"description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been [...]
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.autoStartup": {
+			"name": "camel.source.endpoint.autoStartup",
+			"description": "Specifies whether the consumer container should auto-startup.",
+			"defaultValue": "true",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.bridgeErrorHandler": {
 			"name": "camel.source.endpoint.bridgeErrorHandler",
 			"description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
@@ -46,9 +86,15 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.consumerCount": {
-			"name": "camel.source.endpoint.consumerCount",
-			"description": "Sets the number of consumer listeners used for this endpoint.",
+		"camel.source.endpoint.clientId": {
+			"name": "camel.source.endpoint.clientId",
+			"description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.concurrentConsumers": {
+			"name": "camel.source.endpoint.concurrentConsumers",
+			"description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
 			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -60,22 +106,15 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.durableSubscriptionId": {
-			"name": "camel.source.endpoint.durableSubscriptionId",
-			"description": "Sets the durable subscription Id required for durable topics.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.reconnectBackOff": {
-			"name": "camel.source.endpoint.reconnectBackOff",
-			"description": "Backoff in millis on consumer pool reconnection attempts",
-			"defaultValue": "5000L",
+		"camel.source.endpoint.durableSubscriptionName": {
+			"name": "camel.source.endpoint.durableSubscriptionName",
+			"description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.reconnectOnError": {
-			"name": "camel.source.endpoint.reconnectOnError",
-			"description": "Try to apply reconnection logic on consumer pool",
+		"camel.source.endpoint.replyToDeliveryPersistent": {
+			"name": "camel.source.endpoint.replyToDeliveryPersistent",
+			"description": "Specifies whether to use persistent delivery by default for replies.",
 			"defaultValue": "true",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -93,10 +132,17 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.synchronous": {
-			"name": "camel.source.endpoint.synchronous",
-			"description": "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).",
-			"defaultValue": "true",
+		"camel.source.endpoint.eagerLoadingOfProperties": {
+			"name": "camel.source.endpoint.eagerLoadingOfProperties",
+			"description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.eagerPoisonBody": {
+			"name": "camel.source.endpoint.eagerPoisonBody",
+			"description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+			"defaultValue": "\"Poison JMS message due to ${exception.message}\"",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -123,6 +169,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.replyToSameDestinationAllowed": {
+			"name": "camel.source.endpoint.replyToSameDestinationAllowed",
+			"description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.asyncStartListener": {
 			"name": "camel.source.endpoint.asyncStartListener",
 			"description": "Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if th [...]
@@ -137,24 +190,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.connectionCount": {
-			"name": "camel.source.endpoint.connectionCount",
-			"description": "The maximum number of connections available to this endpoint",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.connectionFactory": {
-			"name": "camel.source.endpoint.connectionFactory",
-			"description": "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.connectionResource": {
-			"name": "camel.source.endpoint.connectionResource",
-			"description": "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.source.endpoint.destinationCreationStrategy": {
 			"name": "camel.source.endpoint.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -199,72 +234,37 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.errorHandlerLoggingLevel": {
-			"name": "camel.source.endpoint.errorHandlerLoggingLevel",
-			"description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF]",
-			"defaultValue": "\"WARN\"",
-			"priority": "MEDIUM",
-			"required": "false",
-			"enum": [
-				"TRACE",
-				"DEBUG",
-				"INFO",
-				"WARN",
-				"ERROR",
-				"OFF"
-			]
-		},
-		"camel.source.endpoint.errorHandlerLogStackTrace": {
-			"name": "camel.source.endpoint.errorHandlerLogStackTrace",
-			"description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
-			"defaultValue": "true",
+		"camel.source.endpoint.recoveryInterval": {
+			"name": "camel.source.endpoint.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.transacted": {
-			"name": "camel.source.endpoint.transacted",
-			"description": "Specifies whether to use transacted mode",
+		"camel.source.endpoint.synchronous": {
+			"name": "camel.source.endpoint.synchronous",
+			"description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).",
 			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.source.endpoint.transactionBatchCount": {
-			"name": "camel.source.endpoint.transactionBatchCount",
-			"description": "If transacted sets the number of messages to process before committing a transaction.",
-			"defaultValue": "-1",
-			"priority": "LOW",
-			"required": "false"
-		},
-		"camel.source.endpoint.transactionBatchTimeout": {
-			"name": "camel.source.endpoint.transactionBatchTimeout",
-			"description": "Sets timeout (in millis) for batch transactions, the value should be 1000 or higher.",
-			"defaultValue": "5000L",
-			"priority": "LOW",
-			"required": "false"
-		},
-		"camel.source.endpoint.transactionCommitStrategy": {
-			"name": "camel.source.endpoint.transactionCommitStrategy",
-			"description": "Sets the commit strategy.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.source.endpoint.sharedJMSSession": {
-			"name": "camel.source.endpoint.sharedJMSSession",
-			"description": "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.",
-			"defaultValue": "true",
+		"camel.source.endpoint.transferException": {
+			"name": "camel.source.endpoint.transferException",
+			"description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught [...]
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionCount": {
-			"name": "camel.component.sjms2.connectionCount",
-			"description": "The maximum number of connections available to endpoints started under this component",
-			"defaultValue": "\"1\"",
+		"camel.source.endpoint.transacted": {
+			"name": "camel.source.endpoint.transacted",
+			"description": "Specifies whether to use transacted mode",
+			"defaultValue": "false",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
 		"camel.component.sjms2.connectionFactory": {
 			"name": "camel.component.sjms2.connectionFactory",
-			"description": "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.",
+			"description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -275,20 +275,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.reconnectBackOff": {
-			"name": "camel.component.sjms2.reconnectBackOff",
-			"description": "Backoff in millis on consumer pool reconnection attempts",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.reconnectOnError": {
-			"name": "camel.component.sjms2.reconnectOnError",
-			"description": "Try to apply reconnection logic on consumer pool",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms2.autowiredEnabled": {
 			"name": "camel.component.sjms2.autowiredEnabled",
 			"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 then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
@@ -296,32 +282,6 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionClientId": {
-			"name": "camel.component.sjms2.connectionClientId",
-			"description": "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionMaxWait": {
-			"name": "camel.component.sjms2.connectionMaxWait",
-			"description": "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
-			"defaultValue": "5000L",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionResource": {
-			"name": "camel.component.sjms2.connectionResource",
-			"description": "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.connectionTestOnBorrow": {
-			"name": "camel.component.sjms2.connectionTestOnBorrow",
-			"description": "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.",
-			"defaultValue": "true",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
 		"camel.component.sjms2.destinationCreationStrategy": {
 			"name": "camel.component.sjms2.destinationCreationStrategy",
 			"description": "To use a custom DestinationCreationStrategy.",
@@ -340,33 +300,30 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.timedTaskManager": {
-			"name": "camel.component.sjms2.timedTaskManager",
-			"description": "To use a custom TimedTaskManager",
-			"priority": "MEDIUM",
-			"required": "false"
-		},
-		"camel.component.sjms2.headerFilterStrategy": {
-			"name": "camel.component.sjms2.headerFilterStrategy",
-			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
+		"camel.component.sjms2.recoveryInterval": {
+			"name": "camel.component.sjms2.recoveryInterval",
+			"description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.",
+			"defaultValue": "5000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionPassword": {
-			"name": "camel.component.sjms2.connectionPassword",
-			"description": "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers": {
+			"name": "camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers",
+			"description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+			"defaultValue": "1",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.connectionUsername": {
-			"name": "camel.component.sjms2.connectionUsername",
-			"description": "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.",
+		"camel.component.sjms2.requestTimeoutCheckerInterval": {
+			"name": "camel.component.sjms2.requestTimeoutCheckerInterval",
+			"description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.",
+			"defaultValue": "1000L",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
-		"camel.component.sjms2.transactionCommitStrategy": {
-			"name": "camel.component.sjms2.transactionCommitStrategy",
-			"description": "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.",
+		"camel.component.sjms2.headerFilterStrategy": {
+			"name": "camel.component.sjms2.headerFilterStrategy",
+			"description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.",
 			"priority": "MEDIUM",
 			"required": "false"
 		}
diff --git a/connectors/camel-sjms2-kafka-connector/src/main/docs/camel-sjms2-kafka-sink-connector.adoc b/connectors/camel-sjms2-kafka-connector/src/main/docs/camel-sjms2-kafka-sink-connector.adoc
index ae32bf7..b58fa7d 100644
--- a/connectors/camel-sjms2-kafka-connector/src/main/docs/camel-sjms2-kafka-sink-connector.adoc
+++ b/connectors/camel-sjms2-kafka-connector/src/main/docs/camel-sjms2-kafka-sink-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sjms2.CamelSjms2SinkConnector
 ----
 
 
-The camel-sjms2 sink connector supports 41 options, which are listed below.
+The camel-sjms2 sink connector supports 43 options, which are listed below.
 
 
 
@@ -32,19 +32,25 @@ The camel-sjms2 sink connector supports 41 options, which are listed below.
 | *camel.sink.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
 | *camel.sink.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
 | *camel.sink.endpoint.acknowledgementMode* | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE] | "AUTO_ACKNOWLEDGE" | false | MEDIUM
+| *camel.sink.endpoint.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
+| *camel.sink.endpoint.disableReplyTo* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different mes [...]
+| *camel.sink.endpoint.replyTo* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). | null | false | MEDIUM
+| *camel.sink.endpoint.testConnectionOnStartup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | false | MEDIUM
+| *camel.sink.endpoint.deliveryMode* | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2] | null | false | MEDIUM
+| *camel.sink.endpoint.deliveryPersistent* | Specifies whether persistent delivery is used by default. | true | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
-| *camel.sink.endpoint.namedReplyTo* | Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name. | null | false | MEDIUM
-| *camel.sink.endpoint.persistent* | Flag used to enable/disable message persistence. | true | false | MEDIUM
-| *camel.sink.endpoint.producerCount* | Sets the number of producers used for this endpoint. | 1 | false | MEDIUM
-| *camel.sink.endpoint.ttl* | Flag used to adjust the Time To Live value of produced messages. | -1L | false | MEDIUM
+| *camel.sink.endpoint.priority* | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
+| *camel.sink.endpoint.replyToConcurrentConsumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | false | MEDIUM
+| *camel.sink.endpoint.replyToOverride* | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. | null | false | MEDIUM
+| *camel.sink.endpoint.replyToType* | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive] | null | false | MEDIUM
+| *camel.sink.endpoint.requestTimeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000L | false | MEDIUM
+| *camel.sink.endpoint.timeToLive* | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1L | false | MEDIUM
 | *camel.sink.endpoint.allowNullBody* | Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown. | true | false | MEDIUM
-| *camel.sink.endpoint.prefillPool* | Whether to prefill the producer connection pool on startup, or create connections lazy when needed. | true | false | MEDIUM
-| *camel.sink.endpoint.responseTimeOut* | Sets the amount of time we should wait before timing out a InOut response. | 5000L | false | MEDIUM
+| *camel.sink.endpoint.disableTimeToLive* | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the  [...]
+| *camel.sink.endpoint.explicitQosEnabled* | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | "false" | false | MEDIUM
+| *camel.sink.endpoint.preserveMessageQos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicit [...]
 | *camel.sink.endpoint.asyncStartListener* | Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is use [...]
 | *camel.sink.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
-| *camel.sink.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
-| *camel.sink.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
-| *camel.sink.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
 | *camel.sink.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.sink.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
 | *camel.sink.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
@@ -52,24 +58,20 @@ The camel-sjms2 sink connector supports 41 options, which are listed below.
 | *camel.sink.endpoint.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the o [...]
 | *camel.sink.endpoint.mapJmsMessage* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details. | true | false | MEDIUM
 | *camel.sink.endpoint.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.sink.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
-| *camel.sink.endpoint.sharedJMSSession* | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction. | true | false | MEDIUM
-| *camel.component.sjms2.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
-| *camel.component.sjms2.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
+| *camel.sink.endpoint.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.sink.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
+| *camel.sink.endpoint.transferException* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option tak [...]
+| *camel.sink.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
+| *camel.component.sjms2.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
 | *camel.component.sjms2.lazyStartProducer* | 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 c [...]
 | *camel.component.sjms2.autowiredEnabled* | 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 | false | MEDIUM
-| *camel.component.sjms2.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.connectionMaxWait* | The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | 5000L | false | MEDIUM
-| *camel.component.sjms2.connectionResource* | A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details. | null | false | MEDIUM
-| *camel.component.sjms2.connectionTestOnBorrow* | When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool. | true | false | MEDIUM
 | *camel.component.sjms2.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.component.sjms2.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer t [...]
 | *camel.component.sjms2.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.component.sjms2.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
+| *camel.component.sjms2.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.component.sjms2.replyToOnTimeoutMax ConcurrentConsumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
+| *camel.component.sjms2.requestTimeoutChecker Interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000L | false | MEDIUM
 | *camel.component.sjms2.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
-| *camel.component.sjms2.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
 |===
 
 
diff --git a/connectors/camel-sjms2-kafka-connector/src/main/docs/camel-sjms2-kafka-source-connector.adoc b/connectors/camel-sjms2-kafka-connector/src/main/docs/camel-sjms2-kafka-source-connector.adoc
index 0247ae5..a9685a0 100644
--- a/connectors/camel-sjms2-kafka-connector/src/main/docs/camel-sjms2-kafka-source-connector.adoc
+++ b/connectors/camel-sjms2-kafka-connector/src/main/docs/camel-sjms2-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sjms2.CamelSjms2SourceConnector
 ----
 
 
-The camel-sjms2 source connector supports 52 options, which are listed below.
+The camel-sjms2 source connector supports 46 options, which are listed below.
 
 
 
@@ -32,23 +32,28 @@ The camel-sjms2 source connector supports 52 options, which are listed below.
 | *camel.source.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
 | *camel.source.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
 | *camel.source.endpoint.acknowledgementMode* | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE] | "AUTO_ACKNOWLEDGE" | false | MEDIUM
+| *camel.source.endpoint.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
+| *camel.source.endpoint.disableReplyTo* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different m [...]
+| *camel.source.endpoint.replyTo* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). | null | false | MEDIUM
+| *camel.source.endpoint.testConnectionOnStartup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | false | MEDIUM
+| *camel.source.endpoint.asyncConsumer* | Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note [...]
+| *camel.source.endpoint.autoStartup* | Specifies whether the consumer container should auto-startup. | true | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
-| *camel.source.endpoint.consumerCount* | Sets the number of consumer listeners used for this endpoint. | 1 | false | MEDIUM
+| *camel.source.endpoint.clientId* | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. | null | false | MEDIUM
+| *camel.source.endpoint.concurrentConsumers* | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | false | MEDIUM
 | *camel.source.endpoint.durable* | Sets topic consumer to durable. | false | false | MEDIUM
-| *camel.source.endpoint.durableSubscriptionId* | Sets the durable subscription Id required for durable topics. | null | false | MEDIUM
-| *camel.source.endpoint.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
-| *camel.source.endpoint.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
+| *camel.source.endpoint.durableSubscriptionName* | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. | null | false | MEDIUM
+| *camel.source.endpoint.replyToDeliveryPersistent* | Specifies whether to use persistent delivery by default for replies. | true | false | MEDIUM
 | *camel.source.endpoint.shared* | Sets the consumer to shared. | false | false | MEDIUM
 | *camel.source.endpoint.subscriptionId* | Sets the subscription Id, required for durable or shared topics. | null | false | MEDIUM
-| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | true | false | MEDIUM
+| *camel.source.endpoint.eagerLoadingOfProperties* | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | false | MEDIUM
+| *camel.source.endpoint.eagerPoisonBody* | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | "Poison JMS message due to ${exception.message}" | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
 | *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
 | *camel.source.endpoint.messageSelector* | Sets the JMS Message selector syntax. | null | false | MEDIUM
+| *camel.source.endpoint.replyToSameDestination Allowed* | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | false | MEDIUM
 | *camel.source.endpoint.asyncStartListener* | Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is u [...]
 | *camel.source.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
-| *camel.source.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
-| *camel.source.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
-| *camel.source.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
 | *camel.source.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.source.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
 | *camel.source.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
@@ -56,31 +61,20 @@ The camel-sjms2 source connector supports 52 options, which are listed below.
 | *camel.source.endpoint.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the [...]
 | *camel.source.endpoint.mapJmsMessage* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details. | true | false | MEDIUM
 | *camel.source.endpoint.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.source.endpoint.errorHandlerLoggingLevel* | Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF] | "WARN" | false | MEDIUM
-| *camel.source.endpoint.errorHandlerLogStackTrace* | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | false | MEDIUM
+| *camel.source.endpoint.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
+| *camel.source.endpoint.transferException* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option t [...]
 | *camel.source.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
-| *camel.source.endpoint.transactionBatchCount* | If transacted sets the number of messages to process before committing a transaction. | -1 | false | LOW
-| *camel.source.endpoint.transactionBatchTimeout* | Sets timeout (in millis) for batch transactions, the value should be 1000 or higher. | 5000L | false | LOW
-| *camel.source.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
-| *camel.source.endpoint.sharedJMSSession* | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction. | true | false | MEDIUM
-| *camel.component.sjms2.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
-| *camel.component.sjms2.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
+| *camel.component.sjms2.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
 | *camel.component.sjms2.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
-| *camel.component.sjms2.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
-| *camel.component.sjms2.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
 | *camel.component.sjms2.autowiredEnabled* | 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 | false | MEDIUM
-| *camel.component.sjms2.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.connectionMaxWait* | The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | 5000L | false | MEDIUM
-| *camel.component.sjms2.connectionResource* | A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details. | null | false | MEDIUM
-| *camel.component.sjms2.connectionTestOnBorrow* | When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool. | true | false | MEDIUM
 | *camel.component.sjms2.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.component.sjms2.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer t [...]
 | *camel.component.sjms2.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.component.sjms2.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
+| *camel.component.sjms2.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.component.sjms2.replyToOnTimeoutMax ConcurrentConsumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
+| *camel.component.sjms2.requestTimeoutChecker Interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000L | false | MEDIUM
 | *camel.component.sjms2.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
-| *camel.component.sjms2.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
 |===
 
 
diff --git a/connectors/camel-sjms2-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms2/CamelSjms2SinkConnectorConfig.java b/connectors/camel-sjms2-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms2/CamelSjms2SinkConnectorConfig.java
index 883e2af..091e6a3 100644
--- a/connectors/camel-sjms2-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms2/CamelSjms2SinkConnectorConfig.java
+++ b/connectors/camel-sjms2-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms2/CamelSjms2SinkConnectorConfig.java
@@ -33,45 +33,63 @@ public class CamelSjms2SinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_CONF = "camel.sink.endpoint.acknowledgementMode";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_DOC = "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE]";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_DEFAULT = "AUTO_ACKNOWLEDGE";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_CONF = "camel.sink.endpoint.connectionFactory";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_DOC = "The connection factory to be use. A connection factory must be configured either on the component or endpoint.";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_REPLY_TO_CONF = "camel.sink.endpoint.disableReplyTo";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_REPLY_TO_DOC = "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to us [...]
+    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_REPLY_TO_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_CONF = "camel.sink.endpoint.replyTo";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_DOC = "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_CONF = "camel.sink.endpoint.testConnectionOnStartup";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DOC = "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.";
+    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_MODE_CONF = "camel.sink.endpoint.deliveryMode";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_MODE_DOC = "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2]";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_MODE_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_PERSISTENT_CONF = "camel.sink.endpoint.deliveryPersistent";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_PERSISTENT_DOC = "Specifies whether persistent delivery is used by default.";
+    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_PERSISTENT_DEFAULT = true;
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_LAZY_START_PRODUCER_CONF = "camel.sink.endpoint.lazyStartProducer";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_LAZY_START_PRODUCER_DOC = "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 [...]
     public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_LAZY_START_PRODUCER_DEFAULT = false;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_NAMED_REPLY_TO_CONF = "camel.sink.endpoint.namedReplyTo";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_NAMED_REPLY_TO_DOC = "Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name.";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_NAMED_REPLY_TO_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PERSISTENT_CONF = "camel.sink.endpoint.persistent";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PERSISTENT_DOC = "Flag used to enable/disable message persistence.";
-    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_PERSISTENT_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PRODUCER_COUNT_CONF = "camel.sink.endpoint.producerCount";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PRODUCER_COUNT_DOC = "Sets the number of producers used for this endpoint.";
-    public static final Integer CAMEL_SINK_SJMS2_ENDPOINT_PRODUCER_COUNT_DEFAULT = 1;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TTL_CONF = "camel.sink.endpoint.ttl";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TTL_DOC = "Flag used to adjust the Time To Live value of produced messages.";
-    public static final Long CAMEL_SINK_SJMS2_ENDPOINT_TTL_DEFAULT = -1L;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PRIORITY_CONF = "camel.sink.endpoint.priority";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PRIORITY_DOC = "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9]";
+    public static final Integer CAMEL_SINK_SJMS2_ENDPOINT_PRIORITY_DEFAULT = 4;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_CONF = "camel.sink.endpoint.replyToConcurrentConsumers";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DOC = "Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads.";
+    public static final Integer CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DEFAULT = 1;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_OVERRIDE_CONF = "camel.sink.endpoint.replyToOverride";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_OVERRIDE_DOC = "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_OVERRIDE_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_TYPE_CONF = "camel.sink.endpoint.replyToType";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_TYPE_DOC = "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive]";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_TYPE_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REQUEST_TIMEOUT_CONF = "camel.sink.endpoint.requestTimeout";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_REQUEST_TIMEOUT_DOC = "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option.";
+    public static final Long CAMEL_SINK_SJMS2_ENDPOINT_REQUEST_TIMEOUT_DEFAULT = 20000L;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TIME_TO_LIVE_CONF = "camel.sink.endpoint.timeToLive";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TIME_TO_LIVE_DOC = "When sending messages, specifies the time-to-live of the message (in milliseconds).";
+    public static final Long CAMEL_SINK_SJMS2_ENDPOINT_TIME_TO_LIVE_DEFAULT = -1L;
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ALLOW_NULL_BODY_CONF = "camel.sink.endpoint.allowNullBody";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ALLOW_NULL_BODY_DOC = "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.";
     public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_ALLOW_NULL_BODY_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PREFILL_POOL_CONF = "camel.sink.endpoint.prefillPool";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PREFILL_POOL_DOC = "Whether to prefill the producer connection pool on startup, or create connections lazy when needed.";
-    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_PREFILL_POOL_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_RESPONSE_TIME_OUT_CONF = "camel.sink.endpoint.responseTimeOut";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_RESPONSE_TIME_OUT_DOC = "Sets the amount of time we should wait before timing out a InOut response.";
-    public static final Long CAMEL_SINK_SJMS2_ENDPOINT_RESPONSE_TIME_OUT_DEFAULT = 5000L;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_TIME_TO_LIVE_CONF = "camel.sink.endpoint.disableTimeToLive";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_TIME_TO_LIVE_DOC = "Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to  [...]
+    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_TIME_TO_LIVE_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_EXPLICIT_QOS_ENABLED_CONF = "camel.sink.endpoint.explicitQosEnabled";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_EXPLICIT_QOS_ENABLED_DOC = "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_EXPLICIT_QOS_ENABLED_DEFAULT = "false";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PRESERVE_MESSAGE_QOS_CONF = "camel.sink.endpoint.preserveMessageQos";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_PRESERVE_MESSAGE_QOS_DOC = "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override th [...]
+    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_PRESERVE_MESSAGE_QOS_DEFAULT = false;
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_START_LISTENER_CONF = "camel.sink.endpoint.asyncStartListener";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_START_LISTENER_DOC = "Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in  [...]
     public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_START_LISTENER_DEFAULT = false;
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_CONF = "camel.sink.endpoint.asyncStopListener";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_DOC = "Whether to stop the consumer message listener asynchronously, when stopping a route.";
     public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_DEFAULT = false;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_COUNT_CONF = "camel.sink.endpoint.connectionCount";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_COUNT_DOC = "The maximum number of connections available to this endpoint";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_COUNT_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_CONF = "camel.sink.endpoint.connectionFactory";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_DOC = "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_RESOURCE_CONF = "camel.sink.endpoint.connectionResource";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_RESOURCE_DOC = "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_RESOURCE_DEFAULT = null;
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_CONF = "camel.sink.endpoint.destinationCreationStrategy";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_DOC = "To use a custom DestinationCreationStrategy.";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_DEFAULT = null;
@@ -93,17 +111,20 @@ public class CamelSjms2SinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_CONF = "camel.sink.endpoint.messageCreatedStrategy";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_DOC = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.";
     public static final String CAMEL_SINK_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_CONF = "camel.sink.endpoint.transactionCommitStrategy";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DOC = "Sets the commit strategy.";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_SHARED_JMSSESSION_CONF = "camel.sink.endpoint.sharedJMSSession";
-    public static final String CAMEL_SINK_SJMS2_ENDPOINT_SHARED_JMSSESSION_DOC = "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.";
-    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_SHARED_JMSSESSION_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_COUNT_CONF = "camel.component.sjms2.connectionCount";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_COUNT_DOC = "The maximum number of connections available to endpoints started under this component";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_COUNT_DEFAULT = "1";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_RECOVERY_INTERVAL_CONF = "camel.sink.endpoint.recoveryInterval";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_RECOVERY_INTERVAL_DOC = "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.";
+    public static final Long CAMEL_SINK_SJMS2_ENDPOINT_RECOVERY_INTERVAL_DEFAULT = 5000L;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_SYNCHRONOUS_CONF = "camel.sink.endpoint.synchronous";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_SYNCHRONOUS_DOC = "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).";
+    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_SYNCHRONOUS_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_CONF = "camel.sink.endpoint.transferException";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_DOC = "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have tr [...]
+    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_DEFAULT = false;
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTED_CONF = "camel.sink.endpoint.transacted";
+    public static final String CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTED_DOC = "Specifies whether to use transacted mode";
+    public static final Boolean CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTED_DEFAULT = false;
     public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_FACTORY_CONF = "camel.component.sjms2.connectionFactory";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_FACTORY_DOC = "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.";
+    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_FACTORY_DOC = "The connection factory to be use. A connection factory must be configured either on the component or endpoint.";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_FACTORY_DEFAULT = null;
     public static final String CAMEL_SINK_SJMS2_COMPONENT_LAZY_START_PRODUCER_CONF = "camel.component.sjms2.lazyStartProducer";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_LAZY_START_PRODUCER_DOC = "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 whe [...]
@@ -111,18 +132,6 @@ public class CamelSjms2SinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_SJMS2_COMPONENT_AUTOWIRED_ENABLED_CONF = "camel.component.sjms2.autowiredEnabled";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_AUTOWIRED_ENABLED_DOC = "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.";
     public static final Boolean CAMEL_SINK_SJMS2_COMPONENT_AUTOWIRED_ENABLED_DEFAULT = true;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_CONF = "camel.component.sjms2.connectionClientId";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_DOC = "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_CONF = "camel.component.sjms2.connectionMaxWait";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_DOC = "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final Long CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_DEFAULT = 5000L;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_RESOURCE_CONF = "camel.component.sjms2.connectionResource";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_RESOURCE_DOC = "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_RESOURCE_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_CONF = "camel.component.sjms2.connectionTestOnBorrow";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_DOC = "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.";
-    public static final Boolean CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_DEFAULT = true;
     public static final String CAMEL_SINK_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_CONF = "camel.component.sjms2.destinationCreationStrategy";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_DOC = "To use a custom DestinationCreationStrategy.";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_DEFAULT = null;
@@ -132,21 +141,18 @@ public class CamelSjms2SinkConnectorConfig extends CamelSinkConnectorConfig {
     public static final String CAMEL_SINK_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_CONF = "camel.component.sjms2.messageCreatedStrategy";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_DOC = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_TIMED_TASK_MANAGER_CONF = "camel.component.sjms2.timedTaskManager";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_TIMED_TASK_MANAGER_DOC = "To use a custom TimedTaskManager";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_TIMED_TASK_MANAGER_DEFAULT = null;
+    public static final String CAMEL_SINK_SJMS2_COMPONENT_RECOVERY_INTERVAL_CONF = "camel.component.sjms2.recoveryInterval";
+    public static final String CAMEL_SINK_SJMS2_COMPONENT_RECOVERY_INTERVAL_DOC = "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.";
+    public static final Long CAMEL_SINK_SJMS2_COMPONENT_RECOVERY_INTERVAL_DEFAULT = 5000L;
+    public static final String CAMEL_SINK_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_CONF = "camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers";
+    public static final String CAMEL_SINK_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DOC = "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS.";
+    public static final Integer CAMEL_SINK_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DEFAULT = 1;
+    public static final String CAMEL_SINK_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_CONF = "camel.component.sjms2.requestTimeoutCheckerInterval";
+    public static final String CAMEL_SINK_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DOC = "Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.";
+    public static final Long CAMEL_SINK_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DEFAULT = 1000L;
     public static final String CAMEL_SINK_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_CONF = "camel.component.sjms2.headerFilterStrategy";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_DOC = "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.";
     public static final String CAMEL_SINK_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_PASSWORD_CONF = "camel.component.sjms2.connectionPassword";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_PASSWORD_DOC = "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_PASSWORD_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_USERNAME_CONF = "camel.component.sjms2.connectionUsername";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_USERNAME_DOC = "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_USERNAME_DEFAULT = null;
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_CONF = "camel.component.sjms2.transactionCommitStrategy";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DOC = "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.";
-    public static final String CAMEL_SINK_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DEFAULT = null;
 
     public CamelSjms2SinkConnectorConfig(
             ConfigDef config,
@@ -163,19 +169,25 @@ public class CamelSjms2SinkConnectorConfig extends CamelSinkConnectorConfig {
         conf.define(CAMEL_SINK_SJMS2_PATH_DESTINATION_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_PATH_DESTINATION_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_PATH_DESTINATION_TYPE_DOC);
         conf.define(CAMEL_SINK_SJMS2_PATH_DESTINATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_PATH_DESTINATION_NAME_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SINK_SJMS2_PATH_DESTINATION_NAME_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_REPLY_TO_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_REPLY_TO_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_MODE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_MODE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_MODE_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_PERSISTENT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_PERSISTENT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_DELIVERY_PERSISTENT_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_LAZY_START_PRODUCER_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_NAMED_REPLY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_NAMED_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_NAMED_REPLY_TO_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_PERSISTENT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_PERSISTENT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_PERSISTENT_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_PRODUCER_COUNT_CONF, ConfigDef.Type.INT, CAMEL_SINK_SJMS2_ENDPOINT_PRODUCER_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_PRODUCER_COUNT_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_TTL_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS2_ENDPOINT_TTL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_TTL_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_PRIORITY_CONF, ConfigDef.Type.INT, CAMEL_SINK_SJMS2_ENDPOINT_PRIORITY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_PRIORITY_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_CONF, ConfigDef.Type.INT, CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_CONCURRENT_CONSUMERS_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_OVERRIDE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_OVERRIDE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_OVERRIDE_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_REPLY_TO_TYPE_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_REQUEST_TIMEOUT_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS2_ENDPOINT_REQUEST_TIMEOUT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_REQUEST_TIMEOUT_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_TIME_TO_LIVE_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS2_ENDPOINT_TIME_TO_LIVE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_TIME_TO_LIVE_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_ALLOW_NULL_BODY_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_ALLOW_NULL_BODY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_ALLOW_NULL_BODY_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_PREFILL_POOL_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_PREFILL_POOL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_PREFILL_POOL_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_RESPONSE_TIME_OUT_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS2_ENDPOINT_RESPONSE_TIME_OUT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_RESPONSE_TIME_OUT_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_TIME_TO_LIVE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_TIME_TO_LIVE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_DISABLE_TIME_TO_LIVE_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_EXPLICIT_QOS_ENABLED_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_EXPLICIT_QOS_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_EXPLICIT_QOS_ENABLED_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_PRESERVE_MESSAGE_QOS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_PRESERVE_MESSAGE_QOS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_PRESERVE_MESSAGE_QOS_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_START_LISTENER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_START_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_START_LISTENER_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_COUNT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_COUNT_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_FACTORY_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_RESOURCE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_RESOURCE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_CONNECTION_RESOURCE_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_EXCEPTION_LISTENER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_EXCEPTION_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_EXCEPTION_LISTENER_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_HEADER_FILTER_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_HEADER_FILTER_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_HEADER_FILTER_STRATEGY_DOC);
@@ -183,24 +195,20 @@ public class CamelSjms2SinkConnectorConfig extends CamelSinkConnectorConfig {
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_MAP_JMS_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_MAP_JMS_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_MAP_JMS_MESSAGE_DOC);
         conf.define(CAMEL_SINK_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DOC);
-        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_SHARED_JMSSESSION_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_SHARED_JMSSESSION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_SHARED_JMSSESSION_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_COUNT_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_COUNT_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_RECOVERY_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS2_ENDPOINT_RECOVERY_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_RECOVERY_INTERVAL_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_SYNCHRONOUS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_SYNCHRONOUS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_SYNCHRONOUS_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_DOC);
+        conf.define(CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_ENDPOINT_TRANSACTED_DOC);
         conf.define(CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_FACTORY_DOC);
         conf.define(CAMEL_SINK_SJMS2_COMPONENT_LAZY_START_PRODUCER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_COMPONENT_LAZY_START_PRODUCER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_LAZY_START_PRODUCER_DOC);
         conf.define(CAMEL_SINK_SJMS2_COMPONENT_AUTOWIRED_ENABLED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_COMPONENT_AUTOWIRED_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_AUTOWIRED_ENABLED_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_RESOURCE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_RESOURCE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_RESOURCE_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_DOC);
         conf.define(CAMEL_SINK_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_DOC);
         conf.define(CAMEL_SINK_SJMS2_COMPONENT_JMS_KEY_FORMAT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_JMS_KEY_FORMAT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_JMS_KEY_FORMAT_STRATEGY_DOC);
         conf.define(CAMEL_SINK_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_TIMED_TASK_MANAGER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_TIMED_TASK_MANAGER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_TIMED_TASK_MANAGER_DOC);
+        conf.define(CAMEL_SINK_SJMS2_COMPONENT_RECOVERY_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS2_COMPONENT_RECOVERY_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_RECOVERY_INTERVAL_DOC);
+        conf.define(CAMEL_SINK_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_CONF, ConfigDef.Type.INT, CAMEL_SINK_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DOC);
+        conf.define(CAMEL_SINK_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SINK_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DOC);
         conf.define(CAMEL_SINK_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_PASSWORD_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_USERNAME_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_USERNAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_CONNECTION_USERNAME_DOC);
-        conf.define(CAMEL_SINK_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DOC);
         return conf;
     }
 }
\ No newline at end of file
diff --git a/connectors/camel-sjms2-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms2/CamelSjms2SourceConnectorConfig.java b/connectors/camel-sjms2-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms2/CamelSjms2SourceConnectorConfig.java
index b4d7af7..88e5fb2 100644
--- a/connectors/camel-sjms2-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms2/CamelSjms2SourceConnectorConfig.java
+++ b/connectors/camel-sjms2-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/sjms2/CamelSjms2SourceConnectorConfig.java
@@ -35,33 +35,54 @@ public class CamelSjms2SourceConnectorConfig
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_CONF = "camel.source.endpoint.acknowledgementMode";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_DOC = "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE]";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_DEFAULT = "AUTO_ACKNOWLEDGE";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_CONF = "camel.source.endpoint.connectionFactory";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_DOC = "The connection factory to be use. A connection factory must be configured either on the component or endpoint.";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DISABLE_REPLY_TO_CONF = "camel.source.endpoint.disableReplyTo";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DISABLE_REPLY_TO_DOC = "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to  [...]
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_DISABLE_REPLY_TO_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_CONF = "camel.source.endpoint.replyTo";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DOC = "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_CONF = "camel.source.endpoint.testConnectionOnStartup";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DOC = "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.";
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_CONSUMER_CONF = "camel.source.endpoint.asyncConsumer";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_CONSUMER_DOC = "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup th [...]
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_CONSUMER_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_AUTO_STARTUP_CONF = "camel.source.endpoint.autoStartup";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_AUTO_STARTUP_DOC = "Specifies whether the consumer container should auto-startup.";
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_AUTO_STARTUP_DEFAULT = true;
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF = "camel.source.endpoint.bridgeErrorHandler";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.";
     public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONSUMER_COUNT_CONF = "camel.source.endpoint.consumerCount";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONSUMER_COUNT_DOC = "Sets the number of consumer listeners used for this endpoint.";
-    public static final Integer CAMEL_SOURCE_SJMS2_ENDPOINT_CONSUMER_COUNT_DEFAULT = 1;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CLIENT_ID_CONF = "camel.source.endpoint.clientId";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CLIENT_ID_DOC = "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CLIENT_ID_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONCURRENT_CONSUMERS_CONF = "camel.source.endpoint.concurrentConsumers";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONCURRENT_CONSUMERS_DOC = "Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.";
+    public static final Integer CAMEL_SOURCE_SJMS2_ENDPOINT_CONCURRENT_CONSUMERS_DEFAULT = 1;
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_CONF = "camel.source.endpoint.durable";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_DOC = "Sets topic consumer to durable.";
     public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_ID_CONF = "camel.source.endpoint.durableSubscriptionId";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_ID_DOC = "Sets the durable subscription Id required for durable topics.";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_ID_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_BACK_OFF_CONF = "camel.source.endpoint.reconnectBackOff";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_BACK_OFF_DOC = "Backoff in millis on consumer pool reconnection attempts";
-    public static final Long CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_BACK_OFF_DEFAULT = 5000L;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_ON_ERROR_CONF = "camel.source.endpoint.reconnectOnError";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_ON_ERROR_DOC = "Try to apply reconnection logic on consumer pool";
-    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_ON_ERROR_DEFAULT = true;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_CONF = "camel.source.endpoint.durableSubscriptionName";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_DOC = "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_CONF = "camel.source.endpoint.replyToDeliveryPersistent";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_DOC = "Specifies whether to use persistent delivery by default for replies.";
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_DEFAULT = true;
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_CONF = "camel.source.endpoint.shared";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_DOC = "Sets the consumer to shared.";
     public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_DEFAULT = false;
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SUBSCRIPTION_ID_CONF = "camel.source.endpoint.subscriptionId";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SUBSCRIPTION_ID_DOC = "Sets the subscription Id, required for durable or shared topics.";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SUBSCRIPTION_ID_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_CONF = "camel.source.endpoint.synchronous";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_DOC = "Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).";
-    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_DEFAULT = true;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_CONF = "camel.source.endpoint.eagerLoadingOfProperties";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_DOC = "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.";
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_POISON_BODY_CONF = "camel.source.endpoint.eagerPoisonBody";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_POISON_BODY_DOC = "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_POISON_BODY_DEFAULT = "Poison JMS message due to ${exception.message}";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_HANDLER_CONF = "camel.source.endpoint.exceptionHandler";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_HANDLER_DOC = "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored.";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_HANDLER_DEFAULT = null;
@@ -71,21 +92,15 @@ public class CamelSjms2SourceConnectorConfig
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_SELECTOR_CONF = "camel.source.endpoint.messageSelector";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_SELECTOR_DOC = "Sets the JMS Message selector syntax.";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_SELECTOR_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_CONF = "camel.source.endpoint.replyToSameDestinationAllowed";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_DOC = "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.";
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_DEFAULT = false;
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_START_LISTENER_CONF = "camel.source.endpoint.asyncStartListener";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_START_LISTENER_DOC = "Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread i [...]
     public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_START_LISTENER_DEFAULT = false;
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_CONF = "camel.source.endpoint.asyncStopListener";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_DOC = "Whether to stop the consumer message listener asynchronously, when stopping a route.";
     public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_COUNT_CONF = "camel.source.endpoint.connectionCount";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_COUNT_DOC = "The maximum number of connections available to this endpoint";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_COUNT_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_CONF = "camel.source.endpoint.connectionFactory";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_DOC = "Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_RESOURCE_CONF = "camel.source.endpoint.connectionResource";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_RESOURCE_DOC = "Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_RESOURCE_DEFAULT = null;
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_CONF = "camel.source.endpoint.destinationCreationStrategy";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_DOC = "To use a custom DestinationCreationStrategy.";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_DEFAULT = null;
@@ -107,57 +122,27 @@ public class CamelSjms2SourceConnectorConfig
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_CONF = "camel.source.endpoint.messageCreatedStrategy";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_DOC = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_CONF = "camel.source.endpoint.errorHandlerLoggingLevel";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_DOC = "Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF]";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_DEFAULT = "WARN";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_CONF = "camel.source.endpoint.errorHandlerLogStackTrace";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_DOC = "Allows to control whether stacktraces should be logged or not, by the default errorHandler.";
-    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_DEFAULT = true;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_RECOVERY_INTERVAL_CONF = "camel.source.endpoint.recoveryInterval";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_RECOVERY_INTERVAL_DOC = "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.";
+    public static final Long CAMEL_SOURCE_SJMS2_ENDPOINT_RECOVERY_INTERVAL_DEFAULT = 5000L;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_CONF = "camel.source.endpoint.synchronous";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_DOC = "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported).";
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_DEFAULT = false;
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_CONF = "camel.source.endpoint.transferException";
+    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_DOC = "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have  [...]
+    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_DEFAULT = false;
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTED_CONF = "camel.source.endpoint.transacted";
     public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTED_DOC = "Specifies whether to use transacted mode";
     public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTED_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_COUNT_CONF = "camel.source.endpoint.transactionBatchCount";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_COUNT_DOC = "If transacted sets the number of messages to process before committing a transaction.";
-    public static final Integer CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_COUNT_DEFAULT = -1;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_CONF = "camel.source.endpoint.transactionBatchTimeout";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_DOC = "Sets timeout (in millis) for batch transactions, the value should be 1000 or higher.";
-    public static final Long CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_DEFAULT = 5000L;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_CONF = "camel.source.endpoint.transactionCommitStrategy";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DOC = "Sets the commit strategy.";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_JMSSESSION_CONF = "camel.source.endpoint.sharedJMSSession";
-    public static final String CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_JMSSESSION_DOC = "Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction.";
-    public static final Boolean CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_JMSSESSION_DEFAULT = true;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_COUNT_CONF = "camel.component.sjms2.connectionCount";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_COUNT_DOC = "The maximum number of connections available to endpoints started under this component";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_COUNT_DEFAULT = "1";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_FACTORY_CONF = "camel.component.sjms2.connectionFactory";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_FACTORY_DOC = "A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource.";
+    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_FACTORY_DOC = "The connection factory to be use. A connection factory must be configured either on the component or endpoint.";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_FACTORY_DEFAULT = null;
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_BRIDGE_ERROR_HANDLER_CONF = "camel.component.sjms2.bridgeErrorHandler";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_BRIDGE_ERROR_HANDLER_DOC = "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.";
     public static final Boolean CAMEL_SOURCE_SJMS2_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT = false;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_BACK_OFF_CONF = "camel.component.sjms2.reconnectBackOff";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_BACK_OFF_DOC = "Backoff in millis on consumer pool reconnection attempts";
-    public static final Long CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_BACK_OFF_DEFAULT = 5000L;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_ON_ERROR_CONF = "camel.component.sjms2.reconnectOnError";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_ON_ERROR_DOC = "Try to apply reconnection logic on consumer pool";
-    public static final Boolean CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_ON_ERROR_DEFAULT = true;
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_AUTOWIRED_ENABLED_CONF = "camel.component.sjms2.autowiredEnabled";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_AUTOWIRED_ENABLED_DOC = "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.";
     public static final Boolean CAMEL_SOURCE_SJMS2_COMPONENT_AUTOWIRED_ENABLED_DEFAULT = true;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_CONF = "camel.component.sjms2.connectionClientId";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_DOC = "The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_CONF = "camel.component.sjms2.connectionMaxWait";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_DOC = "The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final Long CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_DEFAULT = 5000L;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_RESOURCE_CONF = "camel.component.sjms2.connectionResource";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_RESOURCE_DOC = "A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details.";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_RESOURCE_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_CONF = "camel.component.sjms2.connectionTestOnBorrow";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_DOC = "When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool.";
-    public static final Boolean CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_DEFAULT = true;
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_CONF = "camel.component.sjms2.destinationCreationStrategy";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_DOC = "To use a custom DestinationCreationStrategy.";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_DEFAULT = null;
@@ -167,21 +152,18 @@ public class CamelSjms2SourceConnectorConfig
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_CONF = "camel.component.sjms2.messageCreatedStrategy";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_DOC = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message.";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_TIMED_TASK_MANAGER_CONF = "camel.component.sjms2.timedTaskManager";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_TIMED_TASK_MANAGER_DOC = "To use a custom TimedTaskManager";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_TIMED_TASK_MANAGER_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_RECOVERY_INTERVAL_CONF = "camel.component.sjms2.recoveryInterval";
+    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_RECOVERY_INTERVAL_DOC = "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds.";
+    public static final Long CAMEL_SOURCE_SJMS2_COMPONENT_RECOVERY_INTERVAL_DEFAULT = 5000L;
+    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_CONF = "camel.component.sjms2.replyToOnTimeoutMaxConcurrentConsumers";
+    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DOC = "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS.";
+    public static final Integer CAMEL_SOURCE_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DEFAULT = 1;
+    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_CONF = "camel.component.sjms2.requestTimeoutCheckerInterval";
+    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DOC = "Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout.";
+    public static final Long CAMEL_SOURCE_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DEFAULT = 1000L;
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_CONF = "camel.component.sjms2.headerFilterStrategy";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_DOC = "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message.";
     public static final String CAMEL_SOURCE_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_PASSWORD_CONF = "camel.component.sjms2.connectionPassword";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_PASSWORD_DOC = "The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_PASSWORD_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_USERNAME_CONF = "camel.component.sjms2.connectionUsername";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_USERNAME_DOC = "The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource.";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_USERNAME_DEFAULT = null;
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_CONF = "camel.component.sjms2.transactionCommitStrategy";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DOC = "To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch.";
-    public static final String CAMEL_SOURCE_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DEFAULT = null;
 
     public CamelSjms2SourceConnectorConfig(
             ConfigDef config,
@@ -198,23 +180,28 @@ public class CamelSjms2SourceConnectorConfig
         conf.define(CAMEL_SOURCE_SJMS2_PATH_DESTINATION_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_PATH_DESTINATION_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_PATH_DESTINATION_TYPE_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_PATH_DESTINATION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_PATH_DESTINATION_NAME_DEFAULT, ConfigDef.Importance.HIGH, CAMEL_SOURCE_SJMS2_PATH_DESTINATION_NAME_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_ACKNOWLEDGEMENT_MODE_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_DISABLE_REPLY_TO_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_DISABLE_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_DISABLE_REPLY_TO_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_TEST_CONNECTION_ON_STARTUP_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_CONSUMER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_CONSUMER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_CONSUMER_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_AUTO_STARTUP_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_AUTO_STARTUP_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_AUTO_STARTUP_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_CONSUMER_COUNT_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SJMS2_ENDPOINT_CONSUMER_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_CONSUMER_COUNT_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_CLIENT_ID_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_CONCURRENT_CONSUMERS_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SJMS2_ENDPOINT_CONCURRENT_CONSUMERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_CONCURRENT_CONSUMERS_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_ID_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_BACK_OFF_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_BACK_OFF_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_BACK_OFF_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_ON_ERROR_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_ON_ERROR_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_RECONNECT_ON_ERROR_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_DURABLE_SUBSCRIPTION_NAME_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_DELIVERY_PERSISTENT_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_SUBSCRIPTION_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_SUBSCRIPTION_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_SUBSCRIPTION_ID_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_LOADING_OF_PROPERTIES_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_POISON_BODY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_POISON_BODY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_EAGER_POISON_BODY_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_HANDLER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_EXCHANGE_PATTERN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_EXCHANGE_PATTERN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_EXCHANGE_PATTERN_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_SELECTOR_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_SELECTOR_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_SELECTOR_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_REPLY_TO_SAME_DESTINATION_ALLOWED_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_START_LISTENER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_START_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_START_LISTENER_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_ASYNC_STOP_LISTENER_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_COUNT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_COUNT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_FACTORY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_RESOURCE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_RESOURCE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_CONNECTION_RESOURCE_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_DESTINATION_CREATION_STRATEGY_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_LISTENER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_LISTENER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_EXCEPTION_LISTENER_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_HEADER_FILTER_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_HEADER_FILTER_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_HEADER_FILTER_STRATEGY_DOC);
@@ -222,31 +209,20 @@ public class CamelSjms2SourceConnectorConfig
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_JMS_KEY_FORMAT_STRATEGY_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_MAP_JMS_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_MAP_JMS_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_MAP_JMS_MESSAGE_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_MESSAGE_CREATED_STRATEGY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOGGING_LEVEL_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_ERROR_HANDLER_LOG_STACK_TRACE_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_RECOVERY_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS2_ENDPOINT_RECOVERY_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_RECOVERY_INTERVAL_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_SYNCHRONOUS_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSFER_EXCEPTION_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTED_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_COUNT_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_COUNT_DEFAULT, ConfigDef.Importance.LOW, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_COUNT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_DEFAULT, ConfigDef.Importance.LOW, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_BATCH_TIMEOUT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_TRANSACTION_COMMIT_STRATEGY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_JMSSESSION_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_JMSSESSION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_ENDPOINT_SHARED_JMSSESSION_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_COUNT_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_COUNT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_COUNT_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_FACTORY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_FACTORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_FACTORY_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_BACK_OFF_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_BACK_OFF_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_BACK_OFF_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_ON_ERROR_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_ON_ERROR_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_RECONNECT_ON_ERROR_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_AUTOWIRED_ENABLED_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_COMPONENT_AUTOWIRED_ENABLED_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_AUTOWIRED_ENABLED_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_CLIENT_ID_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_MAX_WAIT_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_RESOURCE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_RESOURCE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_RESOURCE_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_TEST_ON_BORROW_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_DESTINATION_CREATION_STRATEGY_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_JMS_KEY_FORMAT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_JMS_KEY_FORMAT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_JMS_KEY_FORMAT_STRATEGY_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_MESSAGE_CREATED_STRATEGY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_TIMED_TASK_MANAGER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_TIMED_TASK_MANAGER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_TIMED_TASK_MANAGER_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_RECOVERY_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS2_COMPONENT_RECOVERY_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_RECOVERY_INTERVAL_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_REPLY_TO_ON_TIMEOUT_MAX_CONCURRENT_CONSUMERS_DOC);
+        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_REQUEST_TIMEOUT_CHECKER_INTERVAL_DOC);
         conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_HEADER_FILTER_STRATEGY_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_PASSWORD_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_USERNAME_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_USERNAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_CONNECTION_USERNAME_DOC);
-        conf.define(CAMEL_SOURCE_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SJMS2_COMPONENT_TRANSACTION_COMMIT_STRATEGY_DOC);
         return conf;
     }
 }
\ No newline at end of file
diff --git a/connectors/camel-smtp-kafka-connector/src/generated/resources/camel-smtp-source.json b/connectors/camel-smtp-kafka-connector/src/generated/resources/camel-smtp-source.json
index d7fa953..211b7dc 100644
--- a/connectors/camel-smtp-kafka-connector/src/generated/resources/camel-smtp-source.json
+++ b/connectors/camel-smtp-kafka-connector/src/generated/resources/camel-smtp-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.smtp.decodeFilename": {
+			"name": "camel.component.smtp.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.smtp.delete": {
 			"name": "camel.component.smtp.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/connectors/camel-smtp-kafka-connector/src/main/docs/camel-smtp-kafka-source-connector.adoc b/connectors/camel-smtp-kafka-connector/src/main/docs/camel-smtp-kafka-source-connector.adoc
index b852da2..2cd5e75 100644
--- a/connectors/camel-smtp-kafka-connector/src/main/docs/camel-smtp-kafka-source-connector.adoc
+++ b/connectors/camel-smtp-kafka-connector/src/main/docs/camel-smtp-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.smtp.CamelSmtpSourceConnector
 ----
 
 
-The camel-smtp source connector supports 94 options, which are listed below.
+The camel-smtp source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-smtp source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-smtp source connector supports 94 options, which are listed below.
 | *camel.component.smtp.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.smtp.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.smtp.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.smtp.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.smtp.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.smtp.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.smtp.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/connectors/camel-smtp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/smtp/CamelSmtpSourceConnectorConfig.java b/connectors/camel-smtp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/smtp/CamelSmtpSourceConnectorConfig.java
index 01a87b2..9c200d6 100644
--- a/connectors/camel-smtp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/smtp/CamelSmtpSourceConnectorConfig.java
+++ b/connectors/camel-smtp-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/smtp/CamelSmtpSourceConnectorConfig.java
@@ -41,6 +41,9 @@ public class CamelSmtpSourceConnectorConfig
     public static final String CAMEL_SOURCE_SMTP_ENDPOINT_COPY_TO_CONF = "camel.source.endpoint.copyTo";
     public static final String CAMEL_SOURCE_SMTP_ENDPOINT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_SMTP_ENDPOINT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SMTP_ENDPOINT_DECODE_FILENAME_CONF = "camel.source.endpoint.decodeFilename";
+    public static final String CAMEL_SOURCE_SMTP_ENDPOINT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_SMTP_ENDPOINT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_SMTP_ENDPOINT_DELETE_CONF = "camel.source.endpoint.delete";
     public static final String CAMEL_SOURCE_SMTP_ENDPOINT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_SMTP_ENDPOINT_DELETE_DEFAULT = false;
@@ -215,6 +218,9 @@ public class CamelSmtpSourceConnectorConfig
     public static final String CAMEL_SOURCE_SMTP_COMPONENT_COPY_TO_CONF = "camel.component.smtp.copyTo";
     public static final String CAMEL_SOURCE_SMTP_COMPONENT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_SMTP_COMPONENT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SMTP_COMPONENT_DECODE_FILENAME_CONF = "camel.component.smtp.decodeFilename";
+    public static final String CAMEL_SOURCE_SMTP_COMPONENT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_SMTP_COMPONENT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_SMTP_COMPONENT_DELETE_CONF = "camel.component.smtp.delete";
     public static final String CAMEL_SOURCE_SMTP_COMPONENT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_SMTP_COMPONENT_DELETE_DEFAULT = false;
@@ -326,6 +332,7 @@ public class CamelSmtpSourceConnectorConfig
         conf.define(CAMEL_SOURCE_SMTP_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_SMTP_ENDPOINT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_ENDPOINT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_ENDPOINT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_SMTP_ENDPOINT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SMTP_ENDPOINT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_ENDPOINT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_SMTP_ENDPOINT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_ENDPOINT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_ENDPOINT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_SMTP_ENDPOINT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_ENDPOINT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_ENDPOINT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_SMTP_ENDPOINT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_ENDPOINT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_ENDPOINT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_SMTP_ENDPOINT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_ENDPOINT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_ENDPOINT_HANDLE_FAILED_MESSAGE_DOC);
@@ -384,6 +391,7 @@ public class CamelSmtpSourceConnectorConfig
         conf.define(CAMEL_SOURCE_SMTP_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_SMTP_COMPONENT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_COMPONENT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_COMPONENT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_SMTP_COMPONENT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SMTP_COMPONENT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_COMPONENT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_SMTP_COMPONENT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_COMPONENT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_COMPONENT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_SMTP_COMPONENT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_COMPONENT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_COMPONENT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_SMTP_COMPONENT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_COMPONENT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_COMPONENT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_SMTP_COMPONENT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTP_COMPONENT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTP_COMPONENT_HANDLE_FAILED_MESSAGE_DOC);
diff --git a/connectors/camel-smtps-kafka-connector/src/generated/resources/camel-smtps-source.json b/connectors/camel-smtps-kafka-connector/src/generated/resources/camel-smtps-source.json
index 61ce78e..319bf6f 100644
--- a/connectors/camel-smtps-kafka-connector/src/generated/resources/camel-smtps-source.json
+++ b/connectors/camel-smtps-kafka-connector/src/generated/resources/camel-smtps-source.json
@@ -41,6 +41,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.decodeFilename": {
+			"name": "camel.source.endpoint.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.delete": {
 			"name": "camel.source.endpoint.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
@@ -442,6 +449,13 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.smtps.decodeFilename": {
+			"name": "camel.component.smtps.decodeFilename",
+			"description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+			"defaultValue": "false",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.smtps.delete": {
 			"name": "camel.component.smtps.delete",
 			"description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
diff --git a/connectors/camel-smtps-kafka-connector/src/main/docs/camel-smtps-kafka-source-connector.adoc b/connectors/camel-smtps-kafka-connector/src/main/docs/camel-smtps-kafka-source-connector.adoc
index 7d103e1..4b587de 100644
--- a/connectors/camel-smtps-kafka-connector/src/main/docs/camel-smtps-kafka-source-connector.adoc
+++ b/connectors/camel-smtps-kafka-connector/src/main/docs/camel-smtps-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.smtps.CamelSmtpsSourceConnector
 ----
 
 
-The camel-smtps source connector supports 94 options, which are listed below.
+The camel-smtps source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-smtps source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-smtps source connector supports 94 options, which are listed below.
 | *camel.component.smtps.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.smtps.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.smtps.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.smtps.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.smtps.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.smtps.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.smtps.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/connectors/camel-smtps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/smtps/CamelSmtpsSourceConnectorConfig.java b/connectors/camel-smtps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/smtps/CamelSmtpsSourceConnectorConfig.java
index fc8e217..4e4ffe7 100644
--- a/connectors/camel-smtps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/smtps/CamelSmtpsSourceConnectorConfig.java
+++ b/connectors/camel-smtps-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/smtps/CamelSmtpsSourceConnectorConfig.java
@@ -41,6 +41,9 @@ public class CamelSmtpsSourceConnectorConfig
     public static final String CAMEL_SOURCE_SMTPS_ENDPOINT_COPY_TO_CONF = "camel.source.endpoint.copyTo";
     public static final String CAMEL_SOURCE_SMTPS_ENDPOINT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_SMTPS_ENDPOINT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SMTPS_ENDPOINT_DECODE_FILENAME_CONF = "camel.source.endpoint.decodeFilename";
+    public static final String CAMEL_SOURCE_SMTPS_ENDPOINT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_SMTPS_ENDPOINT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_SMTPS_ENDPOINT_DELETE_CONF = "camel.source.endpoint.delete";
     public static final String CAMEL_SOURCE_SMTPS_ENDPOINT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_SMTPS_ENDPOINT_DELETE_DEFAULT = false;
@@ -215,6 +218,9 @@ public class CamelSmtpsSourceConnectorConfig
     public static final String CAMEL_SOURCE_SMTPS_COMPONENT_COPY_TO_CONF = "camel.component.smtps.copyTo";
     public static final String CAMEL_SOURCE_SMTPS_COMPONENT_COPY_TO_DOC = "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.";
     public static final String CAMEL_SOURCE_SMTPS_COMPONENT_COPY_TO_DEFAULT = null;
+    public static final String CAMEL_SOURCE_SMTPS_COMPONENT_DECODE_FILENAME_CONF = "camel.component.smtps.decodeFilename";
+    public static final String CAMEL_SOURCE_SMTPS_COMPONENT_DECODE_FILENAME_DOC = "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.";
+    public static final Boolean CAMEL_SOURCE_SMTPS_COMPONENT_DECODE_FILENAME_DEFAULT = false;
     public static final String CAMEL_SOURCE_SMTPS_COMPONENT_DELETE_CONF = "camel.component.smtps.delete";
     public static final String CAMEL_SOURCE_SMTPS_COMPONENT_DELETE_DOC = "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.";
     public static final Boolean CAMEL_SOURCE_SMTPS_COMPONENT_DELETE_DEFAULT = false;
@@ -326,6 +332,7 @@ public class CamelSmtpsSourceConnectorConfig
         conf.define(CAMEL_SOURCE_SMTPS_ENDPOINT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_ENDPOINT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_ENDPOINT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_ENDPOINT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_ENDPOINT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_ENDPOINT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_ENDPOINT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SMTPS_ENDPOINT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_ENDPOINT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_SMTPS_ENDPOINT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_ENDPOINT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_ENDPOINT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_ENDPOINT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_ENDPOINT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_ENDPOINT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_ENDPOINT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_ENDPOINT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_ENDPOINT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_ENDPOINT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_ENDPOINT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_ENDPOINT_HANDLE_FAILED_MESSAGE_DOC);
@@ -384,6 +391,7 @@ public class CamelSmtpsSourceConnectorConfig
         conf.define(CAMEL_SOURCE_SMTPS_COMPONENT_BRIDGE_ERROR_HANDLER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_COMPONENT_BRIDGE_ERROR_HANDLER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_COMPONENT_BRIDGE_ERROR_HANDLER_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_COMPONENT_CLOSE_FOLDER_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_COMPONENT_CLOSE_FOLDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_COMPONENT_CLOSE_FOLDER_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_COMPONENT_COPY_TO_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_SMTPS_COMPONENT_COPY_TO_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_COMPONENT_COPY_TO_DOC);
+        conf.define(CAMEL_SOURCE_SMTPS_COMPONENT_DECODE_FILENAME_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_COMPONENT_DECODE_FILENAME_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_COMPONENT_DECODE_FILENAME_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_COMPONENT_DELETE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_COMPONENT_DELETE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_COMPONENT_DELETE_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_COMPONENT_DISCONNECT_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_COMPONENT_DISCONNECT_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_COMPONENT_DISCONNECT_DOC);
         conf.define(CAMEL_SOURCE_SMTPS_COMPONENT_HANDLE_FAILED_MESSAGE_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_SMTPS_COMPONENT_HANDLE_FAILED_MESSAGE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_SMTPS_COMPONENT_HANDLE_FAILED_MESSAGE_DOC);
diff --git a/connectors/camel-vertx-kafka-kafka-connector/src/generated/resources/camel-vertx-kafka-sink.json b/connectors/camel-vertx-kafka-kafka-connector/src/generated/resources/camel-vertx-kafka-sink.json
index 665ffc2..54d308e 100644
--- a/connectors/camel-vertx-kafka-kafka-connector/src/generated/resources/camel-vertx-kafka-sink.json
+++ b/connectors/camel-vertx-kafka-kafka-connector/src/generated/resources/camel-vertx-kafka-sink.json
@@ -86,13 +86,14 @@
 		},
 		"camel.sink.endpoint.metricsRecordingLevel": {
 			"name": "camel.sink.endpoint.metricsRecordingLevel",
-			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG]",
+			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]",
 			"defaultValue": "\"INFO\"",
 			"priority": "MEDIUM",
 			"required": "false",
 			"enum": [
 				"INFO",
-				"DEBUG"
+				"DEBUG",
+				"TRACE"
 			]
 		},
 		"camel.sink.endpoint.metricsSampleWindowMs": {
@@ -150,6 +151,20 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.sink.endpoint.socketConnectionSetupTimeoutMaxMs": {
+			"name": "camel.sink.endpoint.socketConnectionSetupTimeoutMaxMs",
+			"description": "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.",
+			"defaultValue": "127000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.socketConnectionSetupTimeoutMs": {
+			"name": "camel.sink.endpoint.socketConnectionSetupTimeoutMs",
+			"description": "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.",
+			"defaultValue": "10000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.acks": {
 			"name": "camel.sink.endpoint.acks",
 			"description": "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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and  [...]
@@ -221,7 +236,7 @@
 		},
 		"camel.sink.endpoint.maxBlockMs": {
 			"name": "camel.sink.endpoint.maxBlockMs",
-			"description": "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.",
+			"description": "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  [...]
 			"defaultValue": "60000L",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -269,7 +284,7 @@
 		},
 		"camel.sink.endpoint.transactionTimeoutMs": {
 			"name": "camel.sink.endpoint.transactionTimeoutMs",
-			"description": "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.",
+			"description": "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.",
 			"defaultValue": "60000",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -429,7 +444,19 @@
 		},
 		"camel.sink.endpoint.sslKeyPassword": {
 			"name": "camel.sink.endpoint.sslKeyPassword",
-			"description": "The password of the private key in the key store file. This is optional for client.",
+			"description": "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.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.sslKeystoreCertificateChain": {
+			"name": "camel.sink.endpoint.sslKeystoreCertificateChain",
+			"description": "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",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.sink.endpoint.sslKeystoreKey": {
+			"name": "camel.sink.endpoint.sslKeystoreKey",
+			"description": "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'",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -441,7 +468,7 @@
 		},
 		"camel.sink.endpoint.sslKeystorePassword": {
 			"name": "camel.sink.endpoint.sslKeystorePassword",
-			"description": "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -478,6 +505,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.sink.endpoint.sslTruststoreCertificates": {
+			"name": "camel.sink.endpoint.sslTruststoreCertificates",
+			"description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.sink.endpoint.sslTruststoreLocation": {
 			"name": "camel.sink.endpoint.sslTruststoreLocation",
 			"description": "The location of the trust store file.",
@@ -486,7 +519,7 @@
 		},
 		"camel.sink.endpoint.sslTruststorePassword": {
 			"name": "camel.sink.endpoint.sslTruststorePassword",
-			"description": "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.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -574,13 +607,14 @@
 		},
 		"camel.component.vertx-kafka.metricsRecordingLevel": {
 			"name": "camel.component.vertx-kafka.metricsRecordingLevel",
-			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG]",
+			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]",
 			"defaultValue": "\"INFO\"",
 			"priority": "MEDIUM",
 			"required": "false",
 			"enum": [
 				"INFO",
-				"DEBUG"
+				"DEBUG",
+				"TRACE"
 			]
 		},
 		"camel.component.vertx-kafka.metricsSampleWindowMs": {
@@ -638,6 +672,20 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs": {
+			"name": "camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs",
+			"description": "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.",
+			"defaultValue": "127000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.socketConnectionSetupTimeoutMs": {
+			"name": "camel.component.vertx-kafka.socketConnectionSetupTimeoutMs",
+			"description": "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.",
+			"defaultValue": "10000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.vertx-kafka.acks": {
 			"name": "camel.component.vertx-kafka.acks",
 			"description": "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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and  [...]
@@ -709,7 +757,7 @@
 		},
 		"camel.component.vertx-kafka.maxBlockMs": {
 			"name": "camel.component.vertx-kafka.maxBlockMs",
-			"description": "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.",
+			"description": "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  [...]
 			"defaultValue": "60000L",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -757,7 +805,7 @@
 		},
 		"camel.component.vertx-kafka.transactionTimeoutMs": {
 			"name": "camel.component.vertx-kafka.transactionTimeoutMs",
-			"description": "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.",
+			"description": "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.",
 			"defaultValue": "60000",
 			"priority": "MEDIUM",
 			"required": "false"
@@ -929,7 +977,19 @@
 		},
 		"camel.component.vertx-kafka.sslKeyPassword": {
 			"name": "camel.component.vertx-kafka.sslKeyPassword",
-			"description": "The password of the private key in the key store file. This is optional for client.",
+			"description": "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.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.sslKeystoreCertificateChain": {
+			"name": "camel.component.vertx-kafka.sslKeystoreCertificateChain",
+			"description": "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",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.sslKeystoreKey": {
+			"name": "camel.component.vertx-kafka.sslKeystoreKey",
+			"description": "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'",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -941,7 +1001,7 @@
 		},
 		"camel.component.vertx-kafka.sslKeystorePassword": {
 			"name": "camel.component.vertx-kafka.sslKeystorePassword",
-			"description": "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -978,6 +1038,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.vertx-kafka.sslTruststoreCertificates": {
+			"name": "camel.component.vertx-kafka.sslTruststoreCertificates",
+			"description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.vertx-kafka.sslTruststoreLocation": {
 			"name": "camel.component.vertx-kafka.sslTruststoreLocation",
 			"description": "The location of the trust store file.",
@@ -986,7 +1052,7 @@
 		},
 		"camel.component.vertx-kafka.sslTruststorePassword": {
 			"name": "camel.component.vertx-kafka.sslTruststorePassword",
-			"description": "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.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/connectors/camel-vertx-kafka-kafka-connector/src/generated/resources/camel-vertx-kafka-source.json b/connectors/camel-vertx-kafka-kafka-connector/src/generated/resources/camel-vertx-kafka-source.json
index 98bd882..bc45096 100644
--- a/connectors/camel-vertx-kafka-kafka-connector/src/generated/resources/camel-vertx-kafka-source.json
+++ b/connectors/camel-vertx-kafka-kafka-connector/src/generated/resources/camel-vertx-kafka-source.json
@@ -86,13 +86,14 @@
 		},
 		"camel.source.endpoint.metricsRecordingLevel": {
 			"name": "camel.source.endpoint.metricsRecordingLevel",
-			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG]",
+			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]",
 			"defaultValue": "\"INFO\"",
 			"priority": "MEDIUM",
 			"required": "false",
 			"enum": [
 				"INFO",
-				"DEBUG"
+				"DEBUG",
+				"TRACE"
 			]
 		},
 		"camel.source.endpoint.metricsSampleWindowMs": {
@@ -150,6 +151,20 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.socketConnectionSetupTimeoutMaxMs": {
+			"name": "camel.source.endpoint.socketConnectionSetupTimeoutMaxMs",
+			"description": "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.",
+			"defaultValue": "127000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.socketConnectionSetupTimeoutMs": {
+			"name": "camel.source.endpoint.socketConnectionSetupTimeoutMs",
+			"description": "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.",
+			"defaultValue": "10000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.allowAutoCreateTopics": {
 			"name": "camel.source.endpoint.allowAutoCreateTopics",
 			"description": "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",
@@ -498,7 +513,19 @@
 		},
 		"camel.source.endpoint.sslKeyPassword": {
 			"name": "camel.source.endpoint.sslKeyPassword",
-			"description": "The password of the private key in the key store file. This is optional for client.",
+			"description": "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.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.sslKeystoreCertificateChain": {
+			"name": "camel.source.endpoint.sslKeystoreCertificateChain",
+			"description": "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",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.source.endpoint.sslKeystoreKey": {
+			"name": "camel.source.endpoint.sslKeystoreKey",
+			"description": "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'",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -510,7 +537,7 @@
 		},
 		"camel.source.endpoint.sslKeystorePassword": {
 			"name": "camel.source.endpoint.sslKeystorePassword",
-			"description": "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -547,6 +574,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.source.endpoint.sslTruststoreCertificates": {
+			"name": "camel.source.endpoint.sslTruststoreCertificates",
+			"description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.source.endpoint.sslTruststoreLocation": {
 			"name": "camel.source.endpoint.sslTruststoreLocation",
 			"description": "The location of the trust store file.",
@@ -555,7 +588,7 @@
 		},
 		"camel.source.endpoint.sslTruststorePassword": {
 			"name": "camel.source.endpoint.sslTruststorePassword",
-			"description": "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.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -643,13 +676,14 @@
 		},
 		"camel.component.vertx-kafka.metricsRecordingLevel": {
 			"name": "camel.component.vertx-kafka.metricsRecordingLevel",
-			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG]",
+			"description": "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]",
 			"defaultValue": "\"INFO\"",
 			"priority": "MEDIUM",
 			"required": "false",
 			"enum": [
 				"INFO",
-				"DEBUG"
+				"DEBUG",
+				"TRACE"
 			]
 		},
 		"camel.component.vertx-kafka.metricsSampleWindowMs": {
@@ -707,6 +741,20 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs": {
+			"name": "camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs",
+			"description": "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.",
+			"defaultValue": "127000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.socketConnectionSetupTimeoutMs": {
+			"name": "camel.component.vertx-kafka.socketConnectionSetupTimeoutMs",
+			"description": "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.",
+			"defaultValue": "10000L",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.vertx-kafka.allowAutoCreateTopics": {
 			"name": "camel.component.vertx-kafka.allowAutoCreateTopics",
 			"description": "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",
@@ -1050,7 +1098,19 @@
 		},
 		"camel.component.vertx-kafka.sslKeyPassword": {
 			"name": "camel.component.vertx-kafka.sslKeyPassword",
-			"description": "The password of the private key in the key store file. This is optional for client.",
+			"description": "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.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.sslKeystoreCertificateChain": {
+			"name": "camel.component.vertx-kafka.sslKeystoreCertificateChain",
+			"description": "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",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
+		"camel.component.vertx-kafka.sslKeystoreKey": {
+			"name": "camel.component.vertx-kafka.sslKeystoreKey",
+			"description": "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'",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -1062,7 +1122,7 @@
 		},
 		"camel.component.vertx-kafka.sslKeystorePassword": {
 			"name": "camel.component.vertx-kafka.sslKeystorePassword",
-			"description": "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
@@ -1099,6 +1159,12 @@
 			"priority": "MEDIUM",
 			"required": "false"
 		},
+		"camel.component.vertx-kafka.sslTruststoreCertificates": {
+			"name": "camel.component.vertx-kafka.sslTruststoreCertificates",
+			"description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+			"priority": "MEDIUM",
+			"required": "false"
+		},
 		"camel.component.vertx-kafka.sslTruststoreLocation": {
 			"name": "camel.component.vertx-kafka.sslTruststoreLocation",
 			"description": "The location of the trust store file.",
@@ -1107,7 +1173,7 @@
 		},
 		"camel.component.vertx-kafka.sslTruststorePassword": {
 			"name": "camel.component.vertx-kafka.sslTruststorePassword",
-			"description": "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.",
+			"description": "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.",
 			"priority": "MEDIUM",
 			"required": "false"
 		},
diff --git a/connectors/camel-vertx-kafka-kafka-connector/src/main/docs/camel-vertx-kafka-kafka-sink-connector.adoc b/connectors/camel-vertx-kafka-kafka-connector/src/main/docs/camel-vertx-kafka-kafka-sink-connector.adoc
index 350fee3..3c8ab84 100644
--- a/connectors/camel-vertx-kafka-kafka-connector/src/main/docs/camel-vertx-kafka-kafka-sink-connector.adoc
+++ b/connectors/camel-vertx-kafka-kafka-connector/src/main/docs/camel-vertx-kafka-kafka-sink-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.vertxkafka.CamelVertxkafkaSinkCo
 ----
 
 
-The camel-vertx-kafka sink connector supports 144 options, which are listed below.
+The camel-vertx-kafka sink connector supports 154 options, which are listed below.
 
 
 
@@ -40,7 +40,7 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.sink.endpoint.metadataMaxAgeMs* | 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. | 300000L | false | MEDIUM
 | *camel.sink.endpoint.metricReporters* | 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. | null | false | MEDIUM
 | *camel.sink.endpoint.metricsNumSamples* | The number of samples maintained to compute metrics. | 2 | false | MEDIUM
-| *camel.sink.endpoint.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] | "INFO" | false | MEDIUM
+| *camel.sink.endpoint.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE] | "INFO" | false | MEDIUM
 | *camel.sink.endpoint.metricsSampleWindowMs* | The window of time a metrics sample is computed over. | 30000L | false | MEDIUM
 | *camel.sink.endpoint.partitionId* | 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 | null | false | MEDIUM
 | *camel.sink.endpoint.receiveBufferBytes* | 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 | false | MEDIUM
@@ -49,6 +49,8 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.sink.endpoint.requestTimeoutMs* | 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. | 30000 | false | MEDIUM
 | *camel.sink.endpoint.retryBackoffMs* | 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. | 100L | false | MEDIUM
 | *camel.sink.endpoint.sendBufferBytes* | 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 | false | MEDIUM
+| *camel.sink.endpoint.socketConnectionSetupTimeout MaxMs* | 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. | 127000L | false | MEDIUM
+| *camel.sink.endpoint.socketConnectionSetupTimeoutMs* | 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. | 10000L | false | MEDIUM
 | *camel.sink.endpoint.acks* | 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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in thi [...]
 | *camel.sink.endpoint.batchSize* | The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes. No attempt will be made to batch records larger than this size. Requests sent to brokers will contain multiple batches, one for each partition with data available to be sent. A small batch size will ma [...]
 | *camel.sink.endpoint.bufferMemory* | The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will block for max.block.ms after which it will throw an exception.This setting should correspond roughly to the total memory the producer will use, but is not a hard bound since not all memory the producer uses is used for buffering. Some additional memory will be used fo [...]
@@ -58,14 +60,14 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.sink.endpoint.keySerializer* | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | "org.apache.kafka.common.serialization.StringSerializer" | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
 | *camel.sink.endpoint.lingerMs* | 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  [...]
-| *camel.sink.endpoint.maxBlockMs* | 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. | 60000L | false | MEDIUM
+| *camel.sink.endpoint.maxBlockMs* | 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  [...]
 | *camel.sink.endpoint.maxInFlightRequestsPer Connection* | 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 | false | MEDIUM
 | *camel.sink.endpoint.maxRequestSize* | 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 | false | MEDIUM
 | *camel.sink.endpoint.metadataMaxIdleMs* | 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. | 300000L | false | MEDIUM
 | *camel.sink.endpoint.partitionerClass* | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | "org.apache.kafka.clients.producer.internals.DefaultPartitioner" | false | MEDIUM
 | *camel.sink.endpoint.retries* | 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 [...]
 | *camel.sink.endpoint.transactionalId* | 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 Tra [...]
-| *camel.sink.endpoint.transactionTimeoutMs* | 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. | 60000 | false | MEDIUM
+| *camel.sink.endpoint.transactionTimeoutMs* | 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. | 60000 | false | MEDIUM
 | *camel.sink.endpoint.valueSerializer* | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | "org.apache.kafka.common.serialization.StringSerializer" | false | MEDIUM
 | *camel.sink.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
 | *camel.sink.endpoint.saslClientCallbackHandlerClass* | The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface. | null | false | MEDIUM
@@ -89,16 +91,19 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.sink.endpoint.sslEndpointIdentification Algorithm* | The endpoint identification algorithm to validate server hostname using server certificate. | "https" | false | MEDIUM
 | *camel.sink.endpoint.sslEngineFactoryClass* | 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 | null | false | MEDIUM
 | *camel.sink.endpoint.sslKeymanagerAlgorithm* | 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" | false | MEDIUM
-| *camel.sink.endpoint.sslKeyPassword* | The password of the private key in the key store file. This is optional for client. | null | false | MEDIUM
+| *camel.sink.endpoint.sslKeyPassword* | 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. | null | false | MEDIUM
+| *camel.sink.endpoint.sslKeystoreCertificateChain* | 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 | null | false | MEDIUM
+| *camel.sink.endpoint.sslKeystoreKey* | 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' | null | false | MEDIUM
 | *camel.sink.endpoint.sslKeystoreLocation* | The location of the key store file. This is optional for client and can be used for two-way authentication for client. | null | false | MEDIUM
-| *camel.sink.endpoint.sslKeystorePassword* | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. | null | false | MEDIUM
+| *camel.sink.endpoint.sslKeystorePassword* | 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. | null | false | MEDIUM
 | *camel.sink.endpoint.sslKeystoreType* | The file format of the key store file. This is optional for client. | "JKS" | false | MEDIUM
 | *camel.sink.endpoint.sslProtocol* | 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', cl [...]
 | *camel.sink.endpoint.sslProvider* | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. | null | false | MEDIUM
 | *camel.sink.endpoint.sslSecureRandomImplementation* | The SecureRandom PRNG implementation to use for SSL cryptography operations. | null | false | MEDIUM
 | *camel.sink.endpoint.sslTrustmanagerAlgorithm* | 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" | false | MEDIUM
+| *camel.sink.endpoint.sslTruststoreCertificates* | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. | null | false | MEDIUM
 | *camel.sink.endpoint.sslTruststoreLocation* | The location of the trust store file. | null | false | MEDIUM
-| *camel.sink.endpoint.sslTruststorePassword* | 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. | null | false | MEDIUM
+| *camel.sink.endpoint.sslTruststorePassword* | 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. | null | false | MEDIUM
 | *camel.sink.endpoint.sslTruststoreType* | The file format of the trust store file. | "JKS" | false | MEDIUM
 | *camel.component.vertx-kafka.additionalProperties* | Sets additional properties for either kafka consumer or kafka producer in case they can't be set directly on the camel configurations (e.g: new Kafka properties that are not reflected yet in Camel configurations), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro | null | false | MEDIUM
 | *camel.component.vertx-kafka.bootstrapServers* | A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping&mdash;this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,.... Since these servers are just used for the initial connection to discover the full cluster [...]
@@ -111,7 +116,7 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.component.vertx-kafka.metadataMaxAgeMs* | 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. | 300000L | false | MEDIUM
 | *camel.component.vertx-kafka.metricReporters* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.metricsNumSamples* | The number of samples maintained to compute metrics. | 2 | false | MEDIUM
-| *camel.component.vertx-kafka.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] | "INFO" | false | MEDIUM
+| *camel.component.vertx-kafka.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE] | "INFO" | false | MEDIUM
 | *camel.component.vertx-kafka.metricsSampleWindowMs* | The window of time a metrics sample is computed over. | 30000L | false | MEDIUM
 | *camel.component.vertx-kafka.partitionId* | 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 | null | false | MEDIUM
 | *camel.component.vertx-kafka.receiveBufferBytes* | 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 | false | MEDIUM
@@ -120,6 +125,8 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.component.vertx-kafka.requestTimeoutMs* | 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. | 30000 | false | MEDIUM
 | *camel.component.vertx-kafka.retryBackoffMs* | 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. | 100L | false | MEDIUM
 | *camel.component.vertx-kafka.sendBufferBytes* | 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 | false | MEDIUM
+| *camel.component.vertx-kafka.socketConnectionSetup TimeoutMaxMs* | 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. | 127000L | false | MEDIUM
+| *camel.component.vertx-kafka.socketConnectionSetup TimeoutMs* | 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. | 10000L | false | MEDIUM
 | *camel.component.vertx-kafka.acks* | 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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the recor [...]
 | *camel.component.vertx-kafka.batchSize* | The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes. No attempt will be made to batch records larger than this size. Requests sent to brokers will contain multiple batches, one for each partition with data available to be sent. A small batch size [...]
 | *camel.component.vertx-kafka.bufferMemory* | The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will block for max.block.ms after which it will throw an exception.This setting should correspond roughly to the total memory the producer will use, but is not a hard bound since not all memory the producer uses is used for buffering. Some additional memory will be [...]
@@ -129,14 +136,14 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.component.vertx-kafka.keySerializer* | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | "org.apache.kafka.common.serialization.StringSerializer" | false | MEDIUM
 | *camel.component.vertx-kafka.lazyStartProducer* | 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  [...]
 | *camel.component.vertx-kafka.lingerMs* | 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 rec [...]
-| *camel.component.vertx-kafka.maxBlockMs* | 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. | 60000L | false | MEDIUM
+| *camel.component.vertx-kafka.maxBlockMs* | 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 wait [...]
 | *camel.component.vertx-kafka.maxInFlightRequestsPer Connection* | 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 | false | MEDIUM
 | *camel.component.vertx-kafka.maxRequestSize* | 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 | false | MEDIUM
 | *camel.component.vertx-kafka.metadataMaxIdleMs* | 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. | 300000L | false | MEDIUM
 | *camel.component.vertx-kafka.partitionerClass* | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | "org.apache.kafka.clients.producer.internals.DefaultPartitioner" | false | MEDIUM
 | *camel.component.vertx-kafka.retries* | 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 th [...]
 | *camel.component.vertx-kafka.transactionalId* | 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 [...]
-| *camel.component.vertx-kafka.transactionTimeoutMs* | 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. | 60000 | false | MEDIUM
+| *camel.component.vertx-kafka.transactionTimeoutMs* | 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. | 60000 | false | MEDIUM
 | *camel.component.vertx-kafka.valueSerializer* | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | "org.apache.kafka.common.serialization.StringSerializer" | false | MEDIUM
 | *camel.component.vertx-kafka.autowiredEnabled* | 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 | false | MEDIUM
 | *camel.component.vertx-kafka.vertx* | To use an existing vertx instead of creating a new instance | null | false | MEDIUM
@@ -162,16 +169,19 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.component.vertx-kafka.sslEndpoint IdentificationAlgorithm* | The endpoint identification algorithm to validate server hostname using server certificate. | "https" | false | MEDIUM
 | *camel.component.vertx-kafka.sslEngineFactoryClass* | 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 | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeymanagerAlgorithm* | 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" | false | MEDIUM
-| *camel.component.vertx-kafka.sslKeyPassword* | The password of the private key in the key store file. This is optional for client. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeyPassword* | 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. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystoreCertificate Chain* | 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 | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystoreKey* | 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' | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeystoreLocation* | The location of the key store file. This is optional for client and can be used for two-way authentication for client. | null | false | MEDIUM
-| *camel.component.vertx-kafka.sslKeystorePassword* | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystorePassword* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeystoreType* | The file format of the key store file. This is optional for client. | "JKS" | false | MEDIUM
 | *camel.component.vertx-kafka.sslProtocol* | 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.protoc [...]
 | *camel.component.vertx-kafka.sslProvider* | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslSecureRandom Implementation* | The SecureRandom PRNG implementation to use for SSL cryptography operations. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTrustmanager Algorithm* | 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" | false | MEDIUM
+| *camel.component.vertx-kafka.sslTruststore Certificates* | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTruststoreLocation* | The location of the trust store file. | null | false | MEDIUM
-| *camel.component.vertx-kafka.sslTruststorePassword* | 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. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslTruststorePassword* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTruststoreType* | The file format of the trust store file. | "JKS" | false | MEDIUM
 |===
 
@@ -190,8 +200,4 @@ The camel-vertx-kafka sink connector has no transforms out of the box.
 
 
 The camel-vertx-kafka sink connector has no aggregation strategies out of the box.
-
-
-
-
 // kafka-connector options: END
diff --git a/connectors/camel-vertx-kafka-kafka-connector/src/main/docs/camel-vertx-kafka-kafka-source-connector.adoc b/connectors/camel-vertx-kafka-kafka-connector/src/main/docs/camel-vertx-kafka-kafka-source-connector.adoc
index ca8d150..42709ae 100644
--- a/connectors/camel-vertx-kafka-kafka-connector/src/main/docs/camel-vertx-kafka-kafka-source-connector.adoc
+++ b/connectors/camel-vertx-kafka-kafka-connector/src/main/docs/camel-vertx-kafka-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.vertxkafka.CamelVertxkafkaSource
 ----
 
 
-The camel-vertx-kafka source connector supports 160 options, which are listed below.
+The camel-vertx-kafka source connector supports 170 options, which are listed below.
 
 
 
@@ -40,7 +40,7 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.source.endpoint.metadataMaxAgeMs* | 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. | 300000L | false | MEDIUM
 | *camel.source.endpoint.metricReporters* | 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. | null | false | MEDIUM
 | *camel.source.endpoint.metricsNumSamples* | The number of samples maintained to compute metrics. | 2 | false | MEDIUM
-| *camel.source.endpoint.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] | "INFO" | false | MEDIUM
+| *camel.source.endpoint.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE] | "INFO" | false | MEDIUM
 | *camel.source.endpoint.metricsSampleWindowMs* | The window of time a metrics sample is computed over. | 30000L | false | MEDIUM
 | *camel.source.endpoint.partitionId* | 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 | null | false | MEDIUM
 | *camel.source.endpoint.receiveBufferBytes* | 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 | false | MEDIUM
@@ -49,6 +49,8 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.source.endpoint.requestTimeoutMs* | 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. | 30000 | false | MEDIUM
 | *camel.source.endpoint.retryBackoffMs* | 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. | 100L | false | MEDIUM
 | *camel.source.endpoint.sendBufferBytes* | 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 | false | MEDIUM
+| *camel.source.endpoint.socketConnectionSetupTimeout MaxMs* | 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. | 127000L | false | MEDIUM
+| *camel.source.endpoint.socketConnectionSetupTimeout Ms* | 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. | 10000L | false | MEDIUM
 | *camel.source.endpoint.allowAutoCreateTopics* | 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 | false | MEDIUM
 | *camel.source.endpoint.autoCommitIntervalMs* | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5000 | false | MEDIUM
 | *camel.source.endpoint.autoOffsetReset* | 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. One of: [latest] [earliest] [...]
@@ -98,16 +100,19 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.source.endpoint.sslEndpointIdentification Algorithm* | The endpoint identification algorithm to validate server hostname using server certificate. | "https" | false | MEDIUM
 | *camel.source.endpoint.sslEngineFactoryClass* | 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 | null | false | MEDIUM
 | *camel.source.endpoint.sslKeymanagerAlgorithm* | 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" | false | MEDIUM
-| *camel.source.endpoint.sslKeyPassword* | The password of the private key in the key store file. This is optional for client. | null | false | MEDIUM
+| *camel.source.endpoint.sslKeyPassword* | 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. | null | false | MEDIUM
+| *camel.source.endpoint.sslKeystoreCertificateChain* | 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 | null | false | MEDIUM
+| *camel.source.endpoint.sslKeystoreKey* | 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' | null | false | MEDIUM
 | *camel.source.endpoint.sslKeystoreLocation* | The location of the key store file. This is optional for client and can be used for two-way authentication for client. | null | false | MEDIUM
-| *camel.source.endpoint.sslKeystorePassword* | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. | null | false | MEDIUM
+| *camel.source.endpoint.sslKeystorePassword* | 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. | null | false | MEDIUM
 | *camel.source.endpoint.sslKeystoreType* | The file format of the key store file. This is optional for client. | "JKS" | false | MEDIUM
 | *camel.source.endpoint.sslProtocol* | 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',  [...]
 | *camel.source.endpoint.sslProvider* | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. | null | false | MEDIUM
 | *camel.source.endpoint.sslSecureRandom Implementation* | The SecureRandom PRNG implementation to use for SSL cryptography operations. | null | false | MEDIUM
 | *camel.source.endpoint.sslTrustmanagerAlgorithm* | 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" | false | MEDIUM
+| *camel.source.endpoint.sslTruststoreCertificates* | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. | null | false | MEDIUM
 | *camel.source.endpoint.sslTruststoreLocation* | The location of the trust store file. | null | false | MEDIUM
-| *camel.source.endpoint.sslTruststorePassword* | 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. | null | false | MEDIUM
+| *camel.source.endpoint.sslTruststorePassword* | 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. | null | false | MEDIUM
 | *camel.source.endpoint.sslTruststoreType* | The file format of the trust store file. | "JKS" | false | MEDIUM
 | *camel.component.vertx-kafka.additionalProperties* | Sets additional properties for either kafka consumer or kafka producer in case they can't be set directly on the camel configurations (e.g: new Kafka properties that are not reflected yet in Camel configurations), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro | null | false | MEDIUM
 | *camel.component.vertx-kafka.bootstrapServers* | A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping&mdash;this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,.... Since these servers are just used for the initial connection to discover the full cluster [...]
@@ -120,7 +125,7 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.component.vertx-kafka.metadataMaxAgeMs* | 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. | 300000L | false | MEDIUM
 | *camel.component.vertx-kafka.metricReporters* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.metricsNumSamples* | The number of samples maintained to compute metrics. | 2 | false | MEDIUM
-| *camel.component.vertx-kafka.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] | "INFO" | false | MEDIUM
+| *camel.component.vertx-kafka.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE] | "INFO" | false | MEDIUM
 | *camel.component.vertx-kafka.metricsSampleWindowMs* | The window of time a metrics sample is computed over. | 30000L | false | MEDIUM
 | *camel.component.vertx-kafka.partitionId* | 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 | null | false | MEDIUM
 | *camel.component.vertx-kafka.receiveBufferBytes* | 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 | false | MEDIUM
@@ -129,6 +134,8 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.component.vertx-kafka.requestTimeoutMs* | 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. | 30000 | false | MEDIUM
 | *camel.component.vertx-kafka.retryBackoffMs* | 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. | 100L | false | MEDIUM
 | *camel.component.vertx-kafka.sendBufferBytes* | 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 | false | MEDIUM
+| *camel.component.vertx-kafka.socketConnectionSetup TimeoutMaxMs* | 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. | 127000L | false | MEDIUM
+| *camel.component.vertx-kafka.socketConnectionSetup TimeoutMs* | 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. | 10000L | false | MEDIUM
 | *camel.component.vertx-kafka.allowAutoCreateTopics* | 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 | false | MEDIUM
 | *camel.component.vertx-kafka.autoCommitIntervalMs* | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5000 | false | MEDIUM
 | *camel.component.vertx-kafka.autoOffsetReset* | 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. One of: [latest] [ear [...]
@@ -178,16 +185,19 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.component.vertx-kafka.sslEndpoint IdentificationAlgorithm* | The endpoint identification algorithm to validate server hostname using server certificate. | "https" | false | MEDIUM
 | *camel.component.vertx-kafka.sslEngineFactoryClass* | 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 | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeymanagerAlgorithm* | 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" | false | MEDIUM
-| *camel.component.vertx-kafka.sslKeyPassword* | The password of the private key in the key store file. This is optional for client. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeyPassword* | 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. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystoreCertificate Chain* | 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 | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystoreKey* | 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' | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeystoreLocation* | The location of the key store file. This is optional for client and can be used for two-way authentication for client. | null | false | MEDIUM
-| *camel.component.vertx-kafka.sslKeystorePassword* | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystorePassword* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeystoreType* | The file format of the key store file. This is optional for client. | "JKS" | false | MEDIUM
 | *camel.component.vertx-kafka.sslProtocol* | 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.protoc [...]
 | *camel.component.vertx-kafka.sslProvider* | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslSecureRandom Implementation* | The SecureRandom PRNG implementation to use for SSL cryptography operations. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTrustmanager Algorithm* | 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" | false | MEDIUM
+| *camel.component.vertx-kafka.sslTruststore Certificates* | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTruststoreLocation* | The location of the trust store file. | null | false | MEDIUM
-| *camel.component.vertx-kafka.sslTruststorePassword* | 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. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslTruststorePassword* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTruststoreType* | The file format of the trust store file. | "JKS" | false | MEDIUM
 |===
 
diff --git a/connectors/camel-vertx-kafka-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/vertxkafka/CamelVertxkafkaSinkConnectorConfig.java b/connectors/camel-vertx-kafka-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/vertxkafka/CamelVertxkafkaSinkConnectorConfig.java
index 91f5b58..84a293c 100644
--- a/connectors/camel-vertx-kafka-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/vertxkafka/CamelVertxkafkaSinkConnectorConfig.java
+++ b/connectors/camel-vertx-kafka-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/vertxkafka/CamelVertxkafkaSinkConnectorConfig.java
@@ -60,7 +60,7 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_METRICS_NUM_SAMPLES_DOC = "The number of samples maintained to compute metrics.";
     public static final Integer CAMEL_SINK_VERTXKAFKA_ENDPOINT_METRICS_NUM_SAMPLES_DEFAULT = 2;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_METRICS_RECORDING_LEVEL_CONF = "camel.sink.endpoint.metricsRecordingLevel";
-    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_METRICS_RECORDING_LEVEL_DOC = "The highest recording level for metrics. One of: [INFO] [DEBUG]";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_METRICS_RECORDING_LEVEL_DOC = "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_METRICS_RECORDING_LEVEL_DEFAULT = "INFO";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_METRICS_SAMPLE_WINDOW_MS_CONF = "camel.sink.endpoint.metricsSampleWindowMs";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_METRICS_SAMPLE_WINDOW_MS_DOC = "The window of time a metrics sample is computed over.";
@@ -86,6 +86,12 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_CONF = "camel.sink.endpoint.sendBufferBytes";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_DOC = "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.";
     public static final Integer CAMEL_SINK_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_DEFAULT = 131072;
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_CONF = "camel.sink.endpoint.socketConnectionSetupTimeoutMaxMs";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DOC = "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 static final Long CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DEFAULT = 127000L;
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_CONF = "camel.sink.endpoint.socketConnectionSetupTimeoutMs";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DOC = "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 static final Long CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DEFAULT = 10000L;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_ACKS_CONF = "camel.sink.endpoint.acks";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_ACKS_DOC = "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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made tha [...]
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_ACKS_DEFAULT = "1";
@@ -114,7 +120,7 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_LINGER_MS_DOC = "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, rathe [...]
     public static final Long CAMEL_SINK_VERTXKAFKA_ENDPOINT_LINGER_MS_DEFAULT = 0L;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_MAX_BLOCK_MS_CONF = "camel.sink.endpoint.maxBlockMs";
-    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_MAX_BLOCK_MS_DOC = "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.";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_MAX_BLOCK_MS_DOC = "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() th [...]
     public static final Long CAMEL_SINK_VERTXKAFKA_ENDPOINT_MAX_BLOCK_MS_DEFAULT = 60000L;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION_CONF = "camel.sink.endpoint.maxInFlightRequestsPerConnection";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION_DOC = "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).";
@@ -135,7 +141,7 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_TRANSACTIONAL_ID_DOC = "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, enabl [...]
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_TRANSACTIONAL_ID_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_TRANSACTION_TIMEOUT_MS_CONF = "camel.sink.endpoint.transactionTimeoutMs";
-    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_TRANSACTION_TIMEOUT_MS_DOC = "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.";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_TRANSACTION_TIMEOUT_MS_DOC = "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.";
     public static final Integer CAMEL_SINK_VERTXKAFKA_ENDPOINT_TRANSACTION_TIMEOUT_MS_DEFAULT = 60000;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_VALUE_SERIALIZER_CONF = "camel.sink.endpoint.valueSerializer";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_VALUE_SERIALIZER_DOC = "Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface.";
@@ -207,13 +213,19 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_DOC = "The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_DEFAULT = "SunX509";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_CONF = "camel.sink.endpoint.sslKeyPassword";
-    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DOC = "The password of the private key in the key store file. This is optional for client.";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DOC = "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 static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DEFAULT = null;
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_CONF = "camel.sink.endpoint.sslKeystoreCertificateChain";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DOC = "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 static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DEFAULT = null;
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_CONF = "camel.sink.endpoint.sslKeystoreKey";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_DOC = "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 static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_CONF = "camel.sink.endpoint.sslKeystoreLocation";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_DOC = "The location of the key store file. This is optional for client and can be used for two-way authentication for client.";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_CONF = "camel.sink.endpoint.sslKeystorePassword";
-    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DOC = "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DOC = "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.";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_CONF = "camel.sink.endpoint.sslKeystoreType";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_DOC = "The file format of the key store file. This is optional for client.";
@@ -230,11 +242,14 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_CONF = "camel.sink.endpoint.sslTrustmanagerAlgorithm";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_DOC = "The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_DEFAULT = "PKIX";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_CONF = "camel.sink.endpoint.sslTruststoreCertificates";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_DOC = "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_CONF = "camel.sink.endpoint.sslTruststoreLocation";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_DOC = "The location of the trust store file.";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_CONF = "camel.sink.endpoint.sslTruststorePassword";
-    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DOC = "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.";
+    public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DOC = "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 static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_CONF = "camel.sink.endpoint.sslTruststoreType";
     public static final String CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_DOC = "The file format of the trust store file.";
@@ -273,7 +288,7 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_METRICS_NUM_SAMPLES_DOC = "The number of samples maintained to compute metrics.";
     public static final Integer CAMEL_SINK_VERTXKAFKA_COMPONENT_METRICS_NUM_SAMPLES_DEFAULT = 2;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_METRICS_RECORDING_LEVEL_CONF = "camel.component.vertx-kafka.metricsRecordingLevel";
-    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_METRICS_RECORDING_LEVEL_DOC = "The highest recording level for metrics. One of: [INFO] [DEBUG]";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_METRICS_RECORDING_LEVEL_DOC = "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_METRICS_RECORDING_LEVEL_DEFAULT = "INFO";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_METRICS_SAMPLE_WINDOW_MS_CONF = "camel.component.vertx-kafka.metricsSampleWindowMs";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_METRICS_SAMPLE_WINDOW_MS_DOC = "The window of time a metrics sample is computed over.";
@@ -299,6 +314,12 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_CONF = "camel.component.vertx-kafka.sendBufferBytes";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_DOC = "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.";
     public static final Integer CAMEL_SINK_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_DEFAULT = 131072;
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_CONF = "camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DOC = "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 static final Long CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DEFAULT = 127000L;
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_CONF = "camel.component.vertx-kafka.socketConnectionSetupTimeoutMs";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DOC = "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 static final Long CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DEFAULT = 10000L;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_ACKS_CONF = "camel.component.vertx-kafka.acks";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_ACKS_DOC = "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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made th [...]
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_ACKS_DEFAULT = "1";
@@ -327,7 +348,7 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_LINGER_MS_DOC = "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, rath [...]
     public static final Long CAMEL_SINK_VERTXKAFKA_COMPONENT_LINGER_MS_DEFAULT = 0L;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_MAX_BLOCK_MS_CONF = "camel.component.vertx-kafka.maxBlockMs";
-    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_MAX_BLOCK_MS_DOC = "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.";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_MAX_BLOCK_MS_DOC = "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() t [...]
     public static final Long CAMEL_SINK_VERTXKAFKA_COMPONENT_MAX_BLOCK_MS_DEFAULT = 60000L;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION_CONF = "camel.component.vertx-kafka.maxInFlightRequestsPerConnection";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION_DOC = "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).";
@@ -348,7 +369,7 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_TRANSACTIONAL_ID_DOC = "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, enab [...]
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_TRANSACTIONAL_ID_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_TRANSACTION_TIMEOUT_MS_CONF = "camel.component.vertx-kafka.transactionTimeoutMs";
-    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_TRANSACTION_TIMEOUT_MS_DOC = "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.";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_TRANSACTION_TIMEOUT_MS_DOC = "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.";
     public static final Integer CAMEL_SINK_VERTXKAFKA_COMPONENT_TRANSACTION_TIMEOUT_MS_DEFAULT = 60000;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_VALUE_SERIALIZER_CONF = "camel.component.vertx-kafka.valueSerializer";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_VALUE_SERIALIZER_DOC = "Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface.";
@@ -426,13 +447,19 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_DOC = "The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_DEFAULT = "SunX509";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_CONF = "camel.component.vertx-kafka.sslKeyPassword";
-    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DOC = "The password of the private key in the key store file. This is optional for client.";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DOC = "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 static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DEFAULT = null;
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_CONF = "camel.component.vertx-kafka.sslKeystoreCertificateChain";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DOC = "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 static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DEFAULT = null;
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_CONF = "camel.component.vertx-kafka.sslKeystoreKey";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_DOC = "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 static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_CONF = "camel.component.vertx-kafka.sslKeystoreLocation";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_DOC = "The location of the key store file. This is optional for client and can be used for two-way authentication for client.";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_CONF = "camel.component.vertx-kafka.sslKeystorePassword";
-    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DOC = "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DOC = "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.";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_CONF = "camel.component.vertx-kafka.sslKeystoreType";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_DOC = "The file format of the key store file. This is optional for client.";
@@ -449,11 +476,14 @@ public class CamelVertxkafkaSinkConnectorConfig
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_CONF = "camel.component.vertx-kafka.sslTrustmanagerAlgorithm";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_DOC = "The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_DEFAULT = "PKIX";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_CONF = "camel.component.vertx-kafka.sslTruststoreCertificates";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_DOC = "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_CONF = "camel.component.vertx-kafka.sslTruststoreLocation";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_DOC = "The location of the trust store file.";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_CONF = "camel.component.vertx-kafka.sslTruststorePassword";
-    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DOC = "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.";
+    public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DOC = "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 static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DEFAULT = null;
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_CONF = "camel.component.vertx-kafka.sslTruststoreType";
     public static final String CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_DOC = "The file format of the trust store file.";
@@ -491,6 +521,8 @@ public class CamelVertxkafkaSinkConnectorConfig
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_REQUEST_TIMEOUT_MS_CONF, ConfigDef.Type.INT, CAMEL_SINK_VERTXKAFKA_ENDPOINT_REQUEST_TIMEOUT_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_REQUEST_TIMEOUT_MS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_RETRY_BACKOFF_MS_CONF, ConfigDef.Type.LONG, CAMEL_SINK_VERTXKAFKA_ENDPOINT_RETRY_BACKOFF_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_RETRY_BACKOFF_MS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_CONF, ConfigDef.Type.INT, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_CONF, ConfigDef.Type.LONG, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_CONF, ConfigDef.Type.LONG, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_ACKS_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_ACKS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_ACKS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_BATCH_SIZE_CONF, ConfigDef.Type.INT, CAMEL_SINK_VERTXKAFKA_ENDPOINT_BATCH_SIZE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_BATCH_SIZE_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_BUFFER_MEMORY_CONF, ConfigDef.Type.LONG, CAMEL_SINK_VERTXKAFKA_ENDPOINT_BUFFER_MEMORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_BUFFER_MEMORY_DOC);
@@ -532,6 +564,8 @@ public class CamelVertxkafkaSinkConnectorConfig
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_ENGINE_FACTORY_CLASS_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_ENGINE_FACTORY_CLASS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_ENGINE_FACTORY_CLASS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_DOC);
@@ -539,6 +573,7 @@ public class CamelVertxkafkaSinkConnectorConfig
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_PROVIDER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_PROVIDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_PROVIDER_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_SECURE_RANDOM_IMPLEMENTATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_SECURE_RANDOM_IMPLEMENTATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_SECURE_RANDOM_IMPLEMENTATION_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_DOC);
@@ -562,6 +597,8 @@ public class CamelVertxkafkaSinkConnectorConfig
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_REQUEST_TIMEOUT_MS_CONF, ConfigDef.Type.INT, CAMEL_SINK_VERTXKAFKA_COMPONENT_REQUEST_TIMEOUT_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_REQUEST_TIMEOUT_MS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_RETRY_BACKOFF_MS_CONF, ConfigDef.Type.LONG, CAMEL_SINK_VERTXKAFKA_COMPONENT_RETRY_BACKOFF_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_RETRY_BACKOFF_MS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_CONF, ConfigDef.Type.INT, CAMEL_SINK_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_CONF, ConfigDef.Type.LONG, CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_CONF, ConfigDef.Type.LONG, CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_ACKS_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_ACKS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_ACKS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_BATCH_SIZE_CONF, ConfigDef.Type.INT, CAMEL_SINK_VERTXKAFKA_COMPONENT_BATCH_SIZE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_BATCH_SIZE_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_BUFFER_MEMORY_CONF, ConfigDef.Type.LONG, CAMEL_SINK_VERTXKAFKA_COMPONENT_BUFFER_MEMORY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_BUFFER_MEMORY_DOC);
@@ -605,6 +642,8 @@ public class CamelVertxkafkaSinkConnectorConfig
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_ENGINE_FACTORY_CLASS_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_ENGINE_FACTORY_CLASS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_ENGINE_FACTORY_CLASS_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_DOC);
@@ -612,6 +651,7 @@ public class CamelVertxkafkaSinkConnectorConfig
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_PROVIDER_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_PROVIDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_PROVIDER_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_SECURE_RANDOM_IMPLEMENTATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_SECURE_RANDOM_IMPLEMENTATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_SECURE_RANDOM_IMPLEMENTATION_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_DOC);
+        conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DOC);
         conf.define(CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SINK_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_DOC);
diff --git a/connectors/camel-vertx-kafka-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/vertxkafka/CamelVertxkafkaSourceConnectorConfig.java b/connectors/camel-vertx-kafka-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/vertxkafka/CamelVertxkafkaSourceConnectorConfig.java
index 9bc8fc2..75f72fe 100644
--- a/connectors/camel-vertx-kafka-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/vertxkafka/CamelVertxkafkaSourceConnectorConfig.java
+++ b/connectors/camel-vertx-kafka-kafka-connector/src/main/java/org/apache/camel/kafkaconnector/vertxkafka/CamelVertxkafkaSourceConnectorConfig.java
@@ -60,7 +60,7 @@ public class CamelVertxkafkaSourceConnectorConfig
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_METRICS_NUM_SAMPLES_DOC = "The number of samples maintained to compute metrics.";
     public static final Integer CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_METRICS_NUM_SAMPLES_DEFAULT = 2;
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_METRICS_RECORDING_LEVEL_CONF = "camel.source.endpoint.metricsRecordingLevel";
-    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_METRICS_RECORDING_LEVEL_DOC = "The highest recording level for metrics. One of: [INFO] [DEBUG]";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_METRICS_RECORDING_LEVEL_DOC = "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_METRICS_RECORDING_LEVEL_DEFAULT = "INFO";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_METRICS_SAMPLE_WINDOW_MS_CONF = "camel.source.endpoint.metricsSampleWindowMs";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_METRICS_SAMPLE_WINDOW_MS_DOC = "The window of time a metrics sample is computed over.";
@@ -86,6 +86,12 @@ public class CamelVertxkafkaSourceConnectorConfig
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_CONF = "camel.source.endpoint.sendBufferBytes";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_DOC = "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.";
     public static final Integer CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_DEFAULT = 131072;
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_CONF = "camel.source.endpoint.socketConnectionSetupTimeoutMaxMs";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DOC = "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 static final Long CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DEFAULT = 127000L;
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_CONF = "camel.source.endpoint.socketConnectionSetupTimeoutMs";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DOC = "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 static final Long CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DEFAULT = 10000L;
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_ALLOW_AUTO_CREATE_TOPICS_CONF = "camel.source.endpoint.allowAutoCreateTopics";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_ALLOW_AUTO_CREATE_TOPICS_DOC = "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";
     public static final Boolean CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_ALLOW_AUTO_CREATE_TOPICS_DEFAULT = true;
@@ -234,13 +240,19 @@ public class CamelVertxkafkaSourceConnectorConfig
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_DOC = "The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_DEFAULT = "SunX509";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_CONF = "camel.source.endpoint.sslKeyPassword";
-    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DOC = "The password of the private key in the key store file. This is optional for client.";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DOC = "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 static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DEFAULT = null;
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_CONF = "camel.source.endpoint.sslKeystoreCertificateChain";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DOC = "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 static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DEFAULT = null;
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_CONF = "camel.source.endpoint.sslKeystoreKey";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_DOC = "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 static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_CONF = "camel.source.endpoint.sslKeystoreLocation";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_DOC = "The location of the key store file. This is optional for client and can be used for two-way authentication for client.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_CONF = "camel.source.endpoint.sslKeystorePassword";
-    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DOC = "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DOC = "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.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_CONF = "camel.source.endpoint.sslKeystoreType";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_DOC = "The file format of the key store file. This is optional for client.";
@@ -257,11 +269,14 @@ public class CamelVertxkafkaSourceConnectorConfig
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_CONF = "camel.source.endpoint.sslTrustmanagerAlgorithm";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_DOC = "The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_DEFAULT = "PKIX";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_CONF = "camel.source.endpoint.sslTruststoreCertificates";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_DOC = "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_CONF = "camel.source.endpoint.sslTruststoreLocation";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_DOC = "The location of the trust store file.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_CONF = "camel.source.endpoint.sslTruststorePassword";
-    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DOC = "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.";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DOC = "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 static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_CONF = "camel.source.endpoint.sslTruststoreType";
     public static final String CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_DOC = "The file format of the trust store file.";
@@ -300,7 +315,7 @@ public class CamelVertxkafkaSourceConnectorConfig
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_METRICS_NUM_SAMPLES_DOC = "The number of samples maintained to compute metrics.";
     public static final Integer CAMEL_SOURCE_VERTXKAFKA_COMPONENT_METRICS_NUM_SAMPLES_DEFAULT = 2;
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_METRICS_RECORDING_LEVEL_CONF = "camel.component.vertx-kafka.metricsRecordingLevel";
-    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_METRICS_RECORDING_LEVEL_DOC = "The highest recording level for metrics. One of: [INFO] [DEBUG]";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_METRICS_RECORDING_LEVEL_DOC = "The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE]";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_METRICS_RECORDING_LEVEL_DEFAULT = "INFO";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_METRICS_SAMPLE_WINDOW_MS_CONF = "camel.component.vertx-kafka.metricsSampleWindowMs";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_METRICS_SAMPLE_WINDOW_MS_DOC = "The window of time a metrics sample is computed over.";
@@ -326,6 +341,12 @@ public class CamelVertxkafkaSourceConnectorConfig
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_CONF = "camel.component.vertx-kafka.sendBufferBytes";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_DOC = "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.";
     public static final Integer CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_DEFAULT = 131072;
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_CONF = "camel.component.vertx-kafka.socketConnectionSetupTimeoutMaxMs";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DOC = "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 static final Long CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DEFAULT = 127000L;
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_CONF = "camel.component.vertx-kafka.socketConnectionSetupTimeoutMs";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DOC = "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 static final Long CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DEFAULT = 10000L;
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_ALLOW_AUTO_CREATE_TOPICS_CONF = "camel.component.vertx-kafka.allowAutoCreateTopics";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_ALLOW_AUTO_CREATE_TOPICS_DOC = "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";
     public static final Boolean CAMEL_SOURCE_VERTXKAFKA_COMPONENT_ALLOW_AUTO_CREATE_TOPICS_DEFAULT = true;
@@ -474,13 +495,19 @@ public class CamelVertxkafkaSourceConnectorConfig
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_DOC = "The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_DEFAULT = "SunX509";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_CONF = "camel.component.vertx-kafka.sslKeyPassword";
-    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DOC = "The password of the private key in the key store file. This is optional for client.";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DOC = "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 static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DEFAULT = null;
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_CONF = "camel.component.vertx-kafka.sslKeystoreCertificateChain";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DOC = "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 static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DEFAULT = null;
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_CONF = "camel.component.vertx-kafka.sslKeystoreKey";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_DOC = "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 static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_CONF = "camel.component.vertx-kafka.sslKeystoreLocation";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_DOC = "The location of the key store file. This is optional for client and can be used for two-way authentication for client.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_CONF = "camel.component.vertx-kafka.sslKeystorePassword";
-    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DOC = "The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured.";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DOC = "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.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_CONF = "camel.component.vertx-kafka.sslKeystoreType";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_DOC = "The file format of the key store file. This is optional for client.";
@@ -497,11 +524,14 @@ public class CamelVertxkafkaSourceConnectorConfig
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_CONF = "camel.component.vertx-kafka.sslTrustmanagerAlgorithm";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_DOC = "The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_DEFAULT = "PKIX";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_CONF = "camel.component.vertx-kafka.sslTruststoreCertificates";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_DOC = "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_CONF = "camel.component.vertx-kafka.sslTruststoreLocation";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_DOC = "The location of the trust store file.";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_CONF = "camel.component.vertx-kafka.sslTruststorePassword";
-    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DOC = "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.";
+    public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DOC = "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 static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DEFAULT = null;
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_CONF = "camel.component.vertx-kafka.sslTruststoreType";
     public static final String CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_DOC = "The file format of the trust store file.";
@@ -539,6 +569,8 @@ public class CamelVertxkafkaSourceConnectorConfig
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_REQUEST_TIMEOUT_MS_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_REQUEST_TIMEOUT_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_REQUEST_TIMEOUT_MS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_RETRY_BACKOFF_MS_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_RETRY_BACKOFF_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_RETRY_BACKOFF_MS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SEND_BUFFER_BYTES_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_ALLOW_AUTO_CREATE_TOPICS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_ALLOW_AUTO_CREATE_TOPICS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_ALLOW_AUTO_CREATE_TOPICS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_AUTO_COMMIT_INTERVAL_MS_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_AUTO_COMMIT_INTERVAL_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_AUTO_COMMIT_INTERVAL_MS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_AUTO_OFFSET_RESET_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_AUTO_OFFSET_RESET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_AUTO_OFFSET_RESET_DOC);
@@ -589,6 +621,8 @@ public class CamelVertxkafkaSourceConnectorConfig
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_ENGINE_FACTORY_CLASS_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_ENGINE_FACTORY_CLASS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_ENGINE_FACTORY_CLASS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYMANAGER_ALGORITHM_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEY_PASSWORD_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_KEY_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_LOCATION_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_PASSWORD_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_KEYSTORE_TYPE_DOC);
@@ -596,6 +630,7 @@ public class CamelVertxkafkaSourceConnectorConfig
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_PROVIDER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_PROVIDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_PROVIDER_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_SECURE_RANDOM_IMPLEMENTATION_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_SECURE_RANDOM_IMPLEMENTATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_SECURE_RANDOM_IMPLEMENTATION_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTMANAGER_ALGORITHM_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_CERTIFICATES_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_LOCATION_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_PASSWORD_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_ENDPOINT_SSL_TRUSTSTORE_TYPE_DOC);
@@ -619,6 +654,8 @@ public class CamelVertxkafkaSourceConnectorConfig
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_REQUEST_TIMEOUT_MS_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_REQUEST_TIMEOUT_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_REQUEST_TIMEOUT_MS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_RETRY_BACKOFF_MS_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_RETRY_BACKOFF_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_RETRY_BACKOFF_MS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SEND_BUFFER_BYTES_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MAX_MS_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_CONF, ConfigDef.Type.LONG, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SOCKET_CONNECTION_SETUP_TIMEOUT_MS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_ALLOW_AUTO_CREATE_TOPICS_CONF, ConfigDef.Type.BOOLEAN, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_ALLOW_AUTO_CREATE_TOPICS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_ALLOW_AUTO_CREATE_TOPICS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_AUTO_COMMIT_INTERVAL_MS_CONF, ConfigDef.Type.INT, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_AUTO_COMMIT_INTERVAL_MS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_AUTO_COMMIT_INTERVAL_MS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_AUTO_OFFSET_RESET_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_AUTO_OFFSET_RESET_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_AUTO_OFFSET_RESET_DOC);
@@ -669,6 +706,8 @@ public class CamelVertxkafkaSourceConnectorConfig
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_ENGINE_FACTORY_CLASS_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_ENGINE_FACTORY_CLASS_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_ENGINE_FACTORY_CLASS_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYMANAGER_ALGORITHM_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEY_PASSWORD_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_CERTIFICATE_CHAIN_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_KEY_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_LOCATION_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_PASSWORD_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_KEYSTORE_TYPE_DOC);
@@ -676,6 +715,7 @@ public class CamelVertxkafkaSourceConnectorConfig
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_PROVIDER_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_PROVIDER_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_PROVIDER_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_SECURE_RANDOM_IMPLEMENTATION_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_SECURE_RANDOM_IMPLEMENTATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_SECURE_RANDOM_IMPLEMENTATION_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTMANAGER_ALGORITHM_DOC);
+        conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_CERTIFICATES_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_LOCATION_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_PASSWORD_DOC);
         conf.define(CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_CONF, ConfigDef.Type.STRING, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_DEFAULT, ConfigDef.Importance.MEDIUM, CAMEL_SOURCE_VERTXKAFKA_COMPONENT_SSL_TRUSTSTORE_TYPE_DOC);
diff --git a/docs/modules/ROOT/pages/connectors/camel-aws2-iam-kafka-sink-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-aws2-iam-kafka-sink-connector.adoc
index 2478c9a..4ac9c8c 100644
--- a/docs/modules/ROOT/pages/connectors/camel-aws2-iam-kafka-sink-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-aws2-iam-kafka-sink-connector.adoc
@@ -32,7 +32,7 @@ The camel-aws2-iam sink connector supports 26 options, which are listed below.
 | *camel.sink.path.label* | Logical name | null | true | HIGH
 | *camel.sink.endpoint.iamClient* | To use a existing configured AWS IAM as client | null | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
-| *camel.sink.endpoint.operation* | The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup] | null | true | HIGH
+| *camel.sink.endpoint.operation* | The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup] | null | false | MEDIUM
 | *camel.sink.endpoint.pojoRequest* | If we want to use a POJO request as body or not | false | false | MEDIUM
 | *camel.sink.endpoint.proxyHost* | To define a proxy host when instantiating the IAM client | null | false | MEDIUM
 | *camel.sink.endpoint.proxyPort* | To define a proxy port when instantiating the IAM client | null | false | MEDIUM
@@ -45,7 +45,7 @@ The camel-aws2-iam sink connector supports 26 options, which are listed below.
 | *camel.component.aws2-iam.configuration* | Component configuration | null | false | MEDIUM
 | *camel.component.aws2-iam.iamClient* | To use a existing configured AWS IAM as client | null | false | MEDIUM
 | *camel.component.aws2-iam.lazyStartProducer* | 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 the [...]
-| *camel.component.aws2-iam.operation* | The operation to perform One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup] | null | true | HIGH
+| *camel.component.aws2-iam.operation* | The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation. One of: [listAccessKeys] [createUser] [deleteUser] [getUser] [listUsers] [createAccessKey] [deleteAccessKey] [updateAccessKey] [createGroup] [deleteGroup] [listGroups] [addUserToGroup] [removeUserFromGroup] | null | false | MEDIUM
 | *camel.component.aws2-iam.pojoRequest* | If we want to use a POJO request as body or not | false | false | MEDIUM
 | *camel.component.aws2-iam.proxyHost* | To define a proxy host when instantiating the IAM client | null | false | MEDIUM
 | *camel.component.aws2-iam.proxyPort* | To define a proxy port when instantiating the IAM client | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-aws2-sns-kafka-sink-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-aws2-sns-kafka-sink-connector.adoc
index 57ab430..715de44 100644
--- a/docs/modules/ROOT/pages/connectors/camel-aws2-sns-kafka-sink-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-aws2-sns-kafka-sink-connector.adoc
@@ -38,7 +38,7 @@ The camel-aws2-sns sink connector supports 45 options, which are listed below.
 | *camel.sink.endpoint.messageDeduplicationIdStrategy* | Only for FIFO Topic. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message. One of: [useExchangeId] [useContentBasedDeduplication] | "useExchangeId" | false | MEDIUM
 | *camel.sink.endpoint.messageGroupIdStrategy* | Only for FIFO Topic. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used. One of: [useConstant] [useExchangeId] [usePropertyValue] | null | false | MEDIUM
 | *camel.sink.endpoint.messageStructure* | The message structure to use such as json | null | false | MEDIUM
-| *camel.sink.endpoint.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.sink.endpoint.policy* | The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.sink.endpoint.proxyHost* | To define a proxy host when instantiating the SNS client | null | false | MEDIUM
 | *camel.sink.endpoint.proxyPort* | To define a proxy port when instantiating the SNS client | null | false | MEDIUM
 | *camel.sink.endpoint.proxyProtocol* | To define a proxy protocol when instantiating the SNS client One of: [HTTP] [HTTPS] | "HTTPS" | false | MEDIUM
@@ -60,7 +60,7 @@ The camel-aws2-sns sink connector supports 45 options, which are listed below.
 | *camel.component.aws2-sns.messageDeduplicationId Strategy* | Only for FIFO Topic. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message. One of: [useExchangeId] [useContentBasedDeduplication] | "useExchangeId" | false | MEDIUM
 | *camel.component.aws2-sns.messageGroupIdStrategy* | Only for FIFO Topic. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used. One of: [useConstant] [useExchangeId] [usePropertyValue] | null | false | MEDIUM
 | *camel.component.aws2-sns.messageStructure* | The message structure to use such as json | null | false | MEDIUM
-| *camel.component.aws2-sns.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.component.aws2-sns.policy* | The policy for this queue. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.component.aws2-sns.proxyHost* | To define a proxy host when instantiating the SNS client | null | false | MEDIUM
 | *camel.component.aws2-sns.proxyPort* | To define a proxy port when instantiating the SNS client | null | false | MEDIUM
 | *camel.component.aws2-sns.proxyProtocol* | To define a proxy protocol when instantiating the SNS client One of: [HTTP] [HTTPS] | "HTTPS" | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-aws2-sqs-kafka-sink-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-aws2-sqs-kafka-sink-connector.adoc
index 636d972..f72c9a3 100644
--- a/docs/modules/ROOT/pages/connectors/camel-aws2-sqs-kafka-sink-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-aws2-sqs-kafka-sink-connector.adoc
@@ -52,7 +52,7 @@ The camel-aws2-sqs sink connector supports 55 options, which are listed below.
 | *camel.sink.endpoint.proxyPort* | To define a proxy port when instantiating the SQS client | null | false | MEDIUM
 | *camel.sink.endpoint.maximumMessageSize* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. | null | false | MEDIUM
 | *camel.sink.endpoint.messageRetentionPeriod* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. | null | false | MEDIUM
-| *camel.sink.endpoint.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.sink.endpoint.policy* | The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.sink.endpoint.receiveMessageWaitTimeSeconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. | null | false | MEDIUM
 | *camel.sink.endpoint.redrivePolicy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. | null | false | MEDIUM
 | *camel.sink.endpoint.accessKey* | Amazon AWS Access Key | null | false | MEDIUM
@@ -79,7 +79,7 @@ The camel-aws2-sqs sink connector supports 55 options, which are listed below.
 | *camel.component.aws2-sqs.proxyPort* | To define a proxy port when instantiating the SQS client | null | false | MEDIUM
 | *camel.component.aws2-sqs.maximumMessageSize* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. | null | false | MEDIUM
 | *camel.component.aws2-sqs.messageRetentionPeriod* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. | null | false | MEDIUM
-| *camel.component.aws2-sqs.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.component.aws2-sqs.policy* | The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.component.aws2-sqs.receiveMessageWaitTime Seconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. | null | false | MEDIUM
 | *camel.component.aws2-sqs.redrivePolicy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. | null | false | MEDIUM
 | *camel.component.aws2-sqs.accessKey* | Amazon AWS Access Key | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-aws2-sqs-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-aws2-sqs-kafka-source-connector.adoc
index f078343..8abc4ce 100644
--- a/docs/modules/ROOT/pages/connectors/camel-aws2-sqs-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-aws2-sqs-kafka-source-connector.adoc
@@ -65,7 +65,7 @@ The camel-aws2-sqs source connector supports 90 options, which are listed below.
 | *camel.source.endpoint.proxyPort* | To define a proxy port when instantiating the SQS client | null | false | MEDIUM
 | *camel.source.endpoint.maximumMessageSize* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. | null | false | MEDIUM
 | *camel.source.endpoint.messageRetentionPeriod* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. | null | false | MEDIUM
-| *camel.source.endpoint.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.source.endpoint.policy* | The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.source.endpoint.receiveMessageWaitTime Seconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. | null | false | MEDIUM
 | *camel.source.endpoint.redrivePolicy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. | null | false | MEDIUM
 | *camel.source.endpoint.backoffErrorThreshold* | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. | null | false | MEDIUM
@@ -114,7 +114,7 @@ The camel-aws2-sqs source connector supports 90 options, which are listed below.
 | *camel.component.aws2-sqs.proxyPort* | To define a proxy port when instantiating the SQS client | null | false | MEDIUM
 | *camel.component.aws2-sqs.maximumMessageSize* | The maximumMessageSize (in bytes) an SQS message can contain for this queue. | null | false | MEDIUM
 | *camel.component.aws2-sqs.messageRetentionPeriod* | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. | null | false | MEDIUM
-| *camel.component.aws2-sqs.policy* | The policy for this queue | null | false | MEDIUM
+| *camel.component.aws2-sqs.policy* | The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems. | null | false | MEDIUM
 | *camel.component.aws2-sqs.receiveMessageWaitTime Seconds* | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. | null | false | MEDIUM
 | *camel.component.aws2-sqs.redrivePolicy* | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. | null | false | MEDIUM
 | *camel.component.aws2-sqs.accessKey* | Amazon AWS Access Key | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-file-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-file-kafka-source-connector.adoc
index 75a0328..3add636 100644
--- a/docs/modules/ROOT/pages/connectors/camel-file-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-file-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.file.CamelFileSourceConnector
 ----
 
 
-The camel-file source connector supports 79 options, which are listed below.
+The camel-file source connector supports 81 options, which are listed below.
 
 
 
@@ -63,6 +63,7 @@ The camel-file source connector supports 79 options, which are listed below.
 | *camel.source.endpoint.antInclude* | Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format. | null | false | MEDIUM
 | *camel.source.endpoint.eagerMaxMessagesPerPoll* | Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. | true | false | MEDIUM
 | *camel.source.endpoint.exclude* | Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.excludeExt* | Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat. | null | false | MEDIUM
 | *camel.source.endpoint.filter* | Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method. | null | false | MEDIUM
 | *camel.source.endpoint.filterDirectory* | Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd} | null | false | MEDIUM
 | *camel.source.endpoint.filterFile* | Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000 | null | false | MEDIUM
@@ -70,6 +71,7 @@ The camel-file source connector supports 79 options, which are listed below.
 | *camel.source.endpoint.idempotentKey* | To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size} | null | false | MEDIUM
 | *camel.source.endpoint.idempotentRepository* | A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true. | null | false | MEDIUM
 | *camel.source.endpoint.include* | Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.includeExt* | Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml | null | false | MEDIUM
 | *camel.source.endpoint.maxDepth* | The maximum depth to traverse when recursively processing a directory. | 2147483647 | false | MEDIUM
 | *camel.source.endpoint.maxMessagesPerPoll* | To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picke [...]
 | *camel.source.endpoint.minDepth* | The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-ftp-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-ftp-kafka-source-connector.adoc
index 5f23db8..526626a 100644
--- a/docs/modules/ROOT/pages/connectors/camel-ftp-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-ftp-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.ftp.CamelFtpSourceConnector
 ----
 
 
-The camel-ftp source connector supports 100 options, which are listed below.
+The camel-ftp source connector supports 102 options, which are listed below.
 
 
 
@@ -85,6 +85,7 @@ The camel-ftp source connector supports 100 options, which are listed below.
 | *camel.source.endpoint.antInclude* | Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format. | null | false | MEDIUM
 | *camel.source.endpoint.eagerMaxMessagesPerPoll* | Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. | true | false | MEDIUM
 | *camel.source.endpoint.exclude* | Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.excludeExt* | Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat. | null | false | MEDIUM
 | *camel.source.endpoint.filter* | Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method. | null | false | MEDIUM
 | *camel.source.endpoint.filterDirectory* | Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd} | null | false | MEDIUM
 | *camel.source.endpoint.filterFile* | Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000 | null | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-ftp source connector supports 100 options, which are listed below.
 | *camel.source.endpoint.idempotentKey* | To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size} | null | false | MEDIUM
 | *camel.source.endpoint.idempotentRepository* | A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true. | null | false | MEDIUM
 | *camel.source.endpoint.include* | Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.includeExt* | Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml | null | false | MEDIUM
 | *camel.source.endpoint.maxDepth* | The maximum depth to traverse when recursively processing a directory. | 2147483647 | false | MEDIUM
 | *camel.source.endpoint.maxMessagesPerPoll* | To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picke [...]
 | *camel.source.endpoint.minDepth* | The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-ftps-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-ftps-kafka-source-connector.adoc
index 4c46bf4..4e91254 100644
--- a/docs/modules/ROOT/pages/connectors/camel-ftps-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-ftps-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.ftps.CamelFtpsSourceConnector
 ----
 
 
-The camel-ftps source connector supports 109 options, which are listed below.
+The camel-ftps source connector supports 111 options, which are listed below.
 
 
 
@@ -85,6 +85,7 @@ The camel-ftps source connector supports 109 options, which are listed below.
 | *camel.source.endpoint.antInclude* | Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format. | null | false | MEDIUM
 | *camel.source.endpoint.eagerMaxMessagesPerPoll* | Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. | true | false | MEDIUM
 | *camel.source.endpoint.exclude* | Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.excludeExt* | Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat. | null | false | MEDIUM
 | *camel.source.endpoint.filter* | Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method. | null | false | MEDIUM
 | *camel.source.endpoint.filterDirectory* | Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd} | null | false | MEDIUM
 | *camel.source.endpoint.filterFile* | Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000 | null | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-ftps source connector supports 109 options, which are listed below.
 | *camel.source.endpoint.idempotentKey* | To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size} | null | false | MEDIUM
 | *camel.source.endpoint.idempotentRepository* | A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true. | null | false | MEDIUM
 | *camel.source.endpoint.include* | Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.includeExt* | Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml | null | false | MEDIUM
 | *camel.source.endpoint.maxDepth* | The maximum depth to traverse when recursively processing a directory. | 2147483647 | false | MEDIUM
 | *camel.source.endpoint.maxMessagesPerPoll* | To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picke [...]
 | *camel.source.endpoint.minDepth* | The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-google-calendar-kafka-sink-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-google-calendar-kafka-sink-connector.adoc
index bfa7e38..8badab2 100644
--- a/docs/modules/ROOT/pages/connectors/camel-google-calendar-kafka-sink-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-google-calendar-kafka-sink-connector.adoc
@@ -33,29 +33,29 @@ The camel-google-calendar sink connector supports 27 options, which are listed b
 | *camel.sink.path.methodName* | What sub operation to use for the selected operation One of: [calendarImport] [clear] [delete] [get] [insert] [instances] [list] [move] [patch] [query] [quickAdd] [stop] [update] [watch] | null | true | HIGH
 | *camel.sink.endpoint.applicationName* | Google calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.sink.endpoint.clientId* | Client ID of the calendar application | null | false | MEDIUM
-| *camel.sink.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
 | *camel.sink.endpoint.inBody* | Sets the name of a parameter to be passed in the exchange In Body | null | false | MEDIUM
-| *camel.sink.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.sink.endpoint.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | "https://www.googleapis.com/auth/calendar" | false | MEDIUM
-| *camel.sink.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
 | *camel.sink.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
 | *camel.sink.endpoint.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.sink.endpoint.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.sink.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.sink.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.sink.endpoint.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.sink.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.component.google-calendar.applicationName* | Google calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.component.google-calendar.clientId* | Client ID of the calendar application | null | false | MEDIUM
 | *camel.component.google-calendar.configuration* | To use the shared configuration | null | false | MEDIUM
-| *camel.component.google-calendar.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
-| *camel.component.google-calendar.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | "https://www.googleapis.com/auth/calendar" | false | MEDIUM
-| *camel.component.google-calendar.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.component.google-calendar.lazyStartProducer* | 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 proces [...]
 | *camel.component.google-calendar.autowiredEnabled* | 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 | false | MEDIUM
 | *camel.component.google-calendar.clientFactory* | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory | null | false | MEDIUM
 | *camel.component.google-calendar.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.component.google-calendar.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.component.google-calendar.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.component.google-calendar.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.component.google-calendar.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 |===
 
 
diff --git a/docs/modules/ROOT/pages/connectors/camel-google-calendar-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-google-calendar-kafka-source-connector.adoc
index f6905ac..dd055db 100644
--- a/docs/modules/ROOT/pages/connectors/camel-google-calendar-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-google-calendar-kafka-source-connector.adoc
@@ -33,11 +33,8 @@ The camel-google-calendar source connector supports 45 options, which are listed
 | *camel.source.path.methodName* | What sub operation to use for the selected operation One of: [calendarImport] [clear] [delete] [get] [insert] [instances] [list] [move] [patch] [query] [quickAdd] [stop] [update] [watch] | null | true | HIGH
 | *camel.source.endpoint.applicationName* | Google calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.source.endpoint.clientId* | Client ID of the calendar application | null | false | MEDIUM
-| *camel.source.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
 | *camel.source.endpoint.inBody* | Sets the name of a parameter to be passed in the exchange In Body | null | false | MEDIUM
-| *camel.source.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.source.endpoint.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | "https://www.googleapis.com/auth/calendar" | false | MEDIUM
-| *camel.source.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.sendEmptyMessageWhenIdle* | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
@@ -60,20 +57,23 @@ The camel-google-calendar source connector supports 45 options, which are listed
 | *camel.source.endpoint.useFixedDelay* | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | false | MEDIUM
 | *camel.source.endpoint.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.source.endpoint.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.source.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.source.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.source.endpoint.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.source.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.component.google-calendar.applicationName* | Google calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.component.google-calendar.clientId* | Client ID of the calendar application | null | false | MEDIUM
 | *camel.component.google-calendar.configuration* | To use the shared configuration | null | false | MEDIUM
-| *camel.component.google-calendar.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
-| *camel.component.google-calendar.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | "https://www.googleapis.com/auth/calendar" | false | MEDIUM
-| *camel.component.google-calendar.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 | *camel.component.google-calendar.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.google-calendar.autowiredEnabled* | 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 | false | MEDIUM
 | *camel.component.google-calendar.clientFactory* | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory | null | false | MEDIUM
 | *camel.component.google-calendar.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.component.google-calendar.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.component.google-calendar.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.component.google-calendar.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.component.google-calendar.user* | The email address of the user the application is trying to impersonate in the service account flow | null | false | MEDIUM
 |===
 
 
diff --git a/docs/modules/ROOT/pages/connectors/camel-google-calendar-stream-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-google-calendar-stream-kafka-source-connector.adoc
index 62cbbaa..648c2f2 100644
--- a/docs/modules/ROOT/pages/connectors/camel-google-calendar-stream-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-google-calendar-stream-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.googlecalendarstream.CamelGoogle
 ----
 
 
-The camel-google-calendar-stream source connector supports 47 options, which are listed below.
+The camel-google-calendar-stream source connector supports 53 options, which are listed below.
 
 
 
@@ -60,7 +60,10 @@ The camel-google-calendar-stream source connector supports 47 options, which are
 | *camel.source.endpoint.useFixedDelay* | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | false | MEDIUM
 | *camel.source.endpoint.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.source.endpoint.clientSecret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.source.endpoint.emailAddress* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.source.endpoint.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.source.endpoint.refreshToken* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.source.endpoint.user* | The email address of the user the application is trying to impersonate in the service account flow. | null | false | MEDIUM
 | *camel.component.google-calendar-stream.application Name* | Google Calendar application name. Example would be camel-google-calendar/1.0 | null | false | MEDIUM
 | *camel.component.google-calendar-stream.bridgeError Handler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.google-calendar-stream.calendarId* | The calendarId to be used | "primary" | false | MEDIUM
@@ -75,7 +78,10 @@ The camel-google-calendar-stream source connector supports 47 options, which are
 | *camel.component.google-calendar-stream.client Factory* | The client Factory | null | false | MEDIUM
 | *camel.component.google-calendar-stream.accessToken* | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. | null | false | MEDIUM
 | *camel.component.google-calendar-stream.client Secret* | Client secret of the calendar application | null | false | MEDIUM
+| *camel.component.google-calendar-stream.email Address* | The emailAddress of the Google Service Account. | null | false | MEDIUM
+| *camel.component.google-calendar-stream.p12FileName* | The name of the p12 file which has the private key to use with the Google Service Account. | null | false | MEDIUM
 | *camel.component.google-calendar-stream.refresh Token* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. | null | false | MEDIUM
+| *camel.component.google-calendar-stream.user* | The email address of the user the application is trying to impersonate in the service account flow. | null | false | MEDIUM
 |===
 
 
diff --git a/docs/modules/ROOT/pages/connectors/camel-imap-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-imap-kafka-source-connector.adoc
index c6f1127..ad5b660 100644
--- a/docs/modules/ROOT/pages/connectors/camel-imap-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-imap-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.imap.CamelImapSourceConnector
 ----
 
 
-The camel-imap source connector supports 94 options, which are listed below.
+The camel-imap source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-imap source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-imap source connector supports 94 options, which are listed below.
 | *camel.component.imap.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.imap.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.imap.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.imap.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.imap.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.imap.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.imap.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-imaps-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-imaps-kafka-source-connector.adoc
index 2965862..efbfbd6 100644
--- a/docs/modules/ROOT/pages/connectors/camel-imaps-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-imaps-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.imaps.CamelImapsSourceConnector
 ----
 
 
-The camel-imaps source connector supports 94 options, which are listed below.
+The camel-imaps source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-imaps source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-imaps source connector supports 94 options, which are listed below.
 | *camel.component.imaps.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.imaps.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.imaps.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.imaps.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.imaps.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.imaps.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.imaps.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-jms-kafka-sink-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-jms-kafka-sink-connector.adoc
index 612b280..dc40042 100644
--- a/docs/modules/ROOT/pages/connectors/camel-jms-kafka-sink-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-jms-kafka-sink-connector.adoc
@@ -45,7 +45,7 @@ The camel-jms sink connector supports 144 options, which are listed below.
 | *camel.sink.endpoint.formatDateHeadersToIso8601* | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
 | *camel.sink.endpoint.preserveMessageQos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicit [...]
-| *camel.sink.endpoint.priority* | Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
+| *camel.sink.endpoint.priority* | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
 | *camel.sink.endpoint.replyToConcurrentConsumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | false | MEDIUM
 | *camel.sink.endpoint.replyToMaxConcurrentConsumers* | Specifies the maximum number of concurrent consumers when using request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | null | false | MEDIUM
 | *camel.sink.endpoint.replyToOnTimeoutMaxConcurrent Consumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
@@ -114,7 +114,7 @@ The camel-jms sink connector supports 144 options, which are listed below.
 | *camel.component.jms.formatDateHeadersToIso8601* | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | false | MEDIUM
 | *camel.component.jms.lazyStartProducer* | 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 cre [...]
 | *camel.component.jms.preserveMessageQos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicit [...]
-| *camel.component.jms.priority* | Values greater than 1 specify the message priority when sending (where 0 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
+| *camel.component.jms.priority* | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
 | *camel.component.jms.replyToConcurrentConsumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | false | MEDIUM
 | *camel.component.jms.replyToMaxConcurrentConsumers* | Specifies the maximum number of concurrent consumers when using request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | null | false | MEDIUM
 | *camel.component.jms.replyToOnTimeoutMaxConcurrent Consumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-pop3-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-pop3-kafka-source-connector.adoc
index 5c91154..3c2a24f 100644
--- a/docs/modules/ROOT/pages/connectors/camel-pop3-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-pop3-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.pop3.CamelPop3SourceConnector
 ----
 
 
-The camel-pop3 source connector supports 94 options, which are listed below.
+The camel-pop3 source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-pop3 source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-pop3 source connector supports 94 options, which are listed below.
 | *camel.component.pop3.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.pop3.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.pop3.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.pop3.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.pop3.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.pop3.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.pop3.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-pop3s-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-pop3s-kafka-source-connector.adoc
index fafd763..79be67b 100644
--- a/docs/modules/ROOT/pages/connectors/camel-pop3s-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-pop3s-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.pop3s.CamelPop3sSourceConnector
 ----
 
 
-The camel-pop3s source connector supports 94 options, which are listed below.
+The camel-pop3s source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-pop3s source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-pop3s source connector supports 94 options, which are listed below.
 | *camel.component.pop3s.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.pop3s.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.pop3s.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.pop3s.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.pop3s.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.pop3s.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.pop3s.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-sftp-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-sftp-kafka-source-connector.adoc
index 2230a34..1701149 100644
--- a/docs/modules/ROOT/pages/connectors/camel-sftp-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-sftp-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sftp.CamelSftpSourceConnector
 ----
 
 
-The camel-sftp source connector supports 111 options, which are listed below.
+The camel-sftp source connector supports 113 options, which are listed below.
 
 
 
@@ -81,6 +81,7 @@ The camel-sftp source connector supports 111 options, which are listed below.
 | *camel.source.endpoint.antInclude* | Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format. | null | false | MEDIUM
 | *camel.source.endpoint.eagerMaxMessagesPerPoll* | Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then perform sorting. Setting this option to false allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting. | true | false | MEDIUM
 | *camel.source.endpoint.exclude* | Is used to exclude files, if filename matches the regex pattern (matching is case in-senstive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.excludeExt* | Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use excludeExt=bak,dat. | null | false | MEDIUM
 | *camel.source.endpoint.filter* | Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method. | null | false | MEDIUM
 | *camel.source.endpoint.filterDirectory* | Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd} | null | false | MEDIUM
 | *camel.source.endpoint.filterFile* | Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000 | null | false | MEDIUM
@@ -88,6 +89,7 @@ The camel-sftp source connector supports 111 options, which are listed below.
 | *camel.source.endpoint.idempotentKey* | To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size} | null | false | MEDIUM
 | *camel.source.endpoint.idempotentRepository* | A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryMessageIdRepository if none is specified and idempotent is true. | null | false | MEDIUM
 | *camel.source.endpoint.include* | Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endpoint uri. See more details at configuring endpoint uris | null | false | MEDIUM
+| *camel.source.endpoint.includeExt* | Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use includeExt=txt,xml | null | false | MEDIUM
 | *camel.source.endpoint.maxDepth* | The maximum depth to traverse when recursively processing a directory. | 2147483647 | false | MEDIUM
 | *camel.source.endpoint.maxMessagesPerPoll* | To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to disabled it. Notice: If this option is in use then the File and FTP components will limit before any sorting. For example if you have 100000 files and use maxMessagesPerPoll=500, then only the first 500 files will be picke [...]
 | *camel.source.endpoint.minDepth* | The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory. | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-sip-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-sip-kafka-source-connector.adoc
index 8365abd..c6b394f 100644
--- a/docs/modules/ROOT/pages/connectors/camel-sip-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-sip-kafka-source-connector.adoc
@@ -47,7 +47,7 @@ The camel-sip source connector supports 47 options, which are listed below.
 | *camel.source.endpoint.transport* | Setting for choice of transport protocol. Valid choices are tcp or udp. One of: [tcp] [udp] | "tcp" | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.consumer* | This setting is used to determine whether the kind of header (FromHeader,ToHeader etc) that needs to be created for this endpoint | false | false | MEDIUM
-| *camel.source.endpoint.presenceAgent* | This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true. | false | false | MEDIUM
+| *camel.source.endpoint.presenceAgent* | This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true. | false | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
 | *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
 | *camel.source.endpoint.addressFactory* | To use a custom AddressFactory | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-sips-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-sips-kafka-source-connector.adoc
index 7ac248e..6a5d155 100644
--- a/docs/modules/ROOT/pages/connectors/camel-sips-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-sips-kafka-source-connector.adoc
@@ -47,7 +47,7 @@ The camel-sips source connector supports 47 options, which are listed below.
 | *camel.source.endpoint.transport* | Setting for choice of transport protocol. Valid choices are tcp or udp. One of: [tcp] [udp] | "tcp" | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.consumer* | This setting is used to determine whether the kind of header (FromHeader,ToHeader etc) that needs to be created for this endpoint | false | false | MEDIUM
-| *camel.source.endpoint.presenceAgent* | This setting is used to distinguish between a Presence Agent & a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true. | false | false | MEDIUM
+| *camel.source.endpoint.presenceAgent* | This setting is used to distinguish between a Presence Agent and a consumer. This is due to the fact that the SIP Camel component ships with a basic Presence Agent (for testing purposes only). Consumers have to set this flag to true. | false | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
 | *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
 | *camel.source.endpoint.addressFactory* | To use a custom AddressFactory | null | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-sjms-kafka-sink-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-sjms-kafka-sink-connector.adoc
index c851f00..187d815 100644
--- a/docs/modules/ROOT/pages/connectors/camel-sjms-kafka-sink-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-sjms-kafka-sink-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sjms.CamelSjmsSinkConnector
 ----
 
 
-The camel-sjms sink connector supports 41 options, which are listed below.
+The camel-sjms sink connector supports 43 options, which are listed below.
 
 
 
@@ -32,19 +32,25 @@ The camel-sjms sink connector supports 41 options, which are listed below.
 | *camel.sink.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
 | *camel.sink.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
 | *camel.sink.endpoint.acknowledgementMode* | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE] | "AUTO_ACKNOWLEDGE" | false | MEDIUM
+| *camel.sink.endpoint.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
+| *camel.sink.endpoint.disableReplyTo* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different mes [...]
+| *camel.sink.endpoint.replyTo* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). | null | false | MEDIUM
+| *camel.sink.endpoint.testConnectionOnStartup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | false | MEDIUM
+| *camel.sink.endpoint.deliveryMode* | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2] | null | false | MEDIUM
+| *camel.sink.endpoint.deliveryPersistent* | Specifies whether persistent delivery is used by default. | true | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
-| *camel.sink.endpoint.namedReplyTo* | Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name. | null | false | MEDIUM
-| *camel.sink.endpoint.persistent* | Flag used to enable/disable message persistence. | true | false | MEDIUM
-| *camel.sink.endpoint.producerCount* | Sets the number of producers used for this endpoint. | 1 | false | MEDIUM
-| *camel.sink.endpoint.ttl* | Flag used to adjust the Time To Live value of produced messages. | -1L | false | MEDIUM
+| *camel.sink.endpoint.priority* | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
+| *camel.sink.endpoint.replyToConcurrentConsumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | false | MEDIUM
+| *camel.sink.endpoint.replyToOverride* | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. | null | false | MEDIUM
+| *camel.sink.endpoint.replyToType* | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive] | null | false | MEDIUM
+| *camel.sink.endpoint.requestTimeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000L | false | MEDIUM
+| *camel.sink.endpoint.timeToLive* | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1L | false | MEDIUM
 | *camel.sink.endpoint.allowNullBody* | Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown. | true | false | MEDIUM
-| *camel.sink.endpoint.prefillPool* | Whether to prefill the producer connection pool on startup, or create connections lazy when needed. | true | false | MEDIUM
-| *camel.sink.endpoint.responseTimeOut* | Sets the amount of time we should wait before timing out a InOut response. | 5000L | false | MEDIUM
+| *camel.sink.endpoint.disableTimeToLive* | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the  [...]
+| *camel.sink.endpoint.explicitQosEnabled* | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | "false" | false | MEDIUM
+| *camel.sink.endpoint.preserveMessageQos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicit [...]
 | *camel.sink.endpoint.asyncStartListener* | Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is use [...]
 | *camel.sink.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
-| *camel.sink.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
-| *camel.sink.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
-| *camel.sink.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
 | *camel.sink.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.sink.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
 | *camel.sink.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
@@ -52,24 +58,20 @@ The camel-sjms sink connector supports 41 options, which are listed below.
 | *camel.sink.endpoint.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the o [...]
 | *camel.sink.endpoint.mapJmsMessage* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details. | true | false | MEDIUM
 | *camel.sink.endpoint.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.sink.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
-| *camel.sink.endpoint.sharedJMSSession* | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction. | true | false | MEDIUM
-| *camel.component.sjms.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
-| *camel.component.sjms.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
+| *camel.sink.endpoint.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.sink.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
+| *camel.sink.endpoint.transferException* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option tak [...]
+| *camel.sink.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
+| *camel.component.sjms.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
 | *camel.component.sjms.lazyStartProducer* | 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 cr [...]
 | *camel.component.sjms.autowiredEnabled* | 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 | false | MEDIUM
-| *camel.component.sjms.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.connectionMaxWait* | The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | 5000L | false | MEDIUM
-| *camel.component.sjms.connectionResource* | A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details. | null | false | MEDIUM
-| *camel.component.sjms.connectionTestOnBorrow* | When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool. | true | false | MEDIUM
 | *camel.component.sjms.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.component.sjms.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to [...]
 | *camel.component.sjms.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.component.sjms.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
+| *camel.component.sjms.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.component.sjms.replyToOnTimeoutMaxConcurrent Consumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
+| *camel.component.sjms.requestTimeoutCheckerInterval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000L | false | MEDIUM
 | *camel.component.sjms.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
-| *camel.component.sjms.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
 |===
 
 
diff --git a/docs/modules/ROOT/pages/connectors/camel-sjms-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-sjms-kafka-source-connector.adoc
index faf012e..f542d46 100644
--- a/docs/modules/ROOT/pages/connectors/camel-sjms-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-sjms-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sjms.CamelSjmsSourceConnector
 ----
 
 
-The camel-sjms source connector supports 49 options, which are listed below.
+The camel-sjms source connector supports 43 options, which are listed below.
 
 
 
@@ -32,20 +32,25 @@ The camel-sjms source connector supports 49 options, which are listed below.
 | *camel.source.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
 | *camel.source.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
 | *camel.source.endpoint.acknowledgementMode* | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE] | "AUTO_ACKNOWLEDGE" | false | MEDIUM
+| *camel.source.endpoint.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
+| *camel.source.endpoint.disableReplyTo* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different m [...]
+| *camel.source.endpoint.replyTo* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). | null | false | MEDIUM
+| *camel.source.endpoint.testConnectionOnStartup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | false | MEDIUM
+| *camel.source.endpoint.asyncConsumer* | Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note [...]
+| *camel.source.endpoint.autoStartup* | Specifies whether the consumer container should auto-startup. | true | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
-| *camel.source.endpoint.consumerCount* | Sets the number of consumer listeners used for this endpoint. | 1 | false | MEDIUM
-| *camel.source.endpoint.durableSubscriptionId* | Sets the durable subscription Id required for durable topics. | null | false | MEDIUM
-| *camel.source.endpoint.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
-| *camel.source.endpoint.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
-| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | true | false | MEDIUM
+| *camel.source.endpoint.clientId* | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. | null | false | MEDIUM
+| *camel.source.endpoint.concurrentConsumers* | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | false | MEDIUM
+| *camel.source.endpoint.durableSubscriptionName* | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. | null | false | MEDIUM
+| *camel.source.endpoint.replyToDeliveryPersistent* | Specifies whether to use persistent delivery by default for replies. | true | false | MEDIUM
+| *camel.source.endpoint.eagerLoadingOfProperties* | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | false | MEDIUM
+| *camel.source.endpoint.eagerPoisonBody* | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | "Poison JMS message due to ${exception.message}" | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
 | *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
 | *camel.source.endpoint.messageSelector* | Sets the JMS Message selector syntax. | null | false | MEDIUM
+| *camel.source.endpoint.replyToSameDestination Allowed* | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | false | MEDIUM
 | *camel.source.endpoint.asyncStartListener* | Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is u [...]
 | *camel.source.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
-| *camel.source.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
-| *camel.source.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
-| *camel.source.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
 | *camel.source.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.source.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
 | *camel.source.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
@@ -53,31 +58,20 @@ The camel-sjms source connector supports 49 options, which are listed below.
 | *camel.source.endpoint.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the [...]
 | *camel.source.endpoint.mapJmsMessage* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details. | true | false | MEDIUM
 | *camel.source.endpoint.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.source.endpoint.errorHandlerLoggingLevel* | Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF] | "WARN" | false | MEDIUM
-| *camel.source.endpoint.errorHandlerLogStackTrace* | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | false | MEDIUM
+| *camel.source.endpoint.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
+| *camel.source.endpoint.transferException* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option t [...]
 | *camel.source.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
-| *camel.source.endpoint.transactionBatchCount* | If transacted sets the number of messages to process before committing a transaction. | -1 | false | LOW
-| *camel.source.endpoint.transactionBatchTimeout* | Sets timeout (in millis) for batch transactions, the value should be 1000 or higher. | 5000L | false | LOW
-| *camel.source.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
-| *camel.source.endpoint.sharedJMSSession* | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction. | true | false | MEDIUM
-| *camel.component.sjms.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
-| *camel.component.sjms.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
+| *camel.component.sjms.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
 | *camel.component.sjms.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
-| *camel.component.sjms.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
-| *camel.component.sjms.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
 | *camel.component.sjms.autowiredEnabled* | 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 | false | MEDIUM
-| *camel.component.sjms.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.connectionMaxWait* | The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | 5000L | false | MEDIUM
-| *camel.component.sjms.connectionResource* | A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details. | null | false | MEDIUM
-| *camel.component.sjms.connectionTestOnBorrow* | When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool. | true | false | MEDIUM
 | *camel.component.sjms.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.component.sjms.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to [...]
 | *camel.component.sjms.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.component.sjms.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
+| *camel.component.sjms.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.component.sjms.replyToOnTimeoutMaxConcurrent Consumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
+| *camel.component.sjms.requestTimeoutCheckerInterval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000L | false | MEDIUM
 | *camel.component.sjms.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
-| *camel.component.sjms.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
 |===
 
 
diff --git a/docs/modules/ROOT/pages/connectors/camel-sjms2-kafka-sink-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-sjms2-kafka-sink-connector.adoc
index ae32bf7..b58fa7d 100644
--- a/docs/modules/ROOT/pages/connectors/camel-sjms2-kafka-sink-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-sjms2-kafka-sink-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sjms2.CamelSjms2SinkConnector
 ----
 
 
-The camel-sjms2 sink connector supports 41 options, which are listed below.
+The camel-sjms2 sink connector supports 43 options, which are listed below.
 
 
 
@@ -32,19 +32,25 @@ The camel-sjms2 sink connector supports 41 options, which are listed below.
 | *camel.sink.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
 | *camel.sink.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
 | *camel.sink.endpoint.acknowledgementMode* | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE] | "AUTO_ACKNOWLEDGE" | false | MEDIUM
+| *camel.sink.endpoint.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
+| *camel.sink.endpoint.disableReplyTo* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different mes [...]
+| *camel.sink.endpoint.replyTo* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). | null | false | MEDIUM
+| *camel.sink.endpoint.testConnectionOnStartup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | false | MEDIUM
+| *camel.sink.endpoint.deliveryMode* | Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. One of: [1] [2] | null | false | MEDIUM
+| *camel.sink.endpoint.deliveryPersistent* | Specifies whether persistent delivery is used by default. | true | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
-| *camel.sink.endpoint.namedReplyTo* | Sets the reply to destination name used for InOut producer endpoints. The type of the reply to destination can be determined by the starting prefix (topic: or queue:) in its name. | null | false | MEDIUM
-| *camel.sink.endpoint.persistent* | Flag used to enable/disable message persistence. | true | false | MEDIUM
-| *camel.sink.endpoint.producerCount* | Sets the number of producers used for this endpoint. | 1 | false | MEDIUM
-| *camel.sink.endpoint.ttl* | Flag used to adjust the Time To Live value of produced messages. | -1L | false | MEDIUM
+| *camel.sink.endpoint.priority* | Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect. One of: [1] [2] [3] [4] [5] [6] [7] [8] [9] | 4 | false | MEDIUM
+| *camel.sink.endpoint.replyToConcurrentConsumers* | Specifies the default number of concurrent consumers when doing request/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. | 1 | false | MEDIUM
+| *camel.sink.endpoint.replyToOverride* | Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination. | null | false | MEDIUM
+| *camel.sink.endpoint.replyToType* | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Exclusive is used. One of: [Temporary] [Exclusive] | null | false | MEDIUM
+| *camel.sink.endpoint.requestTimeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000L | false | MEDIUM
+| *camel.sink.endpoint.timeToLive* | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1L | false | MEDIUM
 | *camel.sink.endpoint.allowNullBody* | Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown. | true | false | MEDIUM
-| *camel.sink.endpoint.prefillPool* | Whether to prefill the producer connection pool on startup, or create connections lazy when needed. | true | false | MEDIUM
-| *camel.sink.endpoint.responseTimeOut* | Sets the amount of time we should wait before timing out a InOut response. | 5000L | false | MEDIUM
+| *camel.sink.endpoint.disableTimeToLive* | Use this option to force disabling time to live. For example when you do request/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the  [...]
+| *camel.sink.endpoint.explicitQosEnabled* | Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers. | "false" | false | MEDIUM
+| *camel.sink.endpoint.preserveMessageQos* | Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicit [...]
 | *camel.sink.endpoint.asyncStartListener* | Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is use [...]
 | *camel.sink.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
-| *camel.sink.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
-| *camel.sink.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
-| *camel.sink.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
 | *camel.sink.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.sink.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
 | *camel.sink.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
@@ -52,24 +58,20 @@ The camel-sjms2 sink connector supports 41 options, which are listed below.
 | *camel.sink.endpoint.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the o [...]
 | *camel.sink.endpoint.mapJmsMessage* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details. | true | false | MEDIUM
 | *camel.sink.endpoint.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.sink.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
-| *camel.sink.endpoint.sharedJMSSession* | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction. | true | false | MEDIUM
-| *camel.component.sjms2.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
-| *camel.component.sjms2.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
+| *camel.sink.endpoint.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.sink.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
+| *camel.sink.endpoint.transferException* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option tak [...]
+| *camel.sink.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
+| *camel.component.sjms2.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
 | *camel.component.sjms2.lazyStartProducer* | 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 c [...]
 | *camel.component.sjms2.autowiredEnabled* | 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 | false | MEDIUM
-| *camel.component.sjms2.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.connectionMaxWait* | The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | 5000L | false | MEDIUM
-| *camel.component.sjms2.connectionResource* | A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details. | null | false | MEDIUM
-| *camel.component.sjms2.connectionTestOnBorrow* | When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool. | true | false | MEDIUM
 | *camel.component.sjms2.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.component.sjms2.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer t [...]
 | *camel.component.sjms2.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.component.sjms2.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
+| *camel.component.sjms2.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.component.sjms2.replyToOnTimeoutMax ConcurrentConsumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
+| *camel.component.sjms2.requestTimeoutChecker Interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000L | false | MEDIUM
 | *camel.component.sjms2.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
-| *camel.component.sjms2.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
 |===
 
 
diff --git a/docs/modules/ROOT/pages/connectors/camel-sjms2-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-sjms2-kafka-source-connector.adoc
index 0247ae5..a9685a0 100644
--- a/docs/modules/ROOT/pages/connectors/camel-sjms2-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-sjms2-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.sjms2.CamelSjms2SourceConnector
 ----
 
 
-The camel-sjms2 source connector supports 52 options, which are listed below.
+The camel-sjms2 source connector supports 46 options, which are listed below.
 
 
 
@@ -32,23 +32,28 @@ The camel-sjms2 source connector supports 52 options, which are listed below.
 | *camel.source.path.destinationType* | The kind of destination to use One of: [queue] [topic] | "queue" | false | MEDIUM
 | *camel.source.path.destinationName* | DestinationName is a JMS queue or topic name. By default, the destinationName is interpreted as a queue name. | null | true | HIGH
 | *camel.source.endpoint.acknowledgementMode* | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE One of: [SESSION_TRANSACTED] [CLIENT_ACKNOWLEDGE] [AUTO_ACKNOWLEDGE] [DUPS_OK_ACKNOWLEDGE] | "AUTO_ACKNOWLEDGE" | false | MEDIUM
+| *camel.source.endpoint.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
+| *camel.source.endpoint.disableReplyTo* | Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different m [...]
+| *camel.source.endpoint.replyTo* | Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer). | null | false | MEDIUM
+| *camel.source.endpoint.testConnectionOnStartup* | Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well. | false | false | MEDIUM
+| *camel.source.endpoint.asyncConsumer* | Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note [...]
+| *camel.source.endpoint.autoStartup* | Specifies whether the consumer container should auto-startup. | true | false | MEDIUM
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
-| *camel.source.endpoint.consumerCount* | Sets the number of consumer listeners used for this endpoint. | 1 | false | MEDIUM
+| *camel.source.endpoint.clientId* | Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead. | null | false | MEDIUM
+| *camel.source.endpoint.concurrentConsumers* | Specifies the default number of concurrent consumers when consuming from JMS (not for request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. | 1 | false | MEDIUM
 | *camel.source.endpoint.durable* | Sets topic consumer to durable. | false | false | MEDIUM
-| *camel.source.endpoint.durableSubscriptionId* | Sets the durable subscription Id required for durable topics. | null | false | MEDIUM
-| *camel.source.endpoint.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
-| *camel.source.endpoint.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
+| *camel.source.endpoint.durableSubscriptionName* | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. | null | false | MEDIUM
+| *camel.source.endpoint.replyToDeliveryPersistent* | Specifies whether to use persistent delivery by default for replies. | true | false | MEDIUM
 | *camel.source.endpoint.shared* | Sets the consumer to shared. | false | false | MEDIUM
 | *camel.source.endpoint.subscriptionId* | Sets the subscription Id, required for durable or shared topics. | null | false | MEDIUM
-| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | true | false | MEDIUM
+| *camel.source.endpoint.eagerLoadingOfProperties* | Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody. | false | false | MEDIUM
+| *camel.source.endpoint.eagerPoisonBody* | If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties. | "Poison JMS message due to ${exception.message}" | false | MEDIUM
 | *camel.source.endpoint.exceptionHandler* | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | null | false | MEDIUM
 | *camel.source.endpoint.exchangePattern* | Sets the exchange pattern when the consumer creates an exchange. One of: [InOnly] [InOut] [InOptionalOut] | null | false | MEDIUM
 | *camel.source.endpoint.messageSelector* | Sets the JMS Message selector syntax. | null | false | MEDIUM
+| *camel.source.endpoint.replyToSameDestination Allowed* | Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself. | false | false | MEDIUM
 | *camel.source.endpoint.asyncStartListener* | Whether to startup the consumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is u [...]
 | *camel.source.endpoint.asyncStopListener* | Whether to stop the consumer message listener asynchronously, when stopping a route. | false | false | MEDIUM
-| *camel.source.endpoint.connectionCount* | The maximum number of connections available to this endpoint | null | false | MEDIUM
-| *camel.source.endpoint.connectionFactory* | Initializes the connectionFactory for the endpoint, which takes precedence over the component's connectionFactory, if any | null | false | MEDIUM
-| *camel.source.endpoint.connectionResource* | Initializes the connectionResource for the endpoint, which takes precedence over the component's connectionResource, if any | null | false | MEDIUM
 | *camel.source.endpoint.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.source.endpoint.exceptionListener* | Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. | null | false | MEDIUM
 | *camel.source.endpoint.headerFilterStrategy* | To use a custom HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
@@ -56,31 +61,20 @@ The camel-sjms2 source connector supports 52 options, which are listed below.
 | *camel.source.endpoint.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the [...]
 | *camel.source.endpoint.mapJmsMessage* | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. See section about how mapping works below for more details. | true | false | MEDIUM
 | *camel.source.endpoint.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.source.endpoint.errorHandlerLoggingLevel* | Allows to configure the default errorHandler logging level for logging uncaught exceptions. One of: [TRACE] [DEBUG] [INFO] [WARN] [ERROR] [OFF] | "WARN" | false | MEDIUM
-| *camel.source.endpoint.errorHandlerLogStackTrace* | Allows to control whether stacktraces should be logged or not, by the default errorHandler. | true | false | MEDIUM
+| *camel.source.endpoint.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.source.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
+| *camel.source.endpoint.transferException* | If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option t [...]
 | *camel.source.endpoint.transacted* | Specifies whether to use transacted mode | false | false | MEDIUM
-| *camel.source.endpoint.transactionBatchCount* | If transacted sets the number of messages to process before committing a transaction. | -1 | false | LOW
-| *camel.source.endpoint.transactionBatchTimeout* | Sets timeout (in millis) for batch transactions, the value should be 1000 or higher. | 5000L | false | LOW
-| *camel.source.endpoint.transactionCommitStrategy* | Sets the commit strategy. | null | false | MEDIUM
-| *camel.source.endpoint.sharedJMSSession* | Specifies whether to share JMS session with other SJMS endpoints. Turn this off if your route is accessing to multiple JMS providers. If you need transaction against multiple JMS providers, use jms component to leverage XA transaction. | true | false | MEDIUM
-| *camel.component.sjms2.connectionCount* | The maximum number of connections available to endpoints started under this component | "1" | false | MEDIUM
-| *camel.component.sjms2.connectionFactory* | A ConnectionFactory is required to enable the SjmsComponent. It can be set directly or set set as part of a ConnectionResource. | null | false | MEDIUM
+| *camel.component.sjms2.connectionFactory* | The connection factory to be use. A connection factory must be configured either on the component or endpoint. | null | false | MEDIUM
 | *camel.component.sjms2.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
-| *camel.component.sjms2.reconnectBackOff* | Backoff in millis on consumer pool reconnection attempts | 5000L | false | MEDIUM
-| *camel.component.sjms2.reconnectOnError* | Try to apply reconnection logic on consumer pool | true | false | MEDIUM
 | *camel.component.sjms2.autowiredEnabled* | 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 | false | MEDIUM
-| *camel.component.sjms2.connectionClientId* | The client ID to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.connectionMaxWait* | The max wait time in millis to block and wait on free connection when the pool is exhausted when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | 5000L | false | MEDIUM
-| *camel.component.sjms2.connectionResource* | A ConnectionResource is an interface that allows for customization and container control of the ConnectionFactory. See Plugable Connection Resource Management for further details. | null | false | MEDIUM
-| *camel.component.sjms2.connectionTestOnBorrow* | When using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource then should each javax.jms.Connection be tested (calling start) before returned from the pool. | true | false | MEDIUM
 | *camel.component.sjms2.destinationCreationStrategy* | To use a custom DestinationCreationStrategy. | null | false | MEDIUM
 | *camel.component.sjms2.jmsKeyFormatStrategy* | Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer t [...]
 | *camel.component.sjms2.messageCreatedStrategy* | To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. | null | false | MEDIUM
-| *camel.component.sjms2.timedTaskManager* | To use a custom TimedTaskManager | null | false | MEDIUM
+| *camel.component.sjms2.recoveryInterval* | Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. | 5000L | false | MEDIUM
+| *camel.component.sjms2.replyToOnTimeoutMax ConcurrentConsumers* | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | false | MEDIUM
+| *camel.component.sjms2.requestTimeoutChecker Interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000L | false | MEDIUM
 | *camel.component.sjms2.headerFilterStrategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. | null | false | MEDIUM
-| *camel.component.sjms2.connectionPassword* | The password to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.connectionUsername* | The username to use when creating javax.jms.Connection when using the default org.apache.camel.component.sjms.jms.ConnectionFactoryResource. | null | false | MEDIUM
-| *camel.component.sjms2.transactionCommitStrategy* | To configure which kind of commit strategy to use. Camel provides two implementations out of the box, default and batch. | null | false | MEDIUM
 |===
 
 
diff --git a/docs/modules/ROOT/pages/connectors/camel-smtp-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-smtp-kafka-source-connector.adoc
index b852da2..2cd5e75 100644
--- a/docs/modules/ROOT/pages/connectors/camel-smtp-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-smtp-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.smtp.CamelSmtpSourceConnector
 ----
 
 
-The camel-smtp source connector supports 94 options, which are listed below.
+The camel-smtp source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-smtp source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-smtp source connector supports 94 options, which are listed below.
 | *camel.component.smtp.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.smtp.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.smtp.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.smtp.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.smtp.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.smtp.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.smtp.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-smtps-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-smtps-kafka-source-connector.adoc
index 7d103e1..4b587de 100644
--- a/docs/modules/ROOT/pages/connectors/camel-smtps-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-smtps-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.smtps.CamelSmtpsSourceConnector
 ----
 
 
-The camel-smtps source connector supports 94 options, which are listed below.
+The camel-smtps source connector supports 96 options, which are listed below.
 
 
 
@@ -34,6 +34,7 @@ The camel-smtps source connector supports 94 options, which are listed below.
 | *camel.source.endpoint.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.source.endpoint.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.source.endpoint.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.source.endpoint.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.source.endpoint.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.source.endpoint.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.source.endpoint.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
@@ -92,6 +93,7 @@ The camel-smtps source connector supports 94 options, which are listed below.
 | *camel.component.smtps.bridgeErrorHandler* | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | false | MEDIUM
 | *camel.component.smtps.closeFolder* | Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls. | true | false | MEDIUM
 | *camel.component.smtps.copyTo* | After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime. | null | false | MEDIUM
+| *camel.component.smtps.decodeFilename* | If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename. | false | false | MEDIUM
 | *camel.component.smtps.delete* | Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not. | false | false | MEDIUM
 | *camel.component.smtps.disconnect* | Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll. | false | false | MEDIUM
 | *camel.component.smtps.handleFailedMessage* | If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel. | false | false | MEDIUM
diff --git a/docs/modules/ROOT/pages/connectors/camel-vertx-kafka-kafka-sink-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-vertx-kafka-kafka-sink-connector.adoc
index 350fee3..3c8ab84 100644
--- a/docs/modules/ROOT/pages/connectors/camel-vertx-kafka-kafka-sink-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-vertx-kafka-kafka-sink-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.vertxkafka.CamelVertxkafkaSinkCo
 ----
 
 
-The camel-vertx-kafka sink connector supports 144 options, which are listed below.
+The camel-vertx-kafka sink connector supports 154 options, which are listed below.
 
 
 
@@ -40,7 +40,7 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.sink.endpoint.metadataMaxAgeMs* | 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. | 300000L | false | MEDIUM
 | *camel.sink.endpoint.metricReporters* | 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. | null | false | MEDIUM
 | *camel.sink.endpoint.metricsNumSamples* | The number of samples maintained to compute metrics. | 2 | false | MEDIUM
-| *camel.sink.endpoint.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] | "INFO" | false | MEDIUM
+| *camel.sink.endpoint.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE] | "INFO" | false | MEDIUM
 | *camel.sink.endpoint.metricsSampleWindowMs* | The window of time a metrics sample is computed over. | 30000L | false | MEDIUM
 | *camel.sink.endpoint.partitionId* | 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 | null | false | MEDIUM
 | *camel.sink.endpoint.receiveBufferBytes* | 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 | false | MEDIUM
@@ -49,6 +49,8 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.sink.endpoint.requestTimeoutMs* | 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. | 30000 | false | MEDIUM
 | *camel.sink.endpoint.retryBackoffMs* | 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. | 100L | false | MEDIUM
 | *camel.sink.endpoint.sendBufferBytes* | 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 | false | MEDIUM
+| *camel.sink.endpoint.socketConnectionSetupTimeout MaxMs* | 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. | 127000L | false | MEDIUM
+| *camel.sink.endpoint.socketConnectionSetupTimeoutMs* | 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. | 10000L | false | MEDIUM
 | *camel.sink.endpoint.acks* | 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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in thi [...]
 | *camel.sink.endpoint.batchSize* | The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes. No attempt will be made to batch records larger than this size. Requests sent to brokers will contain multiple batches, one for each partition with data available to be sent. A small batch size will ma [...]
 | *camel.sink.endpoint.bufferMemory* | The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will block for max.block.ms after which it will throw an exception.This setting should correspond roughly to the total memory the producer will use, but is not a hard bound since not all memory the producer uses is used for buffering. Some additional memory will be used fo [...]
@@ -58,14 +60,14 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.sink.endpoint.keySerializer* | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | "org.apache.kafka.common.serialization.StringSerializer" | false | MEDIUM
 | *camel.sink.endpoint.lazyStartProducer* | 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 cre [...]
 | *camel.sink.endpoint.lingerMs* | 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  [...]
-| *camel.sink.endpoint.maxBlockMs* | 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. | 60000L | false | MEDIUM
+| *camel.sink.endpoint.maxBlockMs* | 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  [...]
 | *camel.sink.endpoint.maxInFlightRequestsPer Connection* | 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 | false | MEDIUM
 | *camel.sink.endpoint.maxRequestSize* | 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 | false | MEDIUM
 | *camel.sink.endpoint.metadataMaxIdleMs* | 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. | 300000L | false | MEDIUM
 | *camel.sink.endpoint.partitionerClass* | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | "org.apache.kafka.clients.producer.internals.DefaultPartitioner" | false | MEDIUM
 | *camel.sink.endpoint.retries* | 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 [...]
 | *camel.sink.endpoint.transactionalId* | 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 Tra [...]
-| *camel.sink.endpoint.transactionTimeoutMs* | 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. | 60000 | false | MEDIUM
+| *camel.sink.endpoint.transactionTimeoutMs* | 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. | 60000 | false | MEDIUM
 | *camel.sink.endpoint.valueSerializer* | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | "org.apache.kafka.common.serialization.StringSerializer" | false | MEDIUM
 | *camel.sink.endpoint.synchronous* | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | false | MEDIUM
 | *camel.sink.endpoint.saslClientCallbackHandlerClass* | The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface. | null | false | MEDIUM
@@ -89,16 +91,19 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.sink.endpoint.sslEndpointIdentification Algorithm* | The endpoint identification algorithm to validate server hostname using server certificate. | "https" | false | MEDIUM
 | *camel.sink.endpoint.sslEngineFactoryClass* | 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 | null | false | MEDIUM
 | *camel.sink.endpoint.sslKeymanagerAlgorithm* | 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" | false | MEDIUM
-| *camel.sink.endpoint.sslKeyPassword* | The password of the private key in the key store file. This is optional for client. | null | false | MEDIUM
+| *camel.sink.endpoint.sslKeyPassword* | 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. | null | false | MEDIUM
+| *camel.sink.endpoint.sslKeystoreCertificateChain* | 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 | null | false | MEDIUM
+| *camel.sink.endpoint.sslKeystoreKey* | 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' | null | false | MEDIUM
 | *camel.sink.endpoint.sslKeystoreLocation* | The location of the key store file. This is optional for client and can be used for two-way authentication for client. | null | false | MEDIUM
-| *camel.sink.endpoint.sslKeystorePassword* | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. | null | false | MEDIUM
+| *camel.sink.endpoint.sslKeystorePassword* | 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. | null | false | MEDIUM
 | *camel.sink.endpoint.sslKeystoreType* | The file format of the key store file. This is optional for client. | "JKS" | false | MEDIUM
 | *camel.sink.endpoint.sslProtocol* | 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', cl [...]
 | *camel.sink.endpoint.sslProvider* | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. | null | false | MEDIUM
 | *camel.sink.endpoint.sslSecureRandomImplementation* | The SecureRandom PRNG implementation to use for SSL cryptography operations. | null | false | MEDIUM
 | *camel.sink.endpoint.sslTrustmanagerAlgorithm* | 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" | false | MEDIUM
+| *camel.sink.endpoint.sslTruststoreCertificates* | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. | null | false | MEDIUM
 | *camel.sink.endpoint.sslTruststoreLocation* | The location of the trust store file. | null | false | MEDIUM
-| *camel.sink.endpoint.sslTruststorePassword* | 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. | null | false | MEDIUM
+| *camel.sink.endpoint.sslTruststorePassword* | 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. | null | false | MEDIUM
 | *camel.sink.endpoint.sslTruststoreType* | The file format of the trust store file. | "JKS" | false | MEDIUM
 | *camel.component.vertx-kafka.additionalProperties* | Sets additional properties for either kafka consumer or kafka producer in case they can't be set directly on the camel configurations (e.g: new Kafka properties that are not reflected yet in Camel configurations), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro | null | false | MEDIUM
 | *camel.component.vertx-kafka.bootstrapServers* | A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping&mdash;this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,.... Since these servers are just used for the initial connection to discover the full cluster [...]
@@ -111,7 +116,7 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.component.vertx-kafka.metadataMaxAgeMs* | 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. | 300000L | false | MEDIUM
 | *camel.component.vertx-kafka.metricReporters* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.metricsNumSamples* | The number of samples maintained to compute metrics. | 2 | false | MEDIUM
-| *camel.component.vertx-kafka.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] | "INFO" | false | MEDIUM
+| *camel.component.vertx-kafka.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE] | "INFO" | false | MEDIUM
 | *camel.component.vertx-kafka.metricsSampleWindowMs* | The window of time a metrics sample is computed over. | 30000L | false | MEDIUM
 | *camel.component.vertx-kafka.partitionId* | 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 | null | false | MEDIUM
 | *camel.component.vertx-kafka.receiveBufferBytes* | 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 | false | MEDIUM
@@ -120,6 +125,8 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.component.vertx-kafka.requestTimeoutMs* | 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. | 30000 | false | MEDIUM
 | *camel.component.vertx-kafka.retryBackoffMs* | 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. | 100L | false | MEDIUM
 | *camel.component.vertx-kafka.sendBufferBytes* | 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 | false | MEDIUM
+| *camel.component.vertx-kafka.socketConnectionSetup TimeoutMaxMs* | 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. | 127000L | false | MEDIUM
+| *camel.component.vertx-kafka.socketConnectionSetup TimeoutMs* | 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. | 10000L | false | MEDIUM
 | *camel.component.vertx-kafka.acks* | 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 allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the recor [...]
 | *camel.component.vertx-kafka.batchSize* | The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes. No attempt will be made to batch records larger than this size. Requests sent to brokers will contain multiple batches, one for each partition with data available to be sent. A small batch size [...]
 | *camel.component.vertx-kafka.bufferMemory* | The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will block for max.block.ms after which it will throw an exception.This setting should correspond roughly to the total memory the producer will use, but is not a hard bound since not all memory the producer uses is used for buffering. Some additional memory will be [...]
@@ -129,14 +136,14 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.component.vertx-kafka.keySerializer* | Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface. | "org.apache.kafka.common.serialization.StringSerializer" | false | MEDIUM
 | *camel.component.vertx-kafka.lazyStartProducer* | 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  [...]
 | *camel.component.vertx-kafka.lingerMs* | 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 rec [...]
-| *camel.component.vertx-kafka.maxBlockMs* | 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. | 60000L | false | MEDIUM
+| *camel.component.vertx-kafka.maxBlockMs* | 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 wait [...]
 | *camel.component.vertx-kafka.maxInFlightRequestsPer Connection* | 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 | false | MEDIUM
 | *camel.component.vertx-kafka.maxRequestSize* | 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 | false | MEDIUM
 | *camel.component.vertx-kafka.metadataMaxIdleMs* | 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. | 300000L | false | MEDIUM
 | *camel.component.vertx-kafka.partitionerClass* | Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface. | "org.apache.kafka.clients.producer.internals.DefaultPartitioner" | false | MEDIUM
 | *camel.component.vertx-kafka.retries* | 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 th [...]
 | *camel.component.vertx-kafka.transactionalId* | 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 [...]
-| *camel.component.vertx-kafka.transactionTimeoutMs* | 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. | 60000 | false | MEDIUM
+| *camel.component.vertx-kafka.transactionTimeoutMs* | 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. | 60000 | false | MEDIUM
 | *camel.component.vertx-kafka.valueSerializer* | Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface. | "org.apache.kafka.common.serialization.StringSerializer" | false | MEDIUM
 | *camel.component.vertx-kafka.autowiredEnabled* | 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 | false | MEDIUM
 | *camel.component.vertx-kafka.vertx* | To use an existing vertx instead of creating a new instance | null | false | MEDIUM
@@ -162,16 +169,19 @@ The camel-vertx-kafka sink connector supports 144 options, which are listed belo
 | *camel.component.vertx-kafka.sslEndpoint IdentificationAlgorithm* | The endpoint identification algorithm to validate server hostname using server certificate. | "https" | false | MEDIUM
 | *camel.component.vertx-kafka.sslEngineFactoryClass* | 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 | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeymanagerAlgorithm* | 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" | false | MEDIUM
-| *camel.component.vertx-kafka.sslKeyPassword* | The password of the private key in the key store file. This is optional for client. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeyPassword* | 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. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystoreCertificate Chain* | 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 | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystoreKey* | 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' | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeystoreLocation* | The location of the key store file. This is optional for client and can be used for two-way authentication for client. | null | false | MEDIUM
-| *camel.component.vertx-kafka.sslKeystorePassword* | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystorePassword* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeystoreType* | The file format of the key store file. This is optional for client. | "JKS" | false | MEDIUM
 | *camel.component.vertx-kafka.sslProtocol* | 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.protoc [...]
 | *camel.component.vertx-kafka.sslProvider* | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslSecureRandom Implementation* | The SecureRandom PRNG implementation to use for SSL cryptography operations. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTrustmanager Algorithm* | 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" | false | MEDIUM
+| *camel.component.vertx-kafka.sslTruststore Certificates* | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTruststoreLocation* | The location of the trust store file. | null | false | MEDIUM
-| *camel.component.vertx-kafka.sslTruststorePassword* | 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. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslTruststorePassword* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTruststoreType* | The file format of the trust store file. | "JKS" | false | MEDIUM
 |===
 
@@ -190,8 +200,4 @@ The camel-vertx-kafka sink connector has no transforms out of the box.
 
 
 The camel-vertx-kafka sink connector has no aggregation strategies out of the box.
-
-
-
-
 // kafka-connector options: END
diff --git a/docs/modules/ROOT/pages/connectors/camel-vertx-kafka-kafka-source-connector.adoc b/docs/modules/ROOT/pages/connectors/camel-vertx-kafka-kafka-source-connector.adoc
index ca8d150..42709ae 100644
--- a/docs/modules/ROOT/pages/connectors/camel-vertx-kafka-kafka-source-connector.adoc
+++ b/docs/modules/ROOT/pages/connectors/camel-vertx-kafka-kafka-source-connector.adoc
@@ -22,7 +22,7 @@ connector.class=org.apache.camel.kafkaconnector.vertxkafka.CamelVertxkafkaSource
 ----
 
 
-The camel-vertx-kafka source connector supports 160 options, which are listed below.
+The camel-vertx-kafka source connector supports 170 options, which are listed below.
 
 
 
@@ -40,7 +40,7 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.source.endpoint.metadataMaxAgeMs* | 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. | 300000L | false | MEDIUM
 | *camel.source.endpoint.metricReporters* | 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. | null | false | MEDIUM
 | *camel.source.endpoint.metricsNumSamples* | The number of samples maintained to compute metrics. | 2 | false | MEDIUM
-| *camel.source.endpoint.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] | "INFO" | false | MEDIUM
+| *camel.source.endpoint.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE] | "INFO" | false | MEDIUM
 | *camel.source.endpoint.metricsSampleWindowMs* | The window of time a metrics sample is computed over. | 30000L | false | MEDIUM
 | *camel.source.endpoint.partitionId* | 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 | null | false | MEDIUM
 | *camel.source.endpoint.receiveBufferBytes* | 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 | false | MEDIUM
@@ -49,6 +49,8 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.source.endpoint.requestTimeoutMs* | 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. | 30000 | false | MEDIUM
 | *camel.source.endpoint.retryBackoffMs* | 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. | 100L | false | MEDIUM
 | *camel.source.endpoint.sendBufferBytes* | 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 | false | MEDIUM
+| *camel.source.endpoint.socketConnectionSetupTimeout MaxMs* | 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. | 127000L | false | MEDIUM
+| *camel.source.endpoint.socketConnectionSetupTimeout Ms* | 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. | 10000L | false | MEDIUM
 | *camel.source.endpoint.allowAutoCreateTopics* | 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 | false | MEDIUM
 | *camel.source.endpoint.autoCommitIntervalMs* | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5000 | false | MEDIUM
 | *camel.source.endpoint.autoOffsetReset* | 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. One of: [latest] [earliest] [...]
@@ -98,16 +100,19 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.source.endpoint.sslEndpointIdentification Algorithm* | The endpoint identification algorithm to validate server hostname using server certificate. | "https" | false | MEDIUM
 | *camel.source.endpoint.sslEngineFactoryClass* | 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 | null | false | MEDIUM
 | *camel.source.endpoint.sslKeymanagerAlgorithm* | 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" | false | MEDIUM
-| *camel.source.endpoint.sslKeyPassword* | The password of the private key in the key store file. This is optional for client. | null | false | MEDIUM
+| *camel.source.endpoint.sslKeyPassword* | 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. | null | false | MEDIUM
+| *camel.source.endpoint.sslKeystoreCertificateChain* | 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 | null | false | MEDIUM
+| *camel.source.endpoint.sslKeystoreKey* | 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' | null | false | MEDIUM
 | *camel.source.endpoint.sslKeystoreLocation* | The location of the key store file. This is optional for client and can be used for two-way authentication for client. | null | false | MEDIUM
-| *camel.source.endpoint.sslKeystorePassword* | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. | null | false | MEDIUM
+| *camel.source.endpoint.sslKeystorePassword* | 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. | null | false | MEDIUM
 | *camel.source.endpoint.sslKeystoreType* | The file format of the key store file. This is optional for client. | "JKS" | false | MEDIUM
 | *camel.source.endpoint.sslProtocol* | 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',  [...]
 | *camel.source.endpoint.sslProvider* | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. | null | false | MEDIUM
 | *camel.source.endpoint.sslSecureRandom Implementation* | The SecureRandom PRNG implementation to use for SSL cryptography operations. | null | false | MEDIUM
 | *camel.source.endpoint.sslTrustmanagerAlgorithm* | 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" | false | MEDIUM
+| *camel.source.endpoint.sslTruststoreCertificates* | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. | null | false | MEDIUM
 | *camel.source.endpoint.sslTruststoreLocation* | The location of the trust store file. | null | false | MEDIUM
-| *camel.source.endpoint.sslTruststorePassword* | 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. | null | false | MEDIUM
+| *camel.source.endpoint.sslTruststorePassword* | 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. | null | false | MEDIUM
 | *camel.source.endpoint.sslTruststoreType* | The file format of the trust store file. | "JKS" | false | MEDIUM
 | *camel.component.vertx-kafka.additionalProperties* | Sets additional properties for either kafka consumer or kafka producer in case they can't be set directly on the camel configurations (e.g: new Kafka properties that are not reflected yet in Camel configurations), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro | null | false | MEDIUM
 | *camel.component.vertx-kafka.bootstrapServers* | A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping&mdash;this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,.... Since these servers are just used for the initial connection to discover the full cluster [...]
@@ -120,7 +125,7 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.component.vertx-kafka.metadataMaxAgeMs* | 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. | 300000L | false | MEDIUM
 | *camel.component.vertx-kafka.metricReporters* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.metricsNumSamples* | The number of samples maintained to compute metrics. | 2 | false | MEDIUM
-| *camel.component.vertx-kafka.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] | "INFO" | false | MEDIUM
+| *camel.component.vertx-kafka.metricsRecordingLevel* | The highest recording level for metrics. One of: [INFO] [DEBUG] [TRACE] | "INFO" | false | MEDIUM
 | *camel.component.vertx-kafka.metricsSampleWindowMs* | The window of time a metrics sample is computed over. | 30000L | false | MEDIUM
 | *camel.component.vertx-kafka.partitionId* | 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 | null | false | MEDIUM
 | *camel.component.vertx-kafka.receiveBufferBytes* | 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 | false | MEDIUM
@@ -129,6 +134,8 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.component.vertx-kafka.requestTimeoutMs* | 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. | 30000 | false | MEDIUM
 | *camel.component.vertx-kafka.retryBackoffMs* | 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. | 100L | false | MEDIUM
 | *camel.component.vertx-kafka.sendBufferBytes* | 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 | false | MEDIUM
+| *camel.component.vertx-kafka.socketConnectionSetup TimeoutMaxMs* | 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. | 127000L | false | MEDIUM
+| *camel.component.vertx-kafka.socketConnectionSetup TimeoutMs* | 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. | 10000L | false | MEDIUM
 | *camel.component.vertx-kafka.allowAutoCreateTopics* | 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 | false | MEDIUM
 | *camel.component.vertx-kafka.autoCommitIntervalMs* | The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. | 5000 | false | MEDIUM
 | *camel.component.vertx-kafka.autoOffsetReset* | 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. One of: [latest] [ear [...]
@@ -178,16 +185,19 @@ The camel-vertx-kafka source connector supports 160 options, which are listed be
 | *camel.component.vertx-kafka.sslEndpoint IdentificationAlgorithm* | The endpoint identification algorithm to validate server hostname using server certificate. | "https" | false | MEDIUM
 | *camel.component.vertx-kafka.sslEngineFactoryClass* | 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 | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeymanagerAlgorithm* | 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" | false | MEDIUM
-| *camel.component.vertx-kafka.sslKeyPassword* | The password of the private key in the key store file. This is optional for client. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeyPassword* | 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. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystoreCertificate Chain* | 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 | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystoreKey* | 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' | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeystoreLocation* | The location of the key store file. This is optional for client and can be used for two-way authentication for client. | null | false | MEDIUM
-| *camel.component.vertx-kafka.sslKeystorePassword* | The store password for the key store file. This is optional for client and only needed if ssl.keystore.location is configured. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslKeystorePassword* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslKeystoreType* | The file format of the key store file. This is optional for client. | "JKS" | false | MEDIUM
 | *camel.component.vertx-kafka.sslProtocol* | 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.protoc [...]
 | *camel.component.vertx-kafka.sslProvider* | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslSecureRandom Implementation* | The SecureRandom PRNG implementation to use for SSL cryptography operations. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTrustmanager Algorithm* | 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" | false | MEDIUM
+| *camel.component.vertx-kafka.sslTruststore Certificates* | Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTruststoreLocation* | The location of the trust store file. | null | false | MEDIUM
-| *camel.component.vertx-kafka.sslTruststorePassword* | 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. | null | false | MEDIUM
+| *camel.component.vertx-kafka.sslTruststorePassword* | 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. | null | false | MEDIUM
 | *camel.component.vertx-kafka.sslTruststoreType* | The file format of the trust store file. | "JKS" | false | MEDIUM
 |===