You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/02/28 11:07:55 UTC

[camel] branch master updated (62283dc -> f4f11cb)

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

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


    from 62283dc  CAMEL-14514: Regen
     new 7ac2e90  CAMEL-14568: camel component configurations include nested configuration classes
     new f4f11cb  CAMEL-14568: Regen

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/camel/component/activemq/activemq.json  |  163 ++-
 .../src/main/docs/activemq-component.adoc          |   31 +-
 .../activemq/ComplexRequestReplyTest.java          |    2 +-
 .../org/apache/camel/component/amqp/amqp.json      |  163 ++-
 .../camel-amqp/src/main/docs/amqp-component.adoc   |   31 +-
 .../apache/camel/component/amqp/AMQPComponent.java |    5 +-
 .../apache/camel/component/amqp/AMQPRouteTest.java |    2 +-
 .../component/amqp/AMQPRouteTraceFrameTest.java    |    2 +-
 .../client/map/AtomixMapComponentConfigurer.java   |   28 +-
 .../AtomixMessagingComponentConfigurer.java        |   32 +-
 .../AtomixMultiMapComponentConfigurer.java         |   28 +-
 .../queue/AtomixQueueComponentConfigurer.java      |   26 +-
 .../client/set/AtomixSetComponentConfigurer.java   |   27 +-
 .../value/AtomixValueComponentConfigurer.java      |   27 +-
 .../component/atomix/client/map/atomix-map.json    |   15 +-
 .../atomix/client/messaging/atomix-messaging.json  |   16 +-
 .../atomix/client/multimap/atomix-multimap.json    |   15 +-
 .../atomix/client/queue/atomix-queue.json          |   13 +-
 .../component/atomix/client/set/atomix-set.json    |   14 +-
 .../atomix/client/value/atomix-value.json          |   14 +-
 .../src/main/docs/atomix-map-component.adoc        |   15 +-
 .../src/main/docs/atomix-messaging-component.adoc  |   16 +-
 .../src/main/docs/atomix-multimap-component.adoc   |   15 +-
 .../src/main/docs/atomix-queue-component.adoc      |   13 +-
 .../src/main/docs/atomix-set-component.adoc        |   14 +-
 .../src/main/docs/atomix-value-component.adoc      |   14 +-
 .../component/avro/AvroComponentConfigurer.java    |   18 +
 .../org/apache/camel/component/avro/avro.json      |    6 +
 .../camel-avro/src/main/docs/avro-component.adoc   |    8 +-
 .../component/aws/cw/CwComponentConfigurer.java    |   19 +
 .../org/apache/camel/component/aws/cw/aws-cw.json  |    8 +
 .../src/main/docs/aws-cw-component.adoc            |   10 +-
 .../component/aws/ddb/DdbComponentConfigurer.java  |   26 +
 .../ddbstream/DdbStreamComponentConfigurer.java    |   21 +
 .../apache/camel/component/aws/ddb/aws-ddb.json    |   10 +
 .../component/aws/ddbstream/aws-ddbstream.json     |    7 +
 .../src/main/docs/aws-ddb-component.adoc           |   12 +-
 .../src/main/docs/aws-ddbstream-component.adoc     |    9 +-
 .../component/aws/ec2/EC2ComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/ec2/aws-ec2.json    |    5 +
 .../src/main/docs/aws-ec2-component.adoc           |    7 +-
 .../component/aws/ecs/ECSComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/ecs/aws-ecs.json    |    5 +
 .../src/main/docs/aws-ecs-component.adoc           |    7 +-
 .../component/aws/eks/EKSComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/eks/aws-eks.json    |    5 +
 .../src/main/docs/aws-eks-component.adoc           |    7 +-
 .../component/aws/iam/IAMComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/iam/aws-iam.json    |    5 +
 .../src/main/docs/aws-iam-component.adoc           |    7 +-
 .../KinesisFirehoseComponentConfigurer.java        |   15 +
 .../aws/kinesis/KinesisComponentConfigurer.java    |   25 +
 .../aws/firehose/aws-kinesis-firehose.json         |    4 +
 .../camel/component/aws/kinesis/aws-kinesis.json   |    9 +
 .../src/main/docs/aws-kinesis-component.adoc       |   11 +-
 .../main/docs/aws-kinesis-firehose-component.adoc  |    6 +-
 .../component/aws/kms/KMSComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/kms/aws-kms.json    |    5 +
 .../src/main/docs/aws-kms-component.adoc           |    7 +-
 .../aws/lambda/LambdaComponentConfigurer.java      |   28 +-
 .../camel/component/aws/lambda/aws-lambda.json     |   13 +-
 .../src/main/docs/aws-lambda-component.adoc        |   15 +-
 .../component/aws/lambda/LambdaComponent.java      |   44 +-
 .../lambda/LambdaComponentConfigurationTest.java   |   16 +-
 .../component/aws/mq/MQComponentConfigurer.java    |   16 +
 .../org/apache/camel/component/aws/mq/aws-mq.json  |    5 +
 .../src/main/docs/aws-mq-component.adoc            |    7 +-
 .../component/aws/msk/MSKComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/msk/aws-msk.json    |    5 +
 .../src/main/docs/aws-msk-component.adoc           |    7 +-
 .../component/aws/s3/S3ComponentConfigurer.java    |   63 +
 .../org/apache/camel/component/aws/s3/aws-s3.json  |   32 +-
 .../src/main/docs/aws-s3-component.adoc            |   32 +-
 .../component/aws/ses/SesComponentConfigurer.java  |   21 +
 .../apache/camel/component/aws/ses/aws-ses.json    |    8 +
 .../src/main/docs/aws-ses-component.adoc           |   10 +-
 .../component/aws/sns/SnsComponentConfigurer.java  |   31 +
 .../apache/camel/component/aws/sns/aws-sns.json    |   13 +
 .../src/main/docs/aws-sns-component.adoc           |   15 +-
 .../component/aws/sqs/SqsComponentConfigurer.java  |   66 +
 .../apache/camel/component/aws/sqs/aws-sqs.json    |   33 +-
 .../src/main/docs/aws-sqs-component.adoc           |   33 +-
 .../component/aws/swf/SWFComponentConfigurer.java  |   51 +
 .../apache/camel/component/aws/swf/aws-swf.json    |   25 +-
 .../src/main/docs/aws-swf-component.adoc           |   25 +-
 .../translate/TranslateComponentConfigurer.java    |   22 +
 .../component/aws/translate/aws-translate.json     |    8 +
 .../src/main/docs/aws-translate-component.adoc     |   10 +-
 .../component/aws2/cw/Cw2ComponentConfigurer.java  |   19 +
 .../apache/camel/component/aws2/cw/aws2-cw.json    |    8 +
 .../src/main/docs/aws2-cw-component.adoc           |   10 +-
 .../aws2/ddb/Ddb2ComponentConfigurer.java          |   26 +
 .../ddbstream/Ddb2StreamComponentConfigurer.java   |   21 +
 .../apache/camel/component/aws2/ddb/aws2-ddb.json  |   10 +
 .../component/aws2/ddbstream/aws2-ddbstream.json   |    7 +
 .../src/main/docs/aws2-ddb-component.adoc          |   12 +-
 .../src/main/docs/aws2-ddbstream-component.adoc    |    9 +-
 .../aws2/ec2/AWS2EC2ComponentConfigurer.java       |   16 +
 .../apache/camel/component/aws2/ec2/aws2-ec2.json  |    5 +
 .../src/main/docs/aws2-ec2-component.adoc          |    7 +-
 .../aws2/ecs/ECS2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/ecs/aws2-ecs.json  |    5 +
 .../src/main/docs/aws2-ecs-component.adoc          |    7 +-
 .../aws2/eks/EKS2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/eks/aws2-eks.json  |    5 +
 .../src/main/docs/aws2-eks-component.adoc          |    7 +-
 .../aws2/iam/IAM2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/iam/aws2-iam.json  |    5 +
 .../src/main/docs/aws2-iam-component.adoc          |    7 +-
 .../KinesisFirehose2ComponentConfigurer.java       |   15 +
 .../aws2/kinesis/Kinesis2ComponentConfigurer.java  |   25 +
 .../aws2/firehose/aws2-kinesis-firehose.json       |    4 +
 .../camel/component/aws2/kinesis/aws2-kinesis.json |    9 +
 .../src/main/docs/aws2-kinesis-component.adoc      |   11 +-
 .../main/docs/aws2-kinesis-firehose-component.adoc |    6 +-
 .../aws2/kms/KMS2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/kms/aws2-kms.json  |    5 +
 .../src/main/docs/aws2-kms-component.adoc          |    7 +-
 .../aws2/lambda/Lambda2ComponentConfigurer.java    |   16 +
 .../camel/component/aws2/lambda/aws2-lambda.json   |    7 +-
 .../src/main/docs/aws2-lambda-component.adoc       |    9 +-
 .../component/aws2/mq/MQ2ComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws2/mq/aws2-mq.json    |    5 +
 .../src/main/docs/aws2-mq-component.adoc           |    7 +-
 .../aws2/msk/MSK2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/msk/aws2-msk.json  |    5 +
 .../src/main/docs/aws2-msk-component.adoc          |    7 +-
 .../aws2/ses/Ses2ComponentConfigurer.java          |   21 +
 .../apache/camel/component/aws2/ses/aws2-ses.json  |    8 +
 .../src/main/docs/aws2-ses-component.adoc          |   12 +-
 .../aws2/sns/Sns2ComponentConfigurer.java          |   29 +
 .../apache/camel/component/aws2/sns/aws2-sns.json  |   12 +
 .../src/main/docs/aws2-sns-component.adoc          |   14 +-
 .../aws2/sqs/Sqs2ComponentConfigurer.java          |   66 +
 .../apache/camel/component/aws2/sqs/aws2-sqs.json  |   33 +-
 .../src/main/docs/aws2-sqs-component.adoc          |   33 +-
 .../translate/Translate2ComponentConfigurer.java   |   22 +
 .../component/aws2/translate/aws2-translate.json   |    8 +
 .../src/main/docs/aws2-translate-component.adoc    |   10 +-
 .../azure/blob/BlobServiceComponentConfigurer.java |   35 +
 .../queue/QueueServiceComponentConfigurer.java     |   17 +
 .../camel/component/azure/blob/azure-blob.json     |   15 +
 .../camel/component/azure/queue/azure-queue.json   |    6 +
 .../src/main/docs/azure-blob-component.adoc        |   17 +-
 .../src/main/docs/azure-queue-component.adoc       |    8 +-
 .../component/box/BoxComponentConfigurer.java      |   37 +
 .../org/apache/camel/component/box/box.json        |   19 +-
 .../src/main/docs/box-component.adoc               |   17 +-
 .../apache/camel/component/box/BoxComponent.java   |    3 +
 .../braintree/BraintreeComponentConfigurer.java    |   28 +-
 .../camel/component/braintree/braintree.json       |   12 +-
 .../src/main/docs/braintree-component.adoc         |   14 +-
 .../cache/CaffeineCacheComponentConfigurer.java    |   34 +
 .../load/CaffeineLoadCacheComponentConfigurer.java |   34 +
 .../component/caffeine/cache/caffeine-cache.json   |   17 +-
 .../caffeine/load/caffeine-loadcache.json          |   17 +-
 .../src/main/docs/caffeine-cache-component.adoc    |   17 +-
 .../main/docs/caffeine-loadcache-component.adoc    |   17 +-
 .../cometd/CometdComponentConfigurer.java          |    2 +-
 .../org/apache/camel/component/cometd/cometd.json  |    2 +-
 .../org/apache/camel/component/cometd/cometds.json |    2 +-
 .../src/main/docs/cometd-component.adoc            |    2 +-
 .../camel/component/cometd/CometdComponent.java    |    1 +
 .../consul/ConsulComponentConfigurer.java          |   51 +-
 .../org/apache/camel/component/consul/consul.json  |   31 +-
 .../src/main/docs/consul-component.adoc            |   29 +-
 .../camel/component/consul/ConsulComponent.java    |   76 +-
 .../camel/component/consul/ConsulTestSupport.java  |    2 +-
 .../component/corda/CordaComponentConfigurer.java  |   23 +
 .../org/apache/camel/component/corda/corda.json    |   12 +-
 .../camel-corda/src/main/docs/corda-component.adoc |   12 +-
 .../DigitalSignatureComponentConfigurer.java       |   37 +
 .../org/apache/camel/component/crypto/crypto.json  |   20 +-
 .../src/main/docs/crypto-component.adoc            |   20 +-
 .../DebeziumMongodbComponentConfigurer.java        |   85 ++
 .../camel/component/debezium/debezium-mongodb.json |   41 +-
 .../src/main/docs/debezium-mongodb-component.adoc  |   41 +-
 .../debezium/DebeziumMySqlComponentConfigurer.java |  145 ++
 .../camel/component/debezium/debezium-mysql.json   |   71 +-
 .../src/main/docs/debezium-mysql-component.adoc    |   71 +-
 .../DebeziumPostgresComponentConfigurer.java       |  129 ++
 .../component/debezium/debezium-postgres.json      |   63 +-
 .../src/main/docs/debezium-postgres-component.adoc |   63 +-
 .../DebeziumSqlserverComponentConfigurer.java      |   93 ++
 .../component/debezium/debezium-sqlserver.json     |   45 +-
 .../main/docs/debezium-sqlserver-component.adoc    |   45 +-
 .../disruptor/DisruptorComponentConfigurer.java    |    2 -
 .../camel/component/disruptor/disruptor-vm.json    |    1 -
 .../camel/component/disruptor/disruptor.json       |    1 -
 .../src/main/docs/disruptor-component.adoc         |    3 +-
 .../component/disruptor/DisruptorComponent.java    |   18 -
 .../docker/DockerComponentConfigurer.java          |   33 +
 .../org/apache/camel/component/docker/docker.json  |   19 +-
 .../src/main/docs/docker-component.adoc            |   19 +-
 .../camel/component/docker/DockerComponent.java    |    2 +-
 .../ehcache/EhcacheComponentConfigurer.java        |   36 +-
 .../apache/camel/component/ehcache/ehcache.json    |   19 +-
 .../src/main/docs/ehcache-component.adoc           |   17 +-
 .../org/apache/camel/component/elsql/elsql.json    |    6 +-
 .../camel/component/elsql/ElsqlComponent.java      |    3 +
 .../etcd/EtcdKeysComponentConfigurer.java          |   25 +-
 .../etcd/EtcdStatsComponentConfigurer.java         |   29 +-
 .../etcd/EtcdWatchComponentConfigurer.java         |   27 +-
 .../org/apache/camel/component/etcd/etcd-keys.json |   16 +-
 .../apache/camel/component/etcd/etcd-stats.json    |   18 +-
 .../apache/camel/component/etcd/etcd-watch.json    |   17 +-
 .../src/main/docs/etcd-keys-component.adoc         |   16 +-
 .../src/main/docs/etcd-stats-component.adoc        |   18 +-
 .../src/main/docs/etcd-watch-component.adoc        |   17 +-
 .../component/etcd/AbstractEtcdComponent.java      |   46 +-
 .../component/etcd/support/EtcdTestSupport.java    |    6 +-
 .../etcd/support/SpringEtcdTestSupport.java        |    6 +-
 .../facebook/FacebookComponentConfigurer.java      |   61 +
 .../apache/camel/component/facebook/facebook.json  |   29 +-
 .../src/main/docs/facebook-component.adoc          |   29 +-
 .../component/fhir/FhirComponentConfigurer.java    |   48 +-
 .../org/apache/camel/component/fhir/fhir.json      |   27 +-
 .../src/main/docs/fhir-component.adoc              |   27 +-
 .../apache/camel/component/fhir/FhirComponent.java |    3 +
 .../ganglia/GangliaComponentConfigurer.java        |   23 +
 .../apache/camel/component/ganglia/ganglia.json    |   12 +
 .../src/main/docs/ganglia-component.adoc           |   14 +-
 .../GoogleCalendarComponentConfigurer.java         |   23 +
 .../calendar/GoogleCalendarEndpointConfigurer.java |   12 +-
 .../GoogleCalendarStreamComponentConfigurer.java   |   27 +
 .../component/google/calendar/google-calendar.json |   21 +-
 .../calendar/stream/google-calendar-stream.json    |   11 +
 .../src/main/docs/google-calendar-component.adoc   |   17 +-
 .../docs/google-calendar-stream-component.adoc     |   13 +-
 .../google/calendar/GoogleCalendarComponent.java   |    3 +
 .../calendar/GoogleCalendarConfiguration.java      |    6 +-
 .../drive/GoogleDriveComponentConfigurer.java      |   18 +
 .../drive/GoogleDriveEndpointConfigurer.java       |   12 +-
 .../camel/component/google/drive/google-drive.json |   18 +-
 .../src/main/docs/google-drive-component.adoc      |   14 +-
 .../google/drive/GoogleDriveComponent.java         |    3 +
 .../google/drive/GoogleDriveConfiguration.java     |    6 +-
 .../google/mail/GoogleMailComponentConfigurer.java |   17 +
 .../google/mail/GoogleMailEndpointConfigurer.java  |   12 +-
 .../GoogleMailStreamComponentConfigurer.java       |   23 +
 .../camel/component/google/mail/google-mail.json   |   17 +-
 .../google/mail/stream/google-mail-stream.json     |    9 +
 .../src/main/docs/google-mail-component.adoc       |   13 +-
 .../main/docs/google-mail-stream-component.adoc    |   11 +-
 .../component/google/mail/GoogleMailComponent.java |    3 +
 .../google/mail/GoogleMailConfiguration.java       |    6 +-
 .../sheets/GoogleSheetsComponentConfigurer.java    |   17 +
 .../sheets/GoogleSheetsEndpointConfigurer.java     |   12 +-
 .../GoogleSheetsStreamComponentConfigurer.java     |   31 +
 .../component/google/sheets/google-sheets.json     |   17 +-
 .../google/sheets/stream/google-sheets-stream.json |   13 +
 .../src/main/docs/google-sheets-component.adoc     |   13 +-
 .../main/docs/google-sheets-stream-component.adoc  |   15 +-
 .../google/sheets/GoogleSheetsComponent.java       |    3 +
 .../google/sheets/GoogleSheetsConfiguration.java   |    6 +-
 .../infinispan/InfinispanComponentConfigurer.java  |   34 +-
 .../camel/component/infinispan/infinispan.json     |   20 +-
 .../src/main/docs/infinispan-component.adoc        |   20 +-
 .../component/infinispan/InfinispanComponent.java  |   68 +-
 .../apache/camel/component/jgroups/jgroups.json    |    4 +-
 .../camel/component/jgroups/JGroupsComponent.java  |    2 +
 .../component/jira/JiraComponentConfigurer.java    |   20 +
 .../org/apache/camel/component/jira/jira.json      |   10 +-
 .../camel-jira/src/main/docs/jira-component.adoc   |   10 +-
 .../component/jms/JmsComponentConfigurer.java      |  186 ++-
 .../org/apache/camel/component/jms/jms.json        |  163 ++-
 .../camel-jms/src/main/docs/jms-component.adoc     |   31 +-
 .../org/apache/camel/component/jms/JmsBinding.java |    2 +-
 .../apache/camel/component/jms/JmsComponent.java   | 1520 +++++++++-----------
 .../jms/JmsAllowAdditionalHeadersTest.java         |    2 +-
 .../component/jms/JmsAsyncStartListenerTest.java   |    2 +-
 .../jms/JmsAsyncStartStopListenerTest.java         |    4 +-
 .../component/jms/JmsAsyncStopListenerTest.java    |    2 +-
 .../camel/component/jms/JmsComponentTest.java      |   38 +-
 .../component/jms/JmsDestinationResolverTest.java  |    2 +-
 .../jms/JmsErrorHandlerLogStackTraceTest.java      |    4 +-
 .../jms/JmsFormatDateHeadersToIso8601Test.java     |    2 +-
 .../jms/JmsIncludeAllJMSXPropertiesTest.java       |    2 +-
 ...ailoverWithForceSendOriginalJmsMessageTest.java |    2 +-
 .../jms/JmsNotIncludeAllJMSXPropertiesTest.java    |    2 +-
 .../jms/JmsRequestReplyCorrelationTest.java        |    4 +-
 ...sRequestReplyExclusiveReplyToComponentTest.java |    2 +-
 .../component/jms/JmsRouteRequestReplyTest.java    |   30 +-
 .../jms/JmsRouteTimeoutCheckerIntervalTest.java    |    2 +-
 .../component/jms/JmsStreamMessageTypeTest.java    |    2 +-
 .../JmsPassThroughtJmsKeyFormatStrategyTest.java   |    3 +-
 .../camel/component/jms/temp/JmsReconnectTest.java |    6 +-
 .../component/jooq/JooqComponentConfigurer.java    |   13 +
 .../org/apache/camel/component/jooq/jooq.json      |    4 +
 .../camel-jooq/src/main/docs/jooq-component.adoc   |    6 +-
 .../org/apache/camel/component/jpa/jpa.json        |    6 +-
 .../apache/camel/component/jpa/JpaComponent.java   |    3 +
 .../component/kafka/KafkaComponentConfigurer.java  |  185 ++-
 .../org/apache/camel/component/kafka/kafka.json    |   97 +-
 .../camel-kafka/src/main/docs/kafka-component.adoc |   94 +-
 .../camel/component/kafka/KafkaComponent.java      |   78 +-
 .../camel/component/kafka/KafkaConfiguration.java  |    2 +
 .../lucene/LuceneComponentConfigurer.java          |   14 +
 .../org/apache/camel/component/lucene/lucene.json  |    4 +
 .../src/main/docs/lucene-component.adoc            |    6 +-
 .../component/mail/MailComponentConfigurer.java    |   63 +
 .../org/apache/camel/component/mail/imap.json      |   36 +-
 .../org/apache/camel/component/mail/imaps.json     |   36 +-
 .../org/apache/camel/component/mail/pop3.json      |   36 +-
 .../org/apache/camel/component/mail/pop3s.json     |   36 +-
 .../org/apache/camel/component/mail/smtp.json      |   36 +-
 .../org/apache/camel/component/mail/smtps.json     |   36 +-
 .../camel-mail/src/main/docs/mail-component.adoc   |   36 +-
 .../milo/client/MiloClientComponentConfigurer.java |   56 +-
 .../camel/component/milo/client/milo-client.json   |   27 +-
 .../src/main/docs/milo-client-component.adoc       |   27 +-
 .../component/milo/client/MiloClientComponent.java |   24 +-
 .../component/milo/server/MiloServerComponent.java |    1 -
 .../component/mina/MinaComponentConfigurer.java    |   46 +
 .../org/apache/camel/component/mina/mina.json      |   23 +
 .../camel-mina/src/main/docs/mina-component.adoc   |   25 +-
 .../org/apache/camel/component/mllp/mllp.json      |    1 -
 .../camel-mllp/src/main/docs/mllp-component.adoc   |    3 +-
 .../nagios/NagiosComponentConfigurer.java          |   12 +
 .../org/apache/camel/component/nagios/nagios.json  |    6 +-
 .../src/main/docs/nagios-component.adoc            |    6 +-
 .../camel/component/netty/http/netty-http.json     |   68 +-
 .../src/main/docs/netty-http-component.adoc        |   68 +-
 .../component/netty/NettyComponentConfigurer.java  |  124 +-
 .../org/apache/camel/component/netty/netty.json    |   66 +-
 .../camel-netty/src/main/docs/netty-component.adoc |   66 +-
 .../olingo2/Olingo2ComponentConfigurer.java        |   28 +
 .../olingo2/Olingo2EndpointConfigurer.java         |   12 +-
 .../apache/camel/component/olingo2/olingo2.json    |   21 +-
 .../src/main/docs/olingo2-component.adoc           |   19 +-
 .../camel/component/olingo2/Olingo2Component.java  |    3 +
 .../component/olingo2/Olingo2Configuration.java    |    6 +-
 .../olingo4/Olingo4ComponentConfigurer.java        |   28 +
 .../olingo4/Olingo4EndpointConfigurer.java         |   12 +-
 .../apache/camel/component/olingo4/olingo4.json    |   21 +-
 .../src/main/docs/olingo4-component.adoc           |   19 +-
 .../camel/component/olingo4/Olingo4Component.java  |    3 +
 .../component/olingo4/Olingo4Configuration.java    |    6 +-
 .../component/paho/PahoComponentConfigurer.java    |   55 +-
 .../org/apache/camel/component/paho/paho.json      |   31 +-
 .../camel-paho/src/main/docs/paho-component.adoc   |   29 +-
 .../apache/camel/component/paho/PahoComponent.java |   11 +-
 .../component/paho/PahoOverrideTopicTest.java      |    2 +-
 .../pulsar/PulsarComponentConfigurer.java          |   58 +-
 .../org/apache/camel/component/pulsar/pulsar.json  |   77 +-
 .../src/main/docs/pulsar-component.adoc            |   27 +-
 .../camel/component/pulsar/PulsarComponent.java    |   42 +-
 .../{configuration => }/PulsarConfiguration.java   |   18 +-
 .../camel/component/pulsar/PulsarEndpoint.java     |    1 -
 .../component/pulsar/PulsarMessageReceipt.java     |    1 -
 .../camel/component/pulsar/PulsarProducer.java     |    1 -
 .../consumers/CommonCreationStrategyImpl.java      |    2 +-
 .../utils/consumers/FailoverConsumerStrategy.java  |    2 +-
 .../utils/consumers/SharedConsumerStrategy.java    |    2 +-
 .../component/pulsar/PulsarComponentTest.java      |    2 +-
 .../PulsarConsumerNoAcknowledgementTest.java       |    4 +-
 .../org/apache/camel/component/quartz/quartz.json  |    8 +-
 .../camel/component/quartz/QuartzComponent.java    |    5 +-
 .../quickfixj/QuickfixjComponentConfigurer.java    |    1 -
 .../apache/camel/component/quickfixj/quickfix.json |    3 +-
 .../src/main/docs/quickfix-component.adoc          |    3 +-
 .../component/quickfixj/QuickfixjComponent.java    |    1 +
 .../RobotFrameworkComponentConfigurer.java         |   81 ++
 .../component/robotframework/robotframework.json   |   45 +
 .../src/main/docs/robotframework-component.adoc    |   47 +-
 .../salesforce/SalesforceComponentConfigurer.java  |   81 ++
 .../camel/component/salesforce/salesforce.json     |   38 +
 .../src/main/docs/salesforce-component.adoc        |   40 +-
 .../servicenow/ServiceNowComponentConfigurer.java  |   88 +-
 .../camel/component/servicenow/servicenow.json     |   55 +-
 .../src/main/docs/servicenow-component.adoc        |   47 +-
 .../component/servicenow/ServiceNowComponent.java  |  123 +-
 .../servicenow/ServiceNowTestSupport.java          |    8 +-
 .../servlet/ServletAsyncArquillianTest.java        |    2 +
 .../component/smpp/SmppComponentConfigurer.java    |   72 +
 .../org/apache/camel/component/smpp/smpp.json      |   36 +-
 .../org/apache/camel/component/smpp/smpps.json     |   36 +-
 .../camel-smpp/src/main/docs/smpp-component.adoc   |   36 +-
 .../sparkrest/SparkComponentConfigurer.java        |   17 +
 .../camel/component/sparkrest/spark-rest.json      |    5 +
 .../src/main/docs/spark-rest-component.adoc        |    7 +-
 .../org/apache/camel/component/sql/sql.json        |    2 +-
 .../apache/camel/component/sql/SqlComponent.java   |    1 +
 .../component/ssh/SshComponentConfigurer.java      |   37 +-
 .../org/apache/camel/component/ssh/ssh.json        |   28 +-
 .../camel-ssh/src/main/docs/ssh-component.adoc     |   16 +-
 .../apache/camel/component/ssh/SshComponent.java   |  189 +--
 .../component/ssh/SshComponentSecurityTest.java    |   10 +-
 .../component/stomp/StompComponentConfigurer.java  |   20 +-
 .../org/apache/camel/component/stomp/stomp.json    |   13 +-
 .../camel-stomp/src/main/docs/stomp-component.adoc |   11 +-
 .../camel/component/stomp/StompComponent.java      |   36 +-
 .../org/apache/camel/component/vertx/vertx.json    |    8 +-
 .../camel/component/vertx/VertxComponent.java      |    4 +
 .../component/web3j/Web3jComponentConfigurer.java  |   62 +
 .../org/apache/camel/component/web3j/web3j.json    |   34 +
 .../camel-web3j/src/main/docs/web3j-component.adoc |   36 +-
 .../webhook/WebhookComponentConfigurer.java        |   17 +
 .../apache/camel/component/webhook/webhook.json    |    5 +
 .../src/main/docs/webhook-component.adoc           |    7 +-
 .../websocket/WebsocketComponentConfigurer.java    |    2 -
 .../camel/component/websocket/websocket.json       |    1 -
 .../src/main/docs/websocket-component.adoc         |    3 +-
 .../wordpress/WordpressComponentConfigurer.java    |   17 +
 .../camel/component/wordpress/wordpress.json       |    8 +
 .../src/main/docs/wordpress-component.adoc         |   10 +-
 .../XmlSignatureComponentConfigurer.java           |   58 +
 .../XmlVerifierComponentConfigurer.java            |   39 +
 .../component/xmlsecurity/xmlsecurity-sign.json    |   28 +-
 .../component/xmlsecurity/xmlsecurity-verify.json  |   16 +
 .../src/main/docs/xmlsecurity-sign-component.adoc  |   30 +-
 .../main/docs/xmlsecurity-verify-component.adoc    |   20 +-
 .../yammer/YammerComponentConfigurer.java          |   28 +-
 .../org/apache/camel/component/yammer/yammer.json  |   17 +-
 .../src/main/docs/yammer-component.adoc            |   17 +-
 .../camel/component/yammer/YammerComponent.java    |   80 +-
 .../component/yammer/YammerConfiguration.java      |   15 +-
 .../yammer/YammerComponentTestSupport.java         |    2 +-
 .../zendesk/ZendeskComponentConfigurer.java        |    2 +-
 .../apache/camel/component/zendesk/zendesk.json    |    2 +-
 .../src/main/docs/zendesk-component.adoc           |    2 +-
 .../zookeepermaster/MasterComponentConfigurer.java |    4 +-
 .../zookeepermaster/zookeeper-master.json          |    2 +-
 .../src/main/docs/zookeeper-master-component.adoc  |    2 +-
 .../component/zookeepermaster/MasterComponent.java |    1 +
 .../zookeeper/ZooKeeperComponentConfigurer.java    |   17 +
 .../camel/component/zookeeper/zookeeper.json       |    7 +
 .../src/main/docs/zookeeper-component.adoc         |    9 +-
 .../dsl/ActivemqComponentBuilderFactory.java       |  465 ++++--
 .../component/dsl/AmqpComponentBuilderFactory.java |  463 ++++--
 .../dsl/AtomixMapComponentBuilderFactory.java      |  167 ++-
 .../AtomixMessagingComponentBuilderFactory.java    |  184 ++-
 .../dsl/AtomixMultimapComponentBuilderFactory.java |  168 ++-
 .../dsl/AtomixQueueComponentBuilderFactory.java    |  142 +-
 .../dsl/AtomixSetComponentBuilderFactory.java      |  154 +-
 .../dsl/AtomixValueComponentBuilderFactory.java    |  154 +-
 .../component/dsl/AvroComponentBuilderFactory.java |   87 ++
 .../dsl/Aws2CwComponentBuilderFactory.java         |  108 ++
 .../dsl/Aws2DdbComponentBuilderFactory.java        |  146 ++
 .../dsl/Aws2DdbstreamComponentBuilderFactory.java  |  109 ++
 .../dsl/Aws2Ec2ComponentBuilderFactory.java        |   78 +
 .../dsl/Aws2EcsComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2EksComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2IamComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2KinesisComponentBuilderFactory.java    |  137 ++
 ...Aws2KinesisFirehoseComponentBuilderFactory.java |   67 +
 .../dsl/Aws2KmsComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2LambdaComponentBuilderFactory.java     |   78 +
 .../dsl/Aws2MqComponentBuilderFactory.java         |   75 +
 .../dsl/Aws2MskComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2SesComponentBuilderFactory.java        |  113 ++
 .../dsl/Aws2SnsComponentBuilderFactory.java        |  166 +++
 .../dsl/Aws2SqsComponentBuilderFactory.java        |  454 ++++++
 .../dsl/Aws2TranslateComponentBuilderFactory.java  |  117 ++
 .../dsl/AwsCwComponentBuilderFactory.java          |  107 ++
 .../dsl/AwsDdbComponentBuilderFactory.java         |  144 ++
 .../dsl/AwsDdbstreamComponentBuilderFactory.java   |  109 ++
 .../dsl/AwsEc2ComponentBuilderFactory.java         |   76 +
 .../dsl/AwsEcsComponentBuilderFactory.java         |   73 +
 .../dsl/AwsEksComponentBuilderFactory.java         |   73 +
 .../dsl/AwsIamComponentBuilderFactory.java         |   73 +
 .../dsl/AwsKinesisComponentBuilderFactory.java     |  135 ++
 .../AwsKinesisFirehoseComponentBuilderFactory.java |   65 +
 .../dsl/AwsKmsComponentBuilderFactory.java         |   72 +
 .../dsl/AwsLambdaComponentBuilderFactory.java      |  120 +-
 .../dsl/AwsMqComponentBuilderFactory.java          |   74 +
 .../dsl/AwsMskComponentBuilderFactory.java         |   73 +
 .../dsl/AwsS3ComponentBuilderFactory.java          |  427 ++++++
 .../dsl/AwsSesComponentBuilderFactory.java         |  112 ++
 .../dsl/AwsSnsComponentBuilderFactory.java         |  179 +++
 .../dsl/AwsSqsComponentBuilderFactory.java         |  452 ++++++
 .../dsl/AwsSwfComponentBuilderFactory.java         |  319 ++++
 .../dsl/AwsTranslateComponentBuilderFactory.java   |  116 ++
 .../dsl/AzureBlobComponentBuilderFactory.java      |  208 +++
 .../dsl/AzureQueueComponentBuilderFactory.java     |   89 ++
 .../component/dsl/BoxComponentBuilderFactory.java  |  203 +++
 .../dsl/BraintreeComponentBuilderFactory.java      |  142 +-
 .../dsl/CaffeineCacheComponentBuilderFactory.java  |  215 +++
 .../CaffeineLoadcacheComponentBuilderFactory.java  |  217 +++
 .../dsl/CometdComponentBuilderFactory.java         |   30 +-
 .../dsl/CometdsComponentBuilderFactory.java        |   30 +-
 .../dsl/ConsulComponentBuilderFactory.java         |  263 +++-
 .../dsl/CordaComponentBuilderFactory.java          |  164 +++
 .../dsl/CryptoComponentBuilderFactory.java         |  266 ++++
 .../DebeziumMongodbComponentBuilderFactory.java    |  591 ++++++++
 .../dsl/DebeziumMysqlComponentBuilderFactory.java  | 1143 +++++++++++++++
 .../DebeziumPostgresComponentBuilderFactory.java   |  983 +++++++++++++
 .../DebeziumSqlserverComponentBuilderFactory.java  |  680 +++++++++
 .../dsl/DisruptorComponentBuilderFactory.java      |   13 -
 .../dsl/DisruptorVmComponentBuilderFactory.java    |   13 -
 .../dsl/DockerComponentBuilderFactory.java         |  231 +++
 .../dsl/EhcacheComponentBuilderFactory.java        |  181 ++-
 .../dsl/EtcdKeysComponentBuilderFactory.java       |   97 +-
 .../dsl/EtcdStatsComponentBuilderFactory.java      |  131 +-
 .../dsl/EtcdWatchComponentBuilderFactory.java      |  112 +-
 .../dsl/FacebookComponentBuilderFactory.java       |  374 +++++
 .../component/dsl/FhirComponentBuilderFactory.java |  321 ++++-
 .../dsl/GangliaComponentBuilderFactory.java        |  174 +++
 .../dsl/GoogleCalendarComponentBuilderFactory.java |  132 ++
 ...oogleCalendarStreamComponentBuilderFactory.java |  160 +++
 .../dsl/GoogleDriveComponentBuilderFactory.java    |   90 ++
 .../dsl/GoogleMailComponentBuilderFactory.java     |   74 +
 .../GoogleMailStreamComponentBuilderFactory.java   |  126 ++
 .../dsl/GoogleSheetsComponentBuilderFactory.java   |   75 +
 .../GoogleSheetsStreamComponentBuilderFactory.java |  192 +++
 .../dsl/GuavaEventbusComponentBuilderFactory.java  |    2 +-
 .../component/dsl/ImapComponentBuilderFactory.java |  511 +++++++
 .../dsl/ImapsComponentBuilderFactory.java          |  513 +++++++
 .../dsl/InfinispanComponentBuilderFactory.java     |  235 ++-
 .../dsl/JcloudsComponentBuilderFactory.java        |    4 +-
 .../dsl/JettyComponentBuilderFactory.java          |    8 +-
 .../component/dsl/JiraComponentBuilderFactory.java |  111 ++
 .../component/dsl/JmsComponentBuilderFactory.java  |  463 ++++--
 .../component/dsl/JooqComponentBuilderFactory.java |   60 +
 .../component/dsl/JsltComponentBuilderFactory.java |    2 +-
 .../dsl/KafkaComponentBuilderFactory.java          | 1496 ++++++++++++++++++-
 .../dsl/LuceneComponentBuilderFactory.java         |   63 +
 .../dsl/MiloClientComponentBuilderFactory.java     |  274 +++-
 .../dsl/MiloServerComponentBuilderFactory.java     |    6 +-
 .../component/dsl/MinaComponentBuilderFactory.java |  345 +++++
 .../component/dsl/MllpComponentBuilderFactory.java |   14 -
 .../dsl/NagiosComponentBuilderFactory.java         |   59 +
 .../dsl/NettyComponentBuilderFactory.java          |  976 ++++++++++++-
 .../dsl/NettyHttpComponentBuilderFactory.java      |  998 ++++++++++++-
 .../dsl/Olingo2ComponentBuilderFactory.java        |  168 +++
 .../dsl/Olingo4ComponentBuilderFactory.java        |  168 +++
 .../component/dsl/PahoComponentBuilderFactory.java |  459 +++++-
 .../component/dsl/Pop3ComponentBuilderFactory.java |  511 +++++++
 .../dsl/Pop3sComponentBuilderFactory.java          |  513 +++++++
 .../dsl/PulsarComponentBuilderFactory.java         |  372 ++++-
 .../dsl/QuickfixComponentBuilderFactory.java       |   16 -
 .../dsl/RabbitmqComponentBuilderFactory.java       |    4 +-
 .../dsl/RobotframeworkComponentBuilderFactory.java |  609 ++++++++
 .../dsl/SalesforceComponentBuilderFactory.java     |  526 ++++++-
 .../component/dsl/SedaComponentBuilderFactory.java |    2 +-
 .../dsl/ServicenowComponentBuilderFactory.java     |  521 ++++++-
 .../component/dsl/SmppComponentBuilderFactory.java |  524 +++++++
 .../dsl/SmppsComponentBuilderFactory.java          |  524 +++++++
 .../component/dsl/SmtpComponentBuilderFactory.java |  511 +++++++
 .../dsl/SmtpsComponentBuilderFactory.java          |  513 +++++++
 .../dsl/SparkRestComponentBuilderFactory.java      |   99 ++
 .../component/dsl/SshComponentBuilderFactory.java  |   87 +-
 .../dsl/StompComponentBuilderFactory.java          |   59 +-
 .../component/dsl/StubComponentBuilderFactory.java |    2 +-
 .../component/dsl/VmComponentBuilderFactory.java   |    2 +-
 .../dsl/Web3jComponentBuilderFactory.java          |  438 ++++++
 .../dsl/WebhookComponentBuilderFactory.java        |   77 +
 .../dsl/WebsocketComponentBuilderFactory.java      |   16 -
 .../dsl/WordpressComponentBuilderFactory.java      |  111 ++
 .../component/dsl/XjComponentBuilderFactory.java   |    2 +-
 .../XmlsecuritySignComponentBuilderFactory.java    |  456 ++++++
 .../XmlsecurityVerifyComponentBuilderFactory.java  |  290 ++++
 .../dsl/XqueryComponentBuilderFactory.java         |    2 +-
 .../dsl/XsltSaxonComponentBuilderFactory.java      |    2 +-
 .../dsl/YammerComponentBuilderFactory.java         |  130 +-
 .../dsl/ZendeskComponentBuilderFactory.java        |   30 +-
 .../dsl/ZookeeperComponentBuilderFactory.java      |  100 ++
 .../ZookeeperMasterComponentBuilderFactory.java    |   28 +-
 .../component/ComponentsBuilderFactoryTest.java    |   12 +-
 .../support/component/AbstractApiComponent.java    |    2 +-
 .../modules/ROOT/pages/activemq-component.adoc     |   31 +-
 .../modules/ROOT/pages/amqp-component.adoc         |   31 +-
 .../modules/ROOT/pages/atomix-map-component.adoc   |   15 +-
 .../ROOT/pages/atomix-messaging-component.adoc     |   16 +-
 .../ROOT/pages/atomix-multimap-component.adoc      |   15 +-
 .../modules/ROOT/pages/atomix-queue-component.adoc |   13 +-
 .../modules/ROOT/pages/atomix-set-component.adoc   |   14 +-
 .../modules/ROOT/pages/atomix-value-component.adoc |   14 +-
 .../modules/ROOT/pages/avro-component.adoc         |    8 +-
 .../modules/ROOT/pages/aws-cw-component.adoc       |   10 +-
 .../modules/ROOT/pages/aws-ddb-component.adoc      |   12 +-
 .../ROOT/pages/aws-ddbstream-component.adoc        |    9 +-
 .../modules/ROOT/pages/aws-ec2-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-ecs-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-eks-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-iam-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-kinesis-component.adoc  |   11 +-
 .../ROOT/pages/aws-kinesis-firehose-component.adoc |    6 +-
 .../modules/ROOT/pages/aws-kms-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-lambda-component.adoc   |   15 +-
 .../modules/ROOT/pages/aws-mq-component.adoc       |    7 +-
 .../modules/ROOT/pages/aws-msk-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-s3-component.adoc       |   32 +-
 .../modules/ROOT/pages/aws-ses-component.adoc      |   10 +-
 .../modules/ROOT/pages/aws-sns-component.adoc      |   15 +-
 .../modules/ROOT/pages/aws-sqs-component.adoc      |   33 +-
 .../modules/ROOT/pages/aws-swf-component.adoc      |   25 +-
 .../ROOT/pages/aws-translate-component.adoc        |   10 +-
 .../modules/ROOT/pages/aws2-cw-component.adoc      |   10 +-
 .../modules/ROOT/pages/aws2-ddb-component.adoc     |   12 +-
 .../ROOT/pages/aws2-ddbstream-component.adoc       |    9 +-
 .../modules/ROOT/pages/aws2-ec2-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-ecs-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-eks-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-iam-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-kinesis-component.adoc |   11 +-
 .../pages/aws2-kinesis-firehose-component.adoc     |    6 +-
 .../modules/ROOT/pages/aws2-kms-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-lambda-component.adoc  |    9 +-
 .../modules/ROOT/pages/aws2-mq-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws2-msk-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-ses-component.adoc     |   12 +-
 .../modules/ROOT/pages/aws2-sns-component.adoc     |   14 +-
 .../modules/ROOT/pages/aws2-sqs-component.adoc     |   33 +-
 .../ROOT/pages/aws2-translate-component.adoc       |   10 +-
 .../modules/ROOT/pages/azure-blob-component.adoc   |   17 +-
 .../modules/ROOT/pages/azure-queue-component.adoc  |    8 +-
 .../modules/ROOT/pages/box-component.adoc          |   17 +-
 .../modules/ROOT/pages/braintree-component.adoc    |   14 +-
 .../ROOT/pages/caffeine-cache-component.adoc       |   17 +-
 .../ROOT/pages/caffeine-loadcache-component.adoc   |   17 +-
 .../modules/ROOT/pages/cometd-component.adoc       |    2 +-
 .../modules/ROOT/pages/consul-component.adoc       |   29 +-
 .../modules/ROOT/pages/corda-component.adoc        |   12 +-
 .../modules/ROOT/pages/crypto-component.adoc       |   20 +-
 .../ROOT/pages/debezium-mongodb-component.adoc     |   41 +-
 .../ROOT/pages/debezium-mysql-component.adoc       |   71 +-
 .../ROOT/pages/debezium-postgres-component.adoc    |   63 +-
 .../ROOT/pages/debezium-sqlserver-component.adoc   |   45 +-
 .../modules/ROOT/pages/disruptor-component.adoc    |    3 +-
 .../modules/ROOT/pages/docker-component.adoc       |   19 +-
 .../modules/ROOT/pages/ehcache-component.adoc      |   17 +-
 .../modules/ROOT/pages/etcd-keys-component.adoc    |   16 +-
 .../modules/ROOT/pages/etcd-stats-component.adoc   |   18 +-
 .../modules/ROOT/pages/etcd-watch-component.adoc   |   17 +-
 .../modules/ROOT/pages/facebook-component.adoc     |   29 +-
 .../modules/ROOT/pages/fhir-component.adoc         |   27 +-
 .../modules/ROOT/pages/ganglia-component.adoc      |   14 +-
 .../ROOT/pages/google-calendar-component.adoc      |   17 +-
 .../pages/google-calendar-stream-component.adoc    |   13 +-
 .../modules/ROOT/pages/google-drive-component.adoc |   14 +-
 .../modules/ROOT/pages/google-mail-component.adoc  |   13 +-
 .../ROOT/pages/google-mail-stream-component.adoc   |   11 +-
 .../ROOT/pages/google-sheets-component.adoc        |   13 +-
 .../ROOT/pages/google-sheets-stream-component.adoc |   15 +-
 .../modules/ROOT/pages/infinispan-component.adoc   |   20 +-
 .../modules/ROOT/pages/jira-component.adoc         |   10 +-
 .../modules/ROOT/pages/jms-component.adoc          |   31 +-
 .../modules/ROOT/pages/jooq-component.adoc         |    6 +-
 .../modules/ROOT/pages/kafka-component.adoc        |   94 +-
 .../modules/ROOT/pages/lucene-component.adoc       |    6 +-
 .../modules/ROOT/pages/mail-component.adoc         |   36 +-
 .../modules/ROOT/pages/milo-client-component.adoc  |   27 +-
 .../modules/ROOT/pages/mina-component.adoc         |   25 +-
 .../modules/ROOT/pages/mllp-component.adoc         |    3 +-
 .../modules/ROOT/pages/nagios-component.adoc       |    6 +-
 .../modules/ROOT/pages/netty-component.adoc        |   66 +-
 .../modules/ROOT/pages/netty-http-component.adoc   |   68 +-
 .../modules/ROOT/pages/olingo2-component.adoc      |   19 +-
 .../modules/ROOT/pages/olingo4-component.adoc      |   19 +-
 .../modules/ROOT/pages/paho-component.adoc         |   29 +-
 .../modules/ROOT/pages/pulsar-component.adoc       |   27 +-
 .../modules/ROOT/pages/quickfix-component.adoc     |    3 +-
 .../ROOT/pages/robotframework-component.adoc       |   47 +-
 .../modules/ROOT/pages/salesforce-component.adoc   |   40 +-
 .../modules/ROOT/pages/servicenow-component.adoc   |   47 +-
 .../modules/ROOT/pages/smpp-component.adoc         |   36 +-
 .../modules/ROOT/pages/spark-rest-component.adoc   |    7 +-
 .../modules/ROOT/pages/ssh-component.adoc          |   16 +-
 .../modules/ROOT/pages/stomp-component.adoc        |   11 +-
 .../modules/ROOT/pages/web3j-component.adoc        |   36 +-
 .../modules/ROOT/pages/webhook-component.adoc      |    7 +-
 .../modules/ROOT/pages/websocket-component.adoc    |    3 +-
 .../modules/ROOT/pages/wordpress-component.adoc    |   10 +-
 .../ROOT/pages/xmlsecurity-sign-component.adoc     |   30 +-
 .../ROOT/pages/xmlsecurity-verify-component.adoc   |   20 +-
 .../modules/ROOT/pages/yammer-component.adoc       |   17 +-
 .../modules/ROOT/pages/zendesk-component.adoc      |    2 +-
 .../modules/ROOT/pages/zookeeper-component.adoc    |    9 +-
 .../ROOT/pages/zookeeper-master-component.adoc     |    2 +-
 .../modules/ROOT/pages/camel-3x-upgrade-guide.adoc |   56 +
 .../camel/itest/jms2/BaseJms2TestSupport.java      |    4 +-
 .../camel/maven/packaging/ComponentDslMojo.java    |    4 -
 .../packaging/EndpointSchemaGeneratorMojo.java     |  214 +--
 .../packaging/PropertyConfigurerGenerator.java     |   48 +-
 .../ComponentDslInnerImplBuilderGenerator.java     |   51 +-
 .../ComponentDslInnerImplBuilderGeneratorTest.java |   10 +-
 677 files changed, 38244 insertions(+), 3979 deletions(-)
 rename components/camel-pulsar/src/main/java/org/apache/camel/component/pulsar/{configuration => }/PulsarConfiguration.java (96%)


[camel] 01/02: CAMEL-14568: camel component configurations include nested configuration classes

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

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

commit 7ac2e908065db4bb37987c378c00c9c0140038b6
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Feb 28 11:01:26 2020 +0100

    CAMEL-14568: camel component configurations include nested configuration classes
---
 .../apache/camel/component/activemq/activemq.json  |  163 ++-
 .../src/main/docs/activemq-component.adoc          |   31 +-
 .../activemq/ComplexRequestReplyTest.java          |    2 +-
 .../org/apache/camel/component/amqp/amqp.json      |  163 ++-
 .../camel-amqp/src/main/docs/amqp-component.adoc   |   31 +-
 .../apache/camel/component/amqp/AMQPComponent.java |    5 +-
 .../apache/camel/component/amqp/AMQPRouteTest.java |    2 +-
 .../component/amqp/AMQPRouteTraceFrameTest.java    |    2 +-
 .../client/map/AtomixMapComponentConfigurer.java   |   28 +-
 .../AtomixMessagingComponentConfigurer.java        |   32 +-
 .../AtomixMultiMapComponentConfigurer.java         |   28 +-
 .../queue/AtomixQueueComponentConfigurer.java      |   26 +-
 .../client/set/AtomixSetComponentConfigurer.java   |   27 +-
 .../value/AtomixValueComponentConfigurer.java      |   27 +-
 .../component/atomix/client/map/atomix-map.json    |   15 +-
 .../atomix/client/messaging/atomix-messaging.json  |   16 +-
 .../atomix/client/multimap/atomix-multimap.json    |   15 +-
 .../atomix/client/queue/atomix-queue.json          |   13 +-
 .../component/atomix/client/set/atomix-set.json    |   14 +-
 .../atomix/client/value/atomix-value.json          |   14 +-
 .../src/main/docs/atomix-map-component.adoc        |   15 +-
 .../src/main/docs/atomix-messaging-component.adoc  |   16 +-
 .../src/main/docs/atomix-multimap-component.adoc   |   15 +-
 .../src/main/docs/atomix-queue-component.adoc      |   13 +-
 .../src/main/docs/atomix-set-component.adoc        |   14 +-
 .../src/main/docs/atomix-value-component.adoc      |   14 +-
 .../component/avro/AvroComponentConfigurer.java    |   18 +
 .../org/apache/camel/component/avro/avro.json      |    6 +
 .../camel-avro/src/main/docs/avro-component.adoc   |    8 +-
 .../component/aws/cw/CwComponentConfigurer.java    |   19 +
 .../org/apache/camel/component/aws/cw/aws-cw.json  |    8 +
 .../src/main/docs/aws-cw-component.adoc            |   10 +-
 .../component/aws/ddb/DdbComponentConfigurer.java  |   26 +
 .../ddbstream/DdbStreamComponentConfigurer.java    |   21 +
 .../apache/camel/component/aws/ddb/aws-ddb.json    |   10 +
 .../component/aws/ddbstream/aws-ddbstream.json     |    7 +
 .../src/main/docs/aws-ddb-component.adoc           |   12 +-
 .../src/main/docs/aws-ddbstream-component.adoc     |    9 +-
 .../component/aws/ec2/EC2ComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/ec2/aws-ec2.json    |    5 +
 .../src/main/docs/aws-ec2-component.adoc           |    7 +-
 .../component/aws/ecs/ECSComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/ecs/aws-ecs.json    |    5 +
 .../src/main/docs/aws-ecs-component.adoc           |    7 +-
 .../component/aws/eks/EKSComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/eks/aws-eks.json    |    5 +
 .../src/main/docs/aws-eks-component.adoc           |    7 +-
 .../component/aws/iam/IAMComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/iam/aws-iam.json    |    5 +
 .../src/main/docs/aws-iam-component.adoc           |    7 +-
 .../KinesisFirehoseComponentConfigurer.java        |   15 +
 .../aws/kinesis/KinesisComponentConfigurer.java    |   25 +
 .../aws/firehose/aws-kinesis-firehose.json         |    4 +
 .../camel/component/aws/kinesis/aws-kinesis.json   |    9 +
 .../src/main/docs/aws-kinesis-component.adoc       |   11 +-
 .../main/docs/aws-kinesis-firehose-component.adoc  |    6 +-
 .../component/aws/kms/KMSComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/kms/aws-kms.json    |    5 +
 .../src/main/docs/aws-kms-component.adoc           |    7 +-
 .../aws/lambda/LambdaComponentConfigurer.java      |   28 +-
 .../camel/component/aws/lambda/aws-lambda.json     |   13 +-
 .../src/main/docs/aws-lambda-component.adoc        |   15 +-
 .../component/aws/lambda/LambdaComponent.java      |   44 +-
 .../lambda/LambdaComponentConfigurationTest.java   |   16 +-
 .../component/aws/mq/MQComponentConfigurer.java    |   16 +
 .../org/apache/camel/component/aws/mq/aws-mq.json  |    5 +
 .../src/main/docs/aws-mq-component.adoc            |    7 +-
 .../component/aws/msk/MSKComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws/msk/aws-msk.json    |    5 +
 .../src/main/docs/aws-msk-component.adoc           |    7 +-
 .../component/aws/s3/S3ComponentConfigurer.java    |   63 +
 .../org/apache/camel/component/aws/s3/aws-s3.json  |   32 +-
 .../src/main/docs/aws-s3-component.adoc            |   32 +-
 .../component/aws/ses/SesComponentConfigurer.java  |   21 +
 .../apache/camel/component/aws/ses/aws-ses.json    |    8 +
 .../src/main/docs/aws-ses-component.adoc           |   10 +-
 .../component/aws/sns/SnsComponentConfigurer.java  |   31 +
 .../apache/camel/component/aws/sns/aws-sns.json    |   13 +
 .../src/main/docs/aws-sns-component.adoc           |   15 +-
 .../component/aws/sqs/SqsComponentConfigurer.java  |   66 +
 .../apache/camel/component/aws/sqs/aws-sqs.json    |   33 +-
 .../src/main/docs/aws-sqs-component.adoc           |   33 +-
 .../component/aws/swf/SWFComponentConfigurer.java  |   51 +
 .../apache/camel/component/aws/swf/aws-swf.json    |   25 +-
 .../src/main/docs/aws-swf-component.adoc           |   25 +-
 .../translate/TranslateComponentConfigurer.java    |   22 +
 .../component/aws/translate/aws-translate.json     |    8 +
 .../src/main/docs/aws-translate-component.adoc     |   10 +-
 .../component/aws2/cw/Cw2ComponentConfigurer.java  |   19 +
 .../apache/camel/component/aws2/cw/aws2-cw.json    |    8 +
 .../src/main/docs/aws2-cw-component.adoc           |   10 +-
 .../aws2/ddb/Ddb2ComponentConfigurer.java          |   26 +
 .../ddbstream/Ddb2StreamComponentConfigurer.java   |   21 +
 .../apache/camel/component/aws2/ddb/aws2-ddb.json  |   10 +
 .../component/aws2/ddbstream/aws2-ddbstream.json   |    7 +
 .../src/main/docs/aws2-ddb-component.adoc          |   12 +-
 .../src/main/docs/aws2-ddbstream-component.adoc    |    9 +-
 .../aws2/ec2/AWS2EC2ComponentConfigurer.java       |   16 +
 .../apache/camel/component/aws2/ec2/aws2-ec2.json  |    5 +
 .../src/main/docs/aws2-ec2-component.adoc          |    7 +-
 .../aws2/ecs/ECS2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/ecs/aws2-ecs.json  |    5 +
 .../src/main/docs/aws2-ecs-component.adoc          |    7 +-
 .../aws2/eks/EKS2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/eks/aws2-eks.json  |    5 +
 .../src/main/docs/aws2-eks-component.adoc          |    7 +-
 .../aws2/iam/IAM2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/iam/aws2-iam.json  |    5 +
 .../src/main/docs/aws2-iam-component.adoc          |    7 +-
 .../aws2/kms/KMS2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/kms/aws2-kms.json  |    5 +
 .../src/main/docs/aws2-kms-component.adoc          |    7 +-
 .../aws2/lambda/Lambda2ComponentConfigurer.java    |   16 +
 .../camel/component/aws2/lambda/aws2-lambda.json   |    7 +-
 .../src/main/docs/aws2-lambda-component.adoc       |    9 +-
 .../component/aws2/mq/MQ2ComponentConfigurer.java  |   16 +
 .../apache/camel/component/aws2/mq/aws2-mq.json    |    5 +
 .../src/main/docs/aws2-mq-component.adoc           |    7 +-
 .../aws2/msk/MSK2ComponentConfigurer.java          |   16 +
 .../apache/camel/component/aws2/msk/aws2-msk.json  |    5 +
 .../src/main/docs/aws2-msk-component.adoc          |    7 +-
 .../aws2/ses/Ses2ComponentConfigurer.java          |   21 +
 .../apache/camel/component/aws2/ses/aws2-ses.json  |    8 +
 .../src/main/docs/aws2-ses-component.adoc          |   12 +-
 .../aws2/sns/Sns2ComponentConfigurer.java          |   29 +
 .../apache/camel/component/aws2/sns/aws2-sns.json  |   12 +
 .../src/main/docs/aws2-sns-component.adoc          |   14 +-
 .../aws2/sqs/Sqs2ComponentConfigurer.java          |   66 +
 .../apache/camel/component/aws2/sqs/aws2-sqs.json  |   33 +-
 .../src/main/docs/aws2-sqs-component.adoc          |   33 +-
 .../translate/Translate2ComponentConfigurer.java   |   22 +
 .../component/aws2/translate/aws2-translate.json   |    8 +
 .../src/main/docs/aws2-translate-component.adoc    |   10 +-
 .../azure/blob/BlobServiceComponentConfigurer.java |   35 +
 .../queue/QueueServiceComponentConfigurer.java     |   17 +
 .../camel/component/azure/blob/azure-blob.json     |   15 +
 .../camel/component/azure/queue/azure-queue.json   |    6 +
 .../src/main/docs/azure-blob-component.adoc        |   17 +-
 .../src/main/docs/azure-queue-component.adoc       |    8 +-
 .../component/box/BoxComponentConfigurer.java      |   37 +
 .../org/apache/camel/component/box/box.json        |   19 +-
 .../src/main/docs/box-component.adoc               |   17 +-
 .../apache/camel/component/box/BoxComponent.java   |    3 +
 .../braintree/BraintreeComponentConfigurer.java    |   28 +-
 .../camel/component/braintree/braintree.json       |   12 +-
 .../src/main/docs/braintree-component.adoc         |   14 +-
 .../cache/CaffeineCacheComponentConfigurer.java    |   34 +
 .../load/CaffeineLoadCacheComponentConfigurer.java |   34 +
 .../component/caffeine/cache/caffeine-cache.json   |   17 +-
 .../caffeine/load/caffeine-loadcache.json          |   17 +-
 .../src/main/docs/caffeine-cache-component.adoc    |   17 +-
 .../main/docs/caffeine-loadcache-component.adoc    |   17 +-
 .../cometd/CometdComponentConfigurer.java          |    2 +-
 .../org/apache/camel/component/cometd/cometd.json  |    2 +-
 .../org/apache/camel/component/cometd/cometds.json |    2 +-
 .../src/main/docs/cometd-component.adoc            |    2 +-
 .../camel/component/cometd/CometdComponent.java    |    1 +
 .../consul/ConsulComponentConfigurer.java          |   51 +-
 .../org/apache/camel/component/consul/consul.json  |   31 +-
 .../src/main/docs/consul-component.adoc            |   29 +-
 .../camel/component/consul/ConsulComponent.java    |   76 +-
 .../camel/component/consul/ConsulTestSupport.java  |    2 +-
 .../component/corda/CordaComponentConfigurer.java  |   23 +
 .../org/apache/camel/component/corda/corda.json    |   12 +-
 .../camel-corda/src/main/docs/corda-component.adoc |   12 +-
 .../DigitalSignatureComponentConfigurer.java       |   37 +
 .../org/apache/camel/component/crypto/crypto.json  |   20 +-
 .../src/main/docs/crypto-component.adoc            |   20 +-
 .../DebeziumMongodbComponentConfigurer.java        |   85 ++
 .../camel/component/debezium/debezium-mongodb.json |   41 +-
 .../src/main/docs/debezium-mongodb-component.adoc  |   41 +-
 .../debezium/DebeziumMySqlComponentConfigurer.java |  145 ++
 .../camel/component/debezium/debezium-mysql.json   |   71 +-
 .../src/main/docs/debezium-mysql-component.adoc    |   71 +-
 .../DebeziumPostgresComponentConfigurer.java       |  129 ++
 .../component/debezium/debezium-postgres.json      |   63 +-
 .../src/main/docs/debezium-postgres-component.adoc |   63 +-
 .../DebeziumSqlserverComponentConfigurer.java      |   93 ++
 .../component/debezium/debezium-sqlserver.json     |   45 +-
 .../main/docs/debezium-sqlserver-component.adoc    |   45 +-
 .../disruptor/DisruptorComponentConfigurer.java    |    2 -
 .../camel/component/disruptor/disruptor-vm.json    |    1 -
 .../camel/component/disruptor/disruptor.json       |    1 -
 .../src/main/docs/disruptor-component.adoc         |    3 +-
 .../component/disruptor/DisruptorComponent.java    |   18 -
 .../docker/DockerComponentConfigurer.java          |   33 +
 .../org/apache/camel/component/docker/docker.json  |   19 +-
 .../src/main/docs/docker-component.adoc            |   19 +-
 .../camel/component/docker/DockerComponent.java    |    2 +-
 .../ehcache/EhcacheComponentConfigurer.java        |   36 +-
 .../apache/camel/component/ehcache/ehcache.json    |   19 +-
 .../src/main/docs/ehcache-component.adoc           |   17 +-
 .../org/apache/camel/component/elsql/elsql.json    |    6 +-
 .../camel/component/elsql/ElsqlComponent.java      |    3 +
 .../etcd/EtcdKeysComponentConfigurer.java          |   25 +-
 .../etcd/EtcdStatsComponentConfigurer.java         |   29 +-
 .../etcd/EtcdWatchComponentConfigurer.java         |   27 +-
 .../org/apache/camel/component/etcd/etcd-keys.json |   16 +-
 .../apache/camel/component/etcd/etcd-stats.json    |   18 +-
 .../apache/camel/component/etcd/etcd-watch.json    |   17 +-
 .../src/main/docs/etcd-keys-component.adoc         |   16 +-
 .../src/main/docs/etcd-stats-component.adoc        |   18 +-
 .../src/main/docs/etcd-watch-component.adoc        |   17 +-
 .../component/etcd/AbstractEtcdComponent.java      |   46 +-
 .../component/etcd/support/EtcdTestSupport.java    |    6 +-
 .../etcd/support/SpringEtcdTestSupport.java        |    6 +-
 .../facebook/FacebookComponentConfigurer.java      |   61 +
 .../apache/camel/component/facebook/facebook.json  |   29 +-
 .../src/main/docs/facebook-component.adoc          |   29 +-
 .../component/fhir/FhirComponentConfigurer.java    |   48 +-
 .../org/apache/camel/component/fhir/fhir.json      |   27 +-
 .../src/main/docs/fhir-component.adoc              |   27 +-
 .../apache/camel/component/fhir/FhirComponent.java |    3 +
 .../ganglia/GangliaComponentConfigurer.java        |   23 +
 .../apache/camel/component/ganglia/ganglia.json    |   12 +
 .../src/main/docs/ganglia-component.adoc           |   14 +-
 .../GoogleCalendarComponentConfigurer.java         |   23 +
 .../calendar/GoogleCalendarEndpointConfigurer.java |   12 +-
 .../GoogleCalendarStreamComponentConfigurer.java   |   27 +
 .../component/google/calendar/google-calendar.json |   21 +-
 .../calendar/stream/google-calendar-stream.json    |   11 +
 .../src/main/docs/google-calendar-component.adoc   |   17 +-
 .../docs/google-calendar-stream-component.adoc     |   13 +-
 .../google/calendar/GoogleCalendarComponent.java   |    3 +
 .../calendar/GoogleCalendarConfiguration.java      |    6 +-
 .../drive/GoogleDriveComponentConfigurer.java      |   18 +
 .../drive/GoogleDriveEndpointConfigurer.java       |   12 +-
 .../camel/component/google/drive/google-drive.json |   18 +-
 .../src/main/docs/google-drive-component.adoc      |   14 +-
 .../google/drive/GoogleDriveComponent.java         |    3 +
 .../google/drive/GoogleDriveConfiguration.java     |    6 +-
 .../google/mail/GoogleMailComponentConfigurer.java |   17 +
 .../google/mail/GoogleMailEndpointConfigurer.java  |   12 +-
 .../GoogleMailStreamComponentConfigurer.java       |   23 +
 .../camel/component/google/mail/google-mail.json   |   17 +-
 .../google/mail/stream/google-mail-stream.json     |    9 +
 .../src/main/docs/google-mail-component.adoc       |   13 +-
 .../main/docs/google-mail-stream-component.adoc    |   11 +-
 .../component/google/mail/GoogleMailComponent.java |    3 +
 .../google/mail/GoogleMailConfiguration.java       |    6 +-
 .../sheets/GoogleSheetsComponentConfigurer.java    |   17 +
 .../sheets/GoogleSheetsEndpointConfigurer.java     |   12 +-
 .../GoogleSheetsStreamComponentConfigurer.java     |   31 +
 .../component/google/sheets/google-sheets.json     |   17 +-
 .../google/sheets/stream/google-sheets-stream.json |   13 +
 .../src/main/docs/google-sheets-component.adoc     |   13 +-
 .../main/docs/google-sheets-stream-component.adoc  |   15 +-
 .../google/sheets/GoogleSheetsComponent.java       |    3 +
 .../google/sheets/GoogleSheetsConfiguration.java   |    6 +-
 .../infinispan/InfinispanComponentConfigurer.java  |   34 +-
 .../camel/component/infinispan/infinispan.json     |   20 +-
 .../src/main/docs/infinispan-component.adoc        |   20 +-
 .../component/infinispan/InfinispanComponent.java  |   68 +-
 .../apache/camel/component/jgroups/jgroups.json    |    4 +-
 .../camel/component/jgroups/JGroupsComponent.java  |    2 +
 .../component/jira/JiraComponentConfigurer.java    |   20 +
 .../org/apache/camel/component/jira/jira.json      |   10 +-
 .../camel-jira/src/main/docs/jira-component.adoc   |   10 +-
 .../component/jms/JmsComponentConfigurer.java      |  186 ++-
 .../org/apache/camel/component/jms/jms.json        |  163 ++-
 .../camel-jms/src/main/docs/jms-component.adoc     |   31 +-
 .../org/apache/camel/component/jms/JmsBinding.java |    2 +-
 .../apache/camel/component/jms/JmsComponent.java   | 1520 +++++++++-----------
 .../jms/JmsAllowAdditionalHeadersTest.java         |    2 +-
 .../component/jms/JmsAsyncStartListenerTest.java   |    2 +-
 .../jms/JmsAsyncStartStopListenerTest.java         |    4 +-
 .../component/jms/JmsAsyncStopListenerTest.java    |    2 +-
 .../camel/component/jms/JmsComponentTest.java      |   38 +-
 .../component/jms/JmsDestinationResolverTest.java  |    2 +-
 .../jms/JmsErrorHandlerLogStackTraceTest.java      |    4 +-
 .../jms/JmsFormatDateHeadersToIso8601Test.java     |    2 +-
 .../jms/JmsIncludeAllJMSXPropertiesTest.java       |    2 +-
 ...ailoverWithForceSendOriginalJmsMessageTest.java |    2 +-
 .../jms/JmsNotIncludeAllJMSXPropertiesTest.java    |    2 +-
 .../jms/JmsRequestReplyCorrelationTest.java        |    4 +-
 ...sRequestReplyExclusiveReplyToComponentTest.java |    2 +-
 .../component/jms/JmsRouteRequestReplyTest.java    |   30 +-
 .../jms/JmsRouteTimeoutCheckerIntervalTest.java    |    2 +-
 .../component/jms/JmsStreamMessageTypeTest.java    |    2 +-
 .../JmsPassThroughtJmsKeyFormatStrategyTest.java   |    3 +-
 .../camel/component/jms/temp/JmsReconnectTest.java |    6 +-
 .../component/jooq/JooqComponentConfigurer.java    |   13 +
 .../org/apache/camel/component/jooq/jooq.json      |    4 +
 .../camel-jooq/src/main/docs/jooq-component.adoc   |    6 +-
 .../org/apache/camel/component/jpa/jpa.json        |    6 +-
 .../apache/camel/component/jpa/JpaComponent.java   |    3 +
 .../component/kafka/KafkaComponentConfigurer.java  |  185 ++-
 .../org/apache/camel/component/kafka/kafka.json    |   95 +-
 .../camel-kafka/src/main/docs/kafka-component.adoc |   92 +-
 .../camel/component/kafka/KafkaComponent.java      |   59 +-
 .../lucene/LuceneComponentConfigurer.java          |   14 +
 .../org/apache/camel/component/lucene/lucene.json  |    4 +
 .../src/main/docs/lucene-component.adoc            |    6 +-
 .../component/mail/MailComponentConfigurer.java    |   63 +
 .../org/apache/camel/component/mail/imap.json      |   36 +-
 .../org/apache/camel/component/mail/imaps.json     |   36 +-
 .../org/apache/camel/component/mail/pop3.json      |   36 +-
 .../org/apache/camel/component/mail/pop3s.json     |   36 +-
 .../org/apache/camel/component/mail/smtp.json      |   36 +-
 .../org/apache/camel/component/mail/smtps.json     |   36 +-
 .../camel-mail/src/main/docs/mail-component.adoc   |   36 +-
 .../milo/client/MiloClientComponentConfigurer.java |   56 +-
 .../camel/component/milo/client/milo-client.json   |   27 +-
 .../src/main/docs/milo-client-component.adoc       |   27 +-
 .../component/milo/client/MiloClientComponent.java |   24 +-
 .../component/milo/server/MiloServerComponent.java |    1 -
 .../component/mina/MinaComponentConfigurer.java    |   46 +
 .../org/apache/camel/component/mina/mina.json      |   23 +
 .../camel-mina/src/main/docs/mina-component.adoc   |   25 +-
 .../org/apache/camel/component/mllp/mllp.json      |    1 -
 .../camel-mllp/src/main/docs/mllp-component.adoc   |    3 +-
 .../nagios/NagiosComponentConfigurer.java          |   12 +
 .../org/apache/camel/component/nagios/nagios.json  |    6 +-
 .../src/main/docs/nagios-component.adoc            |    6 +-
 .../camel/component/netty/http/netty-http.json     |   68 +-
 .../src/main/docs/netty-http-component.adoc        |   68 +-
 .../component/netty/NettyComponentConfigurer.java  |  124 +-
 .../org/apache/camel/component/netty/netty.json    |   66 +-
 .../camel-netty/src/main/docs/netty-component.adoc |   66 +-
 .../olingo2/Olingo2ComponentConfigurer.java        |   28 +
 .../olingo2/Olingo2EndpointConfigurer.java         |   12 +-
 .../apache/camel/component/olingo2/olingo2.json    |   21 +-
 .../src/main/docs/olingo2-component.adoc           |   19 +-
 .../camel/component/olingo2/Olingo2Component.java  |    3 +
 .../component/olingo2/Olingo2Configuration.java    |    6 +-
 .../olingo4/Olingo4ComponentConfigurer.java        |   28 +
 .../olingo4/Olingo4EndpointConfigurer.java         |   12 +-
 .../apache/camel/component/olingo4/olingo4.json    |   21 +-
 .../src/main/docs/olingo4-component.adoc           |   19 +-
 .../camel/component/olingo4/Olingo4Component.java  |    3 +
 .../component/olingo4/Olingo4Configuration.java    |    6 +-
 .../component/paho/PahoComponentConfigurer.java    |   55 +-
 .../org/apache/camel/component/paho/paho.json      |   31 +-
 .../camel-paho/src/main/docs/paho-component.adoc   |   29 +-
 .../apache/camel/component/paho/PahoComponent.java |   11 +-
 .../component/paho/PahoOverrideTopicTest.java      |    2 +-
 .../pulsar/PulsarComponentConfigurer.java          |   58 +-
 .../org/apache/camel/component/pulsar/pulsar.json  |   77 +-
 .../src/main/docs/pulsar-component.adoc            |   27 +-
 .../camel/component/pulsar/PulsarComponent.java    |   42 +-
 .../{configuration => }/PulsarConfiguration.java   |   18 +-
 .../camel/component/pulsar/PulsarEndpoint.java     |    1 -
 .../component/pulsar/PulsarMessageReceipt.java     |    1 -
 .../camel/component/pulsar/PulsarProducer.java     |    1 -
 .../consumers/CommonCreationStrategyImpl.java      |    2 +-
 .../utils/consumers/FailoverConsumerStrategy.java  |    2 +-
 .../utils/consumers/SharedConsumerStrategy.java    |    2 +-
 .../component/pulsar/PulsarComponentTest.java      |    2 +-
 .../PulsarConsumerNoAcknowledgementTest.java       |    4 +-
 .../org/apache/camel/component/quartz/quartz.json  |    8 +-
 .../camel/component/quartz/QuartzComponent.java    |    5 +-
 .../quickfixj/QuickfixjComponentConfigurer.java    |    1 -
 .../apache/camel/component/quickfixj/quickfix.json |    3 +-
 .../src/main/docs/quickfix-component.adoc          |    3 +-
 .../component/quickfixj/QuickfixjComponent.java    |    1 +
 .../RobotFrameworkComponentConfigurer.java         |   81 ++
 .../component/robotframework/robotframework.json   |   45 +
 .../src/main/docs/robotframework-component.adoc    |   47 +-
 .../salesforce/SalesforceComponentConfigurer.java  |   81 ++
 .../camel/component/salesforce/salesforce.json     |   38 +
 .../src/main/docs/salesforce-component.adoc        |   40 +-
 .../servicenow/ServiceNowComponentConfigurer.java  |   88 +-
 .../camel/component/servicenow/servicenow.json     |   55 +-
 .../src/main/docs/servicenow-component.adoc        |   47 +-
 .../component/servicenow/ServiceNowComponent.java  |  123 +-
 .../servicenow/ServiceNowTestSupport.java          |    8 +-
 .../servlet/ServletAsyncArquillianTest.java        |    2 +
 .../component/smpp/SmppComponentConfigurer.java    |   72 +
 .../org/apache/camel/component/smpp/smpp.json      |   36 +-
 .../org/apache/camel/component/smpp/smpps.json     |   36 +-
 .../camel-smpp/src/main/docs/smpp-component.adoc   |   36 +-
 .../sparkrest/SparkComponentConfigurer.java        |   17 +
 .../camel/component/sparkrest/spark-rest.json      |    5 +
 .../src/main/docs/spark-rest-component.adoc        |    7 +-
 .../org/apache/camel/component/sql/sql.json        |    2 +-
 .../apache/camel/component/sql/SqlComponent.java   |    1 +
 .../component/ssh/SshComponentConfigurer.java      |   37 +-
 .../org/apache/camel/component/ssh/ssh.json        |   28 +-
 .../camel-ssh/src/main/docs/ssh-component.adoc     |   16 +-
 .../apache/camel/component/ssh/SshComponent.java   |  189 +--
 .../component/ssh/SshComponentSecurityTest.java    |   10 +-
 .../component/stomp/StompComponentConfigurer.java  |   20 +-
 .../org/apache/camel/component/stomp/stomp.json    |   13 +-
 .../camel-stomp/src/main/docs/stomp-component.adoc |   11 +-
 .../camel/component/stomp/StompComponent.java      |   36 +-
 .../org/apache/camel/component/vertx/vertx.json    |    8 +-
 .../camel/component/vertx/VertxComponent.java      |    4 +
 .../component/web3j/Web3jComponentConfigurer.java  |   62 +
 .../org/apache/camel/component/web3j/web3j.json    |   34 +
 .../camel-web3j/src/main/docs/web3j-component.adoc |   36 +-
 .../webhook/WebhookComponentConfigurer.java        |   17 +
 .../apache/camel/component/webhook/webhook.json    |    5 +
 .../src/main/docs/webhook-component.adoc           |    7 +-
 .../websocket/WebsocketComponentConfigurer.java    |    2 -
 .../camel/component/websocket/websocket.json       |    1 -
 .../src/main/docs/websocket-component.adoc         |    3 +-
 .../wordpress/WordpressComponentConfigurer.java    |   17 +
 .../camel/component/wordpress/wordpress.json       |    8 +
 .../src/main/docs/wordpress-component.adoc         |   10 +-
 .../XmlSignatureComponentConfigurer.java           |   58 +
 .../XmlVerifierComponentConfigurer.java            |   39 +
 .../component/xmlsecurity/xmlsecurity-sign.json    |   28 +-
 .../component/xmlsecurity/xmlsecurity-verify.json  |   16 +
 .../src/main/docs/xmlsecurity-sign-component.adoc  |   30 +-
 .../main/docs/xmlsecurity-verify-component.adoc    |   20 +-
 .../yammer/YammerComponentConfigurer.java          |   28 +-
 .../org/apache/camel/component/yammer/yammer.json  |   17 +-
 .../src/main/docs/yammer-component.adoc            |   17 +-
 .../camel/component/yammer/YammerComponent.java    |   80 +-
 .../component/yammer/YammerConfiguration.java      |   15 +-
 .../yammer/YammerComponentTestSupport.java         |    2 +-
 .../zendesk/ZendeskComponentConfigurer.java        |    2 +-
 .../apache/camel/component/zendesk/zendesk.json    |    2 +-
 .../src/main/docs/zendesk-component.adoc           |    2 +-
 .../zookeepermaster/MasterComponentConfigurer.java |    4 +-
 .../zookeepermaster/zookeeper-master.json          |    2 +-
 .../src/main/docs/zookeeper-master-component.adoc  |    2 +-
 .../component/zookeepermaster/MasterComponent.java |    1 +
 .../zookeeper/ZooKeeperComponentConfigurer.java    |   17 +
 .../camel/component/zookeeper/zookeeper.json       |    7 +
 .../src/main/docs/zookeeper-component.adoc         |    9 +-
 .../dsl/ActivemqComponentBuilderFactory.java       |  465 ++++--
 .../component/dsl/AmqpComponentBuilderFactory.java |  463 ++++--
 .../dsl/AtomixMapComponentBuilderFactory.java      |  167 ++-
 .../AtomixMessagingComponentBuilderFactory.java    |  184 ++-
 .../dsl/AtomixMultimapComponentBuilderFactory.java |  168 ++-
 .../dsl/AtomixQueueComponentBuilderFactory.java    |  142 +-
 .../dsl/AtomixSetComponentBuilderFactory.java      |  154 +-
 .../dsl/AtomixValueComponentBuilderFactory.java    |  154 +-
 .../component/dsl/AvroComponentBuilderFactory.java |   87 ++
 .../dsl/Aws2CwComponentBuilderFactory.java         |  108 ++
 .../dsl/Aws2DdbComponentBuilderFactory.java        |  146 ++
 .../dsl/Aws2DdbstreamComponentBuilderFactory.java  |  109 ++
 .../dsl/Aws2Ec2ComponentBuilderFactory.java        |   78 +
 .../dsl/Aws2EcsComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2EksComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2IamComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2KmsComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2LambdaComponentBuilderFactory.java     |   78 +
 .../dsl/Aws2MqComponentBuilderFactory.java         |   75 +
 .../dsl/Aws2MskComponentBuilderFactory.java        |   74 +
 .../dsl/Aws2SesComponentBuilderFactory.java        |  113 ++
 .../dsl/Aws2SnsComponentBuilderFactory.java        |  166 +++
 .../dsl/Aws2SqsComponentBuilderFactory.java        |  454 ++++++
 .../dsl/Aws2TranslateComponentBuilderFactory.java  |  117 ++
 .../dsl/AwsCwComponentBuilderFactory.java          |  107 ++
 .../dsl/AwsDdbComponentBuilderFactory.java         |  144 ++
 .../dsl/AwsDdbstreamComponentBuilderFactory.java   |  109 ++
 .../dsl/AwsEc2ComponentBuilderFactory.java         |   76 +
 .../dsl/AwsEcsComponentBuilderFactory.java         |   73 +
 .../dsl/AwsEksComponentBuilderFactory.java         |   73 +
 .../dsl/AwsIamComponentBuilderFactory.java         |   73 +
 .../dsl/AwsKinesisComponentBuilderFactory.java     |  135 ++
 .../AwsKinesisFirehoseComponentBuilderFactory.java |   65 +
 .../dsl/AwsKmsComponentBuilderFactory.java         |   72 +
 .../dsl/AwsLambdaComponentBuilderFactory.java      |  120 +-
 .../dsl/AwsMqComponentBuilderFactory.java          |   74 +
 .../dsl/AwsMskComponentBuilderFactory.java         |   73 +
 .../dsl/AwsS3ComponentBuilderFactory.java          |  427 ++++++
 .../dsl/AwsSesComponentBuilderFactory.java         |  112 ++
 .../dsl/AwsSnsComponentBuilderFactory.java         |  179 +++
 .../dsl/AwsSqsComponentBuilderFactory.java         |  452 ++++++
 .../dsl/AwsSwfComponentBuilderFactory.java         |  319 ++++
 .../dsl/AwsTranslateComponentBuilderFactory.java   |  116 ++
 .../dsl/AzureBlobComponentBuilderFactory.java      |  208 +++
 .../dsl/AzureQueueComponentBuilderFactory.java     |   89 ++
 .../component/dsl/BoxComponentBuilderFactory.java  |  203 +++
 .../dsl/BraintreeComponentBuilderFactory.java      |  142 +-
 .../dsl/CaffeineCacheComponentBuilderFactory.java  |  215 +++
 .../CaffeineLoadcacheComponentBuilderFactory.java  |  217 +++
 .../dsl/CometdComponentBuilderFactory.java         |   30 +-
 .../dsl/CometdsComponentBuilderFactory.java        |   30 +-
 .../dsl/ConsulComponentBuilderFactory.java         |  263 +++-
 .../dsl/CordaComponentBuilderFactory.java          |  164 +++
 .../dsl/CryptoComponentBuilderFactory.java         |  266 ++++
 .../DebeziumMongodbComponentBuilderFactory.java    |  591 ++++++++
 .../dsl/DebeziumMysqlComponentBuilderFactory.java  | 1143 +++++++++++++++
 .../DebeziumPostgresComponentBuilderFactory.java   |  983 +++++++++++++
 .../DebeziumSqlserverComponentBuilderFactory.java  |  680 +++++++++
 .../dsl/DisruptorComponentBuilderFactory.java      |   13 -
 .../dsl/DisruptorVmComponentBuilderFactory.java    |   13 -
 .../dsl/DockerComponentBuilderFactory.java         |  231 +++
 .../dsl/EhcacheComponentBuilderFactory.java        |  181 ++-
 .../dsl/EtcdKeysComponentBuilderFactory.java       |   97 +-
 .../dsl/EtcdStatsComponentBuilderFactory.java      |  131 +-
 .../dsl/EtcdWatchComponentBuilderFactory.java      |  112 +-
 .../dsl/FacebookComponentBuilderFactory.java       |  374 +++++
 .../component/dsl/FhirComponentBuilderFactory.java |  321 ++++-
 .../dsl/GangliaComponentBuilderFactory.java        |  174 +++
 .../dsl/GoogleCalendarComponentBuilderFactory.java |  132 ++
 ...oogleCalendarStreamComponentBuilderFactory.java |  160 +++
 .../dsl/GoogleDriveComponentBuilderFactory.java    |   90 ++
 .../dsl/GoogleMailComponentBuilderFactory.java     |   74 +
 .../GoogleMailStreamComponentBuilderFactory.java   |  126 ++
 .../dsl/GoogleSheetsComponentBuilderFactory.java   |   75 +
 .../GoogleSheetsStreamComponentBuilderFactory.java |  192 +++
 .../dsl/GuavaEventbusComponentBuilderFactory.java  |    2 +-
 .../component/dsl/ImapComponentBuilderFactory.java |  511 +++++++
 .../dsl/ImapsComponentBuilderFactory.java          |  513 +++++++
 .../dsl/InfinispanComponentBuilderFactory.java     |  235 ++-
 .../dsl/JcloudsComponentBuilderFactory.java        |    4 +-
 .../dsl/JettyComponentBuilderFactory.java          |    8 +-
 .../component/dsl/JiraComponentBuilderFactory.java |  111 ++
 .../component/dsl/JmsComponentBuilderFactory.java  |  463 ++++--
 .../component/dsl/JooqComponentBuilderFactory.java |   60 +
 .../component/dsl/JsltComponentBuilderFactory.java |    2 +-
 .../dsl/KafkaComponentBuilderFactory.java          | 1494 ++++++++++++++++++-
 .../dsl/LuceneComponentBuilderFactory.java         |   63 +
 .../dsl/MiloClientComponentBuilderFactory.java     |  274 +++-
 .../dsl/MiloServerComponentBuilderFactory.java     |    6 +-
 .../component/dsl/MinaComponentBuilderFactory.java |  345 +++++
 .../component/dsl/MllpComponentBuilderFactory.java |   14 -
 .../dsl/NagiosComponentBuilderFactory.java         |   59 +
 .../dsl/NettyComponentBuilderFactory.java          |  976 ++++++++++++-
 .../dsl/NettyHttpComponentBuilderFactory.java      |  998 ++++++++++++-
 .../dsl/Olingo2ComponentBuilderFactory.java        |  168 +++
 .../dsl/Olingo4ComponentBuilderFactory.java        |  168 +++
 .../component/dsl/PahoComponentBuilderFactory.java |  459 +++++-
 .../component/dsl/Pop3ComponentBuilderFactory.java |  511 +++++++
 .../dsl/Pop3sComponentBuilderFactory.java          |  513 +++++++
 .../dsl/PulsarComponentBuilderFactory.java         |  372 ++++-
 .../dsl/QuickfixComponentBuilderFactory.java       |   16 -
 .../dsl/RabbitmqComponentBuilderFactory.java       |    4 +-
 .../dsl/RobotframeworkComponentBuilderFactory.java |  609 ++++++++
 .../dsl/SalesforceComponentBuilderFactory.java     |  526 ++++++-
 .../component/dsl/SedaComponentBuilderFactory.java |    2 +-
 .../dsl/ServicenowComponentBuilderFactory.java     |  521 ++++++-
 .../component/dsl/SmppComponentBuilderFactory.java |  524 +++++++
 .../dsl/SmppsComponentBuilderFactory.java          |  524 +++++++
 .../component/dsl/SmtpComponentBuilderFactory.java |  511 +++++++
 .../dsl/SmtpsComponentBuilderFactory.java          |  513 +++++++
 .../dsl/SparkRestComponentBuilderFactory.java      |   99 ++
 .../component/dsl/SshComponentBuilderFactory.java  |   87 +-
 .../dsl/StompComponentBuilderFactory.java          |   59 +-
 .../component/dsl/StubComponentBuilderFactory.java |    2 +-
 .../component/dsl/VmComponentBuilderFactory.java   |    2 +-
 .../dsl/Web3jComponentBuilderFactory.java          |  438 ++++++
 .../dsl/WebhookComponentBuilderFactory.java        |   77 +
 .../dsl/WebsocketComponentBuilderFactory.java      |   16 -
 .../dsl/WordpressComponentBuilderFactory.java      |  111 ++
 .../component/dsl/XjComponentBuilderFactory.java   |    2 +-
 .../XmlsecuritySignComponentBuilderFactory.java    |  456 ++++++
 .../XmlsecurityVerifyComponentBuilderFactory.java  |  290 ++++
 .../dsl/XqueryComponentBuilderFactory.java         |    2 +-
 .../dsl/XsltSaxonComponentBuilderFactory.java      |    2 +-
 .../dsl/YammerComponentBuilderFactory.java         |  130 +-
 .../dsl/ZendeskComponentBuilderFactory.java        |   30 +-
 .../dsl/ZookeeperComponentBuilderFactory.java      |  100 ++
 .../ZookeeperMasterComponentBuilderFactory.java    |   28 +-
 .../component/ComponentsBuilderFactoryTest.java    |   12 +-
 .../support/component/AbstractApiComponent.java    |    2 +-
 .../modules/ROOT/pages/activemq-component.adoc     |   31 +-
 .../modules/ROOT/pages/amqp-component.adoc         |   31 +-
 .../modules/ROOT/pages/atomix-map-component.adoc   |   15 +-
 .../ROOT/pages/atomix-messaging-component.adoc     |   16 +-
 .../ROOT/pages/atomix-multimap-component.adoc      |   15 +-
 .../modules/ROOT/pages/atomix-queue-component.adoc |   13 +-
 .../modules/ROOT/pages/atomix-set-component.adoc   |   14 +-
 .../modules/ROOT/pages/atomix-value-component.adoc |   14 +-
 .../modules/ROOT/pages/avro-component.adoc         |    8 +-
 .../modules/ROOT/pages/aws-cw-component.adoc       |   10 +-
 .../modules/ROOT/pages/aws-ddb-component.adoc      |   12 +-
 .../ROOT/pages/aws-ddbstream-component.adoc        |    9 +-
 .../modules/ROOT/pages/aws-ec2-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-ecs-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-eks-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-iam-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-kinesis-component.adoc  |   11 +-
 .../ROOT/pages/aws-kinesis-firehose-component.adoc |    6 +-
 .../modules/ROOT/pages/aws-kms-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-lambda-component.adoc   |   15 +-
 .../modules/ROOT/pages/aws-mq-component.adoc       |    7 +-
 .../modules/ROOT/pages/aws-msk-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws-s3-component.adoc       |   32 +-
 .../modules/ROOT/pages/aws-ses-component.adoc      |   10 +-
 .../modules/ROOT/pages/aws-sns-component.adoc      |   15 +-
 .../modules/ROOT/pages/aws-sqs-component.adoc      |   33 +-
 .../modules/ROOT/pages/aws-swf-component.adoc      |   25 +-
 .../ROOT/pages/aws-translate-component.adoc        |   10 +-
 .../modules/ROOT/pages/aws2-cw-component.adoc      |   10 +-
 .../modules/ROOT/pages/aws2-ddb-component.adoc     |   12 +-
 .../ROOT/pages/aws2-ddbstream-component.adoc       |    9 +-
 .../modules/ROOT/pages/aws2-ec2-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-ecs-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-eks-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-iam-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-kms-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-lambda-component.adoc  |    9 +-
 .../modules/ROOT/pages/aws2-mq-component.adoc      |    7 +-
 .../modules/ROOT/pages/aws2-msk-component.adoc     |    7 +-
 .../modules/ROOT/pages/aws2-ses-component.adoc     |   12 +-
 .../modules/ROOT/pages/aws2-sns-component.adoc     |   14 +-
 .../modules/ROOT/pages/aws2-sqs-component.adoc     |   33 +-
 .../ROOT/pages/aws2-translate-component.adoc       |   10 +-
 .../modules/ROOT/pages/azure-blob-component.adoc   |   17 +-
 .../modules/ROOT/pages/azure-queue-component.adoc  |    8 +-
 .../modules/ROOT/pages/box-component.adoc          |   17 +-
 .../modules/ROOT/pages/braintree-component.adoc    |   14 +-
 .../ROOT/pages/caffeine-cache-component.adoc       |   17 +-
 .../ROOT/pages/caffeine-loadcache-component.adoc   |   17 +-
 .../modules/ROOT/pages/cometd-component.adoc       |    2 +-
 .../modules/ROOT/pages/consul-component.adoc       |   29 +-
 .../modules/ROOT/pages/corda-component.adoc        |   12 +-
 .../modules/ROOT/pages/crypto-component.adoc       |   20 +-
 .../ROOT/pages/debezium-mongodb-component.adoc     |   41 +-
 .../ROOT/pages/debezium-mysql-component.adoc       |   71 +-
 .../ROOT/pages/debezium-postgres-component.adoc    |   63 +-
 .../ROOT/pages/debezium-sqlserver-component.adoc   |   45 +-
 .../modules/ROOT/pages/disruptor-component.adoc    |    3 +-
 .../modules/ROOT/pages/docker-component.adoc       |   19 +-
 .../modules/ROOT/pages/ehcache-component.adoc      |   17 +-
 .../modules/ROOT/pages/etcd-keys-component.adoc    |   16 +-
 .../modules/ROOT/pages/etcd-stats-component.adoc   |   18 +-
 .../modules/ROOT/pages/etcd-watch-component.adoc   |   17 +-
 .../modules/ROOT/pages/facebook-component.adoc     |   29 +-
 .../modules/ROOT/pages/fhir-component.adoc         |   27 +-
 .../modules/ROOT/pages/ganglia-component.adoc      |   14 +-
 .../ROOT/pages/google-calendar-component.adoc      |   17 +-
 .../pages/google-calendar-stream-component.adoc    |   13 +-
 .../modules/ROOT/pages/google-drive-component.adoc |   14 +-
 .../modules/ROOT/pages/google-mail-component.adoc  |   13 +-
 .../ROOT/pages/google-mail-stream-component.adoc   |   11 +-
 .../ROOT/pages/google-sheets-component.adoc        |   13 +-
 .../ROOT/pages/google-sheets-stream-component.adoc |   15 +-
 .../modules/ROOT/pages/infinispan-component.adoc   |   20 +-
 .../modules/ROOT/pages/jira-component.adoc         |   10 +-
 .../modules/ROOT/pages/jms-component.adoc          |   31 +-
 .../modules/ROOT/pages/jooq-component.adoc         |    6 +-
 .../modules/ROOT/pages/kafka-component.adoc        |   92 +-
 .../modules/ROOT/pages/lucene-component.adoc       |    6 +-
 .../modules/ROOT/pages/mail-component.adoc         |   36 +-
 .../modules/ROOT/pages/milo-client-component.adoc  |   27 +-
 .../modules/ROOT/pages/mina-component.adoc         |   25 +-
 .../modules/ROOT/pages/mllp-component.adoc         |    3 +-
 .../modules/ROOT/pages/nagios-component.adoc       |    6 +-
 .../modules/ROOT/pages/netty-component.adoc        |   66 +-
 .../modules/ROOT/pages/netty-http-component.adoc   |   68 +-
 .../modules/ROOT/pages/olingo2-component.adoc      |   19 +-
 .../modules/ROOT/pages/olingo4-component.adoc      |   19 +-
 .../modules/ROOT/pages/paho-component.adoc         |   29 +-
 .../modules/ROOT/pages/pulsar-component.adoc       |   27 +-
 .../modules/ROOT/pages/quickfix-component.adoc     |    3 +-
 .../ROOT/pages/robotframework-component.adoc       |   47 +-
 .../modules/ROOT/pages/salesforce-component.adoc   |   40 +-
 .../modules/ROOT/pages/servicenow-component.adoc   |   47 +-
 .../modules/ROOT/pages/smpp-component.adoc         |   36 +-
 .../modules/ROOT/pages/spark-rest-component.adoc   |    7 +-
 .../modules/ROOT/pages/ssh-component.adoc          |   16 +-
 .../modules/ROOT/pages/stomp-component.adoc        |   11 +-
 .../modules/ROOT/pages/web3j-component.adoc        |   36 +-
 .../modules/ROOT/pages/webhook-component.adoc      |    7 +-
 .../modules/ROOT/pages/websocket-component.adoc    |    3 +-
 .../modules/ROOT/pages/wordpress-component.adoc    |   10 +-
 .../ROOT/pages/xmlsecurity-sign-component.adoc     |   30 +-
 .../ROOT/pages/xmlsecurity-verify-component.adoc   |   20 +-
 .../modules/ROOT/pages/yammer-component.adoc       |   17 +-
 .../modules/ROOT/pages/zendesk-component.adoc      |    2 +-
 .../modules/ROOT/pages/zookeeper-component.adoc    |    9 +-
 .../ROOT/pages/zookeeper-master-component.adoc     |    2 +-
 .../modules/ROOT/pages/camel-3x-upgrade-guide.adoc |   56 +
 .../camel/itest/jms2/BaseJms2TestSupport.java      |    4 +-
 .../camel/maven/packaging/ComponentDslMojo.java    |    4 -
 .../packaging/EndpointSchemaGeneratorMojo.java     |  214 +--
 .../packaging/PropertyConfigurerGenerator.java     |   48 +-
 .../ComponentDslInnerImplBuilderGenerator.java     |   51 +-
 .../ComponentDslInnerImplBuilderGeneratorTest.java |   10 +-
 666 files changed, 37950 insertions(+), 3953 deletions(-)

diff --git a/components/camel-activemq/src/generated/resources/org/apache/camel/component/activemq/activemq.json b/components/camel-activemq/src/generated/resources/org/apache/camel/component/activemq/activemq.json
index 214b96e..0c86a1e 100644
--- a/components/camel-activemq/src/generated/resources/org/apache/camel/component/activemq/activemq.json
+++ b/components/camel-activemq/src/generated/resources/org/apache/camel/component/activemq/activemq.json
@@ -20,93 +20,104 @@
   },
   "componentProperties": {
     "brokerURL": { "kind": "property", "displayName": "Broker URL", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the broker URL to use to connect to ActiveMQ" },
-    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "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 us [...]
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "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 onl [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsConfiguration", "deprecated": false, "secret": false, "description": "Configuration of ActiveMQ" },
-    "connectionFactory": { "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
-    "durableSubscriptionName": { "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well." },
-    "testConnectionOnStartup": { "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "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 Cam [...]
+    "connectionFactory": { "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
+    "disableReplyTo": { "kind": "property", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination spe [...]
+    "durableSubscriptionName": { "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well." },
+    "jmsMessageType": { "kind": "property", "displayName": "Jms Message Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific javax.jms.Message i [...]
+    "testConnectionOnStartup": { "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consum [...]
     "trustAllPackages": { "kind": "property", "displayName": "Trust All Packages", "group": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Define if all Java packages are trusted or not (for Java object JMS message types). Notice its not recommended practice to send Java serialized objects over network. Setting this to true can expose security risks, so use this with care." },
     "usePooledConnection": { "kind": "property", "displayName": "Use Pooled Connection", "group": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a [...]
     "useSingleConnection": { "kind": "property", "displayName": "Use Single Connection", "group": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Enables or disables whether a Spring SingleConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will c [...]
-    "acknowledgementMode": { "kind": "property", "displayName": "Acknowledgement Mode", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The JMS acknowledgement mode defined as an Integer. Allows you to set vendor-specific extensions to the acknowledgment mode. For the regular modes, it is preferable to use the acknowledgementModeName instead." },
-    "acknowledgementModeName": { "kind": "property", "displayName": "Acknowledgement Mode Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIEN [...]
-    "asyncConsumer": { "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "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 A [...]
-    "autoStartup": { "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Specifies whether the consumer container should auto-startup." },
+    "acknowledgementModeName": { "kind": "property", "displayName": "Acknowledgement Mode Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", [...]
+    "asyncConsumer": { "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message f [...]
+    "autoStartup": { "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
-    "cacheLevel": { "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details." },
-    "cacheLevelName": { "kind": "property", "displayName": "Cache Level Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "CACHE_AUTO", "description": "Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACH [...]
-    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "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 doi [...]
-    "maxConcurrentConsumers": { "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies the maximum 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\/re [...]
-    "subscriptionDurable": { "kind": "property", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable s [...]
-    "subscriptionName": { "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the [...]
-    "subscriptionShared": { "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscr [...]
-    "acceptMessagesWhileStopping": { "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while ther [...]
-    "allowReplyManagerQuickStop": { "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to  [...]
-    "defaultTaskExecutorType": { "kind": "property", "displayName": "Default Task Executor Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.DefaultTaskExecutorType", "enum": [ "ThreadPool", "SimpleAsync" ], "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer e [...]
-    "eagerLoadingOfProperties": { "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Enables eager loading of JMS properties as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch e [...]
-    "eagerPoisonBody": { "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then  [...]
-    "exposeListenerSession": { "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether the listener session should be exposed when consuming messages." },
-    "taskExecutor": { "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Allows you to specify a custom task executor for consuming messages." },
-    "deliveryMode": { "kind": "property", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies the delivery mode to be used. Possibles values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2." },
-    "deliveryPersistent": { "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Specifies whether persistent delivery is used by default." },
-    "explicitQosEnabled": { "kind": "property", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "false", "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 optio [...]
-    "formatDateHeadersToIso8601": { "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Sets whether date headers should be formatted according to the ISO 8601 standard." },
+    "cacheLevel": { "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details." },
+    "cacheLevelName": { "kind": "property", "displayName": "Cache Level Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the ca [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See al [...]
+    "maxConcurrentConsumers": { "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMess [...]
+    "replyTo": { "kind": "property", "displayName": "Reply To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination, which overrides any incoming value of Message.getJMSReplyTo()." },
+    "replyToDeliveryPersistent": { "kind": "property", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use persistent delivery by default for replies." },
+    "selector": { "kind": "property", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "kind": "property", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through  [...]
+    "subscriptionName": { "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. Th [...]
+    "subscriptionShared": { "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the  [...]
+    "acceptMessagesWhileStopping": { "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while it is stopping. You m [...]
+    "allowReplyManagerQuickStop": { "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in the reply managers for  [...]
+    "consumerType": { "kind": "property", "displayName": "Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The consumer type to use [...]
+    "defaultTaskExecutorType": { "kind": "property", "displayName": "Default Task Executor Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.DefaultTaskExecutorType", "enum": [ "ThreadPool", "SimpleAsync" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies what def [...]
+    "eagerLoadingOfProperties": { "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Enables eager loading of JMS properties and payload as soon as a message is load [...]
+    "eagerPoisonBody": { "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties is enabled and the J [...]
+    "exposeListenerSession": { "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consuming messages." },
+    "replyToSameDestinationAllowed": { "kind": "property", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a reply message to the same [...]
+    "taskExecutor": { "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to specify a custom task executor for consuming messages." },
+    "deliveryDelay": { "kind": "property", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "-1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker." },
+    "deliveryMode": { "kind": "property", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possibles values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT  [...]
+    "deliveryPersistent": { "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether persistent delivery is used by default." },
+    "explicitQosEnabled": { "kind": "property", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending mess [...]
+    "formatDateHeadersToIso8601": { "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "preserveMessageQos": { "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "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, JMSDeli [...]
-    "priority": { "kind": "property", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "4", "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  [...]
-    "replyOnTimeoutToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply On Timeout To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS." },
-    "replyToConcurrentConsumers": { "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "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." },
-    "replyToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "description": "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." },
-    "replyToType": { "kind": "property", "displayName": "Reply To Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ReplyToType", "enum": [ "Temporary", "Shared", "Exclusive" ], "deprecated": false, "deprecationNote": "", "secret": false, "description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary, Shared, [...]
-    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "20000", "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 timeo [...]
-    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "-1", "description": "When sending messages, specifies the time-to-live of the message (in milliseconds)." },
-    "allowAdditionalHeaders": { "kind": "property", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names [...]
-    "allowNullBody": { "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown." },
-    "alwaysCopyMessage": { "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyT [...]
-    "correlationProperty": { "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Use this JMS property to correlate messages in InOut exchange pattern (request-reply) instead of JMSCorrelationID property. This allows you to exchange messages with systems that do not correlate  [...]
-    "forceSendOriginalMessage": { "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this opti [...]
-    "includeSentJMSMessageID": { "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that wa [...]
-    "replyToCacheLevelName": { "kind": "property", "displayName": "Reply To Cache Level Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "deprecationNote": "", "secret": false, "description": "Sets the cache level by name for the reply consumer when doing request\/reply over JMS. This o [...]
-    "streamMessageTypeEnabled": { "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessag [...]
+    "preserveMessageQos": { "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS sett [...]
+    "priority": { "kind": "property", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "secret": false, "defaultValue": "4", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Values greater than 1 specify the message priority when sending (where 0 is the lowe [...]
+    "replyToConcurrentConsumers": { "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the  [...]
+    "replyToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPer [...]
+    "replyToOnTimeoutMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for continue routing w [...]
+    "replyToOverride": { "kind": "property", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forwa [...]
+    "replyToType": { "kind": "property", "displayName": "Reply To Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ReplyToType", "enum": [ "Temporary", "Shared", "Exclusive" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of strategy to use for r [...]
+    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "20000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You [...]
+    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "-1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending messages, specifies the time-to-live of the message (in milliseconds)." },
+    "allowAdditionalHeaders": { "kind": "property", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "This option is used to allow additional headers which may have values that are invalid according to  [...]
+    "allowNullBody": { "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to allow sending messages with no body. If this option is false and the message body is null,  [...]
+    "alwaysCopyMessage": { "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the prod [...]
+    "correlationProperty": { "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correla [...]
+    "disableTimeToLive": { "kind": "property", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Use this option to force disabling time to live. For example when you do request\/reply over J [...]
+    "forceSendOriginalMessage": { "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a  [...]
+    "includeSentJMSMessageID": { "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). [...]
+    "replyToCacheLevelName": { "kind": "property", "displayName": "Reply To Cache Level Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets  [...]
+    "replyToDestinationSelectorName": { "kind": "property", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS Selector using the fixed name to be used so you can filter out your o [...]
+    "streamMessageTypeEnabled": { "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming [...]
     "allowAutoWiredConnectionFactory": { "kind": "property", "displayName": "Allow Auto Wired Connection Factory", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled  [...]
     "allowAutoWiredDestinationResolver": { "kind": "property", "displayName": "Allow Auto Wired Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This i [...]
-    "asyncStartListener": { "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Whether to startup the JmsConsumer 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 a [...]
-    "asyncStopListener": { "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route." },
+    "allowSerializedHeaders": { "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This r [...]
+    "asyncStartListener": { "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsCo [...]
+    "asyncStopListener": { "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route." },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "destinationResolver": { "kind": "property", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "deprecationNote": "", "secret": false, "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JN [...]
-    "errorHandler": { "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHa [...]
-    "exceptionListener": { "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions." },
-    "idleConsumerLimit": { "kind": "property", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time." },
-    "idleTaskExecutionLimit": { "kind": "property", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "description": "Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executi [...]
-    "includeAllJMSXProperties": { "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a [...]
-    "jmsKeyFormatStrategy": { "kind": "property", "displayName": "Jms Key Format Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsKeyFormatStrategy", "deprecated": false, "deprecationNote": "", "secret": false, "description": "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 passthr [...]
-    "jmsOperations": { "kind": "property", "displayName": "Jms Operations", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.core.JmsOperations", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Allows you to use your own implementation of the org.springframework.jms.core.JmsOperations interface. Camel uses JmsTemplate as default. Can be used for testing purpose, but not used much as stated in  [...]
-    "mapJmsMessage": { "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc." },
-    "maxMessagesPerTask": { "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "-1", "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrin [...]
-    "messageConverter": { "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "deprecationNote": "", "secret": false, "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a javax.jms.Message." },
-    "messageCreatedStrategy": { "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "secret": false, "description": "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." },
-    "messageIdEnabled": { "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provi [...]
-    "messageTimestampEnabled": { "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the time [...]
-    "pubSubNoLocal": { "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether to inhibit the delivery of messages published by its own connection." },
+    "destinationResolver": { "kind": "property", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that [...]
+    "errorHandler": { "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processi [...]
+    "exceptionListener": { "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions." },
+    "idleConsumerLimit": { "kind": "property", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time." },
+    "idleTaskExecutionLimit": { "kind": "property", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the limit for idle executions of a receive task, not having received any message within its executio [...]
+    "includeAllJMSXProperties": { "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to tru [...]
+    "jmsKeyFormatStrategy": { "kind": "property", "displayName": "Jms Key Format Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsKeyFormatStrategy", "enum": [ "default", "passthrough" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for encoding and decoding JMS k [...]
+    "mapJmsMessage": { "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage t [...]
+    "maxMessagesPerTask": { "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "-1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this [...]
+    "messageConverter": { "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you ca [...]
+    "messageCreatedStrategy": { "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new in [...]
+    "messageIdEnabled": { "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS prov [...]
+    "messageListenerContainerFactory": { "kind": "property", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerContainerFactory used [...]
+    "messageTimestampEnabled": { "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to [...]
+    "pubSubNoLocal": { "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to inhibit the delivery of messages published by its own connection." },
     "queueBrowseStrategy": { "kind": "property", "displayName": "Queue Browse Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.QueueBrowseStrategy", "deprecated": false, "secret": false, "description": "To use a custom QueueBrowseStrategy when browsing queues" },
-    "receiveTimeout": { "kind": "property", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1000", "description": "The timeout for receiving messages (in milliseconds)." },
-    "recoveryInterval": { "kind": "property", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "5000", "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." },
-    "requestTimeoutCheckerInterval": { "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1000", "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 time [...]
-    "transferException": { "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "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 [...]
-    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange propert [...]
-    "useMessageIDAsCorrelationID": { "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages." },
-    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "50", "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the op [...]
-    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "100", "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated." },
-    "errorHandlerLoggingLevel": { "kind": "property", "displayName": "Error Handler Logging Level", "group": "logging", "label": "consumer,logging", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "WARN", "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions." },
-    "errorHandlerLogStackTrace": { "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler." },
+    "receiveTimeout": { "kind": "property", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "kind": "property", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The defaul [...]
+    "requestTimeoutCheckerInterval": { "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply ov [...]
+    "transferException": { "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the c [...]
+    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred [...]
+    "useMessageIDAsCorrelationID": { "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages." },
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "50", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional correlation id to b [...]
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each  [...]
+    "errorHandlerLoggingLevel": { "kind": "property", "displayName": "Error Handler Logging Level", "group": "logging", "label": "consumer,logging", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to [...]
+    "errorHandlerLogStackTrace": { "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler." },
     "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
-    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": true, "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
-    "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": true, "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
-    "transacted": { "kind": "property", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether to use transacted mode" },
-    "lazyCreateTransactionManager": { "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true." },
-    "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The Spring transaction manager to use." },
-    "transactionName": { "kind": "property", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The name of the transaction to use." },
-    "transactionTimeout": { "kind": "property", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "-1", "description": "The timeout value of the transaction (in seconds), if using transacted mode." }
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "transacted": { "kind": "property", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "lazyCreateTransactionManager": { "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionManager, if there is n [...]
+    "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "kind": "property", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "kind": "property", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "-1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout value of the transaction (in seconds), if using transacted mode." }
   },
   "properties": {
     "destinationType": { "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" },
diff --git a/components/camel-activemq/src/main/docs/activemq-component.adoc b/components/camel-activemq/src/main/docs/activemq-component.adoc
index ea1475e..f8a8c81 100644
--- a/components/camel-activemq/src/main/docs/activemq-component.adoc
+++ b/components/camel-activemq/src/main/docs/activemq-component.adoc
@@ -48,7 +48,7 @@ activemq:foo
 == Component options
 
 // component options: START
-The ActiveMQ component supports 88 options, which are listed below.
+The ActiveMQ component supports 99 options, which are listed below.
 
 
 
@@ -59,12 +59,13 @@ The ActiveMQ component supports 88 options, which are listed below.
 | *clientId* (common) | 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. |  | String
 | *configuration* (common) | Configuration of ActiveMQ |  | JmsConfiguration
 | *connectionFactory* (common) | The connection factory to be use. A connection factory must be configured either on the component or endpoint. |  | ConnectionFactory
+| *disableReplyTo* (common) | 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 broker [...]
 | *durableSubscriptionName* (common) | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. |  | String
+| *jmsMessageType* (common) | Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it. The value can be one of: Bytes, Map, Object, Stream, Text |  | JmsMessageType
 | *testConnectionOnStartup* (common) | 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 | boolean
 | *trustAllPackages* (common) | Define if all Java packages are trusted or not (for Java object JMS message types). Notice its not recommended practice to send Java serialized objects over network. Setting this to true can expose security risks, so use this with care. | false | boolean
 | *usePooledConnection* (common) | Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is true. | false | boolean
 | *useSingleConnection* (common) | Enables or disables whether a Spring SingleConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is false and a pooled connection is used by default. | false | boolean
-| *acknowledgementMode* (consumer) | The JMS acknowledgement mode defined as an Integer. Allows you to set vendor-specific extensions to the acknowledgment mode. For the regular modes, it is preferable to use the acknowledgementModeName instead. |  | int
 | *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE. The value can be one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | AUTO_ACKNOWLEDGE | String
 | *asyncConsumer* (consumer) | 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 transac [...]
 | *autoStartup* (consumer) | Specifies whether the consumer container should auto-startup. | true | boolean
@@ -73,39 +74,49 @@ The ActiveMQ component supports 88 options, which are listed below.
 | *cacheLevelName* (consumer) | Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information. The value can be one of: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION | CACHE_AUTO | String
 | *concurrentConsumers* (consumer) | 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 | int
 | *maxConcurrentConsumers* (consumer) | Specifies the maximum 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 replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. |  | int
+| *replyTo* (consumer) | Provides an explicit ReplyTo destination, which overrides any incoming value of Message.getJMSReplyTo(). |  | String
+| *replyToDeliveryPersistent* (consumer) | Specifies whether to use persistent delivery by default for replies. | true | boolean
+| *selector* (consumer) | Sets the JMS selector to use |  | String
 | *subscriptionDurable* (consumer) | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomai [...]
 | *subscriptionName* (consumer) | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0). |  | String
 | *subscriptionShared* (consumer) | Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscrip [...]
 | *acceptMessagesWhileStopping* (consumer) | Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on th [...]
 | *allowReplyManagerQuickStop* (consumer) | Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag. | false | [...]
+| *consumerType* (consumer) | The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms. [...]
 | *defaultTaskExecutorType* (consumer) | Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsy [...]
-| *eagerLoadingOfProperties* (consumer) | Enables eager loading of JMS properties 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 eagerLoadingOfBody. | false | boolean
+| *eagerLoadingOfProperties* (consumer) | 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 | boolean
 | *eagerPoisonBody* (consumer) | 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} | String
 | *exposeListenerSession* (consumer) | Specifies whether the listener session should be exposed when consuming messages. | false | boolean
+| *replyToSameDestinationAllowed* (consumer) | 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 | boolean
 | *taskExecutor* (consumer) | Allows you to specify a custom task executor for consuming messages. |  | TaskExecutor
+| *deliveryDelay* (producer) | Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker. | -1 | long
 | *deliveryMode* (producer) | Specifies the delivery mode to be used. Possibles values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. The value can be one of: 1, 2 |  | Integer
 | *deliveryPersistent* (producer) | Specifies whether persistent delivery is used by default. | true | boolean
-| *explicitQosEnabled* (producer) | 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 | boolean
-| *formatDateHeadersToIso8601* (producer) | Sets whether date headers should be formatted according to the ISO 8601 standard. | false | boolean
+| *explicitQosEnabled* (producer) | 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 | Boolean
+| *formatDateHeadersToIso8601* (producer) | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *preserveMessageQos* (producer) | 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 explicitQosEnable [...]
 | *priority* (producer) | 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. The value can be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9 | 4 | int
-| *replyOnTimeoutToMaxConcurrent Consumers* (producer) | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | int
 | *replyToConcurrentConsumers* (producer) | 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 | int
 | *replyToMaxConcurrentConsumers* (producer) | 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. |  | int
+| *replyToOnTimeoutMaxConcurrent Consumers* (producer) | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | int
+| *replyToOverride* (producer) | 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. |  | String
 | *replyToType* (producer) | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running  [...]
 | *requestTimeout* (producer) | 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. | 20000 | long
 | *timeToLive* (producer) | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1 | long
 | *allowAdditionalHeaders* (producer) | This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching. |  | String
 | *allowNullBody* (producer) | 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 | boolean
-| *alwaysCopyMessage* (producer) | If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set). | false | boolean
-| *correlationProperty* (producer) | Use this JMS property to correlate messages in InOut exchange pattern (request-reply) instead of JMSCorrelationID property. This allows you to exchange messages with systems that do not correlate messages using JMSCorrelationID JMS property. If used JMSCorrelationID will not be used or set by Camel. The value of here named property will be generated if not supplied in the header of the message under the same name. |  | String
+| *alwaysCopyMessage* (producer) | If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set) | false | boolean
+| *correlationProperty* (producer) | When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel. |  | String
+| *disableTimeToLive* (producer) | 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 w [...]
 | *forceSendOriginalMessage* (producer) | When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received. | false | boolean
 | *includeSentJMSMessageID* (producer) | Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination. | false | boolean
 | *replyToCacheLevelName* (producer) | Sets the cache level by name for the reply consumer when doing request/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE [...]
+| *replyToDestinationSelectorName* (producer) | Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue). |  | String
 | *streamMessageTypeEnabled* (producer) | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no [...]
 | *allowAutoWiredConnection Factory* (advanced) | Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default. | false | boolean
 | *allowAutoWiredDestination Resolver* (advanced) | Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default. | false | boolean
+| *allowSerializedHeaders* (advanced) | Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. | false | boolean
 | *asyncStartListener* (advanced) | Whether to startup the JmsConsumer 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, the [...]
 | *asyncStopListener* (advanced) | Whether to stop the JmsConsumer message listener asynchronously, when stopping a route. | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
@@ -115,13 +126,13 @@ The ActiveMQ component supports 88 options, which are listed below.
 | *idleConsumerLimit* (advanced) | Specify the limit for the number of consumers that are allowed to be idle at any given time. | 1 | int
 | *idleTaskExecutionLimit* (advanced) | Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring. | 1 | int
 | *includeAllJMSXProperties* (advanced) | Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply. | false | boolean
-| *jmsKeyFormatStrategy* (advanced) | 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 org.apache [...]
-| *jmsOperations* (advanced) | Allows you to use your own implementation of the org.springframework.jms.core.JmsOperations interface. Camel uses JmsTemplate as default. Can be used for testing purpose, but not used much as stated in the spring API docs. |  | JmsOperations
+| *jmsKeyFormatStrategy* (advanced) | 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 org.apache [...]
 | *mapJmsMessage* (advanced) | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. | true | boolean
 | *maxMessagesPerTask* (advanced) | The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required. | -1 | int
 | *messageConverter* (advanced) | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. |  | MessageConverter
 | *messageCreatedStrategy* (advanced) | 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. |  | MessageCreatedStrategy
 | *messageIdEnabled* (advanced) | When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value. | true | boolean
+| *messageListenerContainer Factory* (advanced) | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. |  | MessageListenerContainerFactory
 | *messageTimestampEnabled* (advanced) | Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value. | true | boolean
 | *pubSubNoLocal* (advanced) | Specifies whether to inhibit the delivery of messages published by its own connection. | false | boolean
 | *queueBrowseStrategy* (advanced) | To use a custom QueueBrowseStrategy when browsing queues |  | QueueBrowseStrategy
diff --git a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/ComplexRequestReplyTest.java b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/ComplexRequestReplyTest.java
index c1d48c6..9d8a14d 100644
--- a/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/ComplexRequestReplyTest.java
+++ b/components/camel-activemq/src/test/java/org/apache/camel/component/activemq/ComplexRequestReplyTest.java
@@ -124,7 +124,7 @@ public class ComplexRequestReplyTest {
 
         CamelContext camelContext = new DefaultCamelContext();
         ActiveMQComponent amqComponent = new ActiveMQComponent();
-        amqComponent.setConnectionFactory(pooled);
+        amqComponent.getConfiguration().setConnectionFactory(pooled);
         camelContext.addComponent("activemq", amqComponent);
         camelContext.addRoutes(new RouteBuilder() {
             @Override
diff --git a/components/camel-amqp/src/generated/resources/org/apache/camel/component/amqp/amqp.json b/components/camel-amqp/src/generated/resources/org/apache/camel/component/amqp/amqp.json
index eab81c8..c0d8f33 100644
--- a/components/camel-amqp/src/generated/resources/org/apache/camel/component/amqp/amqp.json
+++ b/components/camel-amqp/src/generated/resources/org/apache/camel/component/amqp/amqp.json
@@ -19,91 +19,102 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "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 us [...]
-    "connectionFactory": { "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
-    "durableSubscriptionName": { "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well." },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "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 onl [...]
+    "connectionFactory": { "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
+    "disableReplyTo": { "kind": "property", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination spe [...]
+    "durableSubscriptionName": { "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well." },
     "includeAmqpAnnotations": { "kind": "property", "displayName": "Include Amqp Annotations", "group": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether to include AMQP annotations when mapping from AMQP to Camel Message. Setting this to true will map AMQP message annotations to message headers. Due to limitations in Apache Qpid JMS API, currently delivery annotations are ignored." },
-    "testConnectionOnStartup": { "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "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 Cam [...]
-    "acknowledgementMode": { "kind": "property", "displayName": "Acknowledgement Mode", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The JMS acknowledgement mode defined as an Integer. Allows you to set vendor-specific extensions to the acknowledgment mode. For the regular modes, it is preferable to use the acknowledgementModeName instead." },
-    "acknowledgementModeName": { "kind": "property", "displayName": "Acknowledgement Mode Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIEN [...]
-    "asyncConsumer": { "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "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 A [...]
-    "autoStartup": { "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Specifies whether the consumer container should auto-startup." },
+    "jmsMessageType": { "kind": "property", "displayName": "Jms Message Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific javax.jms.Message i [...]
+    "testConnectionOnStartup": { "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consum [...]
+    "acknowledgementModeName": { "kind": "property", "displayName": "Acknowledgement Mode Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", [...]
+    "asyncConsumer": { "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message f [...]
+    "autoStartup": { "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
-    "cacheLevel": { "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details." },
-    "cacheLevelName": { "kind": "property", "displayName": "Cache Level Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "CACHE_AUTO", "description": "Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACH [...]
-    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "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 doi [...]
-    "maxConcurrentConsumers": { "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies the maximum 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\/re [...]
-    "subscriptionDurable": { "kind": "property", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable s [...]
-    "subscriptionName": { "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the [...]
-    "subscriptionShared": { "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscr [...]
-    "acceptMessagesWhileStopping": { "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while ther [...]
-    "allowReplyManagerQuickStop": { "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to  [...]
-    "defaultTaskExecutorType": { "kind": "property", "displayName": "Default Task Executor Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.DefaultTaskExecutorType", "enum": [ "ThreadPool", "SimpleAsync" ], "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer e [...]
-    "eagerLoadingOfProperties": { "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Enables eager loading of JMS properties as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch e [...]
-    "eagerPoisonBody": { "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then  [...]
-    "exposeListenerSession": { "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether the listener session should be exposed when consuming messages." },
-    "taskExecutor": { "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Allows you to specify a custom task executor for consuming messages." },
-    "deliveryMode": { "kind": "property", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies the delivery mode to be used. Possibles values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2." },
-    "deliveryPersistent": { "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Specifies whether persistent delivery is used by default." },
-    "explicitQosEnabled": { "kind": "property", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "false", "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 optio [...]
-    "formatDateHeadersToIso8601": { "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Sets whether date headers should be formatted according to the ISO 8601 standard." },
+    "cacheLevel": { "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details." },
+    "cacheLevelName": { "kind": "property", "displayName": "Cache Level Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the ca [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See al [...]
+    "maxConcurrentConsumers": { "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMess [...]
+    "replyTo": { "kind": "property", "displayName": "Reply To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination, which overrides any incoming value of Message.getJMSReplyTo()." },
+    "replyToDeliveryPersistent": { "kind": "property", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use persistent delivery by default for replies." },
+    "selector": { "kind": "property", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "kind": "property", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through  [...]
+    "subscriptionName": { "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. Th [...]
+    "subscriptionShared": { "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the  [...]
+    "acceptMessagesWhileStopping": { "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while it is stopping. You m [...]
+    "allowReplyManagerQuickStop": { "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in the reply managers for  [...]
+    "consumerType": { "kind": "property", "displayName": "Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The consumer type to use [...]
+    "defaultTaskExecutorType": { "kind": "property", "displayName": "Default Task Executor Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.DefaultTaskExecutorType", "enum": [ "ThreadPool", "SimpleAsync" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies what def [...]
+    "eagerLoadingOfProperties": { "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Enables eager loading of JMS properties and payload as soon as a message is load [...]
+    "eagerPoisonBody": { "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties is enabled and the J [...]
+    "exposeListenerSession": { "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consuming messages." },
+    "replyToSameDestinationAllowed": { "kind": "property", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a reply message to the same [...]
+    "taskExecutor": { "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to specify a custom task executor for consuming messages." },
+    "deliveryDelay": { "kind": "property", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "-1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker." },
+    "deliveryMode": { "kind": "property", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possibles values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT  [...]
+    "deliveryPersistent": { "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether persistent delivery is used by default." },
+    "explicitQosEnabled": { "kind": "property", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending mess [...]
+    "formatDateHeadersToIso8601": { "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "preserveMessageQos": { "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "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, JMSDeli [...]
-    "priority": { "kind": "property", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "4", "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  [...]
-    "replyOnTimeoutToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply On Timeout To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS." },
-    "replyToConcurrentConsumers": { "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "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." },
-    "replyToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "description": "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." },
-    "replyToType": { "kind": "property", "displayName": "Reply To Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ReplyToType", "enum": [ "Temporary", "Shared", "Exclusive" ], "deprecated": false, "deprecationNote": "", "secret": false, "description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary, Shared, [...]
-    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "20000", "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 timeo [...]
-    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "-1", "description": "When sending messages, specifies the time-to-live of the message (in milliseconds)." },
-    "allowAdditionalHeaders": { "kind": "property", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names [...]
-    "allowNullBody": { "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown." },
-    "alwaysCopyMessage": { "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyT [...]
-    "correlationProperty": { "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Use this JMS property to correlate messages in InOut exchange pattern (request-reply) instead of JMSCorrelationID property. This allows you to exchange messages with systems that do not correlate  [...]
-    "forceSendOriginalMessage": { "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this opti [...]
-    "includeSentJMSMessageID": { "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that wa [...]
-    "replyToCacheLevelName": { "kind": "property", "displayName": "Reply To Cache Level Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "deprecationNote": "", "secret": false, "description": "Sets the cache level by name for the reply consumer when doing request\/reply over JMS. This o [...]
-    "streamMessageTypeEnabled": { "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessag [...]
+    "preserveMessageQos": { "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS sett [...]
+    "priority": { "kind": "property", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "secret": false, "defaultValue": "4", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Values greater than 1 specify the message priority when sending (where 0 is the lowe [...]
+    "replyToConcurrentConsumers": { "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the  [...]
+    "replyToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPer [...]
+    "replyToOnTimeoutMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for continue routing w [...]
+    "replyToOverride": { "kind": "property", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forwa [...]
+    "replyToType": { "kind": "property", "displayName": "Reply To Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ReplyToType", "enum": [ "Temporary", "Shared", "Exclusive" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of strategy to use for r [...]
+    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "20000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You [...]
+    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "-1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending messages, specifies the time-to-live of the message (in milliseconds)." },
+    "allowAdditionalHeaders": { "kind": "property", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "This option is used to allow additional headers which may have values that are invalid according to  [...]
+    "allowNullBody": { "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to allow sending messages with no body. If this option is false and the message body is null,  [...]
+    "alwaysCopyMessage": { "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the prod [...]
+    "correlationProperty": { "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correla [...]
+    "disableTimeToLive": { "kind": "property", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Use this option to force disabling time to live. For example when you do request\/reply over J [...]
+    "forceSendOriginalMessage": { "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a  [...]
+    "includeSentJMSMessageID": { "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). [...]
+    "replyToCacheLevelName": { "kind": "property", "displayName": "Reply To Cache Level Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets  [...]
+    "replyToDestinationSelectorName": { "kind": "property", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS Selector using the fixed name to be used so you can filter out your o [...]
+    "streamMessageTypeEnabled": { "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming [...]
     "allowAutoWiredConnectionFactory": { "kind": "property", "displayName": "Allow Auto Wired Connection Factory", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled  [...]
     "allowAutoWiredDestinationResolver": { "kind": "property", "displayName": "Allow Auto Wired Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This i [...]
-    "asyncStartListener": { "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Whether to startup the JmsConsumer 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 a [...]
-    "asyncStopListener": { "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route." },
+    "allowSerializedHeaders": { "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This r [...]
+    "asyncStartListener": { "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsCo [...]
+    "asyncStopListener": { "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route." },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsConfiguration", "deprecated": false, "secret": false, "description": "To use a shared JMS configuration" },
-    "destinationResolver": { "kind": "property", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "deprecationNote": "", "secret": false, "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JN [...]
-    "errorHandler": { "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHa [...]
-    "exceptionListener": { "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions." },
-    "idleConsumerLimit": { "kind": "property", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time." },
-    "idleTaskExecutionLimit": { "kind": "property", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1", "description": "Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executi [...]
-    "includeAllJMSXProperties": { "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a [...]
-    "jmsKeyFormatStrategy": { "kind": "property", "displayName": "Jms Key Format Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsKeyFormatStrategy", "deprecated": false, "deprecationNote": "", "secret": false, "description": "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 passthr [...]
-    "jmsOperations": { "kind": "property", "displayName": "Jms Operations", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.core.JmsOperations", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Allows you to use your own implementation of the org.springframework.jms.core.JmsOperations interface. Camel uses JmsTemplate as default. Can be used for testing purpose, but not used much as stated in  [...]
-    "mapJmsMessage": { "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc." },
-    "maxMessagesPerTask": { "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "-1", "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrin [...]
-    "messageConverter": { "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "deprecationNote": "", "secret": false, "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a javax.jms.Message." },
-    "messageCreatedStrategy": { "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "secret": false, "description": "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." },
-    "messageIdEnabled": { "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provi [...]
-    "messageTimestampEnabled": { "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the time [...]
-    "pubSubNoLocal": { "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether to inhibit the delivery of messages published by its own connection." },
+    "destinationResolver": { "kind": "property", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that [...]
+    "errorHandler": { "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processi [...]
+    "exceptionListener": { "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions." },
+    "idleConsumerLimit": { "kind": "property", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time." },
+    "idleTaskExecutionLimit": { "kind": "property", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the limit for idle executions of a receive task, not having received any message within its executio [...]
+    "includeAllJMSXProperties": { "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to tru [...]
+    "jmsKeyFormatStrategy": { "kind": "property", "displayName": "Jms Key Format Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsKeyFormatStrategy", "enum": [ "default", "passthrough" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for encoding and decoding JMS k [...]
+    "mapJmsMessage": { "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage t [...]
+    "maxMessagesPerTask": { "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "-1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this [...]
+    "messageConverter": { "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you ca [...]
+    "messageCreatedStrategy": { "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new in [...]
+    "messageIdEnabled": { "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS prov [...]
+    "messageListenerContainerFactory": { "kind": "property", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerContainerFactory used [...]
+    "messageTimestampEnabled": { "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to [...]
+    "pubSubNoLocal": { "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to inhibit the delivery of messages published by its own connection." },
     "queueBrowseStrategy": { "kind": "property", "displayName": "Queue Browse Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.QueueBrowseStrategy", "deprecated": false, "secret": false, "description": "To use a custom QueueBrowseStrategy when browsing queues" },
-    "receiveTimeout": { "kind": "property", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1000", "description": "The timeout for receiving messages (in milliseconds)." },
-    "recoveryInterval": { "kind": "property", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "5000", "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." },
-    "requestTimeoutCheckerInterval": { "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "1000", "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 time [...]
-    "transferException": { "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "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 [...]
-    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange propert [...]
-    "useMessageIDAsCorrelationID": { "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages." },
-    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "50", "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the op [...]
-    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "100", "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated." },
-    "errorHandlerLoggingLevel": { "kind": "property", "displayName": "Error Handler Logging Level", "group": "logging", "label": "consumer,logging", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "WARN", "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions." },
-    "errorHandlerLogStackTrace": { "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler." },
+    "receiveTimeout": { "kind": "property", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "kind": "property", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The defaul [...]
+    "requestTimeoutCheckerInterval": { "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply ov [...]
+    "transferException": { "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the c [...]
+    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred [...]
+    "useMessageIDAsCorrelationID": { "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages." },
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "50", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional correlation id to b [...]
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each  [...]
+    "errorHandlerLoggingLevel": { "kind": "property", "displayName": "Error Handler Logging Level", "group": "logging", "label": "consumer,logging", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to [...]
+    "errorHandlerLogStackTrace": { "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler." },
     "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
-    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": true, "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
-    "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": true, "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
-    "transacted": { "kind": "property", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": false, "description": "Specifies whether to use transacted mode" },
-    "lazyCreateTransactionManager": { "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "true", "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true." },
-    "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The Spring transaction manager to use." },
-    "transactionName": { "kind": "property", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The name of the transaction to use." },
-    "transactionTimeout": { "kind": "property", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "-1", "description": "The timeout value of the transaction (in seconds), if using transacted mode." }
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "transacted": { "kind": "property", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "lazyCreateTransactionManager": { "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionManager, if there is n [...]
+    "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "kind": "property", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "kind": "property", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "-1", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout value of the transaction (in seconds), if using transacted mode." }
   },
   "properties": {
     "destinationType": { "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" },
diff --git a/components/camel-amqp/src/main/docs/amqp-component.adoc b/components/camel-amqp/src/main/docs/amqp-component.adoc
index 6495b0b..017a3d5 100644
--- a/components/camel-amqp/src/main/docs/amqp-component.adoc
+++ b/components/camel-amqp/src/main/docs/amqp-component.adoc
@@ -40,7 +40,7 @@ xref:jms-component.adoc[JMS] component after the destination name.
 
 
 // component options: START
-The AMQP component supports 85 options, which are listed below.
+The AMQP component supports 96 options, which are listed below.
 
 
 
@@ -49,10 +49,11 @@ The AMQP component supports 85 options, which are listed below.
 | Name | Description | Default | Type
 | *clientId* (common) | 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. |  | String
 | *connectionFactory* (common) | The connection factory to be use. A connection factory must be configured either on the component or endpoint. |  | ConnectionFactory
+| *disableReplyTo* (common) | 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 broker [...]
 | *durableSubscriptionName* (common) | The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well. |  | String
 | *includeAmqpAnnotations* (common) | Whether to include AMQP annotations when mapping from AMQP to Camel Message. Setting this to true will map AMQP message annotations to message headers. Due to limitations in Apache Qpid JMS API, currently delivery annotations are ignored. | false | boolean
+| *jmsMessageType* (common) | Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it. The value can be one of: Bytes, Map, Object, Stream, Text |  | JmsMessageType
 | *testConnectionOnStartup* (common) | 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 | boolean
-| *acknowledgementMode* (consumer) | The JMS acknowledgement mode defined as an Integer. Allows you to set vendor-specific extensions to the acknowledgment mode. For the regular modes, it is preferable to use the acknowledgementModeName instead. |  | int
 | *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE. The value can be one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | AUTO_ACKNOWLEDGE | String
 | *asyncConsumer* (consumer) | 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 transac [...]
 | *autoStartup* (consumer) | Specifies whether the consumer container should auto-startup. | true | boolean
@@ -61,39 +62,49 @@ The AMQP component supports 85 options, which are listed below.
 | *cacheLevelName* (consumer) | Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information. The value can be one of: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION | CACHE_AUTO | String
 | *concurrentConsumers* (consumer) | 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 | int
 | *maxConcurrentConsumers* (consumer) | Specifies the maximum 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 replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener. |  | int
+| *replyTo* (consumer) | Provides an explicit ReplyTo destination, which overrides any incoming value of Message.getJMSReplyTo(). |  | String
+| *replyToDeliveryPersistent* (consumer) | Specifies whether to use persistent delivery by default for replies. | true | boolean
+| *selector* (consumer) | Sets the JMS selector to use |  | String
 | *subscriptionDurable* (consumer) | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomai [...]
 | *subscriptionName* (consumer) | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0). |  | String
 | *subscriptionShared* (consumer) | Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscrip [...]
 | *acceptMessagesWhileStopping* (consumer) | Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on th [...]
 | *allowReplyManagerQuickStop* (consumer) | Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag. | false | [...]
+| *consumerType* (consumer) | The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms. [...]
 | *defaultTaskExecutorType* (consumer) | Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsy [...]
-| *eagerLoadingOfProperties* (consumer) | Enables eager loading of JMS properties 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 eagerLoadingOfBody. | false | boolean
+| *eagerLoadingOfProperties* (consumer) | 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 | boolean
 | *eagerPoisonBody* (consumer) | 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} | String
 | *exposeListenerSession* (consumer) | Specifies whether the listener session should be exposed when consuming messages. | false | boolean
+| *replyToSameDestinationAllowed* (consumer) | 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 | boolean
 | *taskExecutor* (consumer) | Allows you to specify a custom task executor for consuming messages. |  | TaskExecutor
+| *deliveryDelay* (producer) | Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker. | -1 | long
 | *deliveryMode* (producer) | Specifies the delivery mode to be used. Possibles values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2. The value can be one of: 1, 2 |  | Integer
 | *deliveryPersistent* (producer) | Specifies whether persistent delivery is used by default. | true | boolean
-| *explicitQosEnabled* (producer) | 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 | boolean
-| *formatDateHeadersToIso8601* (producer) | Sets whether date headers should be formatted according to the ISO 8601 standard. | false | boolean
+| *explicitQosEnabled* (producer) | 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 | Boolean
+| *formatDateHeadersToIso8601* (producer) | Sets whether JMS date properties should be formatted according to the ISO 8601 standard. | false | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *preserveMessageQos* (producer) | 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 explicitQosEnable [...]
 | *priority* (producer) | 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. The value can be one of: 1, 2, 3, 4, 5, 6, 7, 8, 9 | 4 | int
-| *replyOnTimeoutToMaxConcurrent Consumers* (producer) | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | int
 | *replyToConcurrentConsumers* (producer) | 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 | int
 | *replyToMaxConcurrentConsumers* (producer) | 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. |  | int
+| *replyToOnTimeoutMaxConcurrent Consumers* (producer) | Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request/reply over JMS. | 1 | int
+| *replyToOverride* (producer) | 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. |  | String
 | *replyToType* (producer) | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running  [...]
 | *requestTimeout* (producer) | 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. | 20000 | long
 | *timeToLive* (producer) | When sending messages, specifies the time-to-live of the message (in milliseconds). | -1 | long
 | *allowAdditionalHeaders* (producer) | This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching. |  | String
 | *allowNullBody* (producer) | 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 | boolean
-| *alwaysCopyMessage* (producer) | If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set). | false | boolean
-| *correlationProperty* (producer) | Use this JMS property to correlate messages in InOut exchange pattern (request-reply) instead of JMSCorrelationID property. This allows you to exchange messages with systems that do not correlate messages using JMSCorrelationID JMS property. If used JMSCorrelationID will not be used or set by Camel. The value of here named property will be generated if not supplied in the header of the message under the same name. |  | String
+| *alwaysCopyMessage* (producer) | If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set) | false | boolean
+| *correlationProperty* (producer) | When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel. |  | String
+| *disableTimeToLive* (producer) | 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 w [...]
 | *forceSendOriginalMessage* (producer) | When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received. | false | boolean
 | *includeSentJMSMessageID* (producer) | Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination. | false | boolean
 | *replyToCacheLevelName* (producer) | Sets the cache level by name for the reply consumer when doing request/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE [...]
+| *replyToDestinationSelectorName* (producer) | Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue). |  | String
 | *streamMessageTypeEnabled* (producer) | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no [...]
 | *allowAutoWiredConnection Factory* (advanced) | Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default. | false | boolean
 | *allowAutoWiredDestination Resolver* (advanced) | Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default. | false | boolean
+| *allowSerializedHeaders* (advanced) | Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. | false | boolean
 | *asyncStartListener* (advanced) | Whether to startup the JmsConsumer 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, the [...]
 | *asyncStopListener* (advanced) | Whether to stop the JmsConsumer message listener asynchronously, when stopping a route. | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
@@ -104,13 +115,13 @@ The AMQP component supports 85 options, which are listed below.
 | *idleConsumerLimit* (advanced) | Specify the limit for the number of consumers that are allowed to be idle at any given time. | 1 | int
 | *idleTaskExecutionLimit* (advanced) | Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring. | 1 | int
 | *includeAllJMSXProperties* (advanced) | Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply. | false | boolean
-| *jmsKeyFormatStrategy* (advanced) | 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 org.apache [...]
-| *jmsOperations* (advanced) | Allows you to use your own implementation of the org.springframework.jms.core.JmsOperations interface. Camel uses JmsTemplate as default. Can be used for testing purpose, but not used much as stated in the spring API docs. |  | JmsOperations
+| *jmsKeyFormatStrategy* (advanced) | 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 org.apache [...]
 | *mapJmsMessage* (advanced) | Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc. | true | boolean
 | *maxMessagesPerTask* (advanced) | The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required. | -1 | int
 | *messageConverter* (advanced) | To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to/from a javax.jms.Message. |  | MessageConverter
 | *messageCreatedStrategy* (advanced) | 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. |  | MessageCreatedStrategy
 | *messageIdEnabled* (advanced) | When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value. | true | boolean
+| *messageListenerContainer Factory* (advanced) | Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. |  | MessageListenerContainerFactory
 | *messageTimestampEnabled* (advanced) | Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value. | true | boolean
 | *pubSubNoLocal* (advanced) | Specifies whether to inhibit the delivery of messages published by its own connection. | false | boolean
 | *queueBrowseStrategy* (advanced) | To use a custom QueueBrowseStrategy when browsing queues |  | QueueBrowseStrategy
diff --git a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPComponent.java b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPComponent.java
index 25ece36..1658b52 100644
--- a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPComponent.java
+++ b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPComponent.java
@@ -51,7 +51,8 @@ public class AMQPComponent extends JmsComponent {
     }
 
     public AMQPComponent(ConnectionFactory connectionFactory) {
-        setConnectionFactory(connectionFactory);
+        this();
+        getConfiguration().setConnectionFactory(connectionFactory);
     }
 
     // Factory methods
@@ -79,7 +80,7 @@ public class AMQPComponent extends JmsComponent {
             if (details.setTopicPrefix()) {
                 connectionFactory.setTopicPrefix("topic://");
             }
-            setConnectionFactory(connectionFactory);
+            getConfiguration().setConnectionFactory(connectionFactory);
         }
         super.doStart();
     }
diff --git a/components/camel-amqp/src/test/java/org/apache/camel/component/amqp/AMQPRouteTest.java b/components/camel-amqp/src/test/java/org/apache/camel/component/amqp/AMQPRouteTest.java
index b4c1e7b..bf3cc07 100644
--- a/components/camel-amqp/src/test/java/org/apache/camel/component/amqp/AMQPRouteTest.java
+++ b/components/camel-amqp/src/test/java/org/apache/camel/component/amqp/AMQPRouteTest.java
@@ -143,7 +143,7 @@ public class AMQPRouteTest extends CamelTestSupport {
 
     private void sendAmqpMessage(AMQPComponent component, String queue, String body,
                                  Consumer<AmqpJmsMessageFacade> messageCustomizer) throws JMSException {
-        ConnectionFactory factory = component.getConnectionFactory();
+        ConnectionFactory factory = component.getConfiguration().getConnectionFactory();
         try (Connection connection = factory.createConnection();
              Session session = connection.createSession();
              MessageProducer producer = session.createProducer(session.createQueue(queue))) {
diff --git a/components/camel-amqp/src/test/java/org/apache/camel/component/amqp/AMQPRouteTraceFrameTest.java b/components/camel-amqp/src/test/java/org/apache/camel/component/amqp/AMQPRouteTraceFrameTest.java
index 90d79c0..773b114 100644
--- a/components/camel-amqp/src/test/java/org/apache/camel/component/amqp/AMQPRouteTraceFrameTest.java
+++ b/components/camel-amqp/src/test/java/org/apache/camel/component/amqp/AMQPRouteTraceFrameTest.java
@@ -72,7 +72,7 @@ public class AMQPRouteTraceFrameTest extends CamelTestSupport {
         JmsConnectionFactory connectionFactory = new JmsConnectionFactory("amqp://localhost:" + amqpPort + "?amqp.traceFrames=true");
 
         AMQPComponent amqp = amqpComponent("amqp://localhost:" + amqpPort);
-        amqp.setConnectionFactory(connectionFactory);
+        amqp.getConfiguration().setConnectionFactory(connectionFactory);
 
         camelContext.addComponent("amqp-customized", amqp);
         return camelContext;
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/map/AtomixMapComponentConfigurer.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/map/AtomixMapComponentConfigurer.java
index 16cd880..8c6f4ed 100644
--- a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/map/AtomixMapComponentConfigurer.java
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/map/AtomixMapComponentConfigurer.java
@@ -11,21 +11,47 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class AtomixMapComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.atomix.client.map.AtomixMapConfiguration getOrCreateConfiguration(AtomixMapComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.atomix.client.map.AtomixMapConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         AtomixMapComponent target = (AtomixMapComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "atomix": target.setAtomix(property(camelContext, io.atomix.AtomixClient.class, value)); return true;
+        case "atomix": getOrCreateConfiguration(target).setAtomix(property(camelContext, io.atomix.Atomix.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.atomix.client.map.AtomixMapConfiguration.class, value)); return true;
         case "configurationuri":
         case "configurationUri": target.setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
+        case "defaultaction":
+        case "defaultAction": getOrCreateConfiguration(target).setDefaultAction(property(camelContext, org.apache.camel.component.atomix.client.map.AtomixMap.Action.class, value)); return true;
+        case "key": getOrCreateConfiguration(target).setKey(property(camelContext, java.lang.Object.class, value)); return true;
         case "nodes": target.setNodes(property(camelContext, java.util.List.class, value)); return true;
+        case "resultheader":
+        case "resultHeader": getOrCreateConfiguration(target).setResultHeader(property(camelContext, java.lang.String.class, value)); return true;
+        case "transportclassname":
+        case "transportClassName": getOrCreateConfiguration(target).setTransportClassName(property(camelContext, java.lang.String.class, value)); return true;
+        case "ttl": getOrCreateConfiguration(target).setTtl(property(camelContext, long.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "defaultresourceconfig":
+        case "defaultResourceConfig": getOrCreateConfiguration(target).setDefaultResourceConfig(property(camelContext, java.util.Properties.class, value)); return true;
+        case "defaultresourceoptions":
+        case "defaultResourceOptions": getOrCreateConfiguration(target).setDefaultResourceOptions(property(camelContext, java.util.Properties.class, value)); return true;
+        case "ephemeral": getOrCreateConfiguration(target).setEphemeral(property(camelContext, boolean.class, value)); return true;
+        case "readconsistency":
+        case "readConsistency": getOrCreateConfiguration(target).setReadConsistency(property(camelContext, io.atomix.resource.ReadConsistency.class, value)); return true;
+        case "resourceconfigs":
+        case "resourceConfigs": getOrCreateConfiguration(target).setResourceConfigs(property(camelContext, java.util.Map.class, value)); return true;
+        case "resourceoptions":
+        case "resourceOptions": getOrCreateConfiguration(target).setResourceOptions(property(camelContext, java.util.Map.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingComponentConfigurer.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingComponentConfigurer.java
index 65078c3..e3c2fcc 100644
--- a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingComponentConfigurer.java
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/messaging/AtomixMessagingComponentConfigurer.java
@@ -11,21 +11,51 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class AtomixMessagingComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration getOrCreateConfiguration(AtomixMessagingComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         AtomixMessagingComponent target = (AtomixMessagingComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "atomix": target.setAtomix(property(camelContext, io.atomix.AtomixClient.class, value)); return true;
+        case "atomix": getOrCreateConfiguration(target).setAtomix(property(camelContext, io.atomix.Atomix.class, value)); return true;
+        case "broadcasttype":
+        case "broadcastType": getOrCreateConfiguration(target).setBroadcastType(property(camelContext, org.apache.camel.component.atomix.client.messaging.AtomixMessaging.BroadcastType.class, value)); return true;
+        case "channelname":
+        case "channelName": getOrCreateConfiguration(target).setChannelName(property(camelContext, java.lang.String.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration.class, value)); return true;
         case "configurationuri":
         case "configurationUri": target.setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
+        case "defaultaction":
+        case "defaultAction": getOrCreateConfiguration(target).setDefaultAction(property(camelContext, org.apache.camel.component.atomix.client.messaging.AtomixMessaging.Action.class, value)); return true;
+        case "membername":
+        case "memberName": getOrCreateConfiguration(target).setMemberName(property(camelContext, java.lang.String.class, value)); return true;
         case "nodes": target.setNodes(property(camelContext, java.util.List.class, value)); return true;
+        case "resultheader":
+        case "resultHeader": getOrCreateConfiguration(target).setResultHeader(property(camelContext, java.lang.String.class, value)); return true;
+        case "transportclassname":
+        case "transportClassName": getOrCreateConfiguration(target).setTransportClassName(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "defaultresourceconfig":
+        case "defaultResourceConfig": getOrCreateConfiguration(target).setDefaultResourceConfig(property(camelContext, java.util.Properties.class, value)); return true;
+        case "defaultresourceoptions":
+        case "defaultResourceOptions": getOrCreateConfiguration(target).setDefaultResourceOptions(property(camelContext, java.util.Properties.class, value)); return true;
+        case "ephemeral": getOrCreateConfiguration(target).setEphemeral(property(camelContext, boolean.class, value)); return true;
+        case "readconsistency":
+        case "readConsistency": getOrCreateConfiguration(target).setReadConsistency(property(camelContext, io.atomix.resource.ReadConsistency.class, value)); return true;
+        case "resourceconfigs":
+        case "resourceConfigs": getOrCreateConfiguration(target).setResourceConfigs(property(camelContext, java.util.Map.class, value)); return true;
+        case "resourceoptions":
+        case "resourceOptions": getOrCreateConfiguration(target).setResourceOptions(property(camelContext, java.util.Map.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapComponentConfigurer.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapComponentConfigurer.java
index 48086c3..44d9a83 100644
--- a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapComponentConfigurer.java
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/multimap/AtomixMultiMapComponentConfigurer.java
@@ -11,19 +11,45 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class AtomixMultiMapComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration getOrCreateConfiguration(AtomixMultiMapComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         AtomixMultiMapComponent target = (AtomixMultiMapComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "atomix": target.setAtomix(property(camelContext, io.atomix.AtomixClient.class, value)); return true;
+        case "atomix": getOrCreateConfiguration(target).setAtomix(property(camelContext, io.atomix.Atomix.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration.class, value)); return true;
         case "configurationuri":
         case "configurationUri": target.setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
+        case "defaultaction":
+        case "defaultAction": getOrCreateConfiguration(target).setDefaultAction(property(camelContext, org.apache.camel.component.atomix.client.multimap.AtomixMultiMap.Action.class, value)); return true;
+        case "key": getOrCreateConfiguration(target).setKey(property(camelContext, java.lang.Object.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "nodes": target.setNodes(property(camelContext, java.util.List.class, value)); return true;
+        case "resultheader":
+        case "resultHeader": getOrCreateConfiguration(target).setResultHeader(property(camelContext, java.lang.String.class, value)); return true;
+        case "transportclassname":
+        case "transportClassName": getOrCreateConfiguration(target).setTransportClassName(property(camelContext, java.lang.String.class, value)); return true;
+        case "ttl": getOrCreateConfiguration(target).setTtl(property(camelContext, long.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "defaultresourceconfig":
+        case "defaultResourceConfig": getOrCreateConfiguration(target).setDefaultResourceConfig(property(camelContext, java.util.Properties.class, value)); return true;
+        case "defaultresourceoptions":
+        case "defaultResourceOptions": getOrCreateConfiguration(target).setDefaultResourceOptions(property(camelContext, java.util.Properties.class, value)); return true;
+        case "ephemeral": getOrCreateConfiguration(target).setEphemeral(property(camelContext, boolean.class, value)); return true;
+        case "readconsistency":
+        case "readConsistency": getOrCreateConfiguration(target).setReadConsistency(property(camelContext, io.atomix.resource.ReadConsistency.class, value)); return true;
+        case "resourceconfigs":
+        case "resourceConfigs": getOrCreateConfiguration(target).setResourceConfigs(property(camelContext, java.util.Map.class, value)); return true;
+        case "resourceoptions":
+        case "resourceOptions": getOrCreateConfiguration(target).setResourceOptions(property(camelContext, java.util.Map.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/queue/AtomixQueueComponentConfigurer.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/queue/AtomixQueueComponentConfigurer.java
index 28c436a..78cc97b 100644
--- a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/queue/AtomixQueueComponentConfigurer.java
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/queue/AtomixQueueComponentConfigurer.java
@@ -11,21 +11,45 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class AtomixQueueComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration getOrCreateConfiguration(AtomixQueueComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         AtomixQueueComponent target = (AtomixQueueComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "atomix": target.setAtomix(property(camelContext, io.atomix.AtomixClient.class, value)); return true;
+        case "atomix": getOrCreateConfiguration(target).setAtomix(property(camelContext, io.atomix.Atomix.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration.class, value)); return true;
         case "configurationuri":
         case "configurationUri": target.setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
+        case "defaultaction":
+        case "defaultAction": getOrCreateConfiguration(target).setDefaultAction(property(camelContext, org.apache.camel.component.atomix.client.queue.AtomixQueue.Action.class, value)); return true;
         case "nodes": target.setNodes(property(camelContext, java.util.List.class, value)); return true;
+        case "resultheader":
+        case "resultHeader": getOrCreateConfiguration(target).setResultHeader(property(camelContext, java.lang.String.class, value)); return true;
+        case "transportclassname":
+        case "transportClassName": getOrCreateConfiguration(target).setTransportClassName(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "defaultresourceconfig":
+        case "defaultResourceConfig": getOrCreateConfiguration(target).setDefaultResourceConfig(property(camelContext, java.util.Properties.class, value)); return true;
+        case "defaultresourceoptions":
+        case "defaultResourceOptions": getOrCreateConfiguration(target).setDefaultResourceOptions(property(camelContext, java.util.Properties.class, value)); return true;
+        case "ephemeral": getOrCreateConfiguration(target).setEphemeral(property(camelContext, boolean.class, value)); return true;
+        case "readconsistency":
+        case "readConsistency": getOrCreateConfiguration(target).setReadConsistency(property(camelContext, io.atomix.resource.ReadConsistency.class, value)); return true;
+        case "resourceconfigs":
+        case "resourceConfigs": getOrCreateConfiguration(target).setResourceConfigs(property(camelContext, java.util.Map.class, value)); return true;
+        case "resourceoptions":
+        case "resourceOptions": getOrCreateConfiguration(target).setResourceOptions(property(camelContext, java.util.Map.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/set/AtomixSetComponentConfigurer.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/set/AtomixSetComponentConfigurer.java
index 400392a..5e9e66c 100644
--- a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/set/AtomixSetComponentConfigurer.java
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/set/AtomixSetComponentConfigurer.java
@@ -11,21 +11,46 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class AtomixSetComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.atomix.client.set.AtomixSetConfiguration getOrCreateConfiguration(AtomixSetComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.atomix.client.set.AtomixSetConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         AtomixSetComponent target = (AtomixSetComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "atomix": target.setAtomix(property(camelContext, io.atomix.AtomixClient.class, value)); return true;
+        case "atomix": getOrCreateConfiguration(target).setAtomix(property(camelContext, io.atomix.Atomix.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.atomix.client.set.AtomixSetConfiguration.class, value)); return true;
         case "configurationuri":
         case "configurationUri": target.setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
+        case "defaultaction":
+        case "defaultAction": getOrCreateConfiguration(target).setDefaultAction(property(camelContext, org.apache.camel.component.atomix.client.set.AtomixSet.Action.class, value)); return true;
         case "nodes": target.setNodes(property(camelContext, java.util.List.class, value)); return true;
+        case "resultheader":
+        case "resultHeader": getOrCreateConfiguration(target).setResultHeader(property(camelContext, java.lang.String.class, value)); return true;
+        case "transportclassname":
+        case "transportClassName": getOrCreateConfiguration(target).setTransportClassName(property(camelContext, java.lang.String.class, value)); return true;
+        case "ttl": getOrCreateConfiguration(target).setTtl(property(camelContext, long.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "defaultresourceconfig":
+        case "defaultResourceConfig": getOrCreateConfiguration(target).setDefaultResourceConfig(property(camelContext, java.util.Properties.class, value)); return true;
+        case "defaultresourceoptions":
+        case "defaultResourceOptions": getOrCreateConfiguration(target).setDefaultResourceOptions(property(camelContext, java.util.Properties.class, value)); return true;
+        case "ephemeral": getOrCreateConfiguration(target).setEphemeral(property(camelContext, boolean.class, value)); return true;
+        case "readconsistency":
+        case "readConsistency": getOrCreateConfiguration(target).setReadConsistency(property(camelContext, io.atomix.resource.ReadConsistency.class, value)); return true;
+        case "resourceconfigs":
+        case "resourceConfigs": getOrCreateConfiguration(target).setResourceConfigs(property(camelContext, java.util.Map.class, value)); return true;
+        case "resourceoptions":
+        case "resourceOptions": getOrCreateConfiguration(target).setResourceOptions(property(camelContext, java.util.Map.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/value/AtomixValueComponentConfigurer.java b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/value/AtomixValueComponentConfigurer.java
index 247400a..ee083b3 100644
--- a/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/value/AtomixValueComponentConfigurer.java
+++ b/components/camel-atomix/src/generated/java/org/apache/camel/component/atomix/client/value/AtomixValueComponentConfigurer.java
@@ -11,21 +11,46 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class AtomixValueComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.atomix.client.value.AtomixValueConfiguration getOrCreateConfiguration(AtomixValueComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.atomix.client.value.AtomixValueConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         AtomixValueComponent target = (AtomixValueComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "atomix": target.setAtomix(property(camelContext, io.atomix.AtomixClient.class, value)); return true;
+        case "atomix": getOrCreateConfiguration(target).setAtomix(property(camelContext, io.atomix.Atomix.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.atomix.client.value.AtomixValueConfiguration.class, value)); return true;
         case "configurationuri":
         case "configurationUri": target.setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
+        case "defaultaction":
+        case "defaultAction": getOrCreateConfiguration(target).setDefaultAction(property(camelContext, org.apache.camel.component.atomix.client.value.AtomixValue.Action.class, value)); return true;
         case "nodes": target.setNodes(property(camelContext, java.util.List.class, value)); return true;
+        case "resultheader":
+        case "resultHeader": getOrCreateConfiguration(target).setResultHeader(property(camelContext, java.lang.String.class, value)); return true;
+        case "transportclassname":
+        case "transportClassName": getOrCreateConfiguration(target).setTransportClassName(property(camelContext, java.lang.String.class, value)); return true;
+        case "ttl": getOrCreateConfiguration(target).setTtl(property(camelContext, long.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "defaultresourceconfig":
+        case "defaultResourceConfig": getOrCreateConfiguration(target).setDefaultResourceConfig(property(camelContext, java.util.Properties.class, value)); return true;
+        case "defaultresourceoptions":
+        case "defaultResourceOptions": getOrCreateConfiguration(target).setDefaultResourceOptions(property(camelContext, java.util.Properties.class, value)); return true;
+        case "ephemeral": getOrCreateConfiguration(target).setEphemeral(property(camelContext, boolean.class, value)); return true;
+        case "readconsistency":
+        case "readConsistency": getOrCreateConfiguration(target).setReadConsistency(property(camelContext, io.atomix.resource.ReadConsistency.class, value)); return true;
+        case "resourceconfigs":
+        case "resourceConfigs": getOrCreateConfiguration(target).setResourceConfigs(property(camelContext, java.util.Map.class, value)); return true;
+        case "resourceoptions":
+        case "resourceOptions": getOrCreateConfiguration(target).setResourceOptions(property(camelContext, java.util.Map.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/map/atomix-map.json b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/map/atomix-map.json
index 339da06..52796c8 100644
--- a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/map/atomix-map.json
+++ b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/map/atomix-map.json
@@ -19,13 +19,24 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "required": false, "type": "object", "javaType": "io.atomix.AtomixClient", "deprecated": false, "secret": false, "description": "The shared AtomixClient instance" },
+    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.atomix.Atomix", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "The Atomix instance to use" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "deprecated": false, "secret": false, "description": "The shared component configuration" },
     "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path to the AtomixClient configuration" },
+    "defaultAction": { "kind": "property", "displayName": "Default Action", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.map.AtomixMap.Action", "enum": [ "PUT", "PUT_IF_ABSENT", "GET", "CLEAR", "SIZE", "CONTAINS_KEY", "CONTAINS_VALUE", "IS_EMPTY", "ENTRY_SET", "REMOVE", "REPLACE", "VALUES" ], "deprecated": false, "secret": false, "defaultValue": "PUT", "configurationClass": "org.apache.camel.component.atomix.cl [...]
+    "key": { "kind": "property", "displayName": "Key", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "The key to use if none is set in the header or to listen for events for a specific key." },
     "nodes": { "kind": "property", "displayName": "Nodes", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<io.atomix.catalyst.transport.Address>", "deprecated": false, "secret": false, "description": "The nodes the AtomixClient should connect to" },
+    "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "The header that wil carry the result." },
+    "transportClassName": { "kind": "property", "displayName": "Transport Class Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport", "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "The class name (fqn) of the Atomix transport" },
+    "ttl": { "kind": "property", "displayName": "Ttl", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "The resource ttl." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "defaultResourceConfig": { "kind": "property", "displayName": "Default Resource Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "The cluster wide default resource configuration." },
+    "defaultResourceOptions": { "kind": "property", "displayName": "Default Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "The local default resource options." },
+    "ephemeral": { "kind": "property", "displayName": "Ephemeral", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member wi [...]
+    "readConsistency": { "kind": "property", "displayName": "Read Consistency", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.atomix.resource.ReadConsistency", "enum": [ "ATOMIC", "ATOMIC_LEASE", "SEQUENTIAL", "LOCAL" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "The read consistency level." },
+    "resourceConfigs": { "kind": "property", "displayName": "Resource Configs", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.config", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "Cluster wide resources configuration." },
+    "resourceOptions": { "kind": "property", "displayName": "Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.options", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration", "configurationField": "configuration", "description": "Local resources configurations" }
   },
   "properties": {
     "resourceName": { "kind": "path", "displayName": "Resource Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The distributed resource name" },
diff --git a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/messaging/atomix-messaging.json b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/messaging/atomix-messaging.json
index a20c2bc..c10ec5d 100644
--- a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/messaging/atomix-messaging.json
+++ b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/messaging/atomix-messaging.json
@@ -19,13 +19,25 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "required": false, "type": "object", "javaType": "io.atomix.AtomixClient", "deprecated": false, "secret": false, "description": "The shared AtomixClient instance" },
+    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.atomix.Atomix", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "The Atomix instance to use" },
+    "broadcastType": { "kind": "property", "displayName": "Broadcast Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.messaging.AtomixMessaging.BroadcastType", "enum": [ "ALL", "RANDOM" ], "deprecated": false, "secret": false, "defaultValue": "ALL", "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "T [...]
+    "channelName": { "kind": "property", "displayName": "Channel Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "The messaging channel name" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "deprecated": false, "secret": false, "description": "The shared component configuration" },
     "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path to the AtomixClient configuration" },
+    "defaultAction": { "kind": "property", "displayName": "Default Action", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.messaging.AtomixMessaging.Action", "enum": [ "DIRECT", "BROADCAST" ], "deprecated": false, "secret": false, "defaultValue": "DIRECT", "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description":  [...]
+    "memberName": { "kind": "property", "displayName": "Member Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "The Atomix Group member name" },
     "nodes": { "kind": "property", "displayName": "Nodes", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<io.atomix.catalyst.transport.Address>", "deprecated": false, "secret": false, "description": "The nodes the AtomixClient should connect to" },
+    "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "The header that wil carry the result." },
+    "transportClassName": { "kind": "property", "displayName": "Transport Class Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport", "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "The class name (fqn) of the Atomix tr [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "defaultResourceConfig": { "kind": "property", "displayName": "Default Resource Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "The cluster wide default resource configuration." },
+    "defaultResourceOptions": { "kind": "property", "displayName": "Default Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "The local default resource options." },
+    "ephemeral": { "kind": "property", "displayName": "Ephemeral", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the loc [...]
+    "readConsistency": { "kind": "property", "displayName": "Read Consistency", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.atomix.resource.ReadConsistency", "enum": [ "ATOMIC", "ATOMIC_LEASE", "SEQUENTIAL", "LOCAL" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "The read consistency level." },
+    "resourceConfigs": { "kind": "property", "displayName": "Resource Configs", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.config", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "Cluster wide resources configuration." },
+    "resourceOptions": { "kind": "property", "displayName": "Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.options", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration", "configurationField": "configuration", "description": "Local resources configurations" }
   },
   "properties": {
     "resourceName": { "kind": "path", "displayName": "Resource Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The distributed resource name" },
diff --git a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/multimap/atomix-multimap.json b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/multimap/atomix-multimap.json
index 7f299cd..fd8b9ec 100644
--- a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/multimap/atomix-multimap.json
+++ b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/multimap/atomix-multimap.json
@@ -19,12 +19,23 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "atomix": { "kind": "property", "displayName": "Atomix", "group": "producer", "required": false, "type": "object", "javaType": "io.atomix.AtomixClient", "deprecated": false, "secret": false, "description": "The shared AtomixClient instance" },
+    "atomix": { "kind": "property", "displayName": "Atomix", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "io.atomix.Atomix", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "The Atomix instance to use" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "deprecated": false, "secret": false, "description": "The shared component configuration" },
     "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path to the AtomixClient configuration" },
+    "defaultAction": { "kind": "property", "displayName": "Default Action", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMap.Action", "enum": [ "PUT", "GET", "CLEAR", "SIZE", "CONTAINS_KEY", "IS_EMPTY", "REMOVE", "REMOVE_VALUE" ], "deprecated": false, "secret": false, "defaultValue": "PUT", "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration [...]
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "The key to use if none is set in the header or to listen for events for a specific key." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "nodes": { "kind": "property", "displayName": "Nodes", "group": "producer", "required": false, "type": "array", "javaType": "java.util.List<io.atomix.catalyst.transport.Address>", "deprecated": false, "secret": false, "description": "The nodes the AtomixClient should connect to" },
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "The header that wil carry the result." },
+    "transportClassName": { "kind": "property", "displayName": "Transport Class Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport", "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "The class name (fqn) of the Atomix tr [...]
+    "ttl": { "kind": "property", "displayName": "Ttl", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "The resource ttl." },
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "defaultResourceConfig": { "kind": "property", "displayName": "Default Resource Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "The cluster wide default resource configuration." },
+    "defaultResourceOptions": { "kind": "property", "displayName": "Default Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "The local default resource options." },
+    "ephemeral": { "kind": "property", "displayName": "Ephemeral", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local [...]
+    "readConsistency": { "kind": "property", "displayName": "Read Consistency", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.atomix.resource.ReadConsistency", "enum": [ "ATOMIC", "ATOMIC_LEASE", "SEQUENTIAL", "LOCAL" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "The read consistency level." },
+    "resourceConfigs": { "kind": "property", "displayName": "Resource Configs", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.config", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "Cluster wide resources configuration." },
+    "resourceOptions": { "kind": "property", "displayName": "Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.options", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration", "configurationField": "configuration", "description": "Local resources configurations" }
   },
   "properties": {
     "resourceName": { "kind": "path", "displayName": "Resource Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The distributed resource name" },
diff --git a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/queue/atomix-queue.json b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/queue/atomix-queue.json
index 86c812a..c7d5175 100644
--- a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/queue/atomix-queue.json
+++ b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/queue/atomix-queue.json
@@ -19,13 +19,22 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "required": false, "type": "object", "javaType": "io.atomix.AtomixClient", "deprecated": false, "secret": false, "description": "The shared AtomixClient instance" },
+    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.atomix.Atomix", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "The Atomix instance to use" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "deprecated": false, "secret": false, "description": "The shared component configuration" },
     "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path to the AtomixClient configuration" },
+    "defaultAction": { "kind": "property", "displayName": "Default Action", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.queue.AtomixQueue.Action", "enum": [ "ADD", "OFFER", "PEEK", "POLL", "CLEAR", "CONTAINS", "IS_EMPTY", "REMOVE", "SIZE" ], "deprecated": false, "secret": false, "defaultValue": "ADD", "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configuratio [...]
     "nodes": { "kind": "property", "displayName": "Nodes", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<io.atomix.catalyst.transport.Address>", "deprecated": false, "secret": false, "description": "The nodes the AtomixClient should connect to" },
+    "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "The header that wil carry the result." },
+    "transportClassName": { "kind": "property", "displayName": "Transport Class Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport", "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "The class name (fqn) of the Atomix transport" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "defaultResourceConfig": { "kind": "property", "displayName": "Default Resource Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "The cluster wide default resource configuration." },
+    "defaultResourceOptions": { "kind": "property", "displayName": "Default Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "The local default resource options." },
+    "ephemeral": { "kind": "property", "displayName": "Ephemeral", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local membe [...]
+    "readConsistency": { "kind": "property", "displayName": "Read Consistency", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.atomix.resource.ReadConsistency", "enum": [ "ATOMIC", "ATOMIC_LEASE", "SEQUENTIAL", "LOCAL" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "The read consistency level." },
+    "resourceConfigs": { "kind": "property", "displayName": "Resource Configs", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.config", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "Cluster wide resources configuration." },
+    "resourceOptions": { "kind": "property", "displayName": "Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.options", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration", "configurationField": "configuration", "description": "Local resources configurations" }
   },
   "properties": {
     "resourceName": { "kind": "path", "displayName": "Resource Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The distributed resource name" },
diff --git a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/set/atomix-set.json b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/set/atomix-set.json
index 3ae3b44..eb08960 100644
--- a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/set/atomix-set.json
+++ b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/set/atomix-set.json
@@ -19,13 +19,23 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "required": false, "type": "object", "javaType": "io.atomix.AtomixClient", "deprecated": false, "secret": false, "description": "The shared AtomixClient instance" },
+    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.atomix.Atomix", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "The Atomix instance to use" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "deprecated": false, "secret": false, "description": "The shared component configuration" },
     "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path to the AtomixClient configuration" },
+    "defaultAction": { "kind": "property", "displayName": "Default Action", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.set.AtomixSet.Action", "enum": [ "ADD", "CLEAR", "CONTAINS", "IS_EMPTY", "REMOVE", "SIZE" ], "deprecated": false, "secret": false, "defaultValue": "ADD", "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "descri [...]
     "nodes": { "kind": "property", "displayName": "Nodes", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<io.atomix.catalyst.transport.Address>", "deprecated": false, "secret": false, "description": "The nodes the AtomixClient should connect to" },
+    "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "The header that wil carry the result." },
+    "transportClassName": { "kind": "property", "displayName": "Transport Class Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport", "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "The class name (fqn) of the Atomix transport" },
+    "ttl": { "kind": "property", "displayName": "Ttl", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "The resource ttl." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "defaultResourceConfig": { "kind": "property", "displayName": "Default Resource Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "The cluster wide default resource configuration." },
+    "defaultResourceOptions": { "kind": "property", "displayName": "Default Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "The local default resource options." },
+    "ephemeral": { "kind": "property", "displayName": "Ephemeral", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member wi [...]
+    "readConsistency": { "kind": "property", "displayName": "Read Consistency", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.atomix.resource.ReadConsistency", "enum": [ "ATOMIC", "ATOMIC_LEASE", "SEQUENTIAL", "LOCAL" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "The read consistency level." },
+    "resourceConfigs": { "kind": "property", "displayName": "Resource Configs", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.config", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "Cluster wide resources configuration." },
+    "resourceOptions": { "kind": "property", "displayName": "Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.options", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration", "configurationField": "configuration", "description": "Local resources configurations" }
   },
   "properties": {
     "resourceName": { "kind": "path", "displayName": "Resource Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The distributed resource name" },
diff --git a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/value/atomix-value.json b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/value/atomix-value.json
index cf8d529..45475aa 100644
--- a/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/value/atomix-value.json
+++ b/components/camel-atomix/src/generated/resources/org/apache/camel/component/atomix/client/value/atomix-value.json
@@ -19,13 +19,23 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "required": false, "type": "object", "javaType": "io.atomix.AtomixClient", "deprecated": false, "secret": false, "description": "The shared AtomixClient instance" },
+    "atomix": { "kind": "property", "displayName": "Atomix", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.atomix.Atomix", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "The Atomix instance to use" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "deprecated": false, "secret": false, "description": "The shared component configuration" },
     "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path to the AtomixClient configuration" },
+    "defaultAction": { "kind": "property", "displayName": "Default Action", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.atomix.client.value.AtomixValue.Action", "enum": [ "SET", "GET", "GET_AND_SET", "COMPARE_AND_SET" ], "deprecated": false, "secret": false, "defaultValue": "SET", "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "descript [...]
     "nodes": { "kind": "property", "displayName": "Nodes", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<io.atomix.catalyst.transport.Address>", "deprecated": false, "secret": false, "description": "The nodes the AtomixClient should connect to" },
+    "resultHeader": { "kind": "property", "displayName": "Result Header", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "The header that wil carry the result." },
+    "transportClassName": { "kind": "property", "displayName": "Transport Class Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport", "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "The class name (fqn) of the Atomix transport" },
+    "ttl": { "kind": "property", "displayName": "Ttl", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "The resource ttl." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "defaultResourceConfig": { "kind": "property", "displayName": "Default Resource Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "The cluster wide default resource configuration." },
+    "defaultResourceOptions": { "kind": "property", "displayName": "Default Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "The local default resource options." },
+    "ephemeral": { "kind": "property", "displayName": "Ephemeral", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local membe [...]
+    "readConsistency": { "kind": "property", "displayName": "Read Consistency", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.atomix.resource.ReadConsistency", "enum": [ "ATOMIC", "ATOMIC_LEASE", "SEQUENTIAL", "LOCAL" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "The read consistency level." },
+    "resourceConfigs": { "kind": "property", "displayName": "Resource Configs", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.config", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "Cluster wide resources configuration." },
+    "resourceOptions": { "kind": "property", "displayName": "Resource Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "prefix": "resource.options", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration", "configurationField": "configuration", "description": "Local resources configurations" }
   },
   "properties": {
     "resourceName": { "kind": "path", "displayName": "Resource Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The distributed resource name" },
diff --git a/components/camel-atomix/src/main/docs/atomix-map-component.adoc b/components/camel-atomix/src/main/docs/atomix-map-component.adoc
index e3db7d3..6a44844 100644
--- a/components/camel-atomix/src/main/docs/atomix-map-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-map-component.adoc
@@ -30,20 +30,31 @@ Maven users will need to add the following dependency to their pom.xml for this
 == Options
 
 // component options: START
-The Atomix Map component supports 7 options, which are listed below.
+The Atomix Map component supports 18 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
+| *atomix* (common) | The Atomix instance to use |  | Atomix
 | *configuration* (common) | The shared component configuration |  | AtomixMapConfiguration
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. The value can be one of: PUT, PUT_IF_ABSENT, GET, CLEAR, SIZE, CONTAINS_KEY, CONTAINS_VALUE, IS_EMPTY, ENTRY_SET, REMOVE, REPLACE, VALUES | PUT | Action
+| *key* (common) | The key to use if none is set in the header or to listen for events for a specific key. |  | Object
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. The value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
 |===
 // component options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-messaging-component.adoc b/components/camel-atomix/src/main/docs/atomix-messaging-component.adoc
index c661633..783ac54 100644
--- a/components/camel-atomix/src/main/docs/atomix-messaging-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-messaging-component.adoc
@@ -29,20 +29,32 @@ for this component:
 ----
 
 // component options: START
-The Atomix Messaging component supports 7 options, which are listed below.
+The Atomix Messaging component supports 19 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
+| *atomix* (common) | The Atomix instance to use |  | Atomix
+| *broadcastType* (common) | The broadcast type. The value can be one of: ALL, RANDOM | ALL | BroadcastType
+| *channelName* (common) | The messaging channel name |  | String
 | *configuration* (common) | The shared component configuration |  | AtomixMessagingConfiguration
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. The value can be one of: DIRECT, BROADCAST | DIRECT | Action
+| *memberName* (common) | The Atomix Group member name |  | String
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. The value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
 |===
 // component options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-multimap-component.adoc b/components/camel-atomix/src/main/docs/atomix-multimap-component.adoc
index 695fe82..0a8a2bc 100644
--- a/components/camel-atomix/src/main/docs/atomix-multimap-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-multimap-component.adoc
@@ -29,19 +29,30 @@ for this component:
 ----
 
 // component options: START
-The Atomix MultiMap component supports 6 options, which are listed below.
+The Atomix MultiMap component supports 17 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *atomix* (producer) | The shared AtomixClient instance |  | AtomixClient
+| *atomix* (producer) | The Atomix instance to use |  | Atomix
 | *configuration* (producer) | The shared component configuration |  | AtomixMultiMapConfiguration
 | *configurationUri* (producer) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (producer) | The default action. The value can be one of: PUT, GET, CLEAR, SIZE, CONTAINS_KEY, IS_EMPTY, REMOVE, REMOVE_VALUE | PUT | Action
+| *key* (producer) | The key to use if none is set in the header or to listen for events for a specific key. |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *nodes* (producer) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (producer) | The header that wil carry the result. |  | String
+| *transportClassName* (producer) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (producer) | The resource ttl. |  | long
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. The value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
 |===
 // component options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-queue-component.adoc b/components/camel-atomix/src/main/docs/atomix-queue-component.adoc
index e257dee..ae4c043 100644
--- a/components/camel-atomix/src/main/docs/atomix-queue-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-queue-component.adoc
@@ -29,20 +29,29 @@ for this component:
 ----
 
 // component options: START
-The Atomix Queue component supports 7 options, which are listed below.
+The Atomix Queue component supports 16 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
+| *atomix* (common) | The Atomix instance to use |  | Atomix
 | *configuration* (common) | The shared component configuration |  | AtomixQueueConfiguration
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. The value can be one of: ADD, OFFER, PEEK, POLL, CLEAR, CONTAINS, IS_EMPTY, REMOVE, SIZE | ADD | Action
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. The value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
 |===
 // component options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-set-component.adoc b/components/camel-atomix/src/main/docs/atomix-set-component.adoc
index 02546b4..807118c 100644
--- a/components/camel-atomix/src/main/docs/atomix-set-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-set-component.adoc
@@ -29,20 +29,30 @@ for this component:
 ----
 
 // component options: START
-The Atomix Set component supports 7 options, which are listed below.
+The Atomix Set component supports 17 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
+| *atomix* (common) | The Atomix instance to use |  | Atomix
 | *configuration* (common) | The shared component configuration |  | AtomixSetConfiguration
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. The value can be one of: ADD, CLEAR, CONTAINS, IS_EMPTY, REMOVE, SIZE | ADD | Action
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. The value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
 |===
 // component options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-value-component.adoc b/components/camel-atomix/src/main/docs/atomix-value-component.adoc
index 08a77a5..e62e644 100644
--- a/components/camel-atomix/src/main/docs/atomix-value-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-value-component.adoc
@@ -29,20 +29,30 @@ for this component:
 ----
 
 // component options: START
-The Atomix Value component supports 7 options, which are listed below.
+The Atomix Value component supports 17 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
+| *atomix* (common) | The Atomix instance to use |  | Atomix
 | *configuration* (common) | The shared component configuration |  | AtomixValueConfiguration
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
+| *defaultAction* (common) | The default action. The value can be one of: SET, GET, GET_AND_SET, COMPARE_AND_SET | SET | Action
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
+| *resultHeader* (common) | The header that wil carry the result. |  | String
+| *transportClassName* (common) | The class name (fqn) of the Atomix transport | io.atomix.catalyst.transport.netty.NettyTransport | String
+| *ttl* (common) | The resource ttl. |  | long
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *defaultResourceConfig* (advanced) | The cluster wide default resource configuration. |  | Properties
+| *defaultResourceOptions* (advanced) | The local default resource options. |  | Properties
+| *ephemeral* (advanced) | Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored. | false | boolean
+| *readConsistency* (advanced) | The read consistency level. The value can be one of: ATOMIC, ATOMIC_LEASE, SEQUENTIAL, LOCAL |  | ReadConsistency
+| *resourceConfigs* (advanced) | Cluster wide resources configuration. |  | Map
+| *resourceOptions* (advanced) | Local resources configurations |  | Map
 |===
 // component options: END
 
diff --git a/components/camel-avro/src/generated/java/org/apache/camel/component/avro/AvroComponentConfigurer.java b/components/camel-avro/src/generated/java/org/apache/camel/component/avro/AvroComponentConfigurer.java
index 311b968..f5ba723 100644
--- a/components/camel-avro/src/generated/java/org/apache/camel/component/avro/AvroComponentConfigurer.java
+++ b/components/camel-avro/src/generated/java/org/apache/camel/component/avro/AvroComponentConfigurer.java
@@ -11,10 +11,28 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class AvroComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.avro.AvroConfiguration getOrCreateConfiguration(AvroComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.avro.AvroConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         AvroComponent target = (AvroComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "protocol": getOrCreateConfiguration(target).setProtocol(property(camelContext, org.apache.avro.Protocol.class, value)); return true;
+        case "protocolclassname":
+        case "protocolClassName": getOrCreateConfiguration(target).setProtocolClassName(property(camelContext, java.lang.String.class, value)); return true;
+        case "protocollocation":
+        case "protocolLocation": getOrCreateConfiguration(target).setProtocolLocation(property(camelContext, java.lang.String.class, value)); return true;
+        case "reflectionprotocol":
+        case "reflectionProtocol": getOrCreateConfiguration(target).setReflectionProtocol(property(camelContext, boolean.class, value)); return true;
+        case "singleparameter":
+        case "singleParameter": getOrCreateConfiguration(target).setSingleParameter(property(camelContext, boolean.class, value)); return true;
+        case "uriauthority":
+        case "uriAuthority": getOrCreateConfiguration(target).setUriAuthority(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
diff --git a/components/camel-avro/src/generated/resources/org/apache/camel/component/avro/avro.json b/components/camel-avro/src/generated/resources/org/apache/camel/component/avro/avro.json
index ecd21f5..af77f4b 100644
--- a/components/camel-avro/src/generated/resources/org/apache/camel/component/avro/avro.json
+++ b/components/camel-avro/src/generated/resources/org/apache/camel/component/avro/avro.json
@@ -19,6 +19,12 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "protocol": { "kind": "property", "displayName": "Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.avro.Protocol", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Avro protocol to use" },
+    "protocolClassName": { "kind": "property", "displayName": "Protocol Class Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Avro protocol to use defined by the FQN class name" },
+    "protocolLocation": { "kind": "property", "displayName": "Protocol Location", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Avro protocol location" },
+    "reflectionProtocol": { "kind": "property", "displayName": "Reflection Protocol", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "If protocol object provided is reflection protocol. Should be used only with protocol parameter because for protocolClassN [...]
+    "singleParameter": { "kind": "property", "displayName": "Single Parameter", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "If true, consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message" },
+    "uriAuthority": { "kind": "property", "displayName": "Uri Authority", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Authority to use (username and password)" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-avro/src/main/docs/avro-component.adoc b/components/camel-avro/src/main/docs/avro-component.adoc
index d1d959d..719ea77 100644
--- a/components/camel-avro/src/main/docs/avro-component.adoc
+++ b/components/camel-avro/src/main/docs/avro-component.adoc
@@ -176,13 +176,19 @@ wrapping.
 
 
 // component options: START
-The Avro component supports 4 options, which are listed below.
+The Avro component supports 10 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *protocol* (common) | Avro protocol to use |  | Protocol
+| *protocolClassName* (common) | Avro protocol to use defined by the FQN class name |  | String
+| *protocolLocation* (common) | Avro protocol location |  | String
+| *reflectionProtocol* (common) | If protocol object provided is reflection protocol. Should be used only with protocol parameter because for protocolClassName protocol type will be auto detected | false | boolean
+| *singleParameter* (common) | If true, consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message | false | boolean
+| *uriAuthority* (common) | Authority to use (username and password) |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-cw/src/generated/java/org/apache/camel/component/aws/cw/CwComponentConfigurer.java b/components/camel-aws-cw/src/generated/java/org/apache/camel/component/aws/cw/CwComponentConfigurer.java
index 228c0d4..c7fd076 100644
--- a/components/camel-aws-cw/src/generated/java/org/apache/camel/component/aws/cw/CwComponentConfigurer.java
+++ b/components/camel-aws-cw/src/generated/java/org/apache/camel/component/aws/cw/CwComponentConfigurer.java
@@ -11,17 +11,36 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class CwComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.cw.CwConfiguration getOrCreateConfiguration(CwComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.cw.CwConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         CwComponent target = (CwComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazoncwclient":
+        case "amazonCwClient": getOrCreateConfiguration(target).setAmazonCwClient(property(camelContext, com.amazonaws.services.cloudwatch.AmazonCloudWatch.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "name": getOrCreateConfiguration(target).setName(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "timestamp": getOrCreateConfiguration(target).setTimestamp(property(camelContext, java.util.Date.class, value)); return true;
+        case "unit": getOrCreateConfiguration(target).setUnit(property(camelContext, java.lang.String.class, value)); return true;
+        case "value": getOrCreateConfiguration(target).setValue(property(camelContext, java.lang.Double.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.cw.CwConfiguration.class, value)); return true;
diff --git a/components/camel-aws-cw/src/generated/resources/org/apache/camel/component/aws/cw/aws-cw.json b/components/camel-aws-cw/src/generated/resources/org/apache/camel/component/aws/cw/aws-cw.json
index e75ef34..edb1359 100644
--- a/components/camel-aws-cw/src/generated/resources/org/apache/camel/component/aws/cw/aws-cw.json
+++ b/components/camel-aws-cw/src/generated/resources/org/apache/camel/component/aws/cw/aws-cw.json
@@ -20,9 +20,17 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonCwClient": { "kind": "property", "displayName": "Amazon Cw Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.cloudwatch.AmazonCloudWatch", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.cw.CwConfiguration", "configurationField": "configuration", "description": "To use the AmazonCloudWatch as the client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "name": { "kind": "property", "displayName": "Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.cw.CwConfiguration", "configurationField": "configuration", "description": "The metric name" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.cw.CwConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the CW client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.cw.CwConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the CW client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.cw.CwConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the CW client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which CW client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "timestamp": { "kind": "property", "displayName": "Timestamp", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.util.Date", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.cw.CwConfiguration", "configurationField": "configuration", "description": "The metric timestamp" },
+    "unit": { "kind": "property", "displayName": "Unit", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.cw.CwConfiguration", "configurationField": "configuration", "description": "The metric unit" },
+    "value": { "kind": "property", "displayName": "Value", "group": "producer", "label": "", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.cw.CwConfiguration", "configurationField": "configuration", "description": "The metric value" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.cw.CwConfiguration", "deprecated": false, "secret": false, "description": "The AWS CW default configuration" }
   },
diff --git a/components/camel-aws-cw/src/main/docs/aws-cw-component.adoc b/components/camel-aws-cw/src/main/docs/aws-cw-component.adoc
index dd82b6b..c58d04c 100644
--- a/components/camel-aws-cw/src/main/docs/aws-cw-component.adoc
+++ b/components/camel-aws-cw/src/main/docs/aws-cw-component.adoc
@@ -33,7 +33,7 @@ The metrics will be created if they don't already exists. +
 
 
 // component options: START
-The AWS CloudWatch component supports 6 options, which are listed below.
+The AWS CloudWatch component supports 14 options, which are listed below.
 
 
 
@@ -41,9 +41,17 @@ The AWS CloudWatch component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonCwClient* (producer) | To use the AmazonCloudWatch as the client |  | AmazonCloudWatch
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *name* (producer) | The metric name |  | String
+| *proxyHost* (producer) | To define a proxy host when instantiating the CW client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the CW client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the CW client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which CW client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *timestamp* (producer) | The metric timestamp |  | Date
+| *unit* (producer) | The metric unit |  | String
+| *value* (producer) | The metric value |  | Double
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS CW default configuration |  | CwConfiguration
 |===
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurer.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurer.java
index 64e6c38..6cb4a41 100644
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurer.java
+++ b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurer.java
@@ -11,17 +11,43 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class DdbComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.ddb.DdbConfiguration getOrCreateConfiguration(DdbComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.ddb.DdbConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         DdbComponent target = (DdbComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonddbclient":
+        case "amazonDDBClient": getOrCreateConfiguration(target).setAmazonDDBClient(property(camelContext, com.amazonaws.services.dynamodbv2.AmazonDynamoDB.class, value)); return true;
+        case "consistentread":
+        case "consistentRead": getOrCreateConfiguration(target).setConsistentRead(property(camelContext, boolean.class, value)); return true;
+        case "keyattributename":
+        case "keyAttributeName": getOrCreateConfiguration(target).setKeyAttributeName(property(camelContext, java.lang.String.class, value)); return true;
+        case "keyattributetype":
+        case "keyAttributeType": getOrCreateConfiguration(target).setKeyAttributeType(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.ddb.DdbOperations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
+        case "readcapacity":
+        case "readCapacity": getOrCreateConfiguration(target).setReadCapacity(property(camelContext, java.lang.Long.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "writecapacity":
+        case "writeCapacity": getOrCreateConfiguration(target).setWriteCapacity(property(camelContext, java.lang.Long.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.ddb.DdbConfiguration.class, value)); return true;
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurer.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurer.java
index ac384cb..fef78f7 100644
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurer.java
+++ b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurer.java
@@ -11,17 +11,38 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class DdbStreamComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration getOrCreateConfiguration(DdbStreamComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         DdbStreamComponent target = (DdbStreamComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazondynamodbstreamsclient":
+        case "amazonDynamoDbStreamsClient": getOrCreateConfiguration(target).setAmazonDynamoDbStreamsClient(property(camelContext, com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "iteratortype":
+        case "iteratorType": getOrCreateConfiguration(target).setIteratorType(property(camelContext, com.amazonaws.services.dynamodbv2.model.ShardIteratorType.class, value)); return true;
+        case "maxresultsperrequest":
+        case "maxResultsPerRequest": getOrCreateConfiguration(target).setMaxResultsPerRequest(property(camelContext, int.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "sequencenumberprovider":
+        case "sequenceNumberProvider": getOrCreateConfiguration(target).setSequenceNumberProvider(property(camelContext, org.apache.camel.component.aws.ddbstream.SequenceNumberProvider.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration.class, value)); return true;
diff --git a/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddb/aws-ddb.json b/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddb/aws-ddb.json
index 588c948..9da8271 100644
--- a/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddb/aws-ddb.json
+++ b/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddb/aws-ddb.json
@@ -20,9 +20,19 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonDDBClient": { "kind": "property", "displayName": "Amazon DDBClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.AmazonDynamoDB", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To use the AmazonDynamoDB as the client" },
+    "consistentRead": { "kind": "property", "displayName": "Consistent Read", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Determines whether or not strong consistency should be enforced when data is read." },
+    "keyAttributeName": { "kind": "property", "displayName": "Key Attribute Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Attribute name when creating table" },
+    "keyAttributeType": { "kind": "property", "displayName": "Key Attribute Type", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Attribute type when creating table" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddb.DdbOperations", "enum": [ "BatchGetItems", "DeleteItem", "DeleteTable", "DescribeTable", "GetItem", "PutItem", "Query", "Scan", "UpdateItem", "UpdateTable" ], "deprecated": false, "secret": false, "defaultValue": "PutItem", "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "conf [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the DDB client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the DDB client. When using this parameter, the configuration will expect the capitalized name of the region [...]
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the DDB client" },
+    "readCapacity": { "kind": "property", "displayName": "Read Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The provisioned throughput to reserve for reading resources from your table" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which DDB client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "writeCapacity": { "kind": "property", "displayName": "Write Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The provisioned throughput to reserved for writing resources to your table" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddb.DdbConfiguration", "deprecated": false, "secret": false, "description": "The AWS DDB default configuration" }
   },
diff --git a/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddbstream/aws-ddbstream.json b/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddbstream/aws-ddbstream.json
index 4b2f5bf..46dbdbe 100644
--- a/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddbstream/aws-ddbstream.json
+++ b/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddbstream/aws-ddbstream.json
@@ -20,9 +20,16 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonDynamoDbStreamsClient": { "kind": "property", "displayName": "Amazon Dynamo Db Streams Client", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Amazon DynamoDB client to use for all requests for th [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "iteratorType": { "kind": "property", "displayName": "Iterator Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.model.ShardIteratorType", "enum": [ "TRIM_HORIZON", "LATEST", "AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER" ], "deprecated": false, "secret": false, "defaultValue": "LATEST", "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "confi [...]
+    "maxResultsPerRequest": { "kind": "property", "displayName": "Max Results Per Request", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Maximum number of records that will be fetched in each poll" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the DDBStreams client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the DDBStreams client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the DDBStreams client" },
     "region": { "kind": "property", "displayName": "Region", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "sequenceNumberProvider": { "kind": "property", "displayName": "Sequence Number Provider", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddbstream.SequenceNumberProvider", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Provider for the sequence number when using one of the tw [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "deprecated": false, "secret": false, "description": "The AWS DDB stream default configuration" }
   },
diff --git a/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc b/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc
index dae3e81..6e1939c 100644
--- a/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc
+++ b/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS DynamoDB component supports 6 options, which are listed below.
+The AWS DynamoDB component supports 16 options, which are listed below.
 
 
 
@@ -38,9 +38,19 @@ The AWS DynamoDB component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonDDBClient* (producer) | To use the AmazonDynamoDB as the client |  | AmazonDynamoDB
+| *consistentRead* (producer) | Determines whether or not strong consistency should be enforced when data is read. | false | boolean
+| *keyAttributeName* (producer) | Attribute name when creating table |  | String
+| *keyAttributeType* (producer) | Attribute type when creating table |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | What operation to perform. The value can be one of: BatchGetItems, DeleteItem, DeleteTable, DescribeTable, GetItem, PutItem, Query, Scan, UpdateItem, UpdateTable | PutItem | DdbOperations
+| *proxyHost* (producer) | To define a proxy host when instantiating the DDB client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the DDB client. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1) You'll need to use the name Regions.EU_WEST_1.name() |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the DDB client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *readCapacity* (producer) | The provisioned throughput to reserve for reading resources from your table |  | Long
 | *region* (producer) | The region in which DDB client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *writeCapacity* (producer) | The provisioned throughput to reserved for writing resources to your table |  | Long
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS DDB default configuration |  | DdbConfiguration
 |===
diff --git a/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc b/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc
index 12eaa24..21741f3 100644
--- a/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc
+++ b/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc
@@ -31,7 +31,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS DynamoDB Streams component supports 6 options, which are listed below.
+The AWS DynamoDB Streams component supports 13 options, which are listed below.
 
 
 
@@ -39,9 +39,16 @@ The AWS DynamoDB Streams component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (consumer) | Amazon AWS Access Key |  | String
+| *amazonDynamoDbStreamsClient* (consumer) | Amazon DynamoDB client to use for all requests for this endpoint |  | AmazonDynamoDBStreams
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *iteratorType* (consumer) | Defines where in the DynaboDB stream to start getting records. Note that using TRIM_HORIZON can cause a significant delay before the stream has caught up to real-time. if {AT,AFTER}_SEQUENCE_NUMBER are used, then a sequenceNumberProvider MUST be supplied. The value can be one of: TRIM_HORIZON, LATEST, AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER | LATEST | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll |  | int
+| *proxyHost* (consumer) | To define a proxy host when instantiating the DDBStreams client |  | String
+| *proxyPort* (consumer) | To define a proxy port when instantiating the DDBStreams client |  | Integer
+| *proxyProtocol* (consumer) | To define a proxy protocol when instantiating the DDBStreams client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (consumer) | Amazon AWS Region |  | String
 | *secretKey* (consumer) | Amazon AWS Secret Key |  | String
+| *sequenceNumberProvider* (consumer) | Provider for the sequence number when using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER iterator types. Can be a registry reference or a literal sequence number. |  | SequenceNumberProvider
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS DDB stream default configuration |  | DdbStreamConfiguration
 |===
diff --git a/components/camel-aws-ec2/src/generated/java/org/apache/camel/component/aws/ec2/EC2ComponentConfigurer.java b/components/camel-aws-ec2/src/generated/java/org/apache/camel/component/aws/ec2/EC2ComponentConfigurer.java
index 64e9c5b..ffd7a3a 100644
--- a/components/camel-aws-ec2/src/generated/java/org/apache/camel/component/aws/ec2/EC2ComponentConfigurer.java
+++ b/components/camel-aws-ec2/src/generated/java/org/apache/camel/component/aws/ec2/EC2ComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class EC2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.ec2.EC2Configuration getOrCreateConfiguration(EC2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.ec2.EC2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         EC2Component target = (EC2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonec2client":
+        case "amazonEc2Client": getOrCreateConfiguration(target).setAmazonEc2Client(property(camelContext, com.amazonaws.services.ec2.AmazonEC2.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.ec2.EC2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws-ec2/src/generated/resources/org/apache/camel/component/aws/ec2/aws-ec2.json b/components/camel-aws-ec2/src/generated/resources/org/apache/camel/component/aws/ec2/aws-ec2.json
index 78daf5a..6bcbd8b 100644
--- a/components/camel-aws-ec2/src/generated/resources/org/apache/camel/component/aws/ec2/aws-ec2.json
+++ b/components/camel-aws-ec2/src/generated/resources/org/apache/camel/component/aws/ec2/aws-ec2.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonEc2Client": { "kind": "property", "displayName": "Amazon Ec2 Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.ec2.AmazonEC2", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ec2.EC2Configuration", "configurationField": "configuration", "description": "To use a existing configured AmazonEC2Client as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.ec2.EC2Operations", "enum": [ "createAndRunInstances", "startInstances", "stopInstances", "terminateInstances", "describeInstances", "describeInstancesStatus", "rebootInstances", "monitorInstances", "unmonitorInstances", "createTags", "deleteTags" ], "deprecated": false, "deprecationNote": "", "secret" [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ec2.EC2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the EC2 client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ec2.EC2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the EC2 client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ec2.EC2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the EC2 client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which EC2 client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws-ec2/src/main/docs/aws-ec2-component.adoc b/components/camel-aws-ec2/src/main/docs/aws-ec2-component.adoc
index de9ff9f..fe1c96b 100644
--- a/components/camel-aws-ec2/src/main/docs/aws-ec2-component.adoc
+++ b/components/camel-aws-ec2/src/main/docs/aws-ec2-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS EC2 component supports 6 options, which are listed below.
+The AWS EC2 component supports 11 options, which are listed below.
 
 
 
@@ -38,7 +38,12 @@ The AWS EC2 component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonEc2Client* (producer) | To use a existing configured AmazonEC2Client as client |  | AmazonEC2
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags. The value can be one of: createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags, deleteTag [...]
+| *proxyHost* (producer) | To define a proxy host when instantiating the EC2 client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the EC2 client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the EC2 client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which EC2 client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-ecs/src/generated/java/org/apache/camel/component/aws/ecs/ECSComponentConfigurer.java b/components/camel-aws-ecs/src/generated/java/org/apache/camel/component/aws/ecs/ECSComponentConfigurer.java
index 7e60411..22ca688 100644
--- a/components/camel-aws-ecs/src/generated/java/org/apache/camel/component/aws/ecs/ECSComponentConfigurer.java
+++ b/components/camel-aws-ecs/src/generated/java/org/apache/camel/component/aws/ecs/ECSComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class ECSComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.ecs.ECSConfiguration getOrCreateConfiguration(ECSComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.ecs.ECSConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         ECSComponent target = (ECSComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "ecsclient":
+        case "ecsClient": getOrCreateConfiguration(target).setEcsClient(property(camelContext, com.amazonaws.services.ecs.AmazonECS.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.ecs.ECSOperations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws-ecs/src/generated/resources/org/apache/camel/component/aws/ecs/aws-ecs.json b/components/camel-aws-ecs/src/generated/resources/org/apache/camel/component/aws/ecs/aws-ecs.json
index 4142c55..f717f20 100644
--- a/components/camel-aws-ecs/src/generated/resources/org/apache/camel/component/aws/ecs/aws-ecs.json
+++ b/components/camel-aws-ecs/src/generated/resources/org/apache/camel/component/aws/ecs/aws-ecs.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "ecsClient": { "kind": "property", "displayName": "Ecs Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.ecs.AmazonECS", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ecs.ECSConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS ECS as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.ecs.ECSOperations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws.ecs.ECSConfiguration", "configurationField": "configuration", "description": "The opera [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ecs.ECSConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the ECS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ecs.ECSConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the ECS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ecs.ECSConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the ECS client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which ECS client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws-ecs/src/main/docs/aws-ecs-component.adoc b/components/camel-aws-ecs/src/main/docs/aws-ecs-component.adoc
index 9aa5b0e..98d06f9 100644
--- a/components/camel-aws-ecs/src/main/docs/aws-ecs-component.adoc
+++ b/components/camel-aws-ecs/src/main/docs/aws-ecs-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS ECS component supports 6 options, which are listed below.
+The AWS ECS component supports 11 options, which are listed below.
 
 
 
@@ -38,7 +38,12 @@ The AWS ECS component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *ecsClient* (producer) | To use a existing configured AWS ECS as client |  | AmazonECS
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listClusters, describeCluster, createCluster, deleteCluster |  | ECSOperations
+| *proxyHost* (producer) | To define a proxy host when instantiating the ECS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the ECS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the ECS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which ECS client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-eks/src/generated/java/org/apache/camel/component/aws/eks/EKSComponentConfigurer.java b/components/camel-aws-eks/src/generated/java/org/apache/camel/component/aws/eks/EKSComponentConfigurer.java
index 0363ad7..4d52d2d 100644
--- a/components/camel-aws-eks/src/generated/java/org/apache/camel/component/aws/eks/EKSComponentConfigurer.java
+++ b/components/camel-aws-eks/src/generated/java/org/apache/camel/component/aws/eks/EKSComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class EKSComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.eks.EKSConfiguration getOrCreateConfiguration(EKSComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.eks.EKSConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         EKSComponent target = (EKSComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "eksclient":
+        case "eksClient": getOrCreateConfiguration(target).setEksClient(property(camelContext, com.amazonaws.services.eks.AmazonEKS.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.eks.EKSOperations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws-eks/src/generated/resources/org/apache/camel/component/aws/eks/aws-eks.json b/components/camel-aws-eks/src/generated/resources/org/apache/camel/component/aws/eks/aws-eks.json
index 6611a49..3e67897 100644
--- a/components/camel-aws-eks/src/generated/resources/org/apache/camel/component/aws/eks/aws-eks.json
+++ b/components/camel-aws-eks/src/generated/resources/org/apache/camel/component/aws/eks/aws-eks.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "eksClient": { "kind": "property", "displayName": "Eks Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.eks.AmazonEKS", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.eks.EKSConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS EKS as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.eks.EKSOperations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws.eks.EKSConfiguration", "configurationField": "configuration", "description": "The opera [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.eks.EKSConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the EKS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.eks.EKSConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the EKS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.eks.EKSConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the EKS client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which EKS client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws-eks/src/main/docs/aws-eks-component.adoc b/components/camel-aws-eks/src/main/docs/aws-eks-component.adoc
index 2666935..a5a0e35 100644
--- a/components/camel-aws-eks/src/main/docs/aws-eks-component.adoc
+++ b/components/camel-aws-eks/src/main/docs/aws-eks-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS EKS component supports 6 options, which are listed below.
+The AWS EKS component supports 11 options, which are listed below.
 
 
 
@@ -38,7 +38,12 @@ The AWS EKS component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *eksClient* (producer) | To use a existing configured AWS EKS as client |  | AmazonEKS
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listClusters, describeCluster, createCluster, deleteCluster |  | EKSOperations
+| *proxyHost* (producer) | To define a proxy host when instantiating the EKS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the EKS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the EKS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which EKS client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMComponentConfigurer.java b/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMComponentConfigurer.java
index b2ac224..50705a0 100644
--- a/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMComponentConfigurer.java
+++ b/components/camel-aws-iam/src/generated/java/org/apache/camel/component/aws/iam/IAMComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class IAMComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.iam.IAMConfiguration getOrCreateConfiguration(IAMComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.iam.IAMConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         IAMComponent target = (IAMComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "iamclient":
+        case "iamClient": getOrCreateConfiguration(target).setIamClient(property(camelContext, com.amazonaws.services.identitymanagement.AmazonIdentityManagement.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.iam.IAMOperations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws-iam/src/generated/resources/org/apache/camel/component/aws/iam/aws-iam.json b/components/camel-aws-iam/src/generated/resources/org/apache/camel/component/aws/iam/aws-iam.json
index 9f35d05..a683a82 100644
--- a/components/camel-aws-iam/src/generated/resources/org/apache/camel/component/aws/iam/aws-iam.json
+++ b/components/camel-aws-iam/src/generated/resources/org/apache/camel/component/aws/iam/aws-iam.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "iamClient": { "kind": "property", "displayName": "Iam Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.identitymanagement.AmazonIdentityManagement", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS IAM as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.iam.IAMOperations", "enum": [ "listAccessKeys", "createUser", "deleteUser", "getUser", "listUsers", "createAccessKey", "deleteAccessKey", "updateAccessKey", "createGroup", "deleteGroup", "listGroups", "addUserToGroup", "removeUserFromGroup" ], "deprecated": false, "deprecationNote": "", "secret": false [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the IAM client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the IAM client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.iam.IAMConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the IAM client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which IAM client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc b/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc
index 5e652c4..222ddaa 100644
--- a/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc
+++ b/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS IAM component supports 6 options, which are listed below.
+The AWS IAM component supports 11 options, which are listed below.
 
 
 
@@ -38,7 +38,12 @@ The AWS IAM component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *iamClient* (producer) | To use a existing configured AWS IAM as client |  | AmazonIdentityManagement
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listAccessKeys, createUser, deleteUser, getUser, listUsers, createAccessKey, deleteAccessKey, updateAccessKey, createGroup, deleteGroup, listGroups, addUserToGroup, removeUserFromGroup |  | IAMOperations
+| *proxyHost* (producer) | To define a proxy host when instantiating the IAM client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the IAM client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the IAM client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which IAM client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-kinesis/src/generated/java/org/apache/camel/component/aws/firehose/KinesisFirehoseComponentConfigurer.java b/components/camel-aws-kinesis/src/generated/java/org/apache/camel/component/aws/firehose/KinesisFirehoseComponentConfigurer.java
index d92133c..e939368 100644
--- a/components/camel-aws-kinesis/src/generated/java/org/apache/camel/component/aws/firehose/KinesisFirehoseComponentConfigurer.java
+++ b/components/camel-aws-kinesis/src/generated/java/org/apache/camel/component/aws/firehose/KinesisFirehoseComponentConfigurer.java
@@ -11,14 +11,29 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class KinesisFirehoseComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration getOrCreateConfiguration(KinesisFirehoseComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         KinesisFirehoseComponent target = (KinesisFirehoseComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonkinesisfirehoseclient":
+        case "amazonKinesisFirehoseClient": getOrCreateConfiguration(target).setAmazonKinesisFirehoseClient(property(camelContext, com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws-kinesis/src/generated/java/org/apache/camel/component/aws/kinesis/KinesisComponentConfigurer.java b/components/camel-aws-kinesis/src/generated/java/org/apache/camel/component/aws/kinesis/KinesisComponentConfigurer.java
index 57a43b8..ad401ac 100644
--- a/components/camel-aws-kinesis/src/generated/java/org/apache/camel/component/aws/kinesis/KinesisComponentConfigurer.java
+++ b/components/camel-aws-kinesis/src/generated/java/org/apache/camel/component/aws/kinesis/KinesisComponentConfigurer.java
@@ -11,17 +11,42 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class KinesisComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.kinesis.KinesisConfiguration getOrCreateConfiguration(KinesisComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.kinesis.KinesisConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         KinesisComponent target = (KinesisComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonkinesisclient":
+        case "amazonKinesisClient": getOrCreateConfiguration(target).setAmazonKinesisClient(property(camelContext, com.amazonaws.services.kinesis.AmazonKinesis.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "iteratortype":
+        case "iteratorType": getOrCreateConfiguration(target).setIteratorType(property(camelContext, com.amazonaws.services.kinesis.model.ShardIteratorType.class, value)); return true;
+        case "maxresultsperrequest":
+        case "maxResultsPerRequest": getOrCreateConfiguration(target).setMaxResultsPerRequest(property(camelContext, int.class, value)); return true;
+        case "sequencenumber":
+        case "sequenceNumber": getOrCreateConfiguration(target).setSequenceNumber(property(camelContext, java.lang.String.class, value)); return true;
+        case "shardclosed":
+        case "shardClosed": getOrCreateConfiguration(target).setShardClosed(property(camelContext, org.apache.camel.component.aws.kinesis.KinesisShardClosedStrategyEnum.class, value)); return true;
+        case "shardid":
+        case "shardId": getOrCreateConfiguration(target).setShardId(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
diff --git a/components/camel-aws-kinesis/src/generated/resources/org/apache/camel/component/aws/firehose/aws-kinesis-firehose.json b/components/camel-aws-kinesis/src/generated/resources/org/apache/camel/component/aws/firehose/aws-kinesis-firehose.json
index 7261b5b..eb3d1bc 100644
--- a/components/camel-aws-kinesis/src/generated/resources/org/apache/camel/component/aws/firehose/aws-kinesis-firehose.json
+++ b/components/camel-aws-kinesis/src/generated/resources/org/apache/camel/component/aws/firehose/aws-kinesis-firehose.json
@@ -20,7 +20,11 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonKinesisFirehoseClient": { "kind": "property", "displayName": "Amazon Kinesis Firehose Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration", "configurationField": "configuration", "description": "Amazon Kinesis Firehose client to use for all reques [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Kinesis Firehose client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Kinesis Firehose client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the Kinesis Firehose [...]
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws-kinesis/src/generated/resources/org/apache/camel/component/aws/kinesis/aws-kinesis.json b/components/camel-aws-kinesis/src/generated/resources/org/apache/camel/component/aws/kinesis/aws-kinesis.json
index c2359b1..d5d36c5 100644
--- a/components/camel-aws-kinesis/src/generated/resources/org/apache/camel/component/aws/kinesis/aws-kinesis.json
+++ b/components/camel-aws-kinesis/src/generated/resources/org/apache/camel/component/aws/kinesis/aws-kinesis.json
@@ -20,9 +20,18 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonKinesisClient": { "kind": "property", "displayName": "Amazon Kinesis Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.kinesis.AmazonKinesis", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configurationField": "configuration", "description": "Amazon Kinesis client to use for all requests for this endpoint" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Kinesis client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Kinesis client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the Kinesis client" },
     "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "iteratorType": { "kind": "property", "displayName": "Iterator Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.amazonaws.services.kinesis.model.ShardIteratorType", "enum": [ "AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER", "TRIM_HORIZON", "LATEST", "AT_TIMESTAMP" ], "deprecated": false, "secret": false, "defaultValue": "TRIM_HORIZON", "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configuratio [...]
+    "maxResultsPerRequest": { "kind": "property", "displayName": "Max Results Per Request", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configurationField": "configuration", "description": "Maximum number of records that will be fetched in each poll" },
+    "sequenceNumber": { "kind": "property", "displayName": "Sequence Number", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configurationField": "configuration", "description": "The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER" },
+    "shardClosed": { "kind": "property", "displayName": "Shard Closed", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.kinesis.KinesisShardClosedStrategyEnum", "enum": [ "ignore", "fail", "silent" ], "deprecated": false, "secret": false, "defaultValue": "ignore", "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configurationField": "configuration", "description": "Define what  [...]
+    "shardId": { "kind": "property", "displayName": "Shard Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "configurationField": "configuration", "description": "Defines which shardId in the Kinesis stream to get records from" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.kinesis.KinesisConfiguration", "deprecated": false, "secret": false, "description": "The AWS S3 default configuration" }
diff --git a/components/camel-aws-kinesis/src/main/docs/aws-kinesis-component.adoc b/components/camel-aws-kinesis/src/main/docs/aws-kinesis-component.adoc
index b4b246a..8437f34 100644
--- a/components/camel-aws-kinesis/src/main/docs/aws-kinesis-component.adoc
+++ b/components/camel-aws-kinesis/src/main/docs/aws-kinesis-component.adoc
@@ -31,7 +31,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS Kinesis component supports 7 options, which are listed below.
+The AWS Kinesis component supports 16 options, which are listed below.
 
 
 
@@ -39,9 +39,18 @@ The AWS Kinesis component supports 7 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (common) | Amazon AWS Access Key |  | String
+| *amazonKinesisClient* (common) | Amazon Kinesis client to use for all requests for this endpoint |  | AmazonKinesis
+| *proxyHost* (common) | To define a proxy host when instantiating the Kinesis client |  | String
+| *proxyPort* (common) | To define a proxy port when instantiating the Kinesis client |  | Integer
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the Kinesis client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (common) | Amazon AWS Region |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *iteratorType* (consumer) | Defines where in the Kinesis stream to start getting records. The value can be one of: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST, AT_TIMESTAMP | TRIM_HORIZON | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll | 1 | int
+| *sequenceNumber* (consumer) | The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER |  | String
+| *shardClosed* (consumer) | Define what will be the behavior in case of shard closed. Possible value are ignore, silent and fail. In case of ignore a message will be logged and the consumer will restart from the beginning,in case of silent there will be no logging and the consumer will start from the beginning,in case of fail a ReachedClosedStateException will be raised. The value can be one of: ignore, fail, silent | ignore | KinesisShardClosedStrategyEnum
+| *shardId* (consumer) | Defines which shardId in the Kinesis stream to get records from |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS S3 default configuration |  | KinesisConfiguration
diff --git a/components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc b/components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc
index 1e48f96..8918e66 100644
--- a/components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc
+++ b/components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc
@@ -30,7 +30,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS Kinesis Firehose component supports 6 options, which are listed below.
+The AWS Kinesis Firehose component supports 10 options, which are listed below.
 
 
 
@@ -38,7 +38,11 @@ The AWS Kinesis Firehose component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonKinesisFirehoseClient* (producer) | Amazon Kinesis Firehose client to use for all requests for this endpoint |  | AmazonKinesisFirehose
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *proxyHost* (producer) | To define a proxy host when instantiating the Kinesis Firehose client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Kinesis Firehose client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Kinesis Firehose client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | Amazon AWS Region |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-kms/src/generated/java/org/apache/camel/component/aws/kms/KMSComponentConfigurer.java b/components/camel-aws-kms/src/generated/java/org/apache/camel/component/aws/kms/KMSComponentConfigurer.java
index b006347..dc1f350 100644
--- a/components/camel-aws-kms/src/generated/java/org/apache/camel/component/aws/kms/KMSComponentConfigurer.java
+++ b/components/camel-aws-kms/src/generated/java/org/apache/camel/component/aws/kms/KMSComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class KMSComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.kms.KMSConfiguration getOrCreateConfiguration(KMSComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.kms.KMSConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         KMSComponent target = (KMSComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "kmsclient":
+        case "kmsClient": getOrCreateConfiguration(target).setKmsClient(property(camelContext, com.amazonaws.services.kms.AWSKMS.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.kms.KMSOperations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws-kms/src/generated/resources/org/apache/camel/component/aws/kms/aws-kms.json b/components/camel-aws-kms/src/generated/resources/org/apache/camel/component/aws/kms/aws-kms.json
index 1a69b89..9a768f5 100644
--- a/components/camel-aws-kms/src/generated/resources/org/apache/camel/component/aws/kms/aws-kms.json
+++ b/components/camel-aws-kms/src/generated/resources/org/apache/camel/component/aws/kms/aws-kms.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "kmsClient": { "kind": "property", "displayName": "Kms Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.kms.AWSKMS", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.kms.KMSConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS KMS as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.kms.KMSOperations", "enum": [ "listKeys", "createKey", "disableKey", "scheduleKeyDeletion", "describeKey", "enableKey" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws.kms.KMSConfiguration", "configurationField": "configuration", "des [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.kms.KMSConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the KMS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.kms.KMSConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the KMS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.kms.KMSConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the KMS client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which KMS client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws-kms/src/main/docs/aws-kms-component.adoc b/components/camel-aws-kms/src/main/docs/aws-kms-component.adoc
index d41adf9..da92e0e 100644
--- a/components/camel-aws-kms/src/main/docs/aws-kms-component.adoc
+++ b/components/camel-aws-kms/src/main/docs/aws-kms-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS KMS component supports 6 options, which are listed below.
+The AWS KMS component supports 11 options, which are listed below.
 
 
 
@@ -38,7 +38,12 @@ The AWS KMS component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *kmsClient* (producer) | To use a existing configured AWS KMS as client |  | AWSKMS
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listKeys, createKey, disableKey, scheduleKeyDeletion, describeKey, enableKey |  | KMSOperations
+| *proxyHost* (producer) | To define a proxy host when instantiating the KMS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the KMS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the KMS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which KMS client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-lambda/src/generated/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurer.java b/components/camel-aws-lambda/src/generated/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurer.java
index 42501f5..03bc4c7 100644
--- a/components/camel-aws-lambda/src/generated/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurer.java
+++ b/components/camel-aws-lambda/src/generated/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurer.java
@@ -11,20 +11,36 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class LambdaComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.lambda.LambdaConfiguration getOrCreateConfiguration(LambdaComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.lambda.LambdaConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         LambdaComponent target = (LambdaComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.lambda.LambdaConfiguration.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
-        case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
-        case "secretkey":
-        case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.lambda.LambdaOperations.class, value)); return true;
+        case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true;
+        case "awslambdaclient":
+        case "awsLambdaClient": getOrCreateConfiguration(target).setAwsLambdaClient(property(camelContext, com.amazonaws.services.lambda.AWSLambda.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
-        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.lambda.LambdaConfiguration.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
+        case "accesskey":
+        case "accessKey": getOrCreateConfiguration(target).setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "secretkey":
+        case "secretKey": getOrCreateConfiguration(target).setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-aws-lambda/src/generated/resources/org/apache/camel/component/aws/lambda/aws-lambda.json b/components/camel-aws-lambda/src/generated/resources/org/apache/camel/component/aws/lambda/aws-lambda.json
index 77452fa..cdd2876 100644
--- a/components/camel-aws-lambda/src/generated/resources/org/apache/camel/component/aws/lambda/aws-lambda.json
+++ b/components/camel-aws-lambda/src/generated/resources/org/apache/camel/component/aws/lambda/aws-lambda.json
@@ -19,12 +19,17 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "deprecated": false, "secret": false, "description": "The AWS Lambda default configuration" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region" },
-    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.lambda.LambdaOperations", "enum": [ "listFunctions", "getFunction", "createAlias", "deleteAlias", "getAlias", "listAliases", "createFunction", "deleteFunction", "invokeFunction", "updateFunction", "createEventSourceMapping", "deleteEventSourceMapping", "listEventSourceMapping", "listTags", "tagResource", "unt [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "configurationField": "configuration", "description": "Amazon AWS Region. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1) You'll ne [...]
+    "awsLambdaClient": { "kind": "property", "displayName": "Aws Lambda Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.amazonaws.services.lambda.AWSLambda", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "configurationField": "configuration", "description": "To use a existing configured AwsLambdaClient as client" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "deprecated": false, "secret": false, "description": "The AWS Lambda default configuration" }
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Lambda client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Lambda client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the Lambda client" },
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.lambda.LambdaConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
   },
   "properties": {
     "function": { "kind": "path", "displayName": "Function", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Name of the Lambda function." },
diff --git a/components/camel-aws-lambda/src/main/docs/aws-lambda-component.adoc b/components/camel-aws-lambda/src/main/docs/aws-lambda-component.adoc
index 8fe3cac..176e971 100644
--- a/components/camel-aws-lambda/src/main/docs/aws-lambda-component.adoc
+++ b/components/camel-aws-lambda/src/main/docs/aws-lambda-component.adoc
@@ -36,19 +36,24 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS Lambda component supports 6 options, which are listed below.
+The AWS Lambda component supports 11 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *configuration* (producer) | The AWS Lambda default configuration |  | LambdaConfiguration
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *region* (producer) | Amazon AWS Region |  | String
-| *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *operation* (producer) | The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction. The value can be one of: listFunctions, getFunction, createAlias, deleteAlias, getAlias, listAliases, createFunction, deleteFunction, invokeFunction, updateFunction, createEventSourceMapping, deleteEventSourceMapping, listEventSourceMapping, listTags, tagResource, untagResource, publishVersion, listVersions | invokeFunction | LambdaOperations
+| *region* (producer) | Amazon AWS Region. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1) You'll need to use the name Regions.EU_WEST_1.name() |  | String
+| *awsLambdaClient* (advanced) | To use a existing configured AwsLambdaClient as client |  | AWSLambda
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *configuration* (advanced) | The AWS Lambda default configuration |  | LambdaConfiguration
+| *proxyHost* (proxy) | To define a proxy host when instantiating the Lambda client |  | String
+| *proxyPort* (proxy) | To define a proxy port when instantiating the Lambda client |  | Integer
+| *proxyProtocol* (proxy) | To define a proxy protocol when instantiating the Lambda client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
 |===
 // component options: END
 
diff --git a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
index 4d8d460..e66e140 100644
--- a/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
+++ b/components/camel-aws-lambda/src/main/java/org/apache/camel/component/aws/lambda/LambdaComponent.java
@@ -30,13 +30,7 @@ import org.apache.camel.support.DefaultComponent;
 public class LambdaComponent extends DefaultComponent {
 
     @Metadata
-    private String accessKey;
-    @Metadata
-    private String secretKey;
-    @Metadata
-    private String region;
-    @Metadata(label = "advanced")    
-    private LambdaConfiguration configuration;
+    private LambdaConfiguration configuration = new LambdaConfiguration();
     
     public LambdaComponent() {
         this(null);
@@ -52,9 +46,6 @@ public class LambdaComponent extends DefaultComponent {
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
         LambdaConfiguration configuration = this.configuration != null ? this.configuration.copy() : new LambdaConfiguration();
         LambdaEndpoint endpoint = new LambdaEndpoint(uri, this, configuration);
-        endpoint.getConfiguration().setAccessKey(accessKey);
-        endpoint.getConfiguration().setSecretKey(secretKey);
-        endpoint.getConfiguration().setRegion(region);
         setProperties(endpoint, parameters);
         endpoint.setFunction(remaining);
         checkAndSetRegistryClient(configuration);
@@ -76,39 +67,6 @@ public class LambdaComponent extends DefaultComponent {
         this.configuration = configuration;
     }
 
-    public String getAccessKey() {
-        return accessKey;
-    }
-
-    /**
-     * Amazon AWS Access Key
-     */
-    public void setAccessKey(String accessKey) {
-        this.accessKey = accessKey;
-    }
-
-    public String getSecretKey() {
-        return secretKey;
-    }
-
-    /**
-     * Amazon AWS Secret Key
-     */
-    public void setSecretKey(String secretKey) {
-        this.secretKey = secretKey;
-    }
-
-    public String getRegion() {
-        return region;
-    }
-
-    /**
-     * Amazon AWS Region
-     */
-    public void setRegion(String region) {
-        this.region = region;
-    }
-    
     private void checkAndSetRegistryClient(LambdaConfiguration configuration) {
         Set<AWSLambda> clients = getCamelContext().getRegistry().findByType(AWSLambda.class);
         if (clients.size() == 1) {
diff --git a/components/camel-aws-lambda/src/test/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurationTest.java b/components/camel-aws-lambda/src/test/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurationTest.java
index ff89e36..d903173 100644
--- a/components/camel-aws-lambda/src/test/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurationTest.java
+++ b/components/camel-aws-lambda/src/test/java/org/apache/camel/component/aws/lambda/LambdaComponentConfigurationTest.java
@@ -74,8 +74,8 @@ public class LambdaComponentConfigurationTest extends CamelTestSupport {
     @Test
     public void createEndpointWithComponentElements() throws Exception {
         LambdaComponent component = context.getComponent("aws-lambda", LambdaComponent.class);
-        component.setAccessKey("XXX");
-        component.setSecretKey("YYY");
+        component.getConfiguration().setAccessKey("XXX");
+        component.getConfiguration().setSecretKey("YYY");
         LambdaEndpoint endpoint = (LambdaEndpoint)component.createEndpoint("aws-lambda://myFunction");
         
         assertEquals("myFunction", endpoint.getFunction());
@@ -86,9 +86,9 @@ public class LambdaComponentConfigurationTest extends CamelTestSupport {
     @Test
     public void createEndpointWithComponentAndEndpointElements() throws Exception {
         LambdaComponent component = context.getComponent("aws-lambda", LambdaComponent.class);
-        component.setAccessKey("XXX");
-        component.setSecretKey("YYY");
-        component.setRegion(Regions.US_WEST_1.toString());
+        component.getConfiguration().setAccessKey("XXX");
+        component.getConfiguration().setSecretKey("YYY");
+        component.getConfiguration().setRegion(Regions.US_WEST_1.toString());
         LambdaEndpoint endpoint = (LambdaEndpoint)component.createEndpoint("aws-lambda://myFunction?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1");
         
         assertEquals("myFunction", endpoint.getFunction());
@@ -100,9 +100,9 @@ public class LambdaComponentConfigurationTest extends CamelTestSupport {
     @Test
     public void createEndpointWithComponentEndpointElementsAndProxy() throws Exception {
         LambdaComponent component = context.getComponent("aws-lambda", LambdaComponent.class);
-        component.setAccessKey("XXX");
-        component.setSecretKey("YYY");
-        component.setRegion(Regions.US_WEST_1.toString());
+        component.getConfiguration().setAccessKey("XXX");
+        component.getConfiguration().setSecretKey("YYY");
+        component.getConfiguration().setRegion(Regions.US_WEST_1.toString());
         LambdaEndpoint endpoint = (LambdaEndpoint)component.createEndpoint("aws-lambda://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1&proxyHost=localhost&proxyPort=9000&proxyProtocol=HTTP");
         
         assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
diff --git a/components/camel-aws-mq/src/generated/java/org/apache/camel/component/aws/mq/MQComponentConfigurer.java b/components/camel-aws-mq/src/generated/java/org/apache/camel/component/aws/mq/MQComponentConfigurer.java
index 2960234..9df4298 100644
--- a/components/camel-aws-mq/src/generated/java/org/apache/camel/component/aws/mq/MQComponentConfigurer.java
+++ b/components/camel-aws-mq/src/generated/java/org/apache/camel/component/aws/mq/MQComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class MQComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.mq.MQConfiguration getOrCreateConfiguration(MQComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.mq.MQConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         MQComponent target = (MQComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonmqclient":
+        case "amazonMqClient": getOrCreateConfiguration(target).setAmazonMqClient(property(camelContext, com.amazonaws.services.mq.AmazonMQ.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.mq.MQOperations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws-mq/src/generated/resources/org/apache/camel/component/aws/mq/aws-mq.json b/components/camel-aws-mq/src/generated/resources/org/apache/camel/component/aws/mq/aws-mq.json
index c92a64b..b4c1446 100644
--- a/components/camel-aws-mq/src/generated/resources/org/apache/camel/component/aws/mq/aws-mq.json
+++ b/components/camel-aws-mq/src/generated/resources/org/apache/camel/component/aws/mq/aws-mq.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonMqClient": { "kind": "property", "displayName": "Amazon Mq Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.mq.AmazonMQ", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.mq.MQConfiguration", "configurationField": "configuration", "description": "To use a existing configured AmazonMQClient as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.mq.MQOperations", "enum": [ "listBrokers", "createBroker", "deleteBroker", "rebootBroker", "updateBroker", "describeBroker" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws.mq.MQConfiguration", "configurationField": "configuration", " [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.mq.MQConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the MQ client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.mq.MQConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the MQ client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.mq.MQConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the MQ client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which MQ client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws-mq/src/main/docs/aws-mq-component.adoc b/components/camel-aws-mq/src/main/docs/aws-mq-component.adoc
index a58f0d8..ef3edfa 100644
--- a/components/camel-aws-mq/src/main/docs/aws-mq-component.adoc
+++ b/components/camel-aws-mq/src/main/docs/aws-mq-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS MQ component supports 6 options, which are listed below.
+The AWS MQ component supports 11 options, which are listed below.
 
 
 
@@ -38,7 +38,12 @@ The AWS MQ component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonMqClient* (producer) | To use a existing configured AmazonMQClient as client |  | AmazonMQ
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. It can be listBrokers,createBroker,deleteBroker. The value can be one of: listBrokers, createBroker, deleteBroker, rebootBroker, updateBroker, describeBroker |  | MQOperations
+| *proxyHost* (producer) | To define a proxy host when instantiating the MQ client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the MQ client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the MQ client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which MQ client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-msk/src/generated/java/org/apache/camel/component/aws/msk/MSKComponentConfigurer.java b/components/camel-aws-msk/src/generated/java/org/apache/camel/component/aws/msk/MSKComponentConfigurer.java
index 6f86a2e..8baba9a 100644
--- a/components/camel-aws-msk/src/generated/java/org/apache/camel/component/aws/msk/MSKComponentConfigurer.java
+++ b/components/camel-aws-msk/src/generated/java/org/apache/camel/component/aws/msk/MSKComponentConfigurer.java
@@ -11,6 +11,13 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class MSKComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.msk.MSKConfiguration getOrCreateConfiguration(MSKComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.msk.MSKConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         MSKComponent target = (MSKComponent) obj;
@@ -19,6 +26,15 @@ public class MSKComponentConfigurer extends PropertyConfigurerSupport implements
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "mskclient":
+        case "mskClient": getOrCreateConfiguration(target).setMskClient(property(camelContext, com.amazonaws.services.kafka.AWSKafka.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.msk.MSKOperations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws-msk/src/generated/resources/org/apache/camel/component/aws/msk/aws-msk.json b/components/camel-aws-msk/src/generated/resources/org/apache/camel/component/aws/msk/aws-msk.json
index eb4a31d..6f32169 100644
--- a/components/camel-aws-msk/src/generated/resources/org/apache/camel/component/aws/msk/aws-msk.json
+++ b/components/camel-aws-msk/src/generated/resources/org/apache/camel/component/aws/msk/aws-msk.json
@@ -21,6 +21,11 @@
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "mskClient": { "kind": "property", "displayName": "Msk Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.kafka.AWSKafka", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.msk.MSKConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS MSK as client" },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.msk.MSKOperations", "enum": [ "listClusters", "createCluster", "deleteCluster", "describeCluster" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws.msk.MSKConfiguration", "configurationField": "configuration", "description": "The opera [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.msk.MSKConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the MSK client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.msk.MSKConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the MSK client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.msk.MSKConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the MSK client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which MSK client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws-msk/src/main/docs/aws-msk-component.adoc b/components/camel-aws-msk/src/main/docs/aws-msk-component.adoc
index b6228f9..64d5bb0 100644
--- a/components/camel-aws-msk/src/main/docs/aws-msk-component.adoc
+++ b/components/camel-aws-msk/src/main/docs/aws-msk-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS MSK component supports 6 options, which are listed below.
+The AWS MSK component supports 11 options, which are listed below.
 
 
 
@@ -39,6 +39,11 @@ The AWS MSK component supports 6 options, which are listed below.
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *mskClient* (producer) | To use a existing configured AWS MSK as client |  | AWSKafka
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listClusters, createCluster, deleteCluster, describeCluster |  | MSKOperations
+| *proxyHost* (producer) | To define a proxy host when instantiating the MSK client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the MSK client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the MSK client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which MSK client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws-s3/src/generated/java/org/apache/camel/component/aws/s3/S3ComponentConfigurer.java b/components/camel-aws-s3/src/generated/java/org/apache/camel/component/aws/s3/S3ComponentConfigurer.java
index f9a6c8a..be5eae3 100644
--- a/components/camel-aws-s3/src/generated/java/org/apache/camel/component/aws/s3/S3ComponentConfigurer.java
+++ b/components/camel-aws-s3/src/generated/java/org/apache/camel/component/aws/s3/S3ComponentConfigurer.java
@@ -11,22 +11,85 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class S3ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.s3.S3Configuration getOrCreateConfiguration(S3Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.s3.S3Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         S3Component target = (S3Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazons3client":
+        case "amazonS3Client": getOrCreateConfiguration(target).setAmazonS3Client(property(camelContext, com.amazonaws.services.s3.AmazonS3.class, value)); return true;
+        case "autocreatebucket":
+        case "autoCreateBucket": getOrCreateConfiguration(target).setAutoCreateBucket(property(camelContext, boolean.class, value)); return true;
+        case "pathstyleaccess":
+        case "pathStyleAccess": getOrCreateConfiguration(target).setPathStyleAccess(property(camelContext, boolean.class, value)); return true;
+        case "policy": getOrCreateConfiguration(target).setPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "useiamcredentials":
+        case "useIAMCredentials": getOrCreateConfiguration(target).setUseIAMCredentials(property(camelContext, boolean.class, value)); return true;
+        case "encryptionmaterials":
+        case "encryptionMaterials": getOrCreateConfiguration(target).setEncryptionMaterials(property(camelContext, com.amazonaws.services.s3.model.EncryptionMaterials.class, value)); return true;
+        case "useencryption":
+        case "useEncryption": getOrCreateConfiguration(target).setUseEncryption(property(camelContext, boolean.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "deleteafterread":
+        case "deleteAfterRead": getOrCreateConfiguration(target).setDeleteAfterRead(property(camelContext, boolean.class, value)); return true;
+        case "delimiter": getOrCreateConfiguration(target).setDelimiter(property(camelContext, java.lang.String.class, value)); return true;
+        case "filename":
+        case "fileName": getOrCreateConfiguration(target).setFileName(property(camelContext, java.lang.String.class, value)); return true;
+        case "includebody":
+        case "includeBody": getOrCreateConfiguration(target).setIncludeBody(property(camelContext, boolean.class, value)); return true;
+        case "prefix": getOrCreateConfiguration(target).setPrefix(property(camelContext, java.lang.String.class, value)); return true;
+        case "autoclosebody":
+        case "autocloseBody": getOrCreateConfiguration(target).setAutocloseBody(property(camelContext, boolean.class, value)); return true;
+        case "deleteafterwrite":
+        case "deleteAfterWrite": getOrCreateConfiguration(target).setDeleteAfterWrite(property(camelContext, boolean.class, value)); return true;
+        case "keyname":
+        case "keyName": getOrCreateConfiguration(target).setKeyName(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "multipartupload":
+        case "multiPartUpload": getOrCreateConfiguration(target).setMultiPartUpload(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.s3.S3Operations.class, value)); return true;
+        case "partsize":
+        case "partSize": getOrCreateConfiguration(target).setPartSize(property(camelContext, long.class, value)); return true;
+        case "serversideencryption":
+        case "serverSideEncryption": getOrCreateConfiguration(target).setServerSideEncryption(property(camelContext, java.lang.String.class, value)); return true;
+        case "storageclass":
+        case "storageClass": getOrCreateConfiguration(target).setStorageClass(property(camelContext, java.lang.String.class, value)); return true;
+        case "awskmskeyid":
+        case "awsKMSKeyId": getOrCreateConfiguration(target).setAwsKMSKeyId(property(camelContext, java.lang.String.class, value)); return true;
+        case "useawskms":
+        case "useAwsKMS": getOrCreateConfiguration(target).setUseAwsKMS(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.s3.S3Configuration.class, value)); return true;
+        case "acceleratemodeenabled":
+        case "accelerateModeEnabled": getOrCreateConfiguration(target).setAccelerateModeEnabled(property(camelContext, boolean.class, value)); return true;
+        case "chunkedencodingdisabled":
+        case "chunkedEncodingDisabled": getOrCreateConfiguration(target).setChunkedEncodingDisabled(property(camelContext, boolean.class, value)); return true;
+        case "dualstackenabled":
+        case "dualstackEnabled": getOrCreateConfiguration(target).setDualstackEnabled(property(camelContext, boolean.class, value)); return true;
+        case "forceglobalbucketaccessenabled":
+        case "forceGlobalBucketAccessEnabled": getOrCreateConfiguration(target).setForceGlobalBucketAccessEnabled(property(camelContext, boolean.class, value)); return true;
+        case "payloadsigningenabled":
+        case "payloadSigningEnabled": getOrCreateConfiguration(target).setPayloadSigningEnabled(property(camelContext, boolean.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-aws-s3/src/generated/resources/org/apache/camel/component/aws/s3/aws-s3.json b/components/camel-aws-s3/src/generated/resources/org/apache/camel/component/aws/s3/aws-s3.json
index c9a35c9..29a2e2c 100644
--- a/components/camel-aws-s3/src/generated/resources/org/apache/camel/component/aws/s3/aws-s3.json
+++ b/components/camel-aws-s3/src/generated/resources/org/apache/camel/component/aws/s3/aws-s3.json
@@ -20,12 +20,42 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonS3Client": { "kind": "property", "displayName": "Amazon S3 Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.s3.AmazonS3", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Reference to a com.amazonaws.services.s3.AmazonS3 in the registry." },
+    "autoCreateBucket": { "kind": "property", "displayName": "Auto Create Bucket", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the bucket" },
+    "pathStyleAccess": { "kind": "property", "displayName": "Path Style Access", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Whether or not the S3 client should use path style access" },
+    "policy": { "kind": "property", "displayName": "Policy", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "The policy for this queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method." },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the SQS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Specify a proxy port to be used inside the client definition." },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the S3 client" },
     "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region where the bucket is located. This option is used in the com.amazonaws.services.s3.model.CreateBucketRequest." },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "useIAMCredentials": { "kind": "property", "displayName": "Use IAMCredentials", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Set whether the S3 client should expect to load credentials on an EC2 instance or to expect static credentials to be passe [...]
+    "encryptionMaterials": { "kind": "property", "displayName": "Encryption Materials", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "object", "javaType": "com.amazonaws.services.s3.model.EncryptionMaterials", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "The encryption materials to use in case of Symmetric\/Asymmetric client usage" },
+    "useEncryption": { "kind": "property", "displayName": "Use Encryption", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Define if encryption must be used or not" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "deleteAfterRead": { "kind": "property", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If [...]
+    "delimiter": { "kind": "property", "displayName": "Delimiter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in." },
+    "fileName": { "kind": "property", "displayName": "File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "To get the object from the bucket with the given file name" },
+    "includeBody": { "kind": "property", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "If it is true, the exchange body will be set to a stream to the contents of the file. If false, the headers will be set with  [...]
+    "prefix": { "kind": "property", "displayName": "Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in." },
+    "autocloseBody": { "kind": "property", "displayName": "Autoclose Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "If this option is true and includeBody is true, then the S3Object.close() method will be called on ex [...]
+    "deleteAfterWrite": { "kind": "property", "displayName": "Delete After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Delete file object after the S3 file has been uploaded" },
+    "keyName": { "kind": "property", "displayName": "Key Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Setting the key name for an element in the bucket through endpoint parameter" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "multiPartUpload": { "kind": "property", "displayName": "Multi Part Upload", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize" },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.s3.S3Operations", "enum": [ "copyObject", "deleteBucket", "listBuckets", "downloadLink" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "The operation to do in case the user don't  [...]
+    "partSize": { "kind": "property", "displayName": "Part Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "26214400", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Setup the partSize which is used in multi part upload, the default size is 25M." },
+    "serverSideEncryption": { "kind": "property", "displayName": "Server Side Encryption", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256." },
+    "storageClass": { "kind": "property", "displayName": "Storage Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request." },
+    "awsKMSKeyId": { "kind": "property", "displayName": "Aws KMSKey Id", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Define the id of KMS key to use in case KMS is enabled" },
+    "useAwsKMS": { "kind": "property", "displayName": "Use Aws KMS", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Define if KMS must be used or not" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.s3.S3Configuration", "deprecated": false, "secret": false, "description": "The AWS S3 default configuration" }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.s3.S3Configuration", "deprecated": false, "secret": false, "description": "The AWS S3 default configuration" },
+    "accelerateModeEnabled": { "kind": "property", "displayName": "Accelerate Mode Enabled", "group": " advanced", "label": "common, advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Define if Accelerate Mode enabled is true or false" },
+    "chunkedEncodingDisabled": { "kind": "property", "displayName": "Chunked Encoding Disabled", "group": " advanced", "label": "common, advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Define if disabled Chunked Encoding is true or false" },
+    "dualstackEnabled": { "kind": "property", "displayName": "Dualstack Enabled", "group": " advanced", "label": "common, advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Define if Dualstack enabled is true or false" },
+    "forceGlobalBucketAccessEnabled": { "kind": "property", "displayName": "Force Global Bucket Access Enabled", "group": " advanced", "label": "common, advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Define if Force Global Bucket Access enabled is true or false" },
+    "payloadSigningEnabled": { "kind": "property", "displayName": "Payload Signing Enabled", "group": " advanced", "label": "common, advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.s3.S3Configuration", "configurationField": "configuration", "description": "Define if Payload Signing enabled is true or false" }
   },
   "properties": {
     "bucketNameOrArn": { "kind": "path", "displayName": "Bucket Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Bucket name or ARN" },
diff --git a/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc b/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc
index 27194af..94b2c12 100644
--- a/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc
+++ b/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc
@@ -40,7 +40,7 @@ from("aws-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefi
 
 
 // component options: START
-The AWS S3 Storage Service component supports 7 options, which are listed below.
+The AWS S3 Storage Service component supports 37 options, which are listed below.
 
 
 
@@ -48,12 +48,42 @@ The AWS S3 Storage Service component supports 7 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (common) | Amazon AWS Access Key |  | String
+| *amazonS3Client* (common) | Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. |  | AmazonS3
+| *autoCreateBucket* (common) | Setting the autocreation of the bucket | true | boolean
+| *pathStyleAccess* (common) | Whether or not the S3 client should use path style access | false | boolean
+| *policy* (common) | The policy for this queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method. |  | String
+| *proxyHost* (common) | To define a proxy host when instantiating the SQS client |  | String
+| *proxyPort* (common) | Specify a proxy port to be used inside the client definition. |  | Integer
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the S3 client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (common) | The region where the bucket is located. This option is used in the com.amazonaws.services.s3.model.CreateBucketRequest. |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
+| *useIAMCredentials* (common) | Set whether the S3 client should expect to load credentials on an EC2 instance or to expect static credentials to be passed in. | false | boolean
+| *encryptionMaterials* (common) | The encryption materials to use in case of Symmetric/Asymmetric client usage |  | EncryptionMaterials
+| *useEncryption* (common) | Define if encryption must be used or not | false | boolean
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *deleteAfterRead* (consumer) | Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the S3Constants#BUCKET_NAME and S3Constants#KEY headers, or only the S3Constants#KEY [...]
+| *delimiter* (consumer) | The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. |  | String
+| *fileName* (consumer) | To get the object from the bucket with the given file name |  | String
+| *includeBody* (consumer) | If it is true, the exchange body will be set to a stream to the contents of the file. If false, the headers will be set with the S3 object metadata, but the body will be null. This option is strongly related to autocloseBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically. | true | boolean
+| *prefix* (consumer) | The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. |  | String
+| *autocloseBody* (consumer) | If this option is true and includeBody is true, then the S3Object.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically. | true | boolean
+| *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean
+| *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *multiPartUpload* (producer) | If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize | false | boolean
+| *operation* (producer) | The operation to do in case the user don't want to do only an upload. The value can be one of: copyObject, deleteBucket, listBuckets, downloadLink |  | S3Operations
+| *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long
+| *serverSideEncryption* (producer) | Sets the server-side encryption algorithm when encrypting the object using AWS-managed keys. For example use AES256. |  | String
+| *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
+| *awsKMSKeyId* (producer) | Define the id of KMS key to use in case KMS is enabled |  | String
+| *useAwsKMS* (producer) | Define if KMS must be used or not | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS S3 default configuration |  | S3Configuration
+| *accelerateModeEnabled* ( advanced) | Define if Accelerate Mode enabled is true or false | false | boolean
+| *chunkedEncodingDisabled* ( advanced) | Define if disabled Chunked Encoding is true or false | false | boolean
+| *dualstackEnabled* ( advanced) | Define if Dualstack enabled is true or false | false | boolean
+| *forceGlobalBucketAccessEnabled* ( advanced) | Define if Force Global Bucket Access enabled is true or false | false | boolean
+| *payloadSigningEnabled* ( advanced) | Define if Payload Signing enabled is true or false | false | boolean
 |===
 // component options: END
 
diff --git a/components/camel-aws-ses/src/generated/java/org/apache/camel/component/aws/ses/SesComponentConfigurer.java b/components/camel-aws-ses/src/generated/java/org/apache/camel/component/aws/ses/SesComponentConfigurer.java
index c45022b..a9e9010 100644
--- a/components/camel-aws-ses/src/generated/java/org/apache/camel/component/aws/ses/SesComponentConfigurer.java
+++ b/components/camel-aws-ses/src/generated/java/org/apache/camel/component/aws/ses/SesComponentConfigurer.java
@@ -11,17 +11,38 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class SesComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.ses.SesConfiguration getOrCreateConfiguration(SesComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.ses.SesConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         SesComponent target = (SesComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonsesclient":
+        case "amazonSESClient": getOrCreateConfiguration(target).setAmazonSESClient(property(camelContext, com.amazonaws.services.simpleemail.AmazonSimpleEmailService.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
+        case "replytoaddresses":
+        case "replyToAddresses": getOrCreateConfiguration(target).setReplyToAddresses(property(camelContext, java.util.List.class, value)); return true;
+        case "returnpath":
+        case "returnPath": getOrCreateConfiguration(target).setReturnPath(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "subject": getOrCreateConfiguration(target).setSubject(property(camelContext, java.lang.String.class, value)); return true;
+        case "to": getOrCreateConfiguration(target).setTo(property(camelContext, java.util.List.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.ses.SesConfiguration.class, value)); return true;
diff --git a/components/camel-aws-ses/src/generated/resources/org/apache/camel/component/aws/ses/aws-ses.json b/components/camel-aws-ses/src/generated/resources/org/apache/camel/component/aws/ses/aws-ses.json
index b976fd2..a467443 100644
--- a/components/camel-aws-ses/src/generated/resources/org/apache/camel/component/aws/ses/aws-ses.json
+++ b/components/camel-aws-ses/src/generated/resources/org/apache/camel/component/aws/ses/aws-ses.json
@@ -20,9 +20,17 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonSESClient": { "kind": "property", "displayName": "Amazon SESClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.simpleemail.AmazonSimpleEmailService", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ses.SesConfiguration", "configurationField": "configuration", "description": "To use the AmazonSimpleEmailService as the client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ses.SesConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the SES client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ses.SesConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the SES client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ses.SesConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the SES client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which SES client needs to work" },
+    "replyToAddresses": { "kind": "property", "displayName": "Reply To Addresses", "group": "producer", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ses.SesConfiguration", "configurationField": "configuration", "description": "List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header." },
+    "returnPath": { "kind": "property", "displayName": "Return Path", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ses.SesConfiguration", "configurationField": "configuration", "description": "The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header." },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "subject": { "kind": "property", "displayName": "Subject", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ses.SesConfiguration", "configurationField": "configuration", "description": "The subject which is used if the message header 'CamelAwsSesSubject' is not present." },
+    "to": { "kind": "property", "displayName": "To", "group": "producer", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ses.SesConfiguration", "configurationField": "configuration", "description": "List of destination email address. Can be overriden with 'CamelAwsSesTo' header." },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ses.SesConfiguration", "deprecated": false, "secret": false, "description": "The AWS SES default configuration" }
   },
diff --git a/components/camel-aws-ses/src/main/docs/aws-ses-component.adoc b/components/camel-aws-ses/src/main/docs/aws-ses-component.adoc
index d89ba8f..5e477a4 100644
--- a/components/camel-aws-ses/src/main/docs/aws-ses-component.adoc
+++ b/components/camel-aws-ses/src/main/docs/aws-ses-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS Simple Email Service component supports 6 options, which are listed below.
+The AWS Simple Email Service component supports 14 options, which are listed below.
 
 
 
@@ -38,9 +38,17 @@ The AWS Simple Email Service component supports 6 options, which are listed belo
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonSESClient* (producer) | To use the AmazonSimpleEmailService as the client |  | AmazonSimpleEmailService
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *proxyHost* (producer) | To define a proxy host when instantiating the SES client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the SES client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the SES client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which SES client needs to work |  | String
+| *replyToAddresses* (producer) | List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header. |  | List
+| *returnPath* (producer) | The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header. |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *subject* (producer) | The subject which is used if the message header 'CamelAwsSesSubject' is not present. |  | String
+| *to* (producer) | List of destination email address. Can be overriden with 'CamelAwsSesTo' header. |  | List
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS SES default configuration |  | SesConfiguration
 |===
diff --git a/components/camel-aws-sns/src/generated/java/org/apache/camel/component/aws/sns/SnsComponentConfigurer.java b/components/camel-aws-sns/src/generated/java/org/apache/camel/component/aws/sns/SnsComponentConfigurer.java
index d72971a..584c5aa 100644
--- a/components/camel-aws-sns/src/generated/java/org/apache/camel/component/aws/sns/SnsComponentConfigurer.java
+++ b/components/camel-aws-sns/src/generated/java/org/apache/camel/component/aws/sns/SnsComponentConfigurer.java
@@ -11,17 +11,48 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class SnsComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.sns.SnsConfiguration getOrCreateConfiguration(SnsComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.sns.SnsConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         SnsComponent target = (SnsComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonsnsclient":
+        case "amazonSNSClient": getOrCreateConfiguration(target).setAmazonSNSClient(property(camelContext, com.amazonaws.services.sns.AmazonSNS.class, value)); return true;
+        case "amazonsqsclient":
+        case "amazonSQSClient": getOrCreateConfiguration(target).setAmazonSQSClient(property(camelContext, com.amazonaws.services.sqs.AmazonSQS.class, value)); return true;
+        case "autocreatetopic":
+        case "autoCreateTopic": getOrCreateConfiguration(target).setAutoCreateTopic(property(camelContext, boolean.class, value)); return true;
+        case "kmsmasterkeyid":
+        case "kmsMasterKeyId": getOrCreateConfiguration(target).setKmsMasterKeyId(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "messagestructure":
+        case "messageStructure": getOrCreateConfiguration(target).setMessageStructure(property(camelContext, java.lang.String.class, value)); return true;
+        case "policy": getOrCreateConfiguration(target).setPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
+        case "queueurl":
+        case "queueUrl": getOrCreateConfiguration(target).setQueueUrl(property(camelContext, java.lang.String.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "serversideencryptionenabled":
+        case "serverSideEncryptionEnabled": getOrCreateConfiguration(target).setServerSideEncryptionEnabled(property(camelContext, boolean.class, value)); return true;
+        case "subject": getOrCreateConfiguration(target).setSubject(property(camelContext, java.lang.String.class, value)); return true;
+        case "subscribesnstosqs":
+        case "subscribeSNStoSQS": getOrCreateConfiguration(target).setSubscribeSNStoSQS(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.sns.SnsConfiguration.class, value)); return true;
diff --git a/components/camel-aws-sns/src/generated/resources/org/apache/camel/component/aws/sns/aws-sns.json b/components/camel-aws-sns/src/generated/resources/org/apache/camel/component/aws/sns/aws-sns.json
index 20b2eb4..a4cb5f5 100644
--- a/components/camel-aws-sns/src/generated/resources/org/apache/camel/component/aws/sns/aws-sns.json
+++ b/components/camel-aws-sns/src/generated/resources/org/apache/camel/component/aws/sns/aws-sns.json
@@ -20,9 +20,22 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonSNSClient": { "kind": "property", "displayName": "Amazon SNSClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.sns.AmazonSNS", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "To use the AmazonSNS as the client" },
+    "amazonSQSClient": { "kind": "property", "displayName": "Amazon SQSClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.sqs.AmazonSQS", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "An SQS Client to use as bridge between SNS and SQS" },
+    "autoCreateTopic": { "kind": "property", "displayName": "Auto Create Topic", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "Setting the autocreation of the topic" },
+    "kmsMasterKeyId": { "kind": "property", "displayName": "Kms Master Key Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "messageStructure": { "kind": "property", "displayName": "Message Structure", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "The message structure to use such as json" },
+    "policy": { "kind": "property", "displayName": "Policy", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "The policy for this queue" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the SNS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the SNS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the SNS client" },
+    "queueUrl": { "kind": "property", "displayName": "Queue Url", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "The queueUrl to subscribe to" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which SNS client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "serverSideEncryptionEnabled": { "kind": "property", "displayName": "Server Side Encryption Enabled", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "Define if Server Side Encryption is enabled or not on the topic" },
+    "subject": { "kind": "property", "displayName": "Subject", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "The subject which is used if the message header 'CamelAwsSnsSubject' is not present." },
+    "subscribeSNStoSQS": { "kind": "property", "displayName": "Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.sns.SnsConfiguration", "configurationField": "configuration", "description": "Define if the subscription between SNS Topic and SQS must be done or not" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.sns.SnsConfiguration", "deprecated": false, "secret": false, "description": "The AWS SNS default configuration" }
   },
diff --git a/components/camel-aws-sns/src/main/docs/aws-sns-component.adoc b/components/camel-aws-sns/src/main/docs/aws-sns-component.adoc
index 4ffbf31..4f03d2a 100644
--- a/components/camel-aws-sns/src/main/docs/aws-sns-component.adoc
+++ b/components/camel-aws-sns/src/main/docs/aws-sns-component.adoc
@@ -33,7 +33,7 @@ The topic will be created if they don't already exists. +
 
 
 // component options: START
-The AWS Simple Notification System component supports 6 options, which are listed below.
+The AWS Simple Notification System component supports 19 options, which are listed below.
 
 
 
@@ -41,9 +41,22 @@ The AWS Simple Notification System component supports 6 options, which are liste
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonSNSClient* (producer) | To use the AmazonSNS as the client |  | AmazonSNS
+| *amazonSQSClient* (producer) | An SQS Client to use as bridge between SNS and SQS |  | AmazonSQS
+| *autoCreateTopic* (producer) | Setting the autocreation of the topic | true | boolean
+| *kmsMasterKeyId* (producer) | The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *messageStructure* (producer) | The message structure to use such as json |  | String
+| *policy* (producer) | The policy for this queue |  | String
+| *proxyHost* (producer) | To define a proxy host when instantiating the SNS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the SNS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the SNS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *queueUrl* (producer) | The queueUrl to subscribe to |  | String
 | *region* (producer) | The region in which SNS client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *serverSideEncryptionEnabled* (producer) | Define if Server Side Encryption is enabled or not on the topic | false | boolean
+| *subject* (producer) | The subject which is used if the message header 'CamelAwsSnsSubject' is not present. |  | String
+| *subscribeSNStoSQS* (producer) | Define if the subscription between SNS Topic and SQS must be done or not | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS SNS default configuration |  | SnsConfiguration
 |===
diff --git a/components/camel-aws-sqs/src/generated/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurer.java b/components/camel-aws-sqs/src/generated/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurer.java
index 43486970..fdf04a6 100644
--- a/components/camel-aws-sqs/src/generated/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurer.java
+++ b/components/camel-aws-sqs/src/generated/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurer.java
@@ -11,22 +11,88 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class SqsComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.sqs.SqsConfiguration getOrCreateConfiguration(SqsComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.sqs.SqsConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         SqsComponent target = (SqsComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonawshost":
+        case "amazonAWSHost": getOrCreateConfiguration(target).setAmazonAWSHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonsqsclient":
+        case "amazonSQSClient": getOrCreateConfiguration(target).setAmazonSQSClient(property(camelContext, com.amazonaws.services.sqs.AmazonSQS.class, value)); return true;
+        case "autocreatequeue":
+        case "autoCreateQueue": getOrCreateConfiguration(target).setAutoCreateQueue(property(camelContext, boolean.class, value)); return true;
+        case "protocol": getOrCreateConfiguration(target).setProtocol(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
+        case "queueownerawsaccountid":
+        case "queueOwnerAWSAccountId": getOrCreateConfiguration(target).setQueueOwnerAWSAccountId(property(camelContext, java.lang.String.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "attributenames":
+        case "attributeNames": getOrCreateConfiguration(target).setAttributeNames(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "concurrentconsumers":
+        case "concurrentConsumers": getOrCreateConfiguration(target).setConcurrentConsumers(property(camelContext, int.class, value)); return true;
+        case "defaultvisibilitytimeout":
+        case "defaultVisibilityTimeout": getOrCreateConfiguration(target).setDefaultVisibilityTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "deleteafterread":
+        case "deleteAfterRead": getOrCreateConfiguration(target).setDeleteAfterRead(property(camelContext, boolean.class, value)); return true;
+        case "deleteiffiltered":
+        case "deleteIfFiltered": getOrCreateConfiguration(target).setDeleteIfFiltered(property(camelContext, boolean.class, value)); return true;
+        case "extendmessagevisibility":
+        case "extendMessageVisibility": getOrCreateConfiguration(target).setExtendMessageVisibility(property(camelContext, boolean.class, value)); return true;
+        case "kmsdatakeyreuseperiodseconds":
+        case "kmsDataKeyReusePeriodSeconds": getOrCreateConfiguration(target).setKmsDataKeyReusePeriodSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "kmsmasterkeyid":
+        case "kmsMasterKeyId": getOrCreateConfiguration(target).setKmsMasterKeyId(property(camelContext, java.lang.String.class, value)); return true;
+        case "messageattributenames":
+        case "messageAttributeNames": getOrCreateConfiguration(target).setMessageAttributeNames(property(camelContext, java.lang.String.class, value)); return true;
+        case "serversideencryptionenabled":
+        case "serverSideEncryptionEnabled": getOrCreateConfiguration(target).setServerSideEncryptionEnabled(property(camelContext, boolean.class, value)); return true;
+        case "visibilitytimeout":
+        case "visibilityTimeout": getOrCreateConfiguration(target).setVisibilityTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "waittimeseconds":
+        case "waitTimeSeconds": getOrCreateConfiguration(target).setWaitTimeSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "delayseconds":
+        case "delaySeconds": getOrCreateConfiguration(target).setDelaySeconds(property(camelContext, java.lang.Integer.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "messagededuplicationidstrategy":
+        case "messageDeduplicationIdStrategy": getOrCreateConfiguration(target).setMessageDeduplicationIdStrategy(property(camelContext, org.apache.camel.component.aws.sqs.MessageDeduplicationIdStrategy.class, value)); return true;
+        case "messagegroupidstrategy":
+        case "messageGroupIdStrategy": getOrCreateConfiguration(target).setMessageGroupIdStrategy(property(camelContext, org.apache.camel.component.aws.sqs.MessageGroupIdStrategy.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.sqs.SqsOperations.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.sqs.SqsConfiguration.class, value)); return true;
+        case "delayqueue":
+        case "delayQueue": getOrCreateConfiguration(target).setDelayQueue(property(camelContext, boolean.class, value)); return true;
+        case "queueurl":
+        case "queueUrl": getOrCreateConfiguration(target).setQueueUrl(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "maximummessagesize":
+        case "maximumMessageSize": getOrCreateConfiguration(target).setMaximumMessageSize(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "messageretentionperiod":
+        case "messageRetentionPeriod": getOrCreateConfiguration(target).setMessageRetentionPeriod(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "policy": getOrCreateConfiguration(target).setPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "receivemessagewaittimeseconds":
+        case "receiveMessageWaitTimeSeconds": getOrCreateConfiguration(target).setReceiveMessageWaitTimeSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "redrivepolicy":
+        case "redrivePolicy": getOrCreateConfiguration(target).setRedrivePolicy(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-aws-sqs/src/generated/resources/org/apache/camel/component/aws/sqs/aws-sqs.json b/components/camel-aws-sqs/src/generated/resources/org/apache/camel/component/aws/sqs/aws-sqs.json
index 27dfda3..1a7e0e4 100644
--- a/components/camel-aws-sqs/src/generated/resources/org/apache/camel/component/aws/sqs/aws-sqs.json
+++ b/components/camel-aws-sqs/src/generated/resources/org/apache/camel/component/aws/sqs/aws-sqs.json
@@ -20,12 +20,43 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonAWSHost": { "kind": "property", "displayName": "Amazon AWSHost", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "amazonaws.com", "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The hostname of the Amazon AWS cloud." },
+    "amazonSQSClient": { "kind": "property", "displayName": "Amazon SQSClient", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.sqs.AmazonSQS", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "To use the AmazonSQS as client" },
+    "autoCreateQueue": { "kind": "property", "displayName": "Auto Create Queue", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Setting the autocreation of the queue" },
+    "protocol": { "kind": "property", "displayName": "Protocol", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https", "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The underlying protocol used to communicate with SQS" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the SQS client" },
+    "queueOwnerAWSAccountId": { "kind": "property", "displayName": "Queue Owner AWSAccount Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Specify the queue owner aws account id when you need to connect the queue with different account owner." },
     "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL." },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "attributeNames": { "kind": "property", "displayName": "Attribute Names", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "A list of attribute names to receive when consuming. Multiple names can be separated by comma." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Allows you to use multiple threads to poll the sqs queue to increase throughput" },
+    "defaultVisibilityTimeout": { "kind": "property", "displayName": "Default Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The default visibility timeout (in seconds)" },
+    "deleteAfterRead": { "kind": "property", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Delete message from SQS after it has been read" },
+    "deleteIfFiltered": { "kind": "property", "displayName": "Delete If Filtered", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Whether or not to send the DeleteMessage to the SQS queue if an exchange fails to get through a filter. If 'fals [...]
+    "extendMessageVisibility": { "kind": "property", "displayName": "Extend Message Visibility", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "If enabled then a scheduled background task will keep extending the message visibility on SQS. This [...]
+    "kmsDataKeyReusePeriodSeconds": { "kind": "property", "displayName": "Kms Data Key Reuse Period Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt mes [...]
+    "kmsMasterKeyId": { "kind": "property", "displayName": "Kms Master Key Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK." },
+    "messageAttributeNames": { "kind": "property", "displayName": "Message Attribute Names", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "A list of message attribute names to receive when consuming. Multiple names can be separated by comma." },
+    "serverSideEncryptionEnabled": { "kind": "property", "displayName": "Server Side Encryption Enabled", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Define if Server Side Encryption is enabled or not on the queue" },
+    "visibilityTimeout": { "kind": "property", "displayName": "Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a  [...]
+    "waitTimeSeconds": { "kind": "property", "displayName": "Wait Time Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the re [...]
+    "delaySeconds": { "kind": "property", "displayName": "Delay Seconds", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Delay sending messages for a number of seconds." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "messageDeduplicationIdStrategy": { "kind": "property", "displayName": "Message Deduplication Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.sqs.MessageDeduplicationIdStrategy", "enum": [ "useExchangeId", "useContentBasedDeduplication" ], "deprecated": false, "secret": false, "defaultValue": "useExchangeId", "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurat [...]
+    "messageGroupIdStrategy": { "kind": "property", "displayName": "Message Group Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.sqs.MessageGroupIdStrategy", "enum": [ "useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Only for F [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.sqs.SqsOperations", "enum": [ "sendBatchMessage", "deleteMessage", "listQueues" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The operation to do in case the user don't want t [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.sqs.SqsConfiguration", "deprecated": false, "secret": false, "description": "The AWS SQS default configuration" }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.sqs.SqsConfiguration", "deprecated": false, "secret": false, "description": "The AWS SQS default configuration" },
+    "delayQueue": { "kind": "property", "displayName": "Delay Queue", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Define if you want to apply delaySeconds option to the queue or on single messages" },
+    "queueUrl": { "kind": "property", "displayName": "Queue Url", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used,  [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the SQS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the SQS client" },
+    "maximumMessageSize": { "kind": "property", "displayName": "Maximum Message Size", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The maximumMessageSize (in bytes) an SQS message can contain for this queue." },
+    "messageRetentionPeriod": { "kind": "property", "displayName": "Message Retention Period", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue." },
+    "policy": { "kind": "property", "displayName": "Policy", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "The policy for this queue" },
+    "receiveMessageWaitTimeSeconds": { "kind": "property", "displayName": "Receive Message Wait Time Seconds", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds  [...]
+    "redrivePolicy": { "kind": "property", "displayName": "Redrive Policy", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.sqs.SqsConfiguration", "configurationField": "configuration", "description": "Specify the policy that send message to DeadLetter queue. See detail at Amazon docs." }
   },
   "properties": {
     "queueNameOrArn": { "kind": "path", "displayName": "Queue Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Queue name or ARN" },
diff --git a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
index 0ef2a20..cfe92cc 100644
--- a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
+++ b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
@@ -31,7 +31,7 @@ The queue will be created if they don't already exists. +
 
 
 // component options: START
-The AWS Simple Queue Service component supports 7 options, which are listed below.
+The AWS Simple Queue Service component supports 38 options, which are listed below.
 
 
 
@@ -39,12 +39,43 @@ The AWS Simple Queue Service component supports 7 options, which are listed belo
 |===
 | Name | Description | Default | Type
 | *accessKey* (common) | Amazon AWS Access Key |  | String
+| *amazonAWSHost* (common) | The hostname of the Amazon AWS cloud. | amazonaws.com | String
+| *amazonSQSClient* (common) | To use the AmazonSQS as client |  | AmazonSQS
+| *autoCreateQueue* (common) | Setting the autocreation of the queue | true | boolean
+| *protocol* (common) | The underlying protocol used to communicate with SQS | https | String
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the SQS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *queueOwnerAWSAccountId* (common) | Specify the queue owner aws account id when you need to connect the queue with different account owner. |  | String
 | *region* (common) | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
+| *attributeNames* (consumer) | A list of attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *concurrentConsumers* (consumer) | Allows you to use multiple threads to poll the sqs queue to increase throughput | 1 | int
+| *defaultVisibilityTimeout* (consumer) | The default visibility timeout (in seconds) |  | Integer
+| *deleteAfterRead* (consumer) | Delete message from SQS after it has been read | true | boolean
+| *deleteIfFiltered* (consumer) | Whether or not to send the DeleteMessage to the SQS queue if an exchange fails to get through a filter. If 'false' and exchange does not make it through a Camel filter upstream in the route, then don't send DeleteMessage. | true | boolean
+| *extendMessageVisibility* (consumer) | If enabled then a scheduled background task will keep extending the message visibility on SQS. This is needed if it takes a long time to process the message. If set to true defaultVisibilityTimeout must be set. See details at Amazon docs. | false | boolean
+| *kmsDataKeyReusePeriodSeconds* (consumer) | The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). |  | Integer
+| *kmsMasterKeyId* (consumer) | The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. |  | String
+| *messageAttributeNames* (consumer) | A list of message attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
+| *serverSideEncryptionEnabled* (consumer) | Define if Server Side Encryption is enabled or not on the queue | false | boolean
+| *visibilityTimeout* (consumer) | The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request to set in the com.amazonaws.services.sqs.model.SetQueueAttributesRequest. This only make sense if its different from defaultVisibilityTimeout. It changes the queue visibility timeout attribute permanently. |  | Integer
+| *waitTimeSeconds* (consumer) | Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the response. |  | Integer
+| *delaySeconds* (producer) | Delay sending messages for a number of seconds. |  | Integer
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *messageDeduplicationIdStrategy* (producer) | Only for FIFO queues. 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. The value can be one of: useExchangeId, useContentBasedDeduplication | useExchangeId | MessageDeduplicationIdStrategy
+| *messageGroupIdStrategy* (producer) | Only for FIFO queues. 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. The value can be one of: useConstant, useExchangeId, usePropertyValue |  | MessageGroupIdStrategy
+| *operation* (producer) | The operation to do in case the user don't want to send only a message. The value can be one of: sendBatchMessage, deleteMessage, listQueues |  | SqsOperations
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS SQS default configuration |  | SqsConfiguration
+| *delayQueue* (advanced) | Define if you want to apply delaySeconds option to the queue or on single messages | false | boolean
+| *queueUrl* (advanced) | To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used, to connect to a mock implementation of SQS, for testing purposes. |  | String
+| *proxyHost* (proxy) | To define a proxy host when instantiating the SQS client |  | String
+| *proxyPort* (proxy) | To define a proxy port when instantiating the SQS client |  | Integer
+| *maximumMessageSize* (queue) | The maximumMessageSize (in bytes) an SQS message can contain for this queue. |  | Integer
+| *messageRetentionPeriod* (queue) | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. |  | Integer
+| *policy* (queue) | The policy for this queue |  | String
+| *receiveMessageWaitTimeSeconds* (queue) | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. |  | Integer
+| *redrivePolicy* (queue) | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. |  | String
 |===
 // component options: END
 
diff --git a/components/camel-aws-swf/src/generated/java/org/apache/camel/component/aws/swf/SWFComponentConfigurer.java b/components/camel-aws-swf/src/generated/java/org/apache/camel/component/aws/swf/SWFComponentConfigurer.java
index a093ee4..7871592 100644
--- a/components/camel-aws-swf/src/generated/java/org/apache/camel/component/aws/swf/SWFComponentConfigurer.java
+++ b/components/camel-aws-swf/src/generated/java/org/apache/camel/component/aws/swf/SWFComponentConfigurer.java
@@ -11,22 +11,73 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class SWFComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.swf.SWFConfiguration getOrCreateConfiguration(SWFComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.swf.SWFConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         SWFComponent target = (SWFComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonswclient":
+        case "amazonSWClient": getOrCreateConfiguration(target).setAmazonSWClient(property(camelContext, com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow.class, value)); return true;
+        case "dataconverter":
+        case "dataConverter": getOrCreateConfiguration(target).setDataConverter(property(camelContext, com.amazonaws.services.simpleworkflow.flow.DataConverter.class, value)); return true;
+        case "domainname":
+        case "domainName": getOrCreateConfiguration(target).setDomainName(property(camelContext, java.lang.String.class, value)); return true;
+        case "eventname":
+        case "eventName": getOrCreateConfiguration(target).setEventName(property(camelContext, java.lang.String.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "version": getOrCreateConfiguration(target).setVersion(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "clientconfigurationparameters":
+        case "clientConfigurationParameters": getOrCreateConfiguration(target).setClientConfigurationParameters(property(camelContext, java.util.Map.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.swf.SWFConfiguration.class, value)); return true;
+        case "startworkflowoptionsparameters":
+        case "startWorkflowOptionsParameters": getOrCreateConfiguration(target).setStartWorkflowOptionsParameters(property(camelContext, java.util.Map.class, value)); return true;
+        case "swclientparameters":
+        case "sWClientParameters": getOrCreateConfiguration(target).setSWClientParameters(property(camelContext, java.util.Map.class, value)); return true;
+        case "activitylist":
+        case "activityList": getOrCreateConfiguration(target).setActivityList(property(camelContext, java.lang.String.class, value)); return true;
+        case "activityschedulingoptions":
+        case "activitySchedulingOptions": getOrCreateConfiguration(target).setActivitySchedulingOptions(property(camelContext, com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions.class, value)); return true;
+        case "activitythreadpoolsize":
+        case "activityThreadPoolSize": getOrCreateConfiguration(target).setActivityThreadPoolSize(property(camelContext, int.class, value)); return true;
+        case "activitytypeexecutionoptions":
+        case "activityTypeExecutionOptions": getOrCreateConfiguration(target).setActivityTypeExecutionOptions(property(camelContext, com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions.class, value)); return true;
+        case "activitytyperegistrationoptions":
+        case "activityTypeRegistrationOptions": getOrCreateConfiguration(target).setActivityTypeRegistrationOptions(property(camelContext, com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions.class, value)); return true;
+        case "childpolicy":
+        case "childPolicy": getOrCreateConfiguration(target).setChildPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "executionstarttoclosetimeout":
+        case "executionStartToCloseTimeout": getOrCreateConfiguration(target).setExecutionStartToCloseTimeout(property(camelContext, java.lang.String.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, java.lang.String.class, value)); return true;
+        case "signalname":
+        case "signalName": getOrCreateConfiguration(target).setSignalName(property(camelContext, java.lang.String.class, value)); return true;
+        case "stateresulttype":
+        case "stateResultType": getOrCreateConfiguration(target).setStateResultType(property(camelContext, java.lang.String.class, value)); return true;
+        case "taskstarttoclosetimeout":
+        case "taskStartToCloseTimeout": getOrCreateConfiguration(target).setTaskStartToCloseTimeout(property(camelContext, java.lang.String.class, value)); return true;
+        case "terminationdetails":
+        case "terminationDetails": getOrCreateConfiguration(target).setTerminationDetails(property(camelContext, java.lang.String.class, value)); return true;
+        case "terminationreason":
+        case "terminationReason": getOrCreateConfiguration(target).setTerminationReason(property(camelContext, java.lang.String.class, value)); return true;
+        case "workflowlist":
+        case "workflowList": getOrCreateConfiguration(target).setWorkflowList(property(camelContext, java.lang.String.class, value)); return true;
+        case "workflowtyperegistrationoptions":
+        case "workflowTypeRegistrationOptions": getOrCreateConfiguration(target).setWorkflowTypeRegistrationOptions(property(camelContext, com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-aws-swf/src/generated/resources/org/apache/camel/component/aws/swf/aws-swf.json b/components/camel-aws-swf/src/generated/resources/org/apache/camel/component/aws/swf/aws-swf.json
index d373771..6b87a0e 100644
--- a/components/camel-aws-swf/src/generated/resources/org/apache/camel/component/aws/swf/aws-swf.json
+++ b/components/camel-aws-swf/src/generated/resources/org/apache/camel/component/aws/swf/aws-swf.json
@@ -20,12 +20,35 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key." },
+    "amazonSWClient": { "kind": "property", "displayName": "Amazon SWClient", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "To use the given AmazonSimpleWorkflowClient as client" },
+    "dataConverter": { "kind": "property", "displayName": "Data Converter", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.simpleworkflow.flow.DataConverter", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "An instance of com.amazonaws.services.simpleworkflow.flow.DataConverter to use for serializing\/deseriali [...]
+    "domainName": { "kind": "property", "displayName": "Domain Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The workflow domain to use." },
+    "eventName": { "kind": "property", "displayName": "Event Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The workflow or activity event name to use." },
     "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region." },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key." },
+    "version": { "kind": "property", "displayName": "Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The workflow or activity event version to use." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.swf.SWFConfiguration", "deprecated": false, "secret": false, "description": "The AWS SWF default configuration" }
+    "clientConfigurationParameters": { "kind": "property", "displayName": "Client Configuration Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "clientConfiguration.", "multiValue": true, "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "To configure th [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.swf.SWFConfiguration", "deprecated": false, "secret": false, "description": "The AWS SWF default configuration" },
+    "startWorkflowOptionsParameters": { "kind": "property", "displayName": "Start Workflow Options Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "startWorkflowOptions.", "multiValue": true, "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "To configur [...]
+    "sWClientParameters": { "kind": "property", "displayName": "SWClient Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "sWClient.", "multiValue": true, "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "To configure the AmazonSimpleWorkflowClient using [...]
+    "activityList": { "kind": "property", "displayName": "Activity List", "group": "activity", "label": "consumer,activity", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The list name to consume activities from." },
+    "activitySchedulingOptions": { "kind": "property", "displayName": "Activity Scheduling Options", "group": "activity", "label": "producer,activity", "required": false, "type": "object", "javaType": "com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Activity scheduling options" },
+    "activityThreadPoolSize": { "kind": "property", "displayName": "Activity Thread Pool Size", "group": "activity", "label": "consumer,activity", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Maximum number of threads in work pool for activity." },
+    "activityTypeExecutionOptions": { "kind": "property", "displayName": "Activity Type Execution Options", "group": "activity", "label": "consumer,activity", "required": false, "type": "object", "javaType": "com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Activity execution options" },
+    "activityTypeRegistrationOptions": { "kind": "property", "displayName": "Activity Type Registration Options", "group": "activity", "label": "consumer,activity", "required": false, "type": "object", "javaType": "com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Activity registration o [...]
+    "childPolicy": { "kind": "property", "displayName": "Child Policy", "group": "workflow", "label": "producer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The policy to use on child workflows when terminating a workflow." },
+    "executionStartToCloseTimeout": { "kind": "property", "displayName": "Execution Start To Close Timeout", "group": "workflow", "label": "producer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "3600", "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Set the execution start to close timeout." },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "workflow", "label": "producer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SIGNAL", "CANCEL", "TERMINATE", "GET_STATE", "START", "DESCRIBE", "GET_HISTORY" ], "deprecated": false, "secret": false, "defaultValue": "START", "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Workflow operation" },
+    "signalName": { "kind": "property", "displayName": "Signal Name", "group": "workflow", "label": "producer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The name of the signal to send to the workflow." },
+    "stateResultType": { "kind": "property", "displayName": "State Result Type", "group": "workflow", "label": "producer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The type of the result when a workflow state is queried." },
+    "taskStartToCloseTimeout": { "kind": "property", "displayName": "Task Start To Close Timeout", "group": "workflow", "label": "producer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "600", "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Set the task start to close timeout." },
+    "terminationDetails": { "kind": "property", "displayName": "Termination Details", "group": "workflow", "label": "producer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Details for terminating a workflow." },
+    "terminationReason": { "kind": "property", "displayName": "Termination Reason", "group": "workflow", "label": "producer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The reason for terminating a workflow." },
+    "workflowList": { "kind": "property", "displayName": "Workflow List", "group": "workflow", "label": "consumer,workflow", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "The list name to consume workflows from." },
+    "workflowTypeRegistrationOptions": { "kind": "property", "displayName": "Workflow Type Registration Options", "group": "workflow", "label": "consumer,workflow", "required": false, "type": "object", "javaType": "com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Workflow registration options" }
   },
   "properties": {
     "type": { "kind": "path", "displayName": "Type", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "activity", "workflow" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws.swf.SWFConfiguration", "configurationField": "configuration", "description": "Activity or workflow" },
diff --git a/components/camel-aws-swf/src/main/docs/aws-swf-component.adoc b/components/camel-aws-swf/src/main/docs/aws-swf-component.adoc
index 41428a7..279b75c 100644
--- a/components/camel-aws-swf/src/main/docs/aws-swf-component.adoc
+++ b/components/camel-aws-swf/src/main/docs/aws-swf-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS Simple Workflow component supports 7 options, which are listed below.
+The AWS Simple Workflow component supports 30 options, which are listed below.
 
 
 
@@ -38,12 +38,35 @@ The AWS Simple Workflow component supports 7 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (common) | Amazon AWS Access Key. |  | String
+| *amazonSWClient* (common) | To use the given AmazonSimpleWorkflowClient as client |  | AmazonSimpleWorkflow
+| *dataConverter* (common) | An instance of com.amazonaws.services.simpleworkflow.flow.DataConverter to use for serializing/deserializing the data. |  | DataConverter
+| *domainName* (common) | The workflow domain to use. |  | String
+| *eventName* (common) | The workflow or activity event name to use. |  | String
 | *region* (common) | Amazon AWS Region. |  | String
 | *secretKey* (common) | Amazon AWS Secret Key. |  | String
+| *version* (common) | The workflow or activity event version to use. |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *clientConfigurationParameters* (advanced) | To configure the ClientConfiguration using the key/values from the Map. |  | Map
 | *configuration* (advanced) | The AWS SWF default configuration |  | SWFConfiguration
+| *startWorkflowOptionsParameters* (advanced) | To configure the StartWorkflowOptions using the key/values from the Map. |  | Map
+| *sWClientParameters* (advanced) | To configure the AmazonSimpleWorkflowClient using the key/values from the Map. |  | Map
+| *activityList* (activity) | The list name to consume activities from. |  | String
+| *activitySchedulingOptions* (activity) | Activity scheduling options |  | ActivitySchedulingOptions
+| *activityThreadPoolSize* (activity) | Maximum number of threads in work pool for activity. | 100 | int
+| *activityTypeExecutionOptions* (activity) | Activity execution options |  | ActivityTypeExecutionOptions
+| *activityTypeRegistration Options* (activity) | Activity registration options |  | ActivityTypeRegistrationOptions
+| *childPolicy* (workflow) | The policy to use on child workflows when terminating a workflow. |  | String
+| *executionStartToCloseTimeout* (workflow) | Set the execution start to close timeout. | 3600 | String
+| *operation* (workflow) | Workflow operation. The value can be one of: SIGNAL, CANCEL, TERMINATE, GET_STATE, START, DESCRIBE, GET_HISTORY | START | String
+| *signalName* (workflow) | The name of the signal to send to the workflow. |  | String
+| *stateResultType* (workflow) | The type of the result when a workflow state is queried. |  | String
+| *taskStartToCloseTimeout* (workflow) | Set the task start to close timeout. | 600 | String
+| *terminationDetails* (workflow) | Details for terminating a workflow. |  | String
+| *terminationReason* (workflow) | The reason for terminating a workflow. |  | String
+| *workflowList* (workflow) | The list name to consume workflows from. |  | String
+| *workflowTypeRegistration Options* (workflow) | Workflow registration options |  | WorkflowTypeRegistrationOptions
 |===
 // component options: END
 
diff --git a/components/camel-aws-translate/src/generated/java/org/apache/camel/component/aws/translate/TranslateComponentConfigurer.java b/components/camel-aws-translate/src/generated/java/org/apache/camel/component/aws/translate/TranslateComponentConfigurer.java
index a4a5b10..43367c7 100644
--- a/components/camel-aws-translate/src/generated/java/org/apache/camel/component/aws/translate/TranslateComponentConfigurer.java
+++ b/components/camel-aws-translate/src/generated/java/org/apache/camel/component/aws/translate/TranslateComponentConfigurer.java
@@ -11,17 +11,39 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class TranslateComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws.translate.TranslateConfiguration getOrCreateConfiguration(TranslateComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws.translate.TranslateConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         TranslateComponent target = (TranslateComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "autodetectsourcelanguage":
+        case "autodetectSourceLanguage": getOrCreateConfiguration(target).setAutodetectSourceLanguage(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.translate.TranslateOperations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "sourcelanguage":
+        case "sourceLanguage": getOrCreateConfiguration(target).setSourceLanguage(property(camelContext, java.lang.String.class, value)); return true;
+        case "targetlanguage":
+        case "targetLanguage": getOrCreateConfiguration(target).setTargetLanguage(property(camelContext, java.lang.String.class, value)); return true;
+        case "translateclient":
+        case "translateClient": getOrCreateConfiguration(target).setTranslateClient(property(camelContext, com.amazonaws.services.translate.AmazonTranslate.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.translate.TranslateConfiguration.class, value)); return true;
diff --git a/components/camel-aws-translate/src/generated/resources/org/apache/camel/component/aws/translate/aws-translate.json b/components/camel-aws-translate/src/generated/resources/org/apache/camel/component/aws/translate/aws-translate.json
index 63f5037..ba6ef7b 100644
--- a/components/camel-aws-translate/src/generated/resources/org/apache/camel/component/aws/translate/aws-translate.json
+++ b/components/camel-aws-translate/src/generated/resources/org/apache/camel/component/aws/translate/aws-translate.json
@@ -20,9 +20,17 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "autodetectSourceLanguage": { "kind": "property", "displayName": "Autodetect Source Language", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws.translate.TranslateConfiguration", "configurationField": "configuration", "description": "Being able to autodetect the source language" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.translate.TranslateOperations", "enum": [ "translateText" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "translateText", "configurationClass": "org.apache.camel.component.aws.translate.TranslateConfiguration", "configurationField": "configuration", "description": "The  [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.translate.TranslateConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Translate client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.translate.TranslateConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Translate client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.translate.TranslateConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the Translate client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which Translate client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "sourceLanguage": { "kind": "property", "displayName": "Source Language", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.translate.TranslateConfiguration", "configurationField": "configuration", "description": "Source language to use" },
+    "targetLanguage": { "kind": "property", "displayName": "Target Language", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.translate.TranslateConfiguration", "configurationField": "configuration", "description": "Target language to use" },
+    "translateClient": { "kind": "property", "displayName": "Translate Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.amazonaws.services.translate.AmazonTranslate", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.translate.TranslateConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Translate as client" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.translate.TranslateConfiguration", "deprecated": false, "secret": false, "description": "The AWS Translate default configuration" }
   },
diff --git a/components/camel-aws-translate/src/main/docs/aws-translate-component.adoc b/components/camel-aws-translate/src/main/docs/aws-translate-component.adoc
index e06434b..ea82ab9 100644
--- a/components/camel-aws-translate/src/main/docs/aws-translate-component.adoc
+++ b/components/camel-aws-translate/src/main/docs/aws-translate-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS Translate component supports 6 options, which are listed below.
+The AWS Translate component supports 14 options, which are listed below.
 
 
 
@@ -38,9 +38,17 @@ The AWS Translate component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *autodetectSourceLanguage* (producer) | Being able to autodetect the source language | false | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: translateText | translateText | TranslateOperations
+| *proxyHost* (producer) | To define a proxy host when instantiating the Translate client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Translate client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Translate client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which Translate client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *sourceLanguage* (producer) | Source language to use |  | String
+| *targetLanguage* (producer) | Target language to use |  | String
+| *translateClient* (producer) | To use a existing configured AWS Translate as client |  | AmazonTranslate
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS Translate default configuration |  | TranslateConfiguration
 |===
diff --git a/components/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2ComponentConfigurer.java b/components/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2ComponentConfigurer.java
index 3543f57..e9a7b4b 100644
--- a/components/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2ComponentConfigurer.java
+++ b/components/camel-aws2-cw/src/generated/java/org/apache/camel/component/aws2/cw/Cw2ComponentConfigurer.java
@@ -11,17 +11,36 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Cw2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.cw.Cw2Configuration getOrCreateConfiguration(Cw2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.cw.Cw2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Cw2Component target = (Cw2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazoncwclient":
+        case "amazonCwClient": getOrCreateConfiguration(target).setAmazonCwClient(property(camelContext, software.amazon.awssdk.services.cloudwatch.CloudWatchClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "name": getOrCreateConfiguration(target).setName(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "timestamp": getOrCreateConfiguration(target).setTimestamp(property(camelContext, java.time.Instant.class, value)); return true;
+        case "unit": getOrCreateConfiguration(target).setUnit(property(camelContext, java.lang.String.class, value)); return true;
+        case "value": getOrCreateConfiguration(target).setValue(property(camelContext, java.lang.Double.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.cw.Cw2Configuration.class, value)); return true;
diff --git a/components/camel-aws2-cw/src/generated/resources/org/apache/camel/component/aws2/cw/aws2-cw.json b/components/camel-aws2-cw/src/generated/resources/org/apache/camel/component/aws2/cw/aws2-cw.json
index 96e06df..68caf70 100644
--- a/components/camel-aws2-cw/src/generated/resources/org/apache/camel/component/aws2/cw/aws2-cw.json
+++ b/components/camel-aws2-cw/src/generated/resources/org/apache/camel/component/aws2/cw/aws2-cw.json
@@ -20,9 +20,17 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonCwClient": { "kind": "property", "displayName": "Amazon Cw Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "To use the AmazonCloudWatch as the client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "name": { "kind": "property", "displayName": "Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric name" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the CW client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the CW client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the CW client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which CW client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "timestamp": { "kind": "property", "displayName": "Timestamp", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.time.Instant", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric timestamp" },
+    "unit": { "kind": "property", "displayName": "Unit", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric unit" },
+    "value": { "kind": "property", "displayName": "Value", "group": "producer", "label": "", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric value" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.cw.Cw2Configuration", "deprecated": false, "secret": false, "description": "The AWS CW default configuration" }
   },
diff --git a/components/camel-aws2-cw/src/main/docs/aws2-cw-component.adoc b/components/camel-aws2-cw/src/main/docs/aws2-cw-component.adoc
index 615b1a9..69468e3 100644
--- a/components/camel-aws2-cw/src/main/docs/aws2-cw-component.adoc
+++ b/components/camel-aws2-cw/src/main/docs/aws2-cw-component.adoc
@@ -38,7 +38,7 @@ The metrics will be created if they don't already exists. +
 
 
 // component options: START
-The AWS 2 CloudWatch component supports 6 options, which are listed below.
+The AWS 2 CloudWatch component supports 14 options, which are listed below.
 
 
 
@@ -46,9 +46,17 @@ The AWS 2 CloudWatch component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonCwClient* (producer) | To use the AmazonCloudWatch as the client |  | CloudWatchClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *name* (producer) | The metric name |  | String
+| *proxyHost* (producer) | To define a proxy host when instantiating the CW client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the CW client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the CW client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which CW client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *timestamp* (producer) | The metric timestamp |  | Instant
+| *unit* (producer) | The metric unit |  | String
+| *value* (producer) | The metric value |  | Double
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS CW default configuration |  | Cw2Configuration
 |===
diff --git a/components/camel-aws2-ddb/src/generated/java/org/apache/camel/component/aws2/ddb/Ddb2ComponentConfigurer.java b/components/camel-aws2-ddb/src/generated/java/org/apache/camel/component/aws2/ddb/Ddb2ComponentConfigurer.java
index bf278bd..4bf1ed8 100644
--- a/components/camel-aws2-ddb/src/generated/java/org/apache/camel/component/aws2/ddb/Ddb2ComponentConfigurer.java
+++ b/components/camel-aws2-ddb/src/generated/java/org/apache/camel/component/aws2/ddb/Ddb2ComponentConfigurer.java
@@ -11,17 +11,43 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Ddb2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.ddb.Ddb2Configuration getOrCreateConfiguration(Ddb2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.ddb.Ddb2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Ddb2Component target = (Ddb2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonddbclient":
+        case "amazonDDBClient": getOrCreateConfiguration(target).setAmazonDDBClient(property(camelContext, software.amazon.awssdk.services.dynamodb.DynamoDbClient.class, value)); return true;
+        case "consistentread":
+        case "consistentRead": getOrCreateConfiguration(target).setConsistentRead(property(camelContext, boolean.class, value)); return true;
+        case "keyattributename":
+        case "keyAttributeName": getOrCreateConfiguration(target).setKeyAttributeName(property(camelContext, java.lang.String.class, value)); return true;
+        case "keyattributetype":
+        case "keyAttributeType": getOrCreateConfiguration(target).setKeyAttributeType(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.ddb.Ddb2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
+        case "readcapacity":
+        case "readCapacity": getOrCreateConfiguration(target).setReadCapacity(property(camelContext, java.lang.Long.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "writecapacity":
+        case "writeCapacity": getOrCreateConfiguration(target).setWriteCapacity(property(camelContext, java.lang.Long.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.ddb.Ddb2Configuration.class, value)); return true;
diff --git a/components/camel-aws2-ddb/src/generated/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponentConfigurer.java b/components/camel-aws2-ddb/src/generated/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponentConfigurer.java
index 3e6e657..db0ad3a 100644
--- a/components/camel-aws2-ddb/src/generated/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponentConfigurer.java
+++ b/components/camel-aws2-ddb/src/generated/java/org/apache/camel/component/aws2/ddbstream/Ddb2StreamComponentConfigurer.java
@@ -11,17 +11,38 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Ddb2StreamComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration getOrCreateConfiguration(Ddb2StreamComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Ddb2StreamComponent target = (Ddb2StreamComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazondynamodbstreamsclient":
+        case "amazonDynamoDbStreamsClient": getOrCreateConfiguration(target).setAmazonDynamoDbStreamsClient(property(camelContext, software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "iteratortype":
+        case "iteratorType": getOrCreateConfiguration(target).setIteratorType(property(camelContext, software.amazon.awssdk.services.dynamodb.model.ShardIteratorType.class, value)); return true;
+        case "maxresultsperrequest":
+        case "maxResultsPerRequest": getOrCreateConfiguration(target).setMaxResultsPerRequest(property(camelContext, int.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "sequencenumberprovider":
+        case "sequenceNumberProvider": getOrCreateConfiguration(target).setSequenceNumberProvider(property(camelContext, org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration.class, value)); return true;
diff --git a/components/camel-aws2-ddb/src/generated/resources/org/apache/camel/component/aws2/ddb/aws2-ddb.json b/components/camel-aws2-ddb/src/generated/resources/org/apache/camel/component/aws2/ddb/aws2-ddb.json
index 60bce58..ae79d88 100644
--- a/components/camel-aws2-ddb/src/generated/resources/org/apache/camel/component/aws2/ddb/aws2-ddb.json
+++ b/components/camel-aws2-ddb/src/generated/resources/org/apache/camel/component/aws2/ddb/aws2-ddb.json
@@ -20,9 +20,19 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonDDBClient": { "kind": "property", "displayName": "Amazon DDBClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.dynamodb.DynamoDbClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "To use the AmazonDynamoDB as the client" },
+    "consistentRead": { "kind": "property", "displayName": "Consistent Read", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Determines whether or not strong consistency should be enforced when data is read." },
+    "keyAttributeName": { "kind": "property", "displayName": "Key Attribute Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Attribute name when creating table" },
+    "keyAttributeType": { "kind": "property", "displayName": "Key Attribute Type", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Attribute type when creating table" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ddb.Ddb2Operations", "enum": [ "BatchGetItems", "DeleteItem", "DeleteTable", "DescribeTable", "GetItem", "PutItem", "Query", "Scan", "UpdateItem", "UpdateTable" ], "deprecated": false, "secret": false, "defaultValue": "PutItem", "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", " [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the DDB client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "The region in which DynamoDB client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for e [...]
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the DDB client" },
+    "readCapacity": { "kind": "property", "displayName": "Read Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "The provisioned throughput to reserve for reading resources from your table" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which DDB client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "writeCapacity": { "kind": "property", "displayName": "Write Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "The provisioned throughput to reserved for writing resources to your table" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "deprecated": false, "secret": false, "description": "The AWS DDB default configuration" }
   },
diff --git a/components/camel-aws2-ddb/src/generated/resources/org/apache/camel/component/aws2/ddbstream/aws2-ddbstream.json b/components/camel-aws2-ddb/src/generated/resources/org/apache/camel/component/aws2/ddbstream/aws2-ddbstream.json
index 90df41b..8310350 100644
--- a/components/camel-aws2-ddb/src/generated/resources/org/apache/camel/component/aws2/ddbstream/aws2-ddbstream.json
+++ b/components/camel-aws2-ddb/src/generated/resources/org/apache/camel/component/aws2/ddbstream/aws2-ddbstream.json
@@ -20,9 +20,16 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonDynamoDbStreamsClient": { "kind": "property", "displayName": "Amazon Dynamo Db Streams Client", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "configurationField": "configuration", "description": "Amazon DynamoDB client to use for al [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "iteratorType": { "kind": "property", "displayName": "Iterator Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.dynamodb.model.ShardIteratorType", "enum": [ "TRIM_HORIZON", "LATEST", "AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER", "null" ], "deprecated": false, "secret": false, "defaultValue": "LATEST", "configurationClass": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "configurat [...]
+    "maxResultsPerRequest": { "kind": "property", "displayName": "Max Results Per Request", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "configurationField": "configuration", "description": "Maximum number of records that will be fetched in each poll" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the DDBStreams client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the DDBStreams client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the DDBSt [...]
     "region": { "kind": "property", "displayName": "Region", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "sequenceNumberProvider": { "kind": "property", "displayName": "Sequence Number Provider", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "configurationField": "configuration", "description": "Provider for the sequence number when using one of the [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration", "deprecated": false, "secret": false, "description": "The AWS DDB stream default configuration" }
   },
diff --git a/components/camel-aws2-ddb/src/main/docs/aws2-ddb-component.adoc b/components/camel-aws2-ddb/src/main/docs/aws2-ddb-component.adoc
index 3c92f91..e6d65a0 100644
--- a/components/camel-aws2-ddb/src/main/docs/aws2-ddb-component.adoc
+++ b/components/camel-aws2-ddb/src/main/docs/aws2-ddb-component.adoc
@@ -35,7 +35,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 DynamoDB component supports 6 options, which are listed below.
+The AWS 2 DynamoDB component supports 16 options, which are listed below.
 
 
 
@@ -43,9 +43,19 @@ The AWS 2 DynamoDB component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonDDBClient* (producer) | To use the AmazonDynamoDB as the client |  | DynamoDbClient
+| *consistentRead* (producer) | Determines whether or not strong consistency should be enforced when data is read. | false | boolean
+| *keyAttributeName* (producer) | Attribute name when creating table |  | String
+| *keyAttributeType* (producer) | Attribute type when creating table |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | What operation to perform. The value can be one of: BatchGetItems, DeleteItem, DeleteTable, DescribeTable, GetItem, PutItem, Query, Scan, UpdateItem, UpdateTable | PutItem | Ddb2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the DDB client |  | String
+| *proxyPort* (producer) | The region in which DynamoDB client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the DDB client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *readCapacity* (producer) | The provisioned throughput to reserve for reading resources from your table |  | Long
 | *region* (producer) | The region in which DDB client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *writeCapacity* (producer) | The provisioned throughput to reserved for writing resources to your table |  | Long
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS DDB default configuration |  | Ddb2Configuration
 |===
diff --git a/components/camel-aws2-ddb/src/main/docs/aws2-ddbstream-component.adoc b/components/camel-aws2-ddb/src/main/docs/aws2-ddbstream-component.adoc
index fa8c508..3ccfb48 100644
--- a/components/camel-aws2-ddb/src/main/docs/aws2-ddbstream-component.adoc
+++ b/components/camel-aws2-ddb/src/main/docs/aws2-ddbstream-component.adoc
@@ -36,7 +36,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS 2 DynamoDB Streams component supports 6 options, which are listed below.
+The AWS 2 DynamoDB Streams component supports 13 options, which are listed below.
 
 
 
@@ -44,9 +44,16 @@ The AWS 2 DynamoDB Streams component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (consumer) | Amazon AWS Access Key |  | String
+| *amazonDynamoDbStreamsClient* (consumer) | Amazon DynamoDB client to use for all requests for this endpoint |  | DynamoDbStreamsClient
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *iteratorType* (consumer) | Defines where in the DynaboDB stream to start getting records. Note that using TRIM_HORIZON can cause a significant delay before the stream has caught up to real-time. if {AT,AFTER}_SEQUENCE_NUMBER are used, then a sequenceNumberProvider MUST be supplied. The value can be one of: TRIM_HORIZON, LATEST, AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, null | LATEST | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll |  | int
+| *proxyHost* (consumer) | To define a proxy host when instantiating the DDBStreams client |  | String
+| *proxyPort* (consumer) | To define a proxy port when instantiating the DDBStreams client |  | Integer
+| *proxyProtocol* (consumer) | To define a proxy protocol when instantiating the DDBStreams client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (consumer) | Amazon AWS Region |  | String
 | *secretKey* (consumer) | Amazon AWS Secret Key |  | String
+| *sequenceNumberProvider* (consumer) | Provider for the sequence number when using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER iterator types. Can be a registry reference or a literal sequence number. |  | SequenceNumberProvider
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS DDB stream default configuration |  | Ddb2StreamConfiguration
 |===
diff --git a/components/camel-aws2-ec2/src/generated/java/org/apache/camel/component/aws2/ec2/AWS2EC2ComponentConfigurer.java b/components/camel-aws2-ec2/src/generated/java/org/apache/camel/component/aws2/ec2/AWS2EC2ComponentConfigurer.java
index 49c48cf..81d9b79 100644
--- a/components/camel-aws2-ec2/src/generated/java/org/apache/camel/component/aws2/ec2/AWS2EC2ComponentConfigurer.java
+++ b/components/camel-aws2-ec2/src/generated/java/org/apache/camel/component/aws2/ec2/AWS2EC2ComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class AWS2EC2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.ec2.AWS2EC2Configuration getOrCreateConfiguration(AWS2EC2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.ec2.AWS2EC2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         AWS2EC2Component target = (AWS2EC2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonec2client":
+        case "amazonEc2Client": getOrCreateConfiguration(target).setAmazonEc2Client(property(camelContext, software.amazon.awssdk.services.ec2.Ec2Client.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.ec2.AWS2EC2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws2-ec2/src/generated/resources/org/apache/camel/component/aws2/ec2/aws2-ec2.json b/components/camel-aws2-ec2/src/generated/resources/org/apache/camel/component/aws2/ec2/aws2-ec2.json
index 1270383..c77b80d 100644
--- a/components/camel-aws2-ec2/src/generated/resources/org/apache/camel/component/aws2/ec2/aws2-ec2.json
+++ b/components/camel-aws2-ec2/src/generated/resources/org/apache/camel/component/aws2/ec2/aws2-ec2.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonEc2Client": { "kind": "property", "displayName": "Amazon Ec2 Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ec2.Ec2Client", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "To use a existing configured AmazonEC2Client as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.ec2.AWS2EC2Operations", "enum": [ "createAndRunInstances", "startInstances", "stopInstances", "terminateInstances", "describeInstances", "describeInstancesStatus", "rebootInstances", "monitorInstances", "unmonitorInstances", "createTags", "deleteTags" ], "deprecated": false, "deprecationNote": "", "se [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the EC2 client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the EC2 client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the EC2 client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which EC2 client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws2-ec2/src/main/docs/aws2-ec2-component.adoc b/components/camel-aws2-ec2/src/main/docs/aws2-ec2-component.adoc
index 8ef9ee7..8ae1468 100644
--- a/components/camel-aws2-ec2/src/main/docs/aws2-ec2-component.adoc
+++ b/components/camel-aws2-ec2/src/main/docs/aws2-ec2-component.adoc
@@ -35,7 +35,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 EC2 component supports 6 options, which are listed below.
+The AWS 2 EC2 component supports 11 options, which are listed below.
 
 
 
@@ -43,7 +43,12 @@ The AWS 2 EC2 component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonEc2Client* (producer) | To use a existing configured AmazonEC2Client as client |  | Ec2Client
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags. The value can be one of: createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags, deleteTag [...]
+| *proxyHost* (producer) | To define a proxy host when instantiating the EC2 client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the EC2 client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the EC2 client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which EC2 client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws2-ecs/src/generated/java/org/apache/camel/component/aws2/ecs/ECS2ComponentConfigurer.java b/components/camel-aws2-ecs/src/generated/java/org/apache/camel/component/aws2/ecs/ECS2ComponentConfigurer.java
index bebc16b..c99d830 100644
--- a/components/camel-aws2-ecs/src/generated/java/org/apache/camel/component/aws2/ecs/ECS2ComponentConfigurer.java
+++ b/components/camel-aws2-ecs/src/generated/java/org/apache/camel/component/aws2/ecs/ECS2ComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class ECS2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.ecs.ECS2Configuration getOrCreateConfiguration(ECS2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.ecs.ECS2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         ECS2Component target = (ECS2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "ecsclient":
+        case "ecsClient": getOrCreateConfiguration(target).setEcsClient(property(camelContext, software.amazon.awssdk.services.ecs.EcsClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.ecs.ECS2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws2-ecs/src/generated/resources/org/apache/camel/component/aws2/ecs/aws2-ecs.json b/components/camel-aws2-ecs/src/generated/resources/org/apache/camel/component/aws2/ecs/aws2-ecs.json
index 505aa70..0542102 100644
--- a/components/camel-aws2-ecs/src/generated/resources/org/apache/camel/component/aws2/ecs/aws2-ecs.json
+++ b/components/camel-aws2-ecs/src/generated/resources/org/apache/camel/component/aws2/ecs/aws2-ecs.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "ecsClient": { "kind": "property", "displayName": "Ecs Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ecs.EcsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS ECS as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.ecs.ECS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "The o [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the ECS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the ECS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the ECS client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which ECS client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws2-ecs/src/main/docs/aws2-ecs-component.adoc b/components/camel-aws2-ecs/src/main/docs/aws2-ecs-component.adoc
index b6d1e26..18f5523 100644
--- a/components/camel-aws2-ecs/src/main/docs/aws2-ecs-component.adoc
+++ b/components/camel-aws2-ecs/src/main/docs/aws2-ecs-component.adoc
@@ -38,7 +38,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 ECS component supports 6 options, which are listed below.
+The AWS 2 ECS component supports 11 options, which are listed below.
 
 
 
@@ -46,7 +46,12 @@ The AWS 2 ECS component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *ecsClient* (producer) | To use a existing configured AWS ECS as client |  | EcsClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listClusters, describeCluster, createCluster, deleteCluster |  | ECS2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the ECS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the ECS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the ECS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which ECS client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws2-eks/src/generated/java/org/apache/camel/component/aws2/eks/EKS2ComponentConfigurer.java b/components/camel-aws2-eks/src/generated/java/org/apache/camel/component/aws2/eks/EKS2ComponentConfigurer.java
index 5db5c99..4ee63b9 100644
--- a/components/camel-aws2-eks/src/generated/java/org/apache/camel/component/aws2/eks/EKS2ComponentConfigurer.java
+++ b/components/camel-aws2-eks/src/generated/java/org/apache/camel/component/aws2/eks/EKS2ComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class EKS2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.eks.EKS2Configuration getOrCreateConfiguration(EKS2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.eks.EKS2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         EKS2Component target = (EKS2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "eksclient":
+        case "eksClient": getOrCreateConfiguration(target).setEksClient(property(camelContext, software.amazon.awssdk.services.eks.EksClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.eks.EKS2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws2-eks/src/generated/resources/org/apache/camel/component/aws2/eks/aws2-eks.json b/components/camel-aws2-eks/src/generated/resources/org/apache/camel/component/aws2/eks/aws2-eks.json
index f5bf7cb..f39afb4 100644
--- a/components/camel-aws2-eks/src/generated/resources/org/apache/camel/component/aws2/eks/aws2-eks.json
+++ b/components/camel-aws2-eks/src/generated/resources/org/apache/camel/component/aws2/eks/aws2-eks.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "eksClient": { "kind": "property", "displayName": "Eks Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eks.EksClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS EKS as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eks.EKS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "The o [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the EKS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the EKS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the EKS client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which EKS client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws2-eks/src/main/docs/aws2-eks-component.adoc b/components/camel-aws2-eks/src/main/docs/aws2-eks-component.adoc
index 0ea5f52..3eaa29b 100644
--- a/components/camel-aws2-eks/src/main/docs/aws2-eks-component.adoc
+++ b/components/camel-aws2-eks/src/main/docs/aws2-eks-component.adoc
@@ -38,7 +38,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 EKS component supports 6 options, which are listed below.
+The AWS 2 EKS component supports 11 options, which are listed below.
 
 
 
@@ -46,7 +46,12 @@ The AWS 2 EKS component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *eksClient* (producer) | To use a existing configured AWS EKS as client |  | EksClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listClusters, describeCluster, createCluster, deleteCluster |  | EKS2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the EKS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the EKS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the EKS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which EKS client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws2-iam/src/generated/java/org/apache/camel/component/aws2/iam/IAM2ComponentConfigurer.java b/components/camel-aws2-iam/src/generated/java/org/apache/camel/component/aws2/iam/IAM2ComponentConfigurer.java
index c51c1e0..fb78234 100644
--- a/components/camel-aws2-iam/src/generated/java/org/apache/camel/component/aws2/iam/IAM2ComponentConfigurer.java
+++ b/components/camel-aws2-iam/src/generated/java/org/apache/camel/component/aws2/iam/IAM2ComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class IAM2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.iam.IAM2Configuration getOrCreateConfiguration(IAM2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.iam.IAM2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         IAM2Component target = (IAM2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "iamclient":
+        case "iamClient": getOrCreateConfiguration(target).setIamClient(property(camelContext, software.amazon.awssdk.services.iam.IamClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.iam.IAM2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws2-iam/src/generated/resources/org/apache/camel/component/aws2/iam/aws2-iam.json b/components/camel-aws2-iam/src/generated/resources/org/apache/camel/component/aws2/iam/aws2-iam.json
index b6834bd..18e4071 100644
--- a/components/camel-aws2-iam/src/generated/resources/org/apache/camel/component/aws2/iam/aws2-iam.json
+++ b/components/camel-aws2-iam/src/generated/resources/org/apache/camel/component/aws2/iam/aws2-iam.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "iamClient": { "kind": "property", "displayName": "Iam Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.iam.IamClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS IAM as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.iam.IAM2Operations", "enum": [ "listAccessKeys", "createUser", "deleteUser", "getUser", "listUsers", "createAccessKey", "deleteAccessKey", "updateAccessKey", "createGroup", "deleteGroup", "listGroups", "addUserToGroup", "removeUserFromGroup" ], "deprecated": false, "deprecationNote": "", "secret": fal [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the IAM client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the IAM client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the IAM client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which IAM client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws2-iam/src/main/docs/aws2-iam-component.adoc b/components/camel-aws2-iam/src/main/docs/aws2-iam-component.adoc
index ed1bf61..3a51d76 100644
--- a/components/camel-aws2-iam/src/main/docs/aws2-iam-component.adoc
+++ b/components/camel-aws2-iam/src/main/docs/aws2-iam-component.adoc
@@ -38,7 +38,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 IAM component supports 6 options, which are listed below.
+The AWS 2 IAM component supports 11 options, which are listed below.
 
 
 
@@ -46,7 +46,12 @@ The AWS 2 IAM component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *iamClient* (producer) | To use a existing configured AWS IAM as client |  | IamClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listAccessKeys, createUser, deleteUser, getUser, listUsers, createAccessKey, deleteAccessKey, updateAccessKey, createGroup, deleteGroup, listGroups, addUserToGroup, removeUserFromGroup |  | IAM2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the IAM client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the IAM client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the IAM client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which IAM client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws2-kms/src/generated/java/org/apache/camel/component/aws2/kms/KMS2ComponentConfigurer.java b/components/camel-aws2-kms/src/generated/java/org/apache/camel/component/aws2/kms/KMS2ComponentConfigurer.java
index de0f4bb..bcee094 100644
--- a/components/camel-aws2-kms/src/generated/java/org/apache/camel/component/aws2/kms/KMS2ComponentConfigurer.java
+++ b/components/camel-aws2-kms/src/generated/java/org/apache/camel/component/aws2/kms/KMS2ComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class KMS2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.kms.KMS2Configuration getOrCreateConfiguration(KMS2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.kms.KMS2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         KMS2Component target = (KMS2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "kmsclient":
+        case "kmsClient": getOrCreateConfiguration(target).setKmsClient(property(camelContext, software.amazon.awssdk.services.kms.KmsClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.kms.KMS2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws2-kms/src/generated/resources/org/apache/camel/component/aws2/kms/aws2-kms.json b/components/camel-aws2-kms/src/generated/resources/org/apache/camel/component/aws2/kms/aws2-kms.json
index b52f094..ada17fc 100644
--- a/components/camel-aws2-kms/src/generated/resources/org/apache/camel/component/aws2/kms/aws2-kms.json
+++ b/components/camel-aws2-kms/src/generated/resources/org/apache/camel/component/aws2/kms/aws2-kms.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "kmsClient": { "kind": "property", "displayName": "Kms Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kms.KmsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS KMS as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.kms.KMS2Operations", "enum": [ "listKeys", "createKey", "disableKey", "scheduleKeyDeletion", "describeKey", "enableKey" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration",  [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the KMS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the KMS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the KMS client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which KMS client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws2-kms/src/main/docs/aws2-kms-component.adoc b/components/camel-aws2-kms/src/main/docs/aws2-kms-component.adoc
index 69a6c2d..aa2cb9b 100644
--- a/components/camel-aws2-kms/src/main/docs/aws2-kms-component.adoc
+++ b/components/camel-aws2-kms/src/main/docs/aws2-kms-component.adoc
@@ -38,7 +38,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 KMS component supports 6 options, which are listed below.
+The AWS 2 KMS component supports 11 options, which are listed below.
 
 
 
@@ -46,7 +46,12 @@ The AWS 2 KMS component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *kmsClient* (producer) | To use a existing configured AWS KMS as client |  | KmsClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listKeys, createKey, disableKey, scheduleKeyDeletion, describeKey, enableKey |  | KMS2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the KMS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the KMS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the KMS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which KMS client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws2-lambda/src/generated/java/org/apache/camel/component/aws2/lambda/Lambda2ComponentConfigurer.java b/components/camel-aws2-lambda/src/generated/java/org/apache/camel/component/aws2/lambda/Lambda2ComponentConfigurer.java
index 9097b50..ecb2250 100644
--- a/components/camel-aws2-lambda/src/generated/java/org/apache/camel/component/aws2/lambda/Lambda2ComponentConfigurer.java
+++ b/components/camel-aws2-lambda/src/generated/java/org/apache/camel/component/aws2/lambda/Lambda2ComponentConfigurer.java
@@ -11,6 +11,13 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Lambda2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.lambda.Lambda2Configuration getOrCreateConfiguration(Lambda2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.lambda.Lambda2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Lambda2Component target = (Lambda2Component) obj;
@@ -19,12 +26,21 @@ public class Lambda2ComponentConfigurer extends PropertyConfigurerSupport implem
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.lambda.Lambda2Operations.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "awslambdaclient":
+        case "awsLambdaClient": getOrCreateConfiguration(target).setAwsLambdaClient(property(camelContext, software.amazon.awssdk.services.lambda.LambdaClient.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.lambda.Lambda2Configuration.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-aws2-lambda/src/generated/resources/org/apache/camel/component/aws2/lambda/aws2-lambda.json b/components/camel-aws2-lambda/src/generated/resources/org/apache/camel/component/aws2/lambda/aws2-lambda.json
index 1ce4221..55a956b 100644
--- a/components/camel-aws2-lambda/src/generated/resources/org/apache/camel/component/aws2/lambda/aws2-lambda.json
+++ b/components/camel-aws2-lambda/src/generated/resources/org/apache/camel/component/aws2/lambda/aws2-lambda.json
@@ -21,10 +21,15 @@
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.lambda.Lambda2Operations", "enum": [ "listFunctions", "getFunction", "createAlias", "deleteAlias", "getAlias", "listAliases", "createFunction", "deleteFunction", "invokeFunction", "updateFunction", "createEventSourceMapping", "deleteEventSourceMapping", "listEventSourceMapping", "listTags", "tagResource", "u [...]
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "awsLambdaClient": { "kind": "property", "displayName": "Aws Lambda Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.lambda.LambdaClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "To use a existing configured AwsLambdaClient as client" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "deprecated": false, "secret": false, "description": "The AWS Lambda default configuration" }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "deprecated": false, "secret": false, "description": "The AWS Lambda default configuration" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Lambda client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Lambda client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the Lambda client" }
   },
   "properties": {
     "function": { "kind": "path", "displayName": "Function", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Name of the Lambda function." },
diff --git a/components/camel-aws2-lambda/src/main/docs/aws2-lambda-component.adoc b/components/camel-aws2-lambda/src/main/docs/aws2-lambda-component.adoc
index 963a10d..993d235 100644
--- a/components/camel-aws2-lambda/src/main/docs/aws2-lambda-component.adoc
+++ b/components/camel-aws2-lambda/src/main/docs/aws2-lambda-component.adoc
@@ -37,7 +37,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS Lambda component supports 6 options, which are listed below.
+The AWS Lambda component supports 11 options, which are listed below.
 
 
 
@@ -46,10 +46,15 @@ The AWS Lambda component supports 6 options, which are listed below.
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction. The value can be one of: listFunctions, getFunction, createAlias, deleteAlias, getAlias, listAliases, createFunction, deleteFunction, invokeFunction, updateFunction, createEventSourceMapping, deleteEventSourceMapping, listEventSourceMapping, listTags, tagResource, untagResource, publishVersion, listVersions | invokeFunction | Lambda2Operations
 | *region* (producer) | Amazon AWS Region |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *awsLambdaClient* (advanced) | To use a existing configured AwsLambdaClient as client |  | LambdaClient
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS Lambda default configuration |  | Lambda2Configuration
+| *proxyHost* (proxy) | To define a proxy host when instantiating the Lambda client |  | String
+| *proxyPort* (proxy) | To define a proxy port when instantiating the Lambda client |  | Integer
+| *proxyProtocol* (proxy) | To define a proxy protocol when instantiating the Lambda client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 |===
 // component options: END
 
@@ -227,4 +232,4 @@ Maven users will need to add the following dependency to their pom.xml.
 where `$\{camel-version\}` must be replaced by the actual version of Camel.
 
 
-include::camel-spring-boot::page$aws2-lambda-starter.adoc[]
\ No newline at end of file
+include::camel-spring-boot::page$aws2-lambda-starter.adoc[]
diff --git a/components/camel-aws2-mq/src/generated/java/org/apache/camel/component/aws2/mq/MQ2ComponentConfigurer.java b/components/camel-aws2-mq/src/generated/java/org/apache/camel/component/aws2/mq/MQ2ComponentConfigurer.java
index 785ff91..751cb1b 100644
--- a/components/camel-aws2-mq/src/generated/java/org/apache/camel/component/aws2/mq/MQ2ComponentConfigurer.java
+++ b/components/camel-aws2-mq/src/generated/java/org/apache/camel/component/aws2/mq/MQ2ComponentConfigurer.java
@@ -11,14 +11,30 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class MQ2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.mq.MQ2Configuration getOrCreateConfiguration(MQ2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.mq.MQ2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         MQ2Component target = (MQ2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonmqclient":
+        case "amazonMqClient": getOrCreateConfiguration(target).setAmazonMqClient(property(camelContext, software.amazon.awssdk.services.mq.MqClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.mq.MQ2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws2-mq/src/generated/resources/org/apache/camel/component/aws2/mq/aws2-mq.json b/components/camel-aws2-mq/src/generated/resources/org/apache/camel/component/aws2/mq/aws2-mq.json
index 26b41e9..23fe9b0 100644
--- a/components/camel-aws2-mq/src/generated/resources/org/apache/camel/component/aws2/mq/aws2-mq.json
+++ b/components/camel-aws2-mq/src/generated/resources/org/apache/camel/component/aws2/mq/aws2-mq.json
@@ -20,7 +20,12 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonMqClient": { "kind": "property", "displayName": "Amazon Mq Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.mq.MqClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "To use a existing configured AmazonMQClient as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.mq.MQ2Operations", "enum": [ "listBrokers", "createBroker", "deleteBroker", "rebootBroker", "updateBroker", "describeBroker" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the MQ client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the MQ client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the MQ client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which MQ client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws2-mq/src/main/docs/aws2-mq-component.adoc b/components/camel-aws2-mq/src/main/docs/aws2-mq-component.adoc
index d4b545c..aea06e6 100644
--- a/components/camel-aws2-mq/src/main/docs/aws2-mq-component.adoc
+++ b/components/camel-aws2-mq/src/main/docs/aws2-mq-component.adoc
@@ -35,7 +35,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 MQ component supports 6 options, which are listed below.
+The AWS 2 MQ component supports 11 options, which are listed below.
 
 
 
@@ -43,7 +43,12 @@ The AWS 2 MQ component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonMqClient* (producer) | To use a existing configured AmazonMQClient as client |  | MqClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. It can be listBrokers,createBroker,deleteBroker. The value can be one of: listBrokers, createBroker, deleteBroker, rebootBroker, updateBroker, describeBroker |  | MQ2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the MQ client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the MQ client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the MQ client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which MQ client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws2-msk/src/generated/java/org/apache/camel/component/aws2/msk/MSK2ComponentConfigurer.java b/components/camel-aws2-msk/src/generated/java/org/apache/camel/component/aws2/msk/MSK2ComponentConfigurer.java
index 7377590..cc1ddf1 100644
--- a/components/camel-aws2-msk/src/generated/java/org/apache/camel/component/aws2/msk/MSK2ComponentConfigurer.java
+++ b/components/camel-aws2-msk/src/generated/java/org/apache/camel/component/aws2/msk/MSK2ComponentConfigurer.java
@@ -11,6 +11,13 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class MSK2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.msk.MSK2Configuration getOrCreateConfiguration(MSK2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.msk.MSK2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         MSK2Component target = (MSK2Component) obj;
@@ -19,6 +26,15 @@ public class MSK2ComponentConfigurer extends PropertyConfigurerSupport implement
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "mskclient":
+        case "mskClient": getOrCreateConfiguration(target).setMskClient(property(camelContext, software.amazon.awssdk.services.kafka.KafkaClient.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.msk.MSK2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws2-msk/src/generated/resources/org/apache/camel/component/aws2/msk/aws2-msk.json b/components/camel-aws2-msk/src/generated/resources/org/apache/camel/component/aws2/msk/aws2-msk.json
index 009e9a0..dcaaf93 100644
--- a/components/camel-aws2-msk/src/generated/resources/org/apache/camel/component/aws2/msk/aws2-msk.json
+++ b/components/camel-aws2-msk/src/generated/resources/org/apache/camel/component/aws2/msk/aws2-msk.json
@@ -21,6 +21,11 @@
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "mskClient": { "kind": "property", "displayName": "Msk Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kafka.KafkaClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS MSK as client" },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.msk.MSK2Operations", "enum": [ "listClusters", "createCluster", "deleteCluster", "describeCluster" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "The o [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the MSK client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the MSK client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the MSK client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which MSK client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws2-msk/src/main/docs/aws2-msk-component.adoc b/components/camel-aws2-msk/src/main/docs/aws2-msk-component.adoc
index 90e126c..b53db8d 100644
--- a/components/camel-aws2-msk/src/main/docs/aws2-msk-component.adoc
+++ b/components/camel-aws2-msk/src/main/docs/aws2-msk-component.adoc
@@ -38,7 +38,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 MSK component supports 6 options, which are listed below.
+The AWS 2 MSK component supports 11 options, which are listed below.
 
 
 
@@ -47,6 +47,11 @@ The AWS 2 MSK component supports 6 options, which are listed below.
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *mskClient* (producer) | To use a existing configured AWS MSK as client |  | KafkaClient
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: listClusters, createCluster, deleteCluster, describeCluster |  | MSK2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the MSK client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the MSK client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the MSK client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which MSK client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-aws2-ses/src/generated/java/org/apache/camel/component/aws2/ses/Ses2ComponentConfigurer.java b/components/camel-aws2-ses/src/generated/java/org/apache/camel/component/aws2/ses/Ses2ComponentConfigurer.java
index 12da437..9857448 100644
--- a/components/camel-aws2-ses/src/generated/java/org/apache/camel/component/aws2/ses/Ses2ComponentConfigurer.java
+++ b/components/camel-aws2-ses/src/generated/java/org/apache/camel/component/aws2/ses/Ses2ComponentConfigurer.java
@@ -11,17 +11,38 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Ses2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.ses.Ses2Configuration getOrCreateConfiguration(Ses2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.ses.Ses2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Ses2Component target = (Ses2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonsesclient":
+        case "amazonSESClient": getOrCreateConfiguration(target).setAmazonSESClient(property(camelContext, software.amazon.awssdk.services.ses.SesClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
+        case "replytoaddresses":
+        case "replyToAddresses": getOrCreateConfiguration(target).setReplyToAddresses(property(camelContext, java.util.List.class, value)); return true;
+        case "returnpath":
+        case "returnPath": getOrCreateConfiguration(target).setReturnPath(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "subject": getOrCreateConfiguration(target).setSubject(property(camelContext, java.lang.String.class, value)); return true;
+        case "to": getOrCreateConfiguration(target).setTo(property(camelContext, java.util.List.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.ses.Ses2Configuration.class, value)); return true;
diff --git a/components/camel-aws2-ses/src/generated/resources/org/apache/camel/component/aws2/ses/aws2-ses.json b/components/camel-aws2-ses/src/generated/resources/org/apache/camel/component/aws2/ses/aws2-ses.json
index 814c8d7..64cea92 100644
--- a/components/camel-aws2-ses/src/generated/resources/org/apache/camel/component/aws2/ses/aws2-ses.json
+++ b/components/camel-aws2-ses/src/generated/resources/org/apache/camel/component/aws2/ses/aws2-ses.json
@@ -20,9 +20,17 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonSESClient": { "kind": "property", "displayName": "Amazon SESClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ses.SesClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "To use the AmazonSimpleEmailService as the client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the SES client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the SES client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the SES client" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which SES client needs to work" },
+    "replyToAddresses": { "kind": "property", "displayName": "Reply To Addresses", "group": "producer", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header." },
+    "returnPath": { "kind": "property", "displayName": "Return Path", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header." },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "subject": { "kind": "property", "displayName": "Subject", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "The subject which is used if the message header 'CamelAwsSesSubject' is not present." },
+    "to": { "kind": "property", "displayName": "To", "group": "producer", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "List of destination email address. Can be overriden with 'CamelAwsSesTo' header." },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ses.Ses2Configuration", "deprecated": false, "secret": false, "description": "The AWS SES default configuration" }
   },
diff --git a/components/camel-aws2-ses/src/main/docs/aws2-ses-component.adoc b/components/camel-aws2-ses/src/main/docs/aws2-ses-component.adoc
index b1cc3b2..8a1e331 100644
--- a/components/camel-aws2-ses/src/main/docs/aws2-ses-component.adoc
+++ b/components/camel-aws2-ses/src/main/docs/aws2-ses-component.adoc
@@ -30,7 +30,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 Simple Email Service component supports 6 options, which are listed below.
+The AWS 2 Simple Email Service component supports 14 options, which are listed below.
 
 
 
@@ -38,9 +38,17 @@ The AWS 2 Simple Email Service component supports 6 options, which are listed be
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonSESClient* (producer) | To use the AmazonSimpleEmailService as the client |  | SesClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *proxyHost* (producer) | To define a proxy host when instantiating the SES client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the SES client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the SES client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which SES client needs to work |  | String
+| *replyToAddresses* (producer) | List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header. |  | List
+| *returnPath* (producer) | The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header. |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *subject* (producer) | The subject which is used if the message header 'CamelAwsSesSubject' is not present. |  | String
+| *to* (producer) | List of destination email address. Can be overriden with 'CamelAwsSesTo' header. |  | List
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS SES default configuration |  | Ses2Configuration
 |===
@@ -180,4 +188,4 @@ Maven users will need to add the following dependency to their pom.xml.
 where `$\{camel-version\}` must be replaced by the actual version of Camel.
 
 
-include::camel-spring-boot::page$aws2-ses-starter.adoc[]
\ No newline at end of file
+include::camel-spring-boot::page$aws2-ses-starter.adoc[]
diff --git a/components/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2ComponentConfigurer.java b/components/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2ComponentConfigurer.java
index 614f492..3af7f23 100644
--- a/components/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2ComponentConfigurer.java
+++ b/components/camel-aws2-sns/src/generated/java/org/apache/camel/component/aws2/sns/Sns2ComponentConfigurer.java
@@ -11,17 +11,46 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Sns2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.sns.Sns2Configuration getOrCreateConfiguration(Sns2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.sns.Sns2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Sns2Component target = (Sns2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonsnsclient":
+        case "amazonSNSClient": getOrCreateConfiguration(target).setAmazonSNSClient(property(camelContext, software.amazon.awssdk.services.sns.SnsClient.class, value)); return true;
+        case "autocreatetopic":
+        case "autoCreateTopic": getOrCreateConfiguration(target).setAutoCreateTopic(property(camelContext, boolean.class, value)); return true;
+        case "kmsmasterkeyid":
+        case "kmsMasterKeyId": getOrCreateConfiguration(target).setKmsMasterKeyId(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "messagestructure":
+        case "messageStructure": getOrCreateConfiguration(target).setMessageStructure(property(camelContext, java.lang.String.class, value)); return true;
+        case "policy": getOrCreateConfiguration(target).setPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
+        case "queueurl":
+        case "queueUrl": getOrCreateConfiguration(target).setQueueUrl(property(camelContext, java.lang.String.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "serversideencryptionenabled":
+        case "serverSideEncryptionEnabled": getOrCreateConfiguration(target).setServerSideEncryptionEnabled(property(camelContext, boolean.class, value)); return true;
+        case "subject": getOrCreateConfiguration(target).setSubject(property(camelContext, java.lang.String.class, value)); return true;
+        case "subscribesnstosqs":
+        case "subscribeSNStoSQS": getOrCreateConfiguration(target).setSubscribeSNStoSQS(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.sns.Sns2Configuration.class, value)); return true;
diff --git a/components/camel-aws2-sns/src/generated/resources/org/apache/camel/component/aws2/sns/aws2-sns.json b/components/camel-aws2-sns/src/generated/resources/org/apache/camel/component/aws2/sns/aws2-sns.json
index c93e29d..2746c29 100644
--- a/components/camel-aws2-sns/src/generated/resources/org/apache/camel/component/aws2/sns/aws2-sns.json
+++ b/components/camel-aws2-sns/src/generated/resources/org/apache/camel/component/aws2/sns/aws2-sns.json
@@ -20,9 +20,21 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonSNSClient": { "kind": "property", "displayName": "Amazon SNSClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "To use the AmazonSNS as the client" },
+    "autoCreateTopic": { "kind": "property", "displayName": "Auto Create Topic", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the topic" },
+    "kmsMasterKeyId": { "kind": "property", "displayName": "Kms Master Key Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "messageStructure": { "kind": "property", "displayName": "Message Structure", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The message structure to use such as json" },
+    "policy": { "kind": "property", "displayName": "Policy", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The policy for this queue" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the SNS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the SNS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the SNS client" },
+    "queueUrl": { "kind": "property", "displayName": "Queue Url", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The queueUrl to subscribe to" },
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which SNS client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "serverSideEncryptionEnabled": { "kind": "property", "displayName": "Server Side Encryption Enabled", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Define if Server Side Encryption is enabled or not on the topic" },
+    "subject": { "kind": "property", "displayName": "Subject", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The subject which is used if the message header 'CamelAwsSnsSubject' is not present." },
+    "subscribeSNStoSQS": { "kind": "property", "displayName": "Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Define if the subscription between SNS Topic and SQS must be done or not" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sns.Sns2Configuration", "deprecated": false, "secret": false, "description": "The AWS SNS default configuration" }
   },
diff --git a/components/camel-aws2-sns/src/main/docs/aws2-sns-component.adoc b/components/camel-aws2-sns/src/main/docs/aws2-sns-component.adoc
index 439cdb1..5dbad889 100644
--- a/components/camel-aws2-sns/src/main/docs/aws2-sns-component.adoc
+++ b/components/camel-aws2-sns/src/main/docs/aws2-sns-component.adoc
@@ -41,7 +41,7 @@ The topic will be created if they don't already exists. +
 
 
 // component options: START
-The AWS 2 Simple Notification System component supports 6 options, which are listed below.
+The AWS 2 Simple Notification System component supports 18 options, which are listed below.
 
 
 
@@ -49,9 +49,21 @@ The AWS 2 Simple Notification System component supports 6 options, which are lis
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonSNSClient* (producer) | To use the AmazonSNS as the client |  | SnsClient
+| *autoCreateTopic* (producer) | Setting the autocreation of the topic | true | boolean
+| *kmsMasterKeyId* (producer) | The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK. |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *messageStructure* (producer) | The message structure to use such as json |  | String
+| *policy* (producer) | The policy for this queue |  | String
+| *proxyHost* (producer) | To define a proxy host when instantiating the SNS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the SNS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the SNS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *queueUrl* (producer) | The queueUrl to subscribe to |  | String
 | *region* (producer) | The region in which SNS client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *serverSideEncryptionEnabled* (producer) | Define if Server Side Encryption is enabled or not on the topic | false | boolean
+| *subject* (producer) | The subject which is used if the message header 'CamelAwsSnsSubject' is not present. |  | String
+| *subscribeSNStoSQS* (producer) | Define if the subscription between SNS Topic and SQS must be done or not | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS SNS default configuration |  | Sns2Configuration
 |===
diff --git a/components/camel-aws2-sqs/src/generated/java/org/apache/camel/component/aws2/sqs/Sqs2ComponentConfigurer.java b/components/camel-aws2-sqs/src/generated/java/org/apache/camel/component/aws2/sqs/Sqs2ComponentConfigurer.java
index ebcc415..8524ee1 100644
--- a/components/camel-aws2-sqs/src/generated/java/org/apache/camel/component/aws2/sqs/Sqs2ComponentConfigurer.java
+++ b/components/camel-aws2-sqs/src/generated/java/org/apache/camel/component/aws2/sqs/Sqs2ComponentConfigurer.java
@@ -11,22 +11,88 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Sqs2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.sqs.Sqs2Configuration getOrCreateConfiguration(Sqs2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.sqs.Sqs2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Sqs2Component target = (Sqs2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonawshost":
+        case "amazonAWSHost": getOrCreateConfiguration(target).setAmazonAWSHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonsqsclient":
+        case "amazonSQSClient": getOrCreateConfiguration(target).setAmazonSQSClient(property(camelContext, software.amazon.awssdk.services.sqs.SqsClient.class, value)); return true;
+        case "autocreatequeue":
+        case "autoCreateQueue": getOrCreateConfiguration(target).setAutoCreateQueue(property(camelContext, boolean.class, value)); return true;
+        case "protocol": getOrCreateConfiguration(target).setProtocol(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
+        case "queueownerawsaccountid":
+        case "queueOwnerAWSAccountId": getOrCreateConfiguration(target).setQueueOwnerAWSAccountId(property(camelContext, java.lang.String.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "attributenames":
+        case "attributeNames": getOrCreateConfiguration(target).setAttributeNames(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "concurrentconsumers":
+        case "concurrentConsumers": getOrCreateConfiguration(target).setConcurrentConsumers(property(camelContext, int.class, value)); return true;
+        case "defaultvisibilitytimeout":
+        case "defaultVisibilityTimeout": getOrCreateConfiguration(target).setDefaultVisibilityTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "deleteafterread":
+        case "deleteAfterRead": getOrCreateConfiguration(target).setDeleteAfterRead(property(camelContext, boolean.class, value)); return true;
+        case "deleteiffiltered":
+        case "deleteIfFiltered": getOrCreateConfiguration(target).setDeleteIfFiltered(property(camelContext, boolean.class, value)); return true;
+        case "extendmessagevisibility":
+        case "extendMessageVisibility": getOrCreateConfiguration(target).setExtendMessageVisibility(property(camelContext, boolean.class, value)); return true;
+        case "kmsdatakeyreuseperiodseconds":
+        case "kmsDataKeyReusePeriodSeconds": getOrCreateConfiguration(target).setKmsDataKeyReusePeriodSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "kmsmasterkeyid":
+        case "kmsMasterKeyId": getOrCreateConfiguration(target).setKmsMasterKeyId(property(camelContext, java.lang.String.class, value)); return true;
+        case "messageattributenames":
+        case "messageAttributeNames": getOrCreateConfiguration(target).setMessageAttributeNames(property(camelContext, java.lang.String.class, value)); return true;
+        case "serversideencryptionenabled":
+        case "serverSideEncryptionEnabled": getOrCreateConfiguration(target).setServerSideEncryptionEnabled(property(camelContext, boolean.class, value)); return true;
+        case "visibilitytimeout":
+        case "visibilityTimeout": getOrCreateConfiguration(target).setVisibilityTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "waittimeseconds":
+        case "waitTimeSeconds": getOrCreateConfiguration(target).setWaitTimeSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "delayseconds":
+        case "delaySeconds": getOrCreateConfiguration(target).setDelaySeconds(property(camelContext, java.lang.Integer.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "messagededuplicationidstrategy":
+        case "messageDeduplicationIdStrategy": getOrCreateConfiguration(target).setMessageDeduplicationIdStrategy(property(camelContext, org.apache.camel.component.aws2.sqs.MessageDeduplicationIdStrategy.class, value)); return true;
+        case "messagegroupidstrategy":
+        case "messageGroupIdStrategy": getOrCreateConfiguration(target).setMessageGroupIdStrategy(property(camelContext, org.apache.camel.component.aws2.sqs.MessageGroupIdStrategy.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.sqs.Sqs2Operations.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.sqs.Sqs2Configuration.class, value)); return true;
+        case "delayqueue":
+        case "delayQueue": getOrCreateConfiguration(target).setDelayQueue(property(camelContext, boolean.class, value)); return true;
+        case "queueurl":
+        case "queueUrl": getOrCreateConfiguration(target).setQueueUrl(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "maximummessagesize":
+        case "maximumMessageSize": getOrCreateConfiguration(target).setMaximumMessageSize(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "messageretentionperiod":
+        case "messageRetentionPeriod": getOrCreateConfiguration(target).setMessageRetentionPeriod(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "policy": getOrCreateConfiguration(target).setPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "receivemessagewaittimeseconds":
+        case "receiveMessageWaitTimeSeconds": getOrCreateConfiguration(target).setReceiveMessageWaitTimeSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "redrivepolicy":
+        case "redrivePolicy": getOrCreateConfiguration(target).setRedrivePolicy(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-aws2-sqs/src/generated/resources/org/apache/camel/component/aws2/sqs/aws2-sqs.json b/components/camel-aws2-sqs/src/generated/resources/org/apache/camel/component/aws2/sqs/aws2-sqs.json
index 5c14149..bd499dd 100644
--- a/components/camel-aws2-sqs/src/generated/resources/org/apache/camel/component/aws2/sqs/aws2-sqs.json
+++ b/components/camel-aws2-sqs/src/generated/resources/org/apache/camel/component/aws2/sqs/aws2-sqs.json
@@ -20,12 +20,43 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonAWSHost": { "kind": "property", "displayName": "Amazon AWSHost", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "amazonaws.com", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The hostname of the Amazon AWS cloud." },
+    "amazonSQSClient": { "kind": "property", "displayName": "Amazon SQSClient", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sqs.SqsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "To use the AmazonSQS as client" },
+    "autoCreateQueue": { "kind": "property", "displayName": "Auto Create Queue", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the queue" },
+    "protocol": { "kind": "property", "displayName": "Protocol", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The underlying protocol used to communicate with SQS" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the SQS client" },
+    "queueOwnerAWSAccountId": { "kind": "property", "displayName": "Queue Owner AWSAccount Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Specify the queue owner aws account id when you need to connect the queue with different account owner." },
     "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL." },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "attributeNames": { "kind": "property", "displayName": "Attribute Names", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "A list of attribute names to receive when consuming. Multiple names can be separated by comma." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Allows you to use multiple threads to poll the sqs queue to increase throughput" },
+    "defaultVisibilityTimeout": { "kind": "property", "displayName": "Default Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The default visibility timeout (in seconds)" },
+    "deleteAfterRead": { "kind": "property", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Delete message from SQS after it has been read" },
+    "deleteIfFiltered": { "kind": "property", "displayName": "Delete If Filtered", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Whether or not to send the DeleteMessage to the SQS queue if an exchange fails to get through a filter. If 'fa [...]
+    "extendMessageVisibility": { "kind": "property", "displayName": "Extend Message Visibility", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "If enabled then a scheduled background task will keep extending the message visibility on SQS. Th [...]
+    "kmsDataKeyReusePeriodSeconds": { "kind": "property", "displayName": "Kms Data Key Reuse Period Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt m [...]
+    "kmsMasterKeyId": { "kind": "property", "displayName": "Kms Master Key Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK." },
+    "messageAttributeNames": { "kind": "property", "displayName": "Message Attribute Names", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "A list of message attribute names to receive when consuming. Multiple names can be separated by comma." },
+    "serverSideEncryptionEnabled": { "kind": "property", "displayName": "Server Side Encryption Enabled", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Define if Server Side Encryption is enabled or not on the queue" },
+    "visibilityTimeout": { "kind": "property", "displayName": "Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by  [...]
+    "waitTimeSeconds": { "kind": "property", "displayName": "Wait Time Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the  [...]
+    "delaySeconds": { "kind": "property", "displayName": "Delay Seconds", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Delay sending messages for a number of seconds." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "messageDeduplicationIdStrategy": { "kind": "property", "displayName": "Message Deduplication Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sqs.MessageDeduplicationIdStrategy", "enum": [ "useExchangeId", "useContentBasedDeduplication" ], "deprecated": false, "secret": false, "defaultValue": "useExchangeId", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configu [...]
+    "messageGroupIdStrategy": { "kind": "property", "displayName": "Message Group Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sqs.MessageGroupIdStrategy", "enum": [ "useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Only fo [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sqs.Sqs2Operations", "enum": [ "sendBatchMessage", "deleteMessage", "listQueues" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The operation to do in case the user don't wa [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "deprecated": false, "secret": false, "description": "The AWS SQS default configuration" }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "deprecated": false, "secret": false, "description": "The AWS SQS default configuration" },
+    "delayQueue": { "kind": "property", "displayName": "Delay Queue", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Define if you want to apply delaySeconds option to the queue or on single messages" },
+    "queueUrl": { "kind": "property", "displayName": "Queue Url", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the SQS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the SQS client" },
+    "maximumMessageSize": { "kind": "property", "displayName": "Maximum Message Size", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The maximumMessageSize (in bytes) an SQS message can contain for this queue." },
+    "messageRetentionPeriod": { "kind": "property", "displayName": "Message Retention Period", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue." },
+    "policy": { "kind": "property", "displayName": "Policy", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The policy for this queue" },
+    "receiveMessageWaitTimeSeconds": { "kind": "property", "displayName": "Receive Message Wait Time Seconds", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSecond [...]
+    "redrivePolicy": { "kind": "property", "displayName": "Redrive Policy", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Specify the policy that send message to DeadLetter queue. See detail at Amazon docs." }
   },
   "properties": {
     "queueNameOrArn": { "kind": "path", "displayName": "Queue Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "Queue name or ARN" },
diff --git a/components/camel-aws2-sqs/src/main/docs/aws2-sqs-component.adoc b/components/camel-aws2-sqs/src/main/docs/aws2-sqs-component.adoc
index 47d0df9..b8f221f 100644
--- a/components/camel-aws2-sqs/src/main/docs/aws2-sqs-component.adoc
+++ b/components/camel-aws2-sqs/src/main/docs/aws2-sqs-component.adoc
@@ -36,7 +36,7 @@ The queue will be created if they don't already exists. +
 
 
 // component options: START
-The AWS 2 Simple Queue Service component supports 7 options, which are listed below.
+The AWS 2 Simple Queue Service component supports 38 options, which are listed below.
 
 
 
@@ -44,12 +44,43 @@ The AWS 2 Simple Queue Service component supports 7 options, which are listed be
 |===
 | Name | Description | Default | Type
 | *accessKey* (common) | Amazon AWS Access Key |  | String
+| *amazonAWSHost* (common) | The hostname of the Amazon AWS cloud. | amazonaws.com | String
+| *amazonSQSClient* (common) | To use the AmazonSQS as client |  | SqsClient
+| *autoCreateQueue* (common) | Setting the autocreation of the queue | true | boolean
+| *protocol* (common) | The underlying protocol used to communicate with SQS | https | String
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the SQS client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *queueOwnerAWSAccountId* (common) | Specify the queue owner aws account id when you need to connect the queue with different account owner. |  | String
 | *region* (common) | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
+| *attributeNames* (consumer) | A list of attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *concurrentConsumers* (consumer) | Allows you to use multiple threads to poll the sqs queue to increase throughput | 1 | int
+| *defaultVisibilityTimeout* (consumer) | The default visibility timeout (in seconds) |  | Integer
+| *deleteAfterRead* (consumer) | Delete message from SQS after it has been read | true | boolean
+| *deleteIfFiltered* (consumer) | Whether or not to send the DeleteMessage to the SQS queue if an exchange fails to get through a filter. If 'false' and exchange does not make it through a Camel filter upstream in the route, then don't send DeleteMessage. | true | boolean
+| *extendMessageVisibility* (consumer) | If enabled then a scheduled background task will keep extending the message visibility on SQS. This is needed if it takes a long time to process the message. If set to true defaultVisibilityTimeout must be set. See details at Amazon docs. | false | boolean
+| *kmsDataKeyReusePeriodSeconds* (consumer) | The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes). |  | Integer
+| *kmsMasterKeyId* (consumer) | The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. |  | String
+| *messageAttributeNames* (consumer) | A list of message attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
+| *serverSideEncryptionEnabled* (consumer) | Define if Server Side Encryption is enabled or not on the queue | false | boolean
+| *visibilityTimeout* (consumer) | The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request to set in the com.amazonaws.services.sqs.model.SetQueueAttributesRequest. This only make sense if its different from defaultVisibilityTimeout. It changes the queue visibility timeout attribute permanently. |  | Integer
+| *waitTimeSeconds* (consumer) | Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the response. |  | Integer
+| *delaySeconds* (producer) | Delay sending messages for a number of seconds. |  | Integer
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *messageDeduplicationIdStrategy* (producer) | Only for FIFO queues. 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. The value can be one of: useExchangeId, useContentBasedDeduplication | useExchangeId | MessageDeduplicationIdStrategy
+| *messageGroupIdStrategy* (producer) | Only for FIFO queues. 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. The value can be one of: useConstant, useExchangeId, usePropertyValue |  | MessageGroupIdStrategy
+| *operation* (producer) | The operation to do in case the user don't want to send only a message. The value can be one of: sendBatchMessage, deleteMessage, listQueues |  | Sqs2Operations
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS SQS default configuration |  | Sqs2Configuration
+| *delayQueue* (advanced) | Define if you want to apply delaySeconds option to the queue or on single messages | false | boolean
+| *queueUrl* (advanced) | To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used, to connect to a mock implementation of SQS, for testing purposes. |  | String
+| *proxyHost* (proxy) | To define a proxy host when instantiating the SQS client |  | String
+| *proxyPort* (proxy) | To define a proxy port when instantiating the SQS client |  | Integer
+| *maximumMessageSize* (queue) | The maximumMessageSize (in bytes) an SQS message can contain for this queue. |  | Integer
+| *messageRetentionPeriod* (queue) | The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue. |  | Integer
+| *policy* (queue) | The policy for this queue |  | String
+| *receiveMessageWaitTimeSeconds* (queue) | If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait. |  | Integer
+| *redrivePolicy* (queue) | Specify the policy that send message to DeadLetter queue. See detail at Amazon docs. |  | String
 |===
 // component options: END
 
diff --git a/components/camel-aws2-translate/src/generated/java/org/apache/camel/component/aws2/translate/Translate2ComponentConfigurer.java b/components/camel-aws2-translate/src/generated/java/org/apache/camel/component/aws2/translate/Translate2ComponentConfigurer.java
index 7cc301d..d27da59 100644
--- a/components/camel-aws2-translate/src/generated/java/org/apache/camel/component/aws2/translate/Translate2ComponentConfigurer.java
+++ b/components/camel-aws2-translate/src/generated/java/org/apache/camel/component/aws2/translate/Translate2ComponentConfigurer.java
@@ -11,17 +11,39 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Translate2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.translate.Translate2Configuration getOrCreateConfiguration(Translate2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.translate.Translate2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Translate2Component target = (Translate2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "autodetectsourcelanguage":
+        case "autodetectSourceLanguage": getOrCreateConfiguration(target).setAutodetectSourceLanguage(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.translate.Translate2Operations.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "sourcelanguage":
+        case "sourceLanguage": getOrCreateConfiguration(target).setSourceLanguage(property(camelContext, java.lang.String.class, value)); return true;
+        case "targetlanguage":
+        case "targetLanguage": getOrCreateConfiguration(target).setTargetLanguage(property(camelContext, java.lang.String.class, value)); return true;
+        case "translateclient":
+        case "translateClient": getOrCreateConfiguration(target).setTranslateClient(property(camelContext, software.amazon.awssdk.services.translate.TranslateClient.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.translate.Translate2Configuration.class, value)); return true;
diff --git a/components/camel-aws2-translate/src/generated/resources/org/apache/camel/component/aws2/translate/aws2-translate.json b/components/camel-aws2-translate/src/generated/resources/org/apache/camel/component/aws2/translate/aws2-translate.json
index da82ab7..094da8d 100644
--- a/components/camel-aws2-translate/src/generated/resources/org/apache/camel/component/aws2/translate/aws2-translate.json
+++ b/components/camel-aws2-translate/src/generated/resources/org/apache/camel/component/aws2/translate/aws2-translate.json
@@ -20,9 +20,17 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "autodetectSourceLanguage": { "kind": "property", "displayName": "Autodetect Source Language", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Being able to autodetect the source language" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.translate.Translate2Operations", "enum": [ "translateText" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "translateText", "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": " [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Translate client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Translate client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the Trans [...]
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The region in which Translate client needs to work" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
+    "sourceLanguage": { "kind": "property", "displayName": "Source Language", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Source language to use" },
+    "targetLanguage": { "kind": "property", "displayName": "Target Language", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Target language to use" },
+    "translateClient": { "kind": "property", "displayName": "Translate Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.translate.TranslateClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS Translate as client" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.translate.Translate2Configuration", "deprecated": false, "secret": false, "description": "The AWS Translate default configuration" }
   },
diff --git a/components/camel-aws2-translate/src/main/docs/aws2-translate-component.adoc b/components/camel-aws2-translate/src/main/docs/aws2-translate-component.adoc
index 5073e57..67b4360 100644
--- a/components/camel-aws2-translate/src/main/docs/aws2-translate-component.adoc
+++ b/components/camel-aws2-translate/src/main/docs/aws2-translate-component.adoc
@@ -36,7 +36,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 Translate component supports 6 options, which are listed below.
+The AWS 2 Translate component supports 14 options, which are listed below.
 
 
 
@@ -44,9 +44,17 @@ The AWS 2 Translate component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *autodetectSourceLanguage* (producer) | Being able to autodetect the source language | false | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. The value can be one of: translateText | translateText | Translate2Operations
+| *proxyHost* (producer) | To define a proxy host when instantiating the Translate client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Translate client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Translate client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which Translate client needs to work |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
+| *sourceLanguage* (producer) | Source language to use |  | String
+| *targetLanguage* (producer) | Target language to use |  | String
+| *translateClient* (producer) | To use a existing configured AWS Translate as client |  | TranslateClient
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS Translate default configuration |  | Translate2Configuration
 |===
diff --git a/components/camel-azure/src/generated/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurer.java b/components/camel-azure/src/generated/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurer.java
index 45ff125..eb87608 100644
--- a/components/camel-azure/src/generated/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurer.java
+++ b/components/camel-azure/src/generated/java/org/apache/camel/component/azure/blob/BlobServiceComponentConfigurer.java
@@ -11,14 +11,49 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class BlobServiceComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.azure.blob.BlobServiceConfiguration getOrCreateConfiguration(BlobServiceComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.azure.blob.BlobServiceConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         BlobServiceComponent target = (BlobServiceComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "azureblobclient":
+        case "azureBlobClient": getOrCreateConfiguration(target).setAzureBlobClient(property(camelContext, com.microsoft.azure.storage.blob.CloudBlob.class, value)); return true;
+        case "bloboffset":
+        case "blobOffset": getOrCreateConfiguration(target).setBlobOffset(property(camelContext, java.lang.Long.class, value)); return true;
+        case "blobtype":
+        case "blobType": getOrCreateConfiguration(target).setBlobType(property(camelContext, org.apache.camel.component.azure.blob.BlobType.class, value)); return true;
+        case "closestreamafterread":
+        case "closeStreamAfterRead": getOrCreateConfiguration(target).setCloseStreamAfterRead(property(camelContext, boolean.class, value)); return true;
+        case "credentials": getOrCreateConfiguration(target).setCredentials(property(camelContext, com.microsoft.azure.storage.StorageCredentials.class, value)); return true;
+        case "datalength":
+        case "dataLength": getOrCreateConfiguration(target).setDataLength(property(camelContext, java.lang.Long.class, value)); return true;
+        case "filedir":
+        case "fileDir": getOrCreateConfiguration(target).setFileDir(property(camelContext, java.lang.String.class, value)); return true;
+        case "publicforread":
+        case "publicForRead": getOrCreateConfiguration(target).setPublicForRead(property(camelContext, boolean.class, value)); return true;
+        case "streamreadsize":
+        case "streamReadSize": getOrCreateConfiguration(target).setStreamReadSize(property(camelContext, int.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "blobmetadata":
+        case "blobMetadata": getOrCreateConfiguration(target).setBlobMetadata(property(camelContext, java.util.Map.class, value)); return true;
+        case "blobprefix":
+        case "blobPrefix": getOrCreateConfiguration(target).setBlobPrefix(property(camelContext, java.lang.String.class, value)); return true;
+        case "closestreamafterwrite":
+        case "closeStreamAfterWrite": getOrCreateConfiguration(target).setCloseStreamAfterWrite(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.azure.blob.BlobServiceOperations.class, value)); return true;
+        case "streamwritesize":
+        case "streamWriteSize": getOrCreateConfiguration(target).setStreamWriteSize(property(camelContext, int.class, value)); return true;
+        case "useflatlisting":
+        case "useFlatListing": getOrCreateConfiguration(target).setUseFlatListing(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.azure.blob.BlobServiceConfiguration.class, value)); return true;
diff --git a/components/camel-azure/src/generated/java/org/apache/camel/component/azure/queue/QueueServiceComponentConfigurer.java b/components/camel-azure/src/generated/java/org/apache/camel/component/azure/queue/QueueServiceComponentConfigurer.java
index 4d6249a..96d9837 100644
--- a/components/camel-azure/src/generated/java/org/apache/camel/component/azure/queue/QueueServiceComponentConfigurer.java
+++ b/components/camel-azure/src/generated/java/org/apache/camel/component/azure/queue/QueueServiceComponentConfigurer.java
@@ -11,14 +11,31 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class QueueServiceComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.azure.queue.QueueServiceConfiguration getOrCreateConfiguration(QueueServiceComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.azure.queue.QueueServiceConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         QueueServiceComponent target = (QueueServiceComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "azurequeueclient":
+        case "azureQueueClient": getOrCreateConfiguration(target).setAzureQueueClient(property(camelContext, com.microsoft.azure.storage.queue.CloudQueue.class, value)); return true;
+        case "credentials": getOrCreateConfiguration(target).setCredentials(property(camelContext, com.microsoft.azure.storage.StorageCredentials.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "messagetimetolive":
+        case "messageTimeToLive": getOrCreateConfiguration(target).setMessageTimeToLive(property(camelContext, int.class, value)); return true;
+        case "messagevisibilitydelay":
+        case "messageVisibilityDelay": getOrCreateConfiguration(target).setMessageVisibilityDelay(property(camelContext, int.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.azure.queue.QueueServiceOperations.class, value)); return true;
+        case "queueprefix":
+        case "queuePrefix": getOrCreateConfiguration(target).setQueuePrefix(property(camelContext, java.lang.String.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.azure.queue.QueueServiceConfiguration.class, value)); return true;
diff --git a/components/camel-azure/src/generated/resources/org/apache/camel/component/azure/blob/azure-blob.json b/components/camel-azure/src/generated/resources/org/apache/camel/component/azure/blob/azure-blob.json
index 383171a..690e4b3 100644
--- a/components/camel-azure/src/generated/resources/org/apache/camel/component/azure/blob/azure-blob.json
+++ b/components/camel-azure/src/generated/resources/org/apache/camel/component/azure/blob/azure-blob.json
@@ -19,8 +19,23 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "azureBlobClient": { "kind": "property", "displayName": "Azure Blob Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.microsoft.azure.storage.blob.CloudBlob", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "The blob service client" },
+    "blobOffset": { "kind": "property", "displayName": "Blob Offset", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set the blob offset for the upload or download operations, default is 0" },
+    "blobType": { "kind": "property", "displayName": "Blob Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.blob.BlobType", "enum": [ "blockblob", "appendblob", "pageblob" ], "deprecated": false, "secret": false, "defaultValue": "blockblob", "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set a blob type, 'blockblob' is de [...]
+    "closeStreamAfterRead": { "kind": "property", "displayName": "Close Stream After Read", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Close the stream after read or keep it open, default is true" },
+    "credentials": { "kind": "property", "displayName": "Credentials", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.microsoft.azure.storage.StorageCredentials", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set the storage credentials, required in most cases" },
+    "dataLength": { "kind": "property", "displayName": "Data Length", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set the data length for the download or page blob upload operations" },
+    "fileDir": { "kind": "property", "displayName": "File Dir", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set the file directory where the downloaded blobs will be saved to" },
+    "publicForRead": { "kind": "property", "displayName": "Public For Read", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Storage resources can be public for reading their content, if this property is enabled then the credentials do not hav [...]
+    "streamReadSize": { "kind": "property", "displayName": "Stream Read Size", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set the minimum read size in bytes when reading the blob content" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "blobMetadata": { "kind": "property", "displayName": "Blob Metadata", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set the blob meta-data" },
+    "blobPrefix": { "kind": "property", "displayName": "Blob Prefix", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set a prefix which can be used for listing the blobs" },
+    "closeStreamAfterWrite": { "kind": "property", "displayName": "Close Stream After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Close the stream after write or keep it open, default is true" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.blob.BlobServiceOperations", "enum": [ "getBlob", "deleteBlob", "listBlobs", "updateBlockBlob", "uploadBlobBlocks", "commitBlobBlockList", "getBlobBlockList", "createAppendBlob", "updateAppendBlob", "createPageBlob", "updatePageBlob", "resizePageBlob", "clearPageBlob", "getPageBlobRanges" ], "deprec [...]
+    "streamWriteSize": { "kind": "property", "displayName": "Stream Write Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Set the size of the buffer for writing block and page blocks" },
+    "useFlatListing": { "kind": "property", "displayName": "Use Flat Listing", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "configurationField": "configuration", "description": "Specify if the flat or hierarchical blob listing should be used" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.blob.BlobServiceConfiguration", "deprecated": false, "secret": false, "description": "The Blob Service configuration" }
   },
diff --git a/components/camel-azure/src/generated/resources/org/apache/camel/component/azure/queue/azure-queue.json b/components/camel-azure/src/generated/resources/org/apache/camel/component/azure/queue/azure-queue.json
index 87c9d8d..3e2876d 100644
--- a/components/camel-azure/src/generated/resources/org/apache/camel/component/azure/queue/azure-queue.json
+++ b/components/camel-azure/src/generated/resources/org/apache/camel/component/azure/queue/azure-queue.json
@@ -19,8 +19,14 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "azureQueueClient": { "kind": "property", "displayName": "Azure Queue Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.microsoft.azure.storage.queue.CloudQueue", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.queue.QueueServiceConfiguration", "configurationField": "configuration", "description": "The queue service client" },
+    "credentials": { "kind": "property", "displayName": "Credentials", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.microsoft.azure.storage.StorageCredentials", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.queue.QueueServiceConfiguration", "configurationField": "configuration", "description": "Set the storage credentials, required in most cases" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "messageTimeToLive": { "kind": "property", "displayName": "Message Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.queue.QueueServiceConfiguration", "configurationField": "configuration", "description": "Message Time To Live in seconds" },
+    "messageVisibilityDelay": { "kind": "property", "displayName": "Message Visibility Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.queue.QueueServiceConfiguration", "configurationField": "configuration", "description": "Message Visibility Delay in seconds" },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.queue.QueueServiceOperations", "enum": [ "listQueues", "createQueue", "deleteQueue", "addMessage", "retrieveMessage", "peekMessage", "updateMessage", "deleteMessage" ], "deprecated": false, "secret": false, "defaultValue": "listQueues", "configurationClass": "org.apache.camel.component.azure.queue.Q [...]
+    "queuePrefix": { "kind": "property", "displayName": "Queue Prefix", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.queue.QueueServiceConfiguration", "configurationField": "configuration", "description": "Set a prefix which can be used for listing the queues" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.queue.QueueServiceConfiguration", "deprecated": false, "secret": false, "description": "The Queue Service configuration" }
   },
diff --git a/components/camel-azure/src/main/docs/azure-blob-component.adoc b/components/camel-azure/src/main/docs/azure-blob-component.adoc
index 80edcec..bbdd31a 100644
--- a/components/camel-azure/src/main/docs/azure-blob-component.adoc
+++ b/components/camel-azure/src/main/docs/azure-blob-component.adoc
@@ -39,15 +39,30 @@ to("file://blobdirectory");
 
 
 // component options: START
-The Azure Storage Blob Service component supports 4 options, which are listed below.
+The Azure Storage Blob Service component supports 19 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *azureBlobClient* (common) | The blob service client |  | CloudBlob
+| *blobOffset* (common) | Set the blob offset for the upload or download operations, default is 0 | 0 | Long
+| *blobType* (common) | Set a blob type, 'blockblob' is default. The value can be one of: blockblob, appendblob, pageblob | blockblob | BlobType
+| *closeStreamAfterRead* (common) | Close the stream after read or keep it open, default is true | true | boolean
+| *credentials* (common) | Set the storage credentials, required in most cases |  | StorageCredentials
+| *dataLength* (common) | Set the data length for the download or page blob upload operations |  | Long
+| *fileDir* (common) | Set the file directory where the downloaded blobs will be saved to |  | String
+| *publicForRead* (common) | Storage resources can be public for reading their content, if this property is enabled then the credentials do not have to be set | false | boolean
+| *streamReadSize* (common) | Set the minimum read size in bytes when reading the blob content |  | int
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *blobMetadata* (producer) | Set the blob meta-data |  | Map
+| *blobPrefix* (producer) | Set a prefix which can be used for listing the blobs |  | String
+| *closeStreamAfterWrite* (producer) | Close the stream after write or keep it open, default is true | true | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | Blob service operation hint to the producer. The value can be one of: getBlob, deleteBlob, listBlobs, updateBlockBlob, uploadBlobBlocks, commitBlobBlockList, getBlobBlockList, createAppendBlob, updateAppendBlob, createPageBlob, updatePageBlob, resizePageBlob, clearPageBlob, getPageBlobRanges | listBlobs | BlobServiceOperations
+| *streamWriteSize* (producer) | Set the size of the buffer for writing block and page blocks |  | int
+| *useFlatListing* (producer) | Specify if the flat or hierarchical blob listing should be used | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The Blob Service configuration |  | BlobServiceConfiguration
 |===
diff --git a/components/camel-azure/src/main/docs/azure-queue-component.adoc b/components/camel-azure/src/main/docs/azure-queue-component.adoc
index bb5132c..483cead 100644
--- a/components/camel-azure/src/main/docs/azure-queue-component.adoc
+++ b/components/camel-azure/src/main/docs/azure-queue-component.adoc
@@ -39,15 +39,21 @@ to("file://queuedirectory");
 
 
 // component options: START
-The Azure Storage Queue Service component supports 4 options, which are listed below.
+The Azure Storage Queue Service component supports 10 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *azureQueueClient* (common) | The queue service client |  | CloudQueue
+| *credentials* (common) | Set the storage credentials, required in most cases |  | StorageCredentials
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *messageTimeToLive* (producer) | Message Time To Live in seconds |  | int
+| *messageVisibilityDelay* (producer) | Message Visibility Delay in seconds |  | int
+| *operation* (producer) | Queue service operation hint to the producer. The value can be one of: listQueues, createQueue, deleteQueue, addMessage, retrieveMessage, peekMessage, updateMessage, deleteMessage | listQueues | QueueServiceOperations
+| *queuePrefix* (producer) | Set a prefix which can be used for listing the queues |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The Queue Service configuration |  | QueueServiceConfiguration
 |===
diff --git a/components/camel-box/camel-box-component/src/generated/java/org/apache/camel/component/box/BoxComponentConfigurer.java b/components/camel-box/camel-box-component/src/generated/java/org/apache/camel/component/box/BoxComponentConfigurer.java
index 2be6734..08acacd 100644
--- a/components/camel-box/camel-box-component/src/generated/java/org/apache/camel/component/box/BoxComponentConfigurer.java
+++ b/components/camel-box/camel-box-component/src/generated/java/org/apache/camel/component/box/BoxComponentConfigurer.java
@@ -11,17 +11,54 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class BoxComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.box.BoxConfiguration getOrCreateConfiguration(BoxComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.box.BoxConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         BoxComponent target = (BoxComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "clientid":
+        case "clientId": getOrCreateConfiguration(target).setClientId(property(camelContext, java.lang.String.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.box.BoxConfiguration.class, value)); return true;
+        case "enterpriseid":
+        case "enterpriseId": getOrCreateConfiguration(target).setEnterpriseId(property(camelContext, java.lang.String.class, value)); return true;
+        case "userid":
+        case "userId": getOrCreateConfiguration(target).setUserId(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "httpparams":
+        case "httpParams": getOrCreateConfiguration(target).setHttpParams(property(camelContext, java.util.Map.class, value)); return true;
+        case "accesstokencache":
+        case "accessTokenCache": getOrCreateConfiguration(target).setAccessTokenCache(property(camelContext, com.box.sdk.IAccessTokenCache.class, value)); return true;
+        case "clientsecret":
+        case "clientSecret": getOrCreateConfiguration(target).setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "encryptionalgorithm":
+        case "encryptionAlgorithm": getOrCreateConfiguration(target).setEncryptionAlgorithm(property(camelContext, com.box.sdk.EncryptionAlgorithm.class, value)); return true;
+        case "maxcacheentries":
+        case "maxCacheEntries": getOrCreateConfiguration(target).setMaxCacheEntries(property(camelContext, int.class, value)); return true;
+        case "authenticationtype":
+        case "authenticationType": getOrCreateConfiguration(target).setAuthenticationType(property(camelContext, java.lang.String.class, value)); return true;
+        case "privatekeyfile":
+        case "privateKeyFile": getOrCreateConfiguration(target).setPrivateKeyFile(property(camelContext, java.lang.String.class, value)); return true;
+        case "privatekeypassword":
+        case "privateKeyPassword": getOrCreateConfiguration(target).setPrivateKeyPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "publickeyid":
+        case "publicKeyId": getOrCreateConfiguration(target).setPublicKeyId(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslcontextparameters":
+        case "sslContextParameters": getOrCreateConfiguration(target).setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
+        case "username":
+        case "userName": getOrCreateConfiguration(target).setUserName(property(camelContext, java.lang.String.class, value)); return true;
+        case "userpassword":
+        case "userPassword": getOrCreateConfiguration(target).setUserPassword(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-box/camel-box-component/src/generated/resources/org/apache/camel/component/box/box.json b/components/camel-box/camel-box-component/src/generated/resources/org/apache/camel/component/box/box.json
index 3fc1fe5..25443cb 100644
--- a/components/camel-box/camel-box-component/src/generated/resources/org/apache/camel/component/box/box.json
+++ b/components/camel-box/camel-box-component/src/generated/resources/org/apache/camel/component/box/box.json
@@ -19,10 +19,25 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.box.BoxConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Box application client ID" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.box.BoxConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "enterpriseId": { "kind": "property", "displayName": "Enterprise Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The enterprise ID to use for an App Enterprise." },
+    "userId": { "kind": "property", "displayName": "User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The user ID to use for an App User." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "httpParams": { "kind": "property", "displayName": "Http Params", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Custom HTTP params for settings like proxy host" },
+    "accessTokenCache": { "kind": "property", "displayName": "Access Token Cache", "group": "security", "label": "advanced,security", "required": false, "type": "object", "javaType": "com.box.sdk.IAccessTokenCache", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Custom Access Token Cache for storing and retrieving access tokens." },
+    "clientSecret": { "kind": "property", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Box application client secret" },
+    "encryptionAlgorithm": { "kind": "property", "displayName": "Encryption Algorithm", "group": "security", "label": "advanced,security", "required": false, "type": "object", "javaType": "com.box.sdk.EncryptionAlgorithm", "enum": [ "RSA_SHA_256", "RSA_SHA_384", "RSA_SHA_512" ], "deprecated": false, "secret": false, "defaultValue": "RSA_SHA_256", "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The type of enc [...]
+    "maxCacheEntries": { "kind": "property", "displayName": "Max Cache Entries", "group": "security", "label": "advanced,security", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The maximum number of access tokens in cache." },
+    "authenticationType": { "kind": "property", "displayName": "Authentication Type", "group": "authentication", "label": "authentication", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "APP_USER_AUTHENTICATION", "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The type of authentication for connection. Types of Authentication: STANDA [...]
+    "privateKeyFile": { "kind": "property", "displayName": "Private Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The private key for generating the JWT signature." },
+    "privateKeyPassword": { "kind": "property", "displayName": "Private Key Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The password for the private key." },
+    "publicKeyId": { "kind": "property", "displayName": "Public Key Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The ID for public key for validating the JWT signature." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Box user name, MUST be provided" },
+    "userPassword": { "kind": "property", "displayName": "User Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Box user password, MUST be provided if authSecureStorage is not set, or returns null on first call" }
   },
   "properties": {
     "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.box.internal.BoxApiName", "enum": [ "COLLABORATIONS", "COMMENTS", "EVENT_LOGS", "FILES", "FOLDERS", "GROUPS", "EVENTS", "SEARCH", "TASKS", "USERS" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", " [...]
diff --git a/components/camel-box/camel-box-component/src/main/docs/box-component.adoc b/components/camel-box/camel-box-component/src/main/docs/box-component.adoc
index 94e2353..9c281e1 100644
--- a/components/camel-box/camel-box-component/src/main/docs/box-component.adoc
+++ b/components/camel-box/camel-box-component/src/main/docs/box-component.adoc
@@ -52,17 +52,32 @@ The Box component supports three different types of authenticated connections.
 == Box Options
 
 // component options: START
-The Box component supports 4 options, which are listed below.
+The Box component supports 19 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *clientId* (common) | Box application client ID |  | String
 | *configuration* (common) | To use the shared configuration |  | BoxConfiguration
+| *enterpriseId* (common) | The enterprise ID to use for an App Enterprise. |  | String
+| *userId* (common) | The user ID to use for an App User. |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *httpParams* (advanced) | Custom HTTP params for settings like proxy host |  | Map
+| *accessTokenCache* (security) | Custom Access Token Cache for storing and retrieving access tokens. |  | IAccessTokenCache
+| *clientSecret* (security) | Box application client secret |  | String
+| *encryptionAlgorithm* (security) | The type of encryption algorithm for JWT. Supported Algorithms: RSA_SHA_256 RSA_SHA_384 RSA_SHA_512. The value can be one of: RSA_SHA_256, RSA_SHA_384, RSA_SHA_512 | RSA_SHA_256 | EncryptionAlgorithm
+| *maxCacheEntries* (security) | The maximum number of access tokens in cache. | 100 | int
+| *authenticationType* (authentication) | The type of authentication for connection. Types of Authentication: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - OAuth 2.0 with JSON Web Tokens | APP_USER_AUTHENTICATION | String
+| *privateKeyFile* (security) | The private key for generating the JWT signature. |  | String
+| *privateKeyPassword* (security) | The password for the private key. |  | String
+| *publicKeyId* (security) | The ID for public key for validating the JWT signature. |  | String
+| *sslContextParameters* (security) | To configure security using SSLContextParameters. |  | SSLContextParameters
+| *userName* (security) | Box user name, MUST be provided |  | String
+| *userPassword* (security) | Box user password, MUST be provided if authSecureStorage is not set, or returns null on first call |  | String
 |===
 // component options: END
 
diff --git a/components/camel-box/camel-box-component/src/main/java/org/apache/camel/component/box/BoxComponent.java b/components/camel-box/camel-box-component/src/main/java/org/apache/camel/component/box/BoxComponent.java
index c871ec7..a9a0757 100644
--- a/components/camel-box/camel-box-component/src/main/java/org/apache/camel/component/box/BoxComponent.java
+++ b/components/camel-box/camel-box-component/src/main/java/org/apache/camel/component/box/BoxComponent.java
@@ -29,6 +29,9 @@ import org.apache.camel.support.component.AbstractApiComponent;
 @Component("box")
 public class BoxComponent extends AbstractApiComponent<BoxApiName, BoxConfiguration, BoxApiCollection> {
 
+    @Metadata
+    BoxConfiguration configuration;
+
     @Metadata(label = "advanced")
     BoxAPIConnection boxConnection;
 
diff --git a/components/camel-braintree/src/generated/java/org/apache/camel/component/braintree/BraintreeComponentConfigurer.java b/components/camel-braintree/src/generated/java/org/apache/camel/component/braintree/BraintreeComponentConfigurer.java
index c9f8304..888a21a 100644
--- a/components/camel-braintree/src/generated/java/org/apache/camel/component/braintree/BraintreeComponentConfigurer.java
+++ b/components/camel-braintree/src/generated/java/org/apache/camel/component/braintree/BraintreeComponentConfigurer.java
@@ -11,19 +11,45 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class BraintreeComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.braintree.BraintreeConfiguration getOrCreateConfiguration(BraintreeComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.braintree.BraintreeConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         BraintreeComponent target = (BraintreeComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.braintree.BraintreeConfiguration.class, value)); return true;
+        case "environment": getOrCreateConfiguration(target).setEnvironment(property(camelContext, java.lang.String.class, value)); return true;
+        case "merchantid":
+        case "merchantId": getOrCreateConfiguration(target).setMerchantId(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "httpreadtimeout":
+        case "httpReadTimeout": getOrCreateConfiguration(target).setHttpReadTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "httploglevel":
+        case "httpLogLevel": getOrCreateConfiguration(target).setHttpLogLevel(property(camelContext, java.lang.String.class, value)); return true;
+        case "httplogname":
+        case "httpLogName": getOrCreateConfiguration(target).setHttpLogName(property(camelContext, java.lang.String.class, value)); return true;
         case "loghandlerenabled":
-        case "logHandlerEnabled": target.setLogHandlerEnabled(property(camelContext, boolean.class, value)); return true;
+        case "logHandlerEnabled": getOrCreateConfiguration(target).setLogHandlerEnabled(property(camelContext, boolean.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "accesstoken":
+        case "accessToken": getOrCreateConfiguration(target).setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "privatekey":
+        case "privateKey": getOrCreateConfiguration(target).setPrivateKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "publickey":
+        case "publicKey": getOrCreateConfiguration(target).setPublicKey(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-braintree/src/generated/resources/org/apache/camel/component/braintree/braintree.json b/components/camel-braintree/src/generated/resources/org/apache/camel/component/braintree/braintree.json
index 00bf4b2..3b5ebe5 100644
--- a/components/camel-braintree/src/generated/resources/org/apache/camel/component/braintree/braintree.json
+++ b/components/camel-braintree/src/generated/resources/org/apache/camel/component/braintree/braintree.json
@@ -20,10 +20,20 @@
   },
   "componentProperties": {
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.braintree.BraintreeConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "environment": { "kind": "property", "displayName": "Environment", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The environment Either SANDBOX or PRODUCTION" },
+    "merchantId": { "kind": "property", "displayName": "Merchant Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The merchant id provided by Braintree." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "logHandlerEnabled": { "kind": "property", "displayName": "Log Handler Enabled", "group": "logging", "label": "advanced,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Sets whether to enable the BraintreeLogHandler. It may be desirable to set this to false where an existing JUL - SLF4J logger bridge is on the classpath." }
+    "httpReadTimeout": { "kind": "property", "displayName": "Http Read Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "Set read timeout for http calls." },
+    "httpLogLevel": { "kind": "property", "displayName": "Http Log Level", "group": "logging", "label": "logging", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "Set logging level for http calls, see java.util.logging.Level" },
+    "httpLogName": { "kind": "property", "displayName": "Http Log Name", "group": "logging", "label": "logging", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "Braintree", "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "Set log category to use to log http calls." },
+    "logHandlerEnabled": { "kind": "property", "displayName": "Log Handler Enabled", "group": "logging", "label": "logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "Sets whether to enable the BraintreeLogHandler. It may be desirable to set this to 'false' where an exis [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The proxy host" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The proxy port" },
+    "accessToken": { "kind": "property", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The access token granted by a merchant to another in order to process transactions on their behalf. Used in place of environment, me [...]
+    "privateKey": { "kind": "property", "displayName": "Private Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The private key provided by Braintree." },
+    "publicKey": { "kind": "property", "displayName": "Public Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The public key provided by Braintree." }
   },
   "properties": {
     "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.braintree.internal.BraintreeApiName", "enum": [ "ADDON", "ADDRESS", "CLIENTTOKEN", "CREDITCARDVERIFICATION", "CUSTOMER", "DISCOUNT", "DISPUTE", "DOCUMENTUPLOAD", "MERCHANTACCOUNT", "PAYMENTMETHOD", "PAYMENTMETHODNONCE", "PLAN", "REPORT", "SETTLEMENTBATCHSUMMARY", "SUBSCRIPTION", "TRANSACTION", "WEBHOOKNOTIFICATION" ], "dep [...]
diff --git a/components/camel-braintree/src/main/docs/braintree-component.adoc b/components/camel-braintree/src/main/docs/braintree-component.adoc
index 2556376..0770ab3 100644
--- a/components/camel-braintree/src/main/docs/braintree-component.adoc
+++ b/components/camel-braintree/src/main/docs/braintree-component.adoc
@@ -40,7 +40,7 @@ for this component:
 
 
 // component options: START
-The Braintree component supports 5 options, which are listed below.
+The Braintree component supports 15 options, which are listed below.
 
 
 
@@ -48,10 +48,20 @@ The Braintree component supports 5 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | BraintreeConfiguration
+| *environment* (common) | The environment Either SANDBOX or PRODUCTION |  | String
+| *merchantId* (common) | The merchant id provided by Braintree. |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *logHandlerEnabled* (logging) | Sets whether to enable the BraintreeLogHandler. It may be desirable to set this to false where an existing JUL - SLF4J logger bridge is on the classpath. | true | boolean
+| *httpReadTimeout* (advanced) | Set read timeout for http calls. |  | Integer
+| *httpLogLevel* (logging) | Set logging level for http calls, see java.util.logging.Level |  | String
+| *httpLogName* (logging) | Set log category to use to log http calls. | Braintree | String
+| *logHandlerEnabled* (logging) | Sets whether to enable the BraintreeLogHandler. It may be desirable to set this to 'false' where an existing JUL - SLF4J logger bridge is on the classpath. This option can also be configured globally on the BraintreeComponent. | true | boolean
+| *proxyHost* (proxy) | The proxy host |  | String
+| *proxyPort* (proxy) | The proxy port |  | Integer
+| *accessToken* (security) | The access token granted by a merchant to another in order to process transactions on their behalf. Used in place of environment, merchant id, public key and private key fields. |  | String
+| *privateKey* (security) | The private key provided by Braintree. |  | String
+| *publicKey* (security) | The public key provided by Braintree. |  | String
 |===
 // component options: END
 
diff --git a/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/cache/CaffeineCacheComponentConfigurer.java b/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/cache/CaffeineCacheComponentConfigurer.java
index 02b5959..40336f3 100644
--- a/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/cache/CaffeineCacheComponentConfigurer.java
+++ b/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/cache/CaffeineCacheComponentConfigurer.java
@@ -11,15 +11,49 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class CaffeineCacheComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.caffeine.CaffeineConfiguration getOrCreateConfiguration(CaffeineCacheComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.caffeine.CaffeineConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         CaffeineCacheComponent target = (CaffeineCacheComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "action": getOrCreateConfiguration(target).setAction(property(camelContext, java.lang.String.class, value)); return true;
+        case "cache": getOrCreateConfiguration(target).setCache(property(camelContext, com.github.benmanes.caffeine.cache.Cache.class, value)); return true;
+        case "cacheloader":
+        case "cacheLoader": getOrCreateConfiguration(target).setCacheLoader(property(camelContext, com.github.benmanes.caffeine.cache.CacheLoader.class, value)); return true;
+        case "createcacheifnotexist":
+        case "createCacheIfNotExist": getOrCreateConfiguration(target).setCreateCacheIfNotExist(property(camelContext, boolean.class, value)); return true;
+        case "evictiontype":
+        case "evictionType": getOrCreateConfiguration(target).setEvictionType(property(camelContext, org.apache.camel.component.caffeine.EvictionType.class, value)); return true;
+        case "expireafteraccesstime":
+        case "expireAfterAccessTime": getOrCreateConfiguration(target).setExpireAfterAccessTime(property(camelContext, int.class, value)); return true;
+        case "expireafterwritetime":
+        case "expireAfterWriteTime": getOrCreateConfiguration(target).setExpireAfterWriteTime(property(camelContext, int.class, value)); return true;
+        case "initialcapacity":
+        case "initialCapacity": getOrCreateConfiguration(target).setInitialCapacity(property(camelContext, int.class, value)); return true;
+        case "key": getOrCreateConfiguration(target).setKey(property(camelContext, java.lang.Object.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "maximumsize":
+        case "maximumSize": getOrCreateConfiguration(target).setMaximumSize(property(camelContext, int.class, value)); return true;
+        case "removallistener":
+        case "removalListener": getOrCreateConfiguration(target).setRemovalListener(property(camelContext, com.github.benmanes.caffeine.cache.RemovalListener.class, value)); return true;
+        case "statscounter":
+        case "statsCounter": getOrCreateConfiguration(target).setStatsCounter(property(camelContext, com.github.benmanes.caffeine.cache.stats.StatsCounter.class, value)); return true;
+        case "statsenabled":
+        case "statsEnabled": getOrCreateConfiguration(target).setStatsEnabled(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.caffeine.CaffeineConfiguration.class, value)); return true;
+        case "keytype":
+        case "keyType": getOrCreateConfiguration(target).setKeyType(property(camelContext, java.lang.String.class, value)); return true;
+        case "valuetype":
+        case "valueType": getOrCreateConfiguration(target).setValueType(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheComponentConfigurer.java b/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheComponentConfigurer.java
index cd63d12..da46cd3 100644
--- a/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheComponentConfigurer.java
+++ b/components/camel-caffeine/src/generated/java/org/apache/camel/component/caffeine/load/CaffeineLoadCacheComponentConfigurer.java
@@ -11,15 +11,49 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class CaffeineLoadCacheComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.caffeine.CaffeineConfiguration getOrCreateConfiguration(CaffeineLoadCacheComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.caffeine.CaffeineConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         CaffeineLoadCacheComponent target = (CaffeineLoadCacheComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "action": getOrCreateConfiguration(target).setAction(property(camelContext, java.lang.String.class, value)); return true;
+        case "cache": getOrCreateConfiguration(target).setCache(property(camelContext, com.github.benmanes.caffeine.cache.Cache.class, value)); return true;
+        case "cacheloader":
+        case "cacheLoader": getOrCreateConfiguration(target).setCacheLoader(property(camelContext, com.github.benmanes.caffeine.cache.CacheLoader.class, value)); return true;
+        case "createcacheifnotexist":
+        case "createCacheIfNotExist": getOrCreateConfiguration(target).setCreateCacheIfNotExist(property(camelContext, boolean.class, value)); return true;
+        case "evictiontype":
+        case "evictionType": getOrCreateConfiguration(target).setEvictionType(property(camelContext, org.apache.camel.component.caffeine.EvictionType.class, value)); return true;
+        case "expireafteraccesstime":
+        case "expireAfterAccessTime": getOrCreateConfiguration(target).setExpireAfterAccessTime(property(camelContext, int.class, value)); return true;
+        case "expireafterwritetime":
+        case "expireAfterWriteTime": getOrCreateConfiguration(target).setExpireAfterWriteTime(property(camelContext, int.class, value)); return true;
+        case "initialcapacity":
+        case "initialCapacity": getOrCreateConfiguration(target).setInitialCapacity(property(camelContext, int.class, value)); return true;
+        case "key": getOrCreateConfiguration(target).setKey(property(camelContext, java.lang.Object.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "maximumsize":
+        case "maximumSize": getOrCreateConfiguration(target).setMaximumSize(property(camelContext, int.class, value)); return true;
+        case "removallistener":
+        case "removalListener": getOrCreateConfiguration(target).setRemovalListener(property(camelContext, com.github.benmanes.caffeine.cache.RemovalListener.class, value)); return true;
+        case "statscounter":
+        case "statsCounter": getOrCreateConfiguration(target).setStatsCounter(property(camelContext, com.github.benmanes.caffeine.cache.stats.StatsCounter.class, value)); return true;
+        case "statsenabled":
+        case "statsEnabled": getOrCreateConfiguration(target).setStatsEnabled(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.caffeine.CaffeineConfiguration.class, value)); return true;
+        case "keytype":
+        case "keyType": getOrCreateConfiguration(target).setKeyType(property(camelContext, java.lang.String.class, value)); return true;
+        case "valuetype":
+        case "valueType": getOrCreateConfiguration(target).setValueType(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-caffeine/src/generated/resources/org/apache/camel/component/caffeine/cache/caffeine-cache.json b/components/camel-caffeine/src/generated/resources/org/apache/camel/component/caffeine/cache/caffeine-cache.json
index b03ffa4..1270462 100644
--- a/components/camel-caffeine/src/generated/resources/org/apache/camel/component/caffeine/cache/caffeine-cache.json
+++ b/components/camel-caffeine/src/generated/resources/org/apache/camel/component/caffeine/cache/caffeine-cache.json
@@ -19,9 +19,24 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence." },
+    "cache": { "kind": "property", "displayName": "Cache", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.Cache", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure an already instantiated cache to be used" },
+    "cacheLoader": { "kind": "property", "displayName": "Cache Loader", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
+    "createCacheIfNotExist": { "kind": "property", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Configure if a cache need to be created if it does exist or can't be pre-configured." },
+    "evictionType": { "kind": "property", "displayName": "Eviction Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the eviction Type for thi [...]
+    "expireAfterAccessTime": { "kind": "property", "displayName": "Expire After Access Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "300", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Time in case of time based Eviction (in seconds)" },
+    "expireAfterWriteTime": { "kind": "property", "displayName": "Expire After Write Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "300", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Write in case of time based Eviction (in seconds)" },
+    "initialCapacity": { "kind": "property", "displayName": "Initial Capacity", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the initial Capacity for the cache" },
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "maximumSize": { "kind": "property", "displayName": "Maximum Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the maximum size for the cache" },
+    "removalListener": { "kind": "property", "displayName": "Removal Listener", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
+    "statsCounter": { "kind": "property", "displayName": "Stats Counter", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
+    "statsEnabled": { "kind": "property", "displayName": "Stats Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.CaffeineConfiguration", "deprecated": false, "secret": false, "description": "Sets the global component configuration" }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.CaffeineConfiguration", "deprecated": false, "secret": false, "description": "Sets the global component configuration" },
+    "keyType": { "kind": "property", "displayName": "Key Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache key type, default java.lang.Object" },
+    "valueType": { "kind": "property", "displayName": "Value Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache value type, default java.lang.Object" }
   },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "the cache name" },
diff --git a/components/camel-caffeine/src/generated/resources/org/apache/camel/component/caffeine/load/caffeine-loadcache.json b/components/camel-caffeine/src/generated/resources/org/apache/camel/component/caffeine/load/caffeine-loadcache.json
index cffd625..63f68a6 100644
--- a/components/camel-caffeine/src/generated/resources/org/apache/camel/component/caffeine/load/caffeine-loadcache.json
+++ b/components/camel-caffeine/src/generated/resources/org/apache/camel/component/caffeine/load/caffeine-loadcache.json
@@ -19,9 +19,24 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence." },
+    "cache": { "kind": "property", "displayName": "Cache", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.Cache", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure an already instantiated cache to be used" },
+    "cacheLoader": { "kind": "property", "displayName": "Cache Loader", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.CacheLoader", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure a CacheLoader in case of a LoadCache use" },
+    "createCacheIfNotExist": { "kind": "property", "displayName": "Create Cache If Not Exist", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Configure if a cache need to be created if it does exist or can't be pre-configured." },
+    "evictionType": { "kind": "property", "displayName": "Eviction Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.EvictionType", "enum": [ "size_based", "time_based" ], "deprecated": false, "secret": false, "defaultValue": "SIZE_BASED", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the eviction Type for thi [...]
+    "expireAfterAccessTime": { "kind": "property", "displayName": "Expire After Access Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "300", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Time in case of time based Eviction (in seconds)" },
+    "expireAfterWriteTime": { "kind": "property", "displayName": "Expire After Write Time", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "300", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the expire After Access Write in case of time based Eviction (in seconds)" },
+    "initialCapacity": { "kind": "property", "displayName": "Initial Capacity", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the initial Capacity for the cache" },
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "maximumSize": { "kind": "property", "displayName": "Maximum Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set the maximum size for the cache" },
+    "removalListener": { "kind": "property", "displayName": "Removal Listener", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.RemovalListener", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific removal Listener for the cache" },
+    "statsCounter": { "kind": "property", "displayName": "Stats Counter", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.github.benmanes.caffeine.cache.stats.StatsCounter", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "Set a specific Stats Counter for the cache stats" },
+    "statsEnabled": { "kind": "property", "displayName": "Stats Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "To enable stats on the cache" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.CaffeineConfiguration", "deprecated": false, "secret": false, "description": "Sets the global component configuration" }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.caffeine.CaffeineConfiguration", "deprecated": false, "secret": false, "description": "Sets the global component configuration" },
+    "keyType": { "kind": "property", "displayName": "Key Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache key type, default java.lang.Object" },
+    "valueType": { "kind": "property", "displayName": "Value Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.caffeine.CaffeineConfiguration", "configurationField": "configuration", "description": "The cache value type, default java.lang.Object" }
   },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "the cache name" },
diff --git a/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc b/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc
index 3faa610..629d63c 100644
--- a/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc
+++ b/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc
@@ -37,16 +37,31 @@ format, `?option=value&option=#beanRef&...`
 
 
 // component options: START
-The Caffeine Cache component supports 3 options, which are listed below.
+The Caffeine Cache component supports 18 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *action* (producer) | To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence. |  | String
+| *cache* (producer) | To configure an already instantiated cache to be used |  | Cache
+| *cacheLoader* (producer) | To configure a CacheLoader in case of a LoadCache use |  | CacheLoader
+| *createCacheIfNotExist* (producer) | Configure if a cache need to be created if it does exist or can't be pre-configured. | true | boolean
+| *evictionType* (producer) | Set the eviction Type for this cache. The value can be one of: size_based, time_based | SIZE_BASED | EvictionType
+| *expireAfterAccessTime* (producer) | Set the expire After Access Time in case of time based Eviction (in seconds) | 300 | int
+| *expireAfterWriteTime* (producer) | Set the expire After Access Write in case of time based Eviction (in seconds) | 300 | int
+| *initialCapacity* (producer) | Set the initial Capacity for the cache | 10000 | int
+| *key* (producer) | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *maximumSize* (producer) | Set the maximum size for the cache | 10000 | int
+| *removalListener* (producer) | Set a specific removal Listener for the cache |  | RemovalListener
+| *statsCounter* (producer) | Set a specific Stats Counter for the cache stats |  | StatsCounter
+| *statsEnabled* (producer) | To enable stats on the cache | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | Sets the global component configuration |  | CaffeineConfiguration
+| *keyType* (advanced) | The cache key type, default java.lang.Object |  | String
+| *valueType* (advanced) | The cache value type, default java.lang.Object |  | String
 |===
 // component options: END
 
diff --git a/components/camel-caffeine/src/main/docs/caffeine-loadcache-component.adoc b/components/camel-caffeine/src/main/docs/caffeine-loadcache-component.adoc
index 987af55..9f3ed6f 100644
--- a/components/camel-caffeine/src/main/docs/caffeine-loadcache-component.adoc
+++ b/components/camel-caffeine/src/main/docs/caffeine-loadcache-component.adoc
@@ -37,16 +37,31 @@ format, `?option=value&option=#beanRef&...`
 
 
 // component options: START
-The Caffeine LoadCache component supports 3 options, which are listed below.
+The Caffeine LoadCache component supports 18 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *action* (producer) | To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence. |  | String
+| *cache* (producer) | To configure an already instantiated cache to be used |  | Cache
+| *cacheLoader* (producer) | To configure a CacheLoader in case of a LoadCache use |  | CacheLoader
+| *createCacheIfNotExist* (producer) | Configure if a cache need to be created if it does exist or can't be pre-configured. | true | boolean
+| *evictionType* (producer) | Set the eviction Type for this cache. The value can be one of: size_based, time_based | SIZE_BASED | EvictionType
+| *expireAfterAccessTime* (producer) | Set the expire After Access Time in case of time based Eviction (in seconds) | 300 | int
+| *expireAfterWriteTime* (producer) | Set the expire After Access Write in case of time based Eviction (in seconds) | 300 | int
+| *initialCapacity* (producer) | Set the initial Capacity for the cache | 10000 | int
+| *key* (producer) | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *maximumSize* (producer) | Set the maximum size for the cache | 10000 | int
+| *removalListener* (producer) | Set a specific removal Listener for the cache |  | RemovalListener
+| *statsCounter* (producer) | Set a specific Stats Counter for the cache stats |  | StatsCounter
+| *statsEnabled* (producer) | To enable stats on the cache | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | Sets the global component configuration |  | CaffeineConfiguration
+| *keyType* (advanced) | The cache key type, default java.lang.Object |  | String
+| *valueType* (advanced) | The cache value type, default java.lang.Object |  | String
 |===
 // component options: END
 
diff --git a/components/camel-cometd/src/generated/java/org/apache/camel/component/cometd/CometdComponentConfigurer.java b/components/camel-cometd/src/generated/java/org/apache/camel/component/cometd/CometdComponentConfigurer.java
index 69ee1bd..7238d6c 100644
--- a/components/camel-cometd/src/generated/java/org/apache/camel/component/cometd/CometdComponentConfigurer.java
+++ b/components/camel-cometd/src/generated/java/org/apache/camel/component/cometd/CometdComponentConfigurer.java
@@ -15,13 +15,13 @@ public class CometdComponentConfigurer extends PropertyConfigurerSupport impleme
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         CometdComponent target = (CometdComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "extensions": target.setExtensions(property(camelContext, java.util.List.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "extensions": target.setExtensions(property(camelContext, java.util.List.class, value)); return true;
         case "securitypolicy":
         case "securityPolicy": target.setSecurityPolicy(property(camelContext, org.cometd.bayeux.server.SecurityPolicy.class, value)); return true;
         case "sslcontextparameters":
diff --git a/components/camel-cometd/src/generated/resources/org/apache/camel/component/cometd/cometd.json b/components/camel-cometd/src/generated/resources/org/apache/camel/component/cometd/cometd.json
index a72c865..28b2739 100644
--- a/components/camel-cometd/src/generated/resources/org/apache/camel/component/cometd/cometd.json
+++ b/components/camel-cometd/src/generated/resources/org/apache/camel/component/cometd/cometd.json
@@ -20,10 +20,10 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "extensions": { "kind": "property", "displayName": "Extensions", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<org.cometd.bayeux.server.BayeuxServer.Extension>", "deprecated": false, "secret": false, "description": "To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "extensions": { "kind": "property", "displayName": "Extensions", "group": "advanced", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.cometd.bayeux.server.BayeuxServer.Extension>", "deprecated": false, "secret": false, "description": "To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests." },
     "securityPolicy": { "kind": "property", "displayName": "Security Policy", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.cometd.bayeux.server.SecurityPolicy", "deprecated": false, "secret": false, "description": "To use a custom configured SecurityPolicy to control authorization" },
     "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "description": "To configure security using SSLContextParameters" },
     "sslKeyPassword": { "kind": "property", "displayName": "Ssl Key Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "description": "The password for the keystore when using SSL." },
diff --git a/components/camel-cometd/src/generated/resources/org/apache/camel/component/cometd/cometds.json b/components/camel-cometd/src/generated/resources/org/apache/camel/component/cometd/cometds.json
index 5e1742a..8d2b82e 100644
--- a/components/camel-cometd/src/generated/resources/org/apache/camel/component/cometd/cometds.json
+++ b/components/camel-cometd/src/generated/resources/org/apache/camel/component/cometd/cometds.json
@@ -20,10 +20,10 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "extensions": { "kind": "property", "displayName": "Extensions", "group": "common", "required": false, "type": "array", "javaType": "java.util.List<org.cometd.bayeux.server.BayeuxServer.Extension>", "deprecated": false, "secret": false, "description": "To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "extensions": { "kind": "property", "displayName": "Extensions", "group": "advanced", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<org.cometd.bayeux.server.BayeuxServer.Extension>", "deprecated": false, "secret": false, "description": "To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests." },
     "securityPolicy": { "kind": "property", "displayName": "Security Policy", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.cometd.bayeux.server.SecurityPolicy", "deprecated": false, "secret": false, "description": "To use a custom configured SecurityPolicy to control authorization" },
     "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "description": "To configure security using SSLContextParameters" },
     "sslKeyPassword": { "kind": "property", "displayName": "Ssl Key Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "description": "The password for the keystore when using SSL." },
diff --git a/components/camel-cometd/src/main/docs/cometd-component.adoc b/components/camel-cometd/src/main/docs/cometd-component.adoc
index 64ddc66..6acee3d 100644
--- a/components/camel-cometd/src/main/docs/cometd-component.adoc
+++ b/components/camel-cometd/src/main/docs/cometd-component.adoc
@@ -60,10 +60,10 @@ The CometD component supports 10 options, which are listed below.
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *extensions* (common) | To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests. |  | List
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *extensions* (advanced) | To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests. |  | List
 | *securityPolicy* (security) | To use a custom configured SecurityPolicy to control authorization |  | SecurityPolicy
 | *sslContextParameters* (security) | To configure security using SSLContextParameters |  | SSLContextParameters
 | *sslKeyPassword* (security) | The password for the keystore when using SSL. |  | String
diff --git a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
index f8dc3cd..bcfa646 100644
--- a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
+++ b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
@@ -68,6 +68,7 @@ public class CometdComponent extends DefaultComponent implements SSLContextParam
     private String sslKeystore;
     @Metadata(label = "security")
     private SecurityPolicy securityPolicy;
+    @Metadata(label = "advanced")
     private List<BayeuxServer.Extension> extensions;
     @Metadata(label = "security")
     private SSLContextParameters sslContextParameters;
diff --git a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/ConsulComponentConfigurer.java b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/ConsulComponentConfigurer.java
index 585056b..e9a9ed7 100644
--- a/components/camel-consul/src/generated/java/org/apache/camel/component/consul/ConsulComponentConfigurer.java
+++ b/components/camel-consul/src/generated/java/org/apache/camel/component/consul/ConsulComponentConfigurer.java
@@ -11,28 +11,61 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class ConsulComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.consul.ConsulConfiguration getOrCreateConfiguration(ConsulComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.consul.ConsulConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         ConsulComponent target = (ConsulComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "acltoken":
-        case "aclToken": target.setAclToken(property(camelContext, java.lang.String.class, value)); return true;
-        case "datacenter": target.setDatacenter(property(camelContext, java.lang.String.class, value)); return true;
-        case "password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
-        case "sslcontextparameters":
-        case "sslContextParameters": target.setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
-        case "url": target.setUrl(property(camelContext, java.lang.String.class, value)); return true;
-        case "username":
-        case "userName": target.setUserName(property(camelContext, java.lang.String.class, value)); return true;
+        case "connecttimeoutmillis":
+        case "connectTimeoutMillis": getOrCreateConfiguration(target).setConnectTimeoutMillis(property(camelContext, java.lang.Long.class, value)); return true;
+        case "consulclient":
+        case "consulClient": getOrCreateConfiguration(target).setConsulClient(property(camelContext, com.orbitz.consul.Consul.class, value)); return true;
+        case "key": getOrCreateConfiguration(target).setKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "pinginstance":
+        case "pingInstance": getOrCreateConfiguration(target).setPingInstance(property(camelContext, boolean.class, value)); return true;
+        case "readtimeoutmillis":
+        case "readTimeoutMillis": getOrCreateConfiguration(target).setReadTimeoutMillis(property(camelContext, java.lang.Long.class, value)); return true;
+        case "tags": getOrCreateConfiguration(target).setTags(property(camelContext, java.lang.String.class, value)); return true;
+        case "url": getOrCreateConfiguration(target).setUrl(property(camelContext, java.lang.String.class, value)); return true;
+        case "writetimeoutmillis":
+        case "writeTimeoutMillis": getOrCreateConfiguration(target).setWriteTimeoutMillis(property(camelContext, java.lang.Long.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "action": getOrCreateConfiguration(target).setAction(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "valueasstring":
+        case "valueAsString": getOrCreateConfiguration(target).setValueAsString(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.consul.ConsulConfiguration.class, value)); return true;
+        case "consistencymode":
+        case "consistencyMode": getOrCreateConfiguration(target).setConsistencyMode(property(camelContext, com.orbitz.consul.option.ConsistencyMode.class, value)); return true;
+        case "datacenter": getOrCreateConfiguration(target).setDatacenter(property(camelContext, java.lang.String.class, value)); return true;
+        case "nearnode":
+        case "nearNode": getOrCreateConfiguration(target).setNearNode(property(camelContext, java.lang.String.class, value)); return true;
+        case "nodemeta":
+        case "nodeMeta": getOrCreateConfiguration(target).setNodeMeta(property(camelContext, java.util.List.class, value)); return true;
+        case "blockseconds":
+        case "blockSeconds": getOrCreateConfiguration(target).setBlockSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "firstindex":
+        case "firstIndex": getOrCreateConfiguration(target).setFirstIndex(property(camelContext, java.math.BigInteger.class, value)); return true;
+        case "recursive": getOrCreateConfiguration(target).setRecursive(property(camelContext, boolean.class, value)); return true;
+        case "acltoken":
+        case "aclToken": getOrCreateConfiguration(target).setAclToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslcontextparameters":
+        case "sslContextParameters": getOrCreateConfiguration(target).setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
         case "useglobalsslcontextparameters":
         case "useGlobalSslContextParameters": target.setUseGlobalSslContextParameters(property(camelContext, boolean.class, value)); return true;
+        case "username":
+        case "userName": getOrCreateConfiguration(target).setUserName(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-consul/src/generated/resources/org/apache/camel/component/consul/consul.json b/components/camel-consul/src/generated/resources/org/apache/camel/component/consul/consul.json
index e6805d7..56284bd 100644
--- a/components/camel-consul/src/generated/resources/org/apache/camel/component/consul/consul.json
+++ b/components/camel-consul/src/generated/resources/org/apache/camel/component/consul/consul.json
@@ -19,17 +19,32 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "aclToken": { "kind": "property", "displayName": "Acl Token", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the ACL token to be used with Consul" },
-    "datacenter": { "kind": "property", "displayName": "Datacenter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The data center" },
-    "password": { "kind": "property", "displayName": "Password", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the password to be used for basic authentication" },
-    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "description": "SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance." },
-    "url": { "kind": "property", "displayName": "Url", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The Consul agent URL" },
-    "userName": { "kind": "property", "displayName": "User Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the username to be used for basic authentication" },
+    "connectTimeoutMillis": { "kind": "property", "displayName": "Connect Timeout Millis", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Connect timeout for OkHttpClient" },
+    "consulClient": { "kind": "property", "displayName": "Consul Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.orbitz.consul.Consul", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Reference to a com.orbitz.consul.Consul in the registry." },
+    "key": { "kind": "property", "displayName": "Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The default key. Can be overridden by CamelConsulKey" },
+    "pingInstance": { "kind": "property", "displayName": "Ping Instance", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Configure if the AgentClient should attempt a ping before returning the Consul instance" },
+    "readTimeoutMillis": { "kind": "property", "displayName": "Read Timeout Millis", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Read timeout for OkHttpClient" },
+    "tags": { "kind": "property", "displayName": "Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Set tags. You can separate multiple tags by comma." },
+    "url": { "kind": "property", "displayName": "Url", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The Consul agent URL" },
+    "writeTimeoutMillis": { "kind": "property", "displayName": "Write Timeout Millis", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Write timeout for OkHttpClient" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The default action. Can be overridden by CamelConsulAction" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "valueAsString": { "kind": "property", "displayName": "Value As String", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Default to transform values retrieved from Consul i.e. on KV endpoint to string." },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.consul.ConsulConfiguration", "deprecated": false, "secret": false, "description": "Sets the common configuration shared among endpoints" },
-    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Enable usage of global SSL context parameters." }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.consul.ConsulConfiguration", "deprecated": false, "secret": false, "description": "Consul configuration" },
+    "consistencyMode": { "kind": "property", "displayName": "Consistency Mode", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.orbitz.consul.option.ConsistencyMode", "enum": [ "DEFAULT", "STALE", "CONSISTENT" ], "deprecated": false, "secret": false, "defaultValue": "DEFAULT", "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The consistencyMode used for que [...]
+    "datacenter": { "kind": "property", "displayName": "Datacenter", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The data center" },
+    "nearNode": { "kind": "property", "displayName": "Near Node", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The near node to use for queries." },
+    "nodeMeta": { "kind": "property", "displayName": "Node Meta", "group": "advanced", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The note meta-data to use for queries." },
+    "blockSeconds": { "kind": "property", "displayName": "Block Seconds", "group": "watch", "label": "consumer,watch", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "10", "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The second to wait for a watch event, default 10 seconds" },
+    "firstIndex": { "kind": "property", "displayName": "First Index", "group": "watch", "label": "consumer,watch", "required": false, "type": "object", "javaType": "java.math.BigInteger", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The first index for watch for, default 0" },
+    "recursive": { "kind": "property", "displayName": "Recursive", "group": "watch", "label": "consumer,watch", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Recursively watch, default false" },
+    "aclToken": { "kind": "property", "displayName": "Acl Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Sets the ACL token to be used with Consul" },
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Sets the password to be used for basic authentication" },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Sets the username to be used for basic authentication" }
   },
   "properties": {
     "apiEndpoint": { "kind": "path", "displayName": "Api Endpoint", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "The API endpoint" },
diff --git a/components/camel-consul/src/main/docs/consul-component.adoc b/components/camel-consul/src/main/docs/consul-component.adoc
index c961a5a..9acacd1 100644
--- a/components/camel-consul/src/main/docs/consul-component.adoc
+++ b/components/camel-consul/src/main/docs/consul-component.adoc
@@ -40,24 +40,39 @@ You can append query options to the URI in the following format:
 
 
 // component options: START
-The Consul component supports 11 options, which are listed below.
+The Consul component supports 26 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *aclToken* (common) | Sets the ACL token to be used with Consul |  | String
-| *datacenter* (common) | The data center |  | String
-| *password* (common) | Sets the password to be used for basic authentication |  | String
-| *sslContextParameters* (common) | SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance. |  | SSLContextParameters
+| *connectTimeoutMillis* (common) | Connect timeout for OkHttpClient |  | Long
+| *consulClient* (common) | Reference to a com.orbitz.consul.Consul in the registry. |  | Consul
+| *key* (common) | The default key. Can be overridden by CamelConsulKey |  | String
+| *pingInstance* (common) | Configure if the AgentClient should attempt a ping before returning the Consul instance | true | boolean
+| *readTimeoutMillis* (common) | Read timeout for OkHttpClient |  | Long
+| *tags* (common) | Set tags. You can separate multiple tags by comma. |  | String
 | *url* (common) | The Consul agent URL |  | String
-| *userName* (common) | Sets the username to be used for basic authentication |  | String
+| *writeTimeoutMillis* (common) | Write timeout for OkHttpClient |  | Long
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *action* (producer) | The default action. Can be overridden by CamelConsulAction |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *valueAsString* (producer) | Default to transform values retrieved from Consul i.e. on KV endpoint to string. | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *configuration* (advanced) | Sets the common configuration shared among endpoints |  | ConsulConfiguration
+| *configuration* (advanced) | Consul configuration |  | ConsulConfiguration
+| *consistencyMode* (advanced) | The consistencyMode used for queries, default ConsistencyMode.DEFAULT. The value can be one of: DEFAULT, STALE, CONSISTENT | DEFAULT | ConsistencyMode
+| *datacenter* (advanced) | The data center |  | String
+| *nearNode* (advanced) | The near node to use for queries. |  | String
+| *nodeMeta* (advanced) | The note meta-data to use for queries. |  | List
+| *blockSeconds* (watch) | The second to wait for a watch event, default 10 seconds | 10 | Integer
+| *firstIndex* (watch) | The first index for watch for, default 0 | 0 | BigInteger
+| *recursive* (watch) | Recursively watch, default false | false | boolean
+| *aclToken* (security) | Sets the ACL token to be used with Consul |  | String
+| *password* (security) | Sets the password to be used for basic authentication |  | String
+| *sslContextParameters* (security) | SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance. |  | SSLContextParameters
 | *useGlobalSslContextParameters* (security) | Enable usage of global SSL context parameters. | false | boolean
+| *userName* (security) | Sets the username to be used for basic authentication |  | String
 |===
 // component options: END
 
diff --git a/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java b/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java
index 8565d2f..c3f4de2 100644
--- a/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java
+++ b/components/camel-consul/src/main/java/org/apache/camel/component/consul/ConsulComponent.java
@@ -36,14 +36,13 @@ import org.apache.camel.component.consul.endpoint.ConsulStatusProducer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.support.DefaultComponent;
-import org.apache.camel.support.jsse.SSLContextParameters;
 
 @Component("consul")
 public class ConsulComponent extends DefaultComponent implements SSLContextParametersAware {
 
     @Metadata(label = "advanced")
     private ConsulConfiguration configuration = new ConsulConfiguration();
-    @Metadata(label = "security", defaultValue = "false")
+    @Metadata(label = "security")
     private boolean useGlobalSslContextParameters;
 
     public ConsulComponent() {
@@ -57,42 +56,6 @@ public class ConsulComponent extends DefaultComponent implements SSLContextParam
     // Options
     // ************************************
 
-    public String getUrl() {
-        return this.configuration.getUrl();
-    }
-
-    /**
-     * The Consul agent URL
-     */
-    public void setUrl(String url) {
-        this.configuration.setUrl(url);
-    }
-
-    public String getDatacenter() {
-        return configuration.getDatacenter();
-    }
-
-    /**
-     * The data center
-     *
-     * @param datacenter
-     */
-    public void setDatacenter(String datacenter) {
-        configuration.setDatacenter(datacenter);
-    }
-
-    public SSLContextParameters getSslContextParameters() {
-        return configuration.getSslContextParameters();
-    }
-
-    /**
-     * SSL configuration using an
-     * org.apache.camel.support.jsse.SSLContextParameters instance.
-     */
-    public void setSslContextParameters(SSLContextParameters sslContextParameters) {
-        configuration.setSslContextParameters(sslContextParameters);
-    }
-
     @Override
     public boolean isUseGlobalSslContextParameters() {
         return this.useGlobalSslContextParameters;
@@ -106,45 +69,12 @@ public class ConsulComponent extends DefaultComponent implements SSLContextParam
         this.useGlobalSslContextParameters = useGlobalSslContextParameters;
     }
 
-    public String getAclToken() {
-        return configuration.getAclToken();
-    }
-
-    /**
-     * Sets the ACL token to be used with Consul
-     */
-    public void setAclToken(String aclToken) {
-        configuration.setAclToken(aclToken);
-    }
-
-    public String getUserName() {
-        return configuration.getUserName();
-    }
-
-    /**
-     * Sets the username to be used for basic authentication
-     */
-    public void setUserName(String userName) {
-        configuration.setUserName(userName);
-    }
-
-    public String getPassword() {
-        return configuration.getPassword();
-    }
-
-    /**
-     * Sets the password to be used for basic authentication
-     */
-    public void setPassword(String password) {
-        configuration.setPassword(password);
-    }
-
     public ConsulConfiguration getConfiguration() {
         return configuration;
     }
 
     /**
-     * Sets the common configuration shared among endpoints
+     * Consul configuration
      */
     public void setConfiguration(ConsulConfiguration configuration) {
         this.configuration = configuration;
@@ -154,7 +84,7 @@ public class ConsulComponent extends DefaultComponent implements SSLContextParam
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
         ConsulConfiguration configuration = Optional.ofNullable(this.configuration).orElseGet(ConsulConfiguration::new).copy();
 
-        ConsulEndpoint endpoint = null;
+        ConsulEndpoint endpoint;
         switch (remaining) {
             case "kv":
                 endpoint = new ConsulEndpoint(remaining, uri, this, configuration, Optional.of(ConsulKeyValueProducer::new), Optional.of(ConsulKeyValueConsumer::new));
diff --git a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulTestSupport.java b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulTestSupport.java
index b0c7150..9bd6a2c 100644
--- a/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulTestSupport.java
+++ b/components/camel-consul/src/test/java/org/apache/camel/component/consul/ConsulTestSupport.java
@@ -35,7 +35,7 @@ public class ConsulTestSupport extends ContainerAwareTestSupport {
     @BindToRegistry("consul")
     public ConsulComponent getConsulComponent() {
         ConsulComponent component = new ConsulComponent();
-        component.setUrl(consulUrl());
+        component.getConfiguration().setUrl(consulUrl());
         return component;
     }
 
diff --git a/components/camel-corda/src/generated/java/org/apache/camel/component/corda/CordaComponentConfigurer.java b/components/camel-corda/src/generated/java/org/apache/camel/component/corda/CordaComponentConfigurer.java
index f84fce4..c46acc0 100644
--- a/components/camel-corda/src/generated/java/org/apache/camel/component/corda/CordaComponentConfigurer.java
+++ b/components/camel-corda/src/generated/java/org/apache/camel/component/corda/CordaComponentConfigurer.java
@@ -11,6 +11,13 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class CordaComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.corda.CordaConfiguration getOrCreateConfiguration(CordaComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.corda.CordaConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         CordaComponent target = (CordaComponent) obj;
@@ -18,10 +25,26 @@ public class CordaComponentConfigurer extends PropertyConfigurerSupport implemen
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.corda.CordaConfiguration.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "pagespecification":
+        case "pageSpecification": getOrCreateConfiguration(target).setPageSpecification(property(camelContext, net.corda.core.node.services.vault.PageSpecification.class, value)); return true;
+        case "processsnapshot":
+        case "processSnapshot": getOrCreateConfiguration(target).setProcessSnapshot(property(camelContext, boolean.class, value)); return true;
+        case "sort": getOrCreateConfiguration(target).setSort(property(camelContext, net.corda.core.node.services.vault.Sort.class, value)); return true;
+        case "contractstateclass":
+        case "contractStateClass": getOrCreateConfiguration(target).setContractStateClass(property(camelContext, java.lang.Class.class, value)); return true;
+        case "flowlogicarguments":
+        case "flowLogicArguments": getOrCreateConfiguration(target).setFlowLogicArguments(property(camelContext, java.lang.Object[].class, value)); return true;
+        case "flowlogicclass":
+        case "flowLogicClass": getOrCreateConfiguration(target).setFlowLogicClass(property(camelContext, java.lang.Class.class, value)); return true;
+        case "querycriteria":
+        case "queryCriteria": getOrCreateConfiguration(target).setQueryCriteria(property(camelContext, net.corda.core.node.services.vault.QueryCriteria.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, java.lang.String.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "username": getOrCreateConfiguration(target).setUsername(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-corda/src/generated/resources/org/apache/camel/component/corda/corda.json b/components/camel-corda/src/generated/resources/org/apache/camel/component/corda/corda.json
index 9c54c86..766f100 100644
--- a/components/camel-corda/src/generated/resources/org/apache/camel/component/corda/corda.json
+++ b/components/camel-corda/src/generated/resources/org/apache/camel/component/corda/corda.json
@@ -21,8 +21,18 @@
   "componentProperties": {
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.corda.CordaConfiguration", "deprecated": false, "secret": false, "description": "To use a shared configuration." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "pageSpecification": { "kind": "property", "displayName": "Page Specification", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "net.corda.core.node.services.vault.PageSpecification", "deprecated": false, "secret": false, "defaultValue": "200", "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "PageSpecification allows specification of a page number (starting fr [...]
+    "processSnapshot": { "kind": "property", "displayName": "Process Snapshot", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Whether to process snapshots or not" },
+    "sort": { "kind": "property", "displayName": "Sort", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "net.corda.core.node.services.vault.Sort", "enum": [ "ASC", "DESC" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Sort allows specification of a set of entity attribute names and their associated directionality and nul [...]
+    "contractStateClass": { "kind": "property", "displayName": "Contract State Class", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.Class<net.corda.core.contracts.ContractState>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "A contract state (or just state) contains opaque data used by a c [...]
+    "flowLogicArguments": { "kind": "property", "displayName": "Flow Logic Arguments", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "array", "javaType": "java.lang.Object[]", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Start the given flow with the given arguments, returning an Observable with a single observation of the [...]
+    "flowLogicClass": { "kind": "property", "displayName": "Flow Logic Class", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.Class<net.corda.core.flows.FlowLogic<java.lang.Object>>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Start the given flow with the given arguments, returning an Obs [...]
+    "queryCriteria": { "kind": "property", "displayName": "Query Criteria", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "net.corda.core.node.services.vault.QueryCriteria", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "QueryCriteria assumes underlying schema tables are correctly indexed for performance." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Operation to use" },
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Password for login" },
+    "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Username for login" }
   },
   "properties": {
     "node": { "kind": "path", "displayName": "Node", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "The url for the corda node" },
diff --git a/components/camel-corda/src/main/docs/corda-component.adoc b/components/camel-corda/src/main/docs/corda-component.adoc
index ba2384e..bc5653c 100644
--- a/components/camel-corda/src/main/docs/corda-component.adoc
+++ b/components/camel-corda/src/main/docs/corda-component.adoc
@@ -38,7 +38,7 @@ corda://<host:port>[?options]
 
 
 // component options: START
-The Corda component supports 4 options, which are listed below.
+The Corda component supports 14 options, which are listed below.
 
 
 
@@ -47,8 +47,18 @@ The Corda component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (common) | To use a shared configuration. |  | CordaConfiguration
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *pageSpecification* (consumer) | PageSpecification allows specification of a page number (starting from 1) and page size (defaulting to 200 with a maximum page size of (Integer.MAX_INT) Note: we default the page number to 200 to enable queries without requiring a page specification but enabling detection of large results sets that fall out of the 200 requirement. Max page size should be used with extreme caution as results may exceed your JVM memory footprint. | 200 | PageSpecification
+| *processSnapshot* (consumer) | Whether to process snapshots or not | true | boolean
+| *sort* (consumer) | Sort allows specification of a set of entity attribute names and their associated directionality and null handling, to be applied upon processing a query specification. The value can be one of: ASC, DESC |  | Sort
+| *contractStateClass* (consumer) | A contract state (or just state) contains opaque data used by a contract program. It can be thought of as a disk file that the program can use to persist data across transactions. States are immutable: once created they are never updated, instead, any changes must generate a new successor state. States can be updated (consumed) only once: the notary is responsible for ensuring there is no double spending by only signing a transaction if the input state [...]
+| *flowLogicArguments* (consumer) | Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow. The flowLogicClass must be annotated with net.corda.core.flows.StartableByRPC. |  | Object[]
+| *flowLogicClass* (consumer) | Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow. The flowLogicClass must be annotated with net.corda.core.flows.StartableByRPC. |  | Class
+| *queryCriteria* (consumer) | QueryCriteria assumes underlying schema tables are correctly indexed for performance. |  | QueryCriteria
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | Operation to use |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *password* (security) | Password for login |  | String
+| *username* (security) | Username for login |  | String
 |===
 // component options: END
 
diff --git a/components/camel-crypto/src/generated/java/org/apache/camel/component/crypto/DigitalSignatureComponentConfigurer.java b/components/camel-crypto/src/generated/java/org/apache/camel/component/crypto/DigitalSignatureComponentConfigurer.java
index fc7ae66..8de66cf 100644
--- a/components/camel-crypto/src/generated/java/org/apache/camel/component/crypto/DigitalSignatureComponentConfigurer.java
+++ b/components/camel-crypto/src/generated/java/org/apache/camel/component/crypto/DigitalSignatureComponentConfigurer.java
@@ -11,15 +11,52 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class DigitalSignatureComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.crypto.DigitalSignatureConfiguration getOrCreateConfiguration(DigitalSignatureComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.crypto.DigitalSignatureConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         DigitalSignatureComponent target = (DigitalSignatureComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "algorithm": getOrCreateConfiguration(target).setAlgorithm(property(camelContext, java.lang.String.class, value)); return true;
+        case "alias": getOrCreateConfiguration(target).setAlias(property(camelContext, java.lang.String.class, value)); return true;
+        case "certificatename":
+        case "certificateName": getOrCreateConfiguration(target).setCertificateName(property(camelContext, java.lang.String.class, value)); return true;
+        case "keystore": getOrCreateConfiguration(target).setKeystore(property(camelContext, java.security.KeyStore.class, value)); return true;
+        case "keystorename":
+        case "keystoreName": getOrCreateConfiguration(target).setKeystoreName(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "privatekey":
+        case "privateKey": getOrCreateConfiguration(target).setPrivateKey(property(camelContext, java.security.PrivateKey.class, value)); return true;
+        case "privatekeyname":
+        case "privateKeyName": getOrCreateConfiguration(target).setPrivateKeyName(property(camelContext, java.lang.String.class, value)); return true;
+        case "provider": getOrCreateConfiguration(target).setProvider(property(camelContext, java.lang.String.class, value)); return true;
+        case "publickeyname":
+        case "publicKeyName": getOrCreateConfiguration(target).setPublicKeyName(property(camelContext, java.lang.String.class, value)); return true;
+        case "securerandomname":
+        case "secureRandomName": getOrCreateConfiguration(target).setSecureRandomName(property(camelContext, java.lang.String.class, value)); return true;
+        case "signatureheadername":
+        case "signatureHeaderName": getOrCreateConfiguration(target).setSignatureHeaderName(property(camelContext, java.lang.String.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "buffersize":
+        case "bufferSize": getOrCreateConfiguration(target).setBufferSize(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "certificate": getOrCreateConfiguration(target).setCertificate(property(camelContext, java.security.cert.Certificate.class, value)); return true;
+        case "clearheaders":
+        case "clearHeaders": getOrCreateConfiguration(target).setClearHeaders(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.crypto.DigitalSignatureConfiguration.class, value)); return true;
+        case "keystoreparameters":
+        case "keyStoreParameters": getOrCreateConfiguration(target).setKeyStoreParameters(property(camelContext, org.apache.camel.support.jsse.KeyStoreParameters.class, value)); return true;
+        case "publickey":
+        case "publicKey": getOrCreateConfiguration(target).setPublicKey(property(camelContext, java.security.PublicKey.class, value)); return true;
+        case "securerandom":
+        case "secureRandom": getOrCreateConfiguration(target).setSecureRandom(property(camelContext, java.security.SecureRandom.class, value)); return true;
+        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-crypto/src/generated/resources/org/apache/camel/component/crypto/crypto.json b/components/camel-crypto/src/generated/resources/org/apache/camel/component/crypto/crypto.json
index 865d8c5..c59f5e9 100644
--- a/components/camel-crypto/src/generated/resources/org/apache/camel/component/crypto/crypto.json
+++ b/components/camel-crypto/src/generated/resources/org/apache/camel/component/crypto/crypto.json
@@ -19,9 +19,27 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "algorithm": { "kind": "property", "displayName": "Algorithm", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "SHA256withRSA", "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the JCE name of the Algorithm that should be used for the signer." },
+    "alias": { "kind": "property", "displayName": "Alias", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the alias used to query the KeyStore for keys and {link java.security.cert.Certificate Certificates} to be used in signing and verifying exchan [...]
+    "certificateName": { "kind": "property", "displayName": "Certificate Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the reference name for a PrivateKey that can be found in the registry." },
+    "keystore": { "kind": "property", "displayName": "Keystore", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.security.KeyStore", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges. A KeyStore is typically used with an [...]
+    "keystoreName": { "kind": "property", "displayName": "Keystore Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the reference name for a Keystore that can be found in the registry." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "privateKey": { "kind": "property", "displayName": "Private Key", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.security.PrivateKey", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the PrivateKey that should be used to sign the exchange" },
+    "privateKeyName": { "kind": "property", "displayName": "Private Key Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the reference name for a PrivateKey that can be found in the registry." },
+    "provider": { "kind": "property", "displayName": "Provider", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the id of the security provider that provides the configured Signature algorithm." },
+    "publicKeyName": { "kind": "property", "displayName": "Public Key Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "references that should be resolved when the context changes" },
+    "secureRandomName": { "kind": "property", "displayName": "Secure Random Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the reference name for a SecureRandom that can be found in the registry." },
+    "signatureHeaderName": { "kind": "property", "displayName": "Signature Header Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the name of the message header that should be used to store the base64 encoded signature. This defaults to 'CamelD [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "deprecated": false, "secret": false, "description": "To use the shared DigitalSignatureConfiguration as configuration" }
+    "bufferSize": { "kind": "property", "displayName": "Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the size of the buffer used to read in the Exchange payload data." },
+    "certificate": { "kind": "property", "displayName": "Certificate", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.security.cert.Certificate", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the Certificate that should be used to verify the signature in the exchange based on its payload." },
+    "clearHeaders": { "kind": "property", "displayName": "Clear Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Determines if the Signature specific headers be cleared after signing and verification. Defaults to true, and [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "deprecated": false, "secret": false, "description": "To use the shared DigitalSignatureConfiguration as configuration" },
+    "keyStoreParameters": { "kind": "property", "displayName": "Key Store Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.KeyStoreParameters", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the KeyStore that can contain keys and Certficates for use in signing and v [...]
+    "publicKey": { "kind": "property", "displayName": "Public Key", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.security.PublicKey", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the PublicKey that should be used to verify the signature in the exchange." },
+    "secureRandom": { "kind": "property", "displayName": "Secure Random", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.security.SecureRandom", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the SecureRandom used to initialize the Signature service" },
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the password used to access an aliased PrivateKey in the KeyStore." }
   },
   "properties": {
     "cryptoOperation": { "kind": "path", "displayName": "Crypto Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.crypto.CryptoOperation", "enum": [ "sign", "verify" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the Crypto operation from that supplied af [...]
diff --git a/components/camel-crypto/src/main/docs/crypto-component.adoc b/components/camel-crypto/src/main/docs/crypto-component.adoc
index 2b716e3..475ca05 100644
--- a/components/camel-crypto/src/main/docs/crypto-component.adoc
+++ b/components/camel-crypto/src/main/docs/crypto-component.adoc
@@ -85,16 +85,34 @@ both signing and verifying should be configured identically.
 == Options
 
 // component options: START
-The Crypto (JCE) component supports 3 options, which are listed below.
+The Crypto (JCE) component supports 21 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *algorithm* (producer) | Sets the JCE name of the Algorithm that should be used for the signer. | SHA256withRSA | String
+| *alias* (producer) | Sets the alias used to query the KeyStore for keys and {link java.security.cert.Certificate Certificates} to be used in signing and verifying exchanges. This value can be provided at runtime via the message header org.apache.camel.component.crypto.DigitalSignatureConstants#KEYSTORE_ALIAS |  | String
+| *certificateName* (producer) | Sets the reference name for a PrivateKey that can be found in the registry. |  | String
+| *keystore* (producer) | Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. |  | KeyStore
+| *keystoreName* (producer) | Sets the reference name for a Keystore that can be found in the registry. |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *privateKey* (producer) | Set the PrivateKey that should be used to sign the exchange |  | PrivateKey
+| *privateKeyName* (producer) | Sets the reference name for a PrivateKey that can be found in the registry. |  | String
+| *provider* (producer) | Set the id of the security provider that provides the configured Signature algorithm. |  | String
+| *publicKeyName* (producer) | references that should be resolved when the context changes |  | String
+| *secureRandomName* (producer) | Sets the reference name for a SecureRandom that can be found in the registry. |  | String
+| *signatureHeaderName* (producer) | Set the name of the message header that should be used to store the base64 encoded signature. This defaults to 'CamelDigitalSignature' |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *bufferSize* (advanced) | Set the size of the buffer used to read in the Exchange payload data. | 2048 | Integer
+| *certificate* (advanced) | Set the Certificate that should be used to verify the signature in the exchange based on its payload. |  | Certificate
+| *clearHeaders* (advanced) | Determines if the Signature specific headers be cleared after signing and verification. Defaults to true, and should only be made otherwise at your extreme peril as vital private information such as Keys and passwords may escape if unset. | true | boolean
 | *configuration* (advanced) | To use the shared DigitalSignatureConfiguration as configuration |  | DigitalSignatureConfiguration
+| *keyStoreParameters* (advanced) | Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges based on the given KeyStoreParameters. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. |  | KeyStoreParameters
+| *publicKey* (advanced) | Set the PublicKey that should be used to verify the signature in the exchange. |  | PublicKey
+| *secureRandom* (advanced) | Set the SecureRandom used to initialize the Signature service |  | SecureRandom
+| *password* (security) | Sets the password used to access an aliased PrivateKey in the KeyStore. |  | String
 |===
 // component options: END
 
diff --git a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
index a5d768d..76aa11e 100644
--- a/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
+++ b/components/camel-debezium-mongodb/src/generated/java/org/apache/camel/component/debezium/DebeziumMongodbComponentConfigurer.java
@@ -11,15 +11,100 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class DebeziumMongodbComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration getOrCreateConfiguration(DebeziumMongodbComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         DebeziumMongodbComponent target = (DebeziumMongodbComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "additionalproperties":
+        case "additionalProperties": getOrCreateConfiguration(target).setAdditionalProperties(property(camelContext, java.util.Map.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration.class, value)); return true;
+        case "internalkeyconverter":
+        case "internalKeyConverter": getOrCreateConfiguration(target).setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
+        case "internalvalueconverter":
+        case "internalValueConverter": getOrCreateConfiguration(target).setInternalValueConverter(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetcommitpolicy":
+        case "offsetCommitPolicy": getOrCreateConfiguration(target).setOffsetCommitPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetcommittimeoutms":
+        case "offsetCommitTimeoutMs": getOrCreateConfiguration(target).setOffsetCommitTimeoutMs(property(camelContext, long.class, value)); return true;
+        case "offsetflushintervalms":
+        case "offsetFlushIntervalMs": getOrCreateConfiguration(target).setOffsetFlushIntervalMs(property(camelContext, long.class, value)); return true;
+        case "offsetstorage":
+        case "offsetStorage": getOrCreateConfiguration(target).setOffsetStorage(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetstoragefilename":
+        case "offsetStorageFileName": getOrCreateConfiguration(target).setOffsetStorageFileName(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetstoragepartitions":
+        case "offsetStoragePartitions": getOrCreateConfiguration(target).setOffsetStoragePartitions(property(camelContext, int.class, value)); return true;
+        case "offsetstoragereplicationfactor":
+        case "offsetStorageReplicationFactor": getOrCreateConfiguration(target).setOffsetStorageReplicationFactor(property(camelContext, int.class, value)); return true;
+        case "offsetstoragetopic":
+        case "offsetStorageTopic": getOrCreateConfiguration(target).setOffsetStorageTopic(property(camelContext, java.lang.String.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "collectionblacklist":
+        case "collectionBlacklist": getOrCreateConfiguration(target).setCollectionBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "collectionwhitelist":
+        case "collectionWhitelist": getOrCreateConfiguration(target).setCollectionWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+        case "connectbackoffinitialdelayms":
+        case "connectBackoffInitialDelayMs": getOrCreateConfiguration(target).setConnectBackoffInitialDelayMs(property(camelContext, long.class, value)); return true;
+        case "connectbackoffmaxdelayms":
+        case "connectBackoffMaxDelayMs": getOrCreateConfiguration(target).setConnectBackoffMaxDelayMs(property(camelContext, long.class, value)); return true;
+        case "connectmaxattempts":
+        case "connectMaxAttempts": getOrCreateConfiguration(target).setConnectMaxAttempts(property(camelContext, int.class, value)); return true;
+        case "databaseblacklist":
+        case "databaseBlacklist": getOrCreateConfiguration(target).setDatabaseBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistoryfilefilename":
+        case "databaseHistoryFileFilename": getOrCreateConfiguration(target).setDatabaseHistoryFileFilename(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasewhitelist":
+        case "databaseWhitelist": getOrCreateConfiguration(target).setDatabaseWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+        case "fieldblacklist":
+        case "fieldBlacklist": getOrCreateConfiguration(target).setFieldBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "fieldrenames":
+        case "fieldRenames": getOrCreateConfiguration(target).setFieldRenames(property(camelContext, java.lang.String.class, value)); return true;
+        case "heartbeatintervalms":
+        case "heartbeatIntervalMs": getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
+        case "heartbeattopicsprefix":
+        case "heartbeatTopicsPrefix": getOrCreateConfiguration(target).setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
+        case "initialsyncmaxthreads":
+        case "initialSyncMaxThreads": getOrCreateConfiguration(target).setInitialSyncMaxThreads(property(camelContext, int.class, value)); return true;
+        case "maxbatchsize":
+        case "maxBatchSize": getOrCreateConfiguration(target).setMaxBatchSize(property(camelContext, int.class, value)); return true;
+        case "maxqueuesize":
+        case "maxQueueSize": getOrCreateConfiguration(target).setMaxQueueSize(property(camelContext, int.class, value)); return true;
+        case "mongodbhosts":
+        case "mongodbHosts": getOrCreateConfiguration(target).setMongodbHosts(property(camelContext, java.lang.String.class, value)); return true;
+        case "mongodbmembersautodiscover":
+        case "mongodbMembersAutoDiscover": getOrCreateConfiguration(target).setMongodbMembersAutoDiscover(property(camelContext, boolean.class, value)); return true;
+        case "mongodbname":
+        case "mongodbName": getOrCreateConfiguration(target).setMongodbName(property(camelContext, java.lang.String.class, value)); return true;
+        case "mongodbpassword":
+        case "mongodbPassword": getOrCreateConfiguration(target).setMongodbPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "mongodbsslenabled":
+        case "mongodbSslEnabled": getOrCreateConfiguration(target).setMongodbSslEnabled(property(camelContext, boolean.class, value)); return true;
+        case "mongodbsslinvalidhostnameallowed":
+        case "mongodbSslInvalidHostnameAllowed": getOrCreateConfiguration(target).setMongodbSslInvalidHostnameAllowed(property(camelContext, boolean.class, value)); return true;
+        case "mongodbuser":
+        case "mongodbUser": getOrCreateConfiguration(target).setMongodbUser(property(camelContext, java.lang.String.class, value)); return true;
+        case "pollintervalms":
+        case "pollIntervalMs": getOrCreateConfiguration(target).setPollIntervalMs(property(camelContext, long.class, value)); return true;
+        case "snapshotdelayms":
+        case "snapshotDelayMs": getOrCreateConfiguration(target).setSnapshotDelayMs(property(camelContext, long.class, value)); return true;
+        case "snapshotfetchsize":
+        case "snapshotFetchSize": getOrCreateConfiguration(target).setSnapshotFetchSize(property(camelContext, int.class, value)); return true;
+        case "snapshotmode":
+        case "snapshotMode": getOrCreateConfiguration(target).setSnapshotMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "sourcestructversion":
+        case "sourceStructVersion": getOrCreateConfiguration(target).setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "tombstonesondelete":
+        case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json b/components/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
index 44704e0..617d8d6c 100644
--- a/components/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
+++ b/components/camel-debezium-mongodb/src/generated/resources/org/apache/camel/component/debezium/debezium-mongodb.json
@@ -19,9 +19,48 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "additionalProperties": { "kind": "property", "displayName": "Additional Properties", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "additionalProperties.", "multiValue": true, "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descript [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "deprecated": false, "secret": false, "description": "Allow pre-configured Configurations to be set." },
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "internalKeyConverter": { "kind": "property", "displayName": "Internal Key Converter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.json.JsonConverter", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The Converter [...]
+    "internalValueConverter": { "kind": "property", "displayName": "Internal Value Converter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.json.JsonConverter", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The Conve [...]
+    "offsetCommitPolicy": { "kind": "property", "displayName": "Offset Commit Policy", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descr [...]
+    "offsetCommitTimeoutMs": { "kind": "property", "displayName": "Offset Commit Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of milliseconds to wait for records to flush  [...]
+    "offsetFlushIntervalMs": { "kind": "property", "displayName": "Offset Flush Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Interval at which to try committing offsets. The default is [...]
+    "offsetStorage": { "kind": "property", "displayName": "Offset Storage", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the  [...]
+    "offsetStorageFileName": { "kind": "property", "displayName": "Offset Storage File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Path to file where offsets are to be stored. Required when offset.storage [...]
+    "offsetStoragePartitions": { "kind": "property", "displayName": "Offset Storage Partitions", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of partitions used when creating the offset storage topic. Required whe [...]
+    "offsetStorageReplicationFactor": { "kind": "property", "displayName": "Offset Storage Replication Factor", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Replication factor used when creating the offset storage topic. Req [...]
+    "offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. Required when offset [...]
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "collectionBlacklist": { "kind": "property", "displayName": "Collection Blacklist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for cor [...]
+    "collectionWhitelist": { "kind": "property", "displayName": "Collection Whitelist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The collections for which changes are to be captured" },
+    "connectBackoffInitialDelayMs": { "kind": "property", "displayName": "Connect Backoff Initial Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The initial delay when trying to recon [...]
+    "connectBackoffMaxDelayMs": { "kind": "property", "displayName": "Connect Backoff Max Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "120000", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum delay when trying to reconnect t [...]
+    "connectMaxAttempts": { "kind": "property", "displayName": "Connect Max Attempts", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "16", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of failed connection attempts to a replica set p [...]
+    "databaseBlacklist": { "kind": "property", "displayName": "Database Blacklist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The databases for which changes are to be excluded" },
+    "databaseHistoryFileFilename": { "kind": "property", "displayName": "Database History File Filename", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record the d [...]
+    "databaseWhitelist": { "kind": "property", "displayName": "Database Whitelist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The databases for which changes are to be captured" },
+    "fieldBlacklist": { "kind": "property", "displayName": "Field Blacklist", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding [...]
+    "fieldRenames": { "kind": "property", "displayName": "Field Renames", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding key [...]
+    "heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in which the connect [...]
+    "heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix that is used to  [...]
+    "initialSyncMaxThreads": { "kind": "property", "displayName": "Initial Sync Max Threads", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of threads used to perform an intial sync  [...]
+    "maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
+    "maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the database log bu [...]
+    "mongodbHosts": { "kind": "property", "displayName": "Mongodb Hosts", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server( [...]
+    "mongodbMembersAutoDiscover": { "kind": "property", "displayName": "Mongodb Members Auto Discover", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specifies whether the addresses in 'host [...]
+    "mongodbName": { "kind": "property", "displayName": "Mongodb Name", "group": "mongodb", "label": "consumer,mongodb", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name that identifies the MongoDB replica set or cluster and [...]
+    "mongodbPassword": { "kind": "property", "displayName": "Mongodb Password", "group": "mongodb", "label": "consumer,mongodb", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password to be used when connecting to MongoDB, if necessary." },
+    "mongodbSslEnabled": { "kind": "property", "displayName": "Mongodb Ssl Enabled", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Should connector use SSL to connect to MongoDB instances" },
+    "mongodbSslInvalidHostnameAllowed": { "kind": "property", "displayName": "Mongodb Ssl Invalid Hostname Allowed", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether invalid host names [...]
+    "mongodbUser": { "kind": "property", "displayName": "Mongodb User", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Database user for connecting to MongoDB, if necessary." },
+    "pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appear aft [...]
+    "snapshotDelayMs": { "kind": "property", "displayName": "Snapshot Delay Ms", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will begin." },
+    "snapshotFetchSize": { "kind": "property", "displayName": "Snapshot Fetch Size", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing a snap [...]
+    "snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of the con [...]
+    "sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly visible s [...]
+    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mongodb", "label": "consumer,mongodb", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represented by a del [...]
   },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the same name will fail." },
diff --git a/components/camel-debezium-mongodb/src/main/docs/debezium-mongodb-component.adoc b/components/camel-debezium-mongodb/src/main/docs/debezium-mongodb-component.adoc
index 3d5ca22..ccb7272 100644
--- a/components/camel-debezium-mongodb/src/main/docs/debezium-mongodb-component.adoc
+++ b/components/camel-debezium-mongodb/src/main/docs/debezium-mongodb-component.adoc
@@ -42,16 +42,55 @@ debezium-mongodb:name[?options]
 
 
 // component options: START
-The Debezium MongoDB Connector component supports 3 options, which are listed below.
+The Debezium MongoDB Connector component supports 42 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *additionalProperties* (common) | Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro |  | Map
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *configuration* (consumer) | Allow pre-configured Configurations to be set. |  | MongoDbConnectorEmbeddedDebeziumConfiguration
+| *internalKeyConverter* (consumer) | The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
+| *internalValueConverter* (consumer) | The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
+| *offsetCommitPolicy* (consumer) | The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals. | io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy | String
+| *offsetCommitTimeoutMs* (consumer) | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. | 5000 | long
+| *offsetFlushIntervalMs* (consumer) | Interval at which to try committing offsets. The default is 1 minute. | 60000 | long
+| *offsetStorage* (consumer) | The name of the Java class that is responsible for persistence of connector offsets. | org.apache.kafka.connect.storage.FileOffsetBackingStore | String
+| *offsetStorageFileName* (consumer) | Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore. |  | String
+| *offsetStoragePartitions* (consumer) | The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'. |  | int
+| *offsetStorageReplicationFactor* (consumer) | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore |  | int
+| *offsetStorageTopic* (consumer) | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *collectionBlacklist* (mongodb) | Description is not available here, please check Debezium website for corresponding key 'collection.blacklist' description. |  | String
+| *collectionWhitelist* (mongodb) | The collections for which changes are to be captured |  | String
+| *connectBackoffInitialDelayMs* (mongodb) | The initial delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 1 second (1000 ms). | 1000 | long
+| *connectBackoffMaxDelayMs* (mongodb) | The maximum delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available. Defaults to 120 second (120,000 ms). | 120000 | long
+| *connectMaxAttempts* (mongodb) | Maximum number of failed connection attempts to a replica set primary before an exception occurs and task is aborted. Defaults to 16, which with the defaults for 'connect.backoff.initial.delay.ms' and 'connect.backoff.max.delay.ms' results in just over 20 minutes of attempts before failing. | 16 | int
+| *databaseBlacklist* (mongodb) | The databases for which changes are to be excluded |  | String
+| *databaseHistoryFileFilename* (mongodb) | The path to the file that will be used to record the database history |  | String
+| *databaseWhitelist* (mongodb) | The databases for which changes are to be captured |  | String
+| *fieldBlacklist* (mongodb) | Description is not available here, please check Debezium website for corresponding key 'field.blacklist' description. |  | String
+| *fieldRenames* (mongodb) | Description is not available here, please check Debezium website for corresponding key 'field.renames' description. |  | String
+| *heartbeatIntervalMs* (mongodb) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0 | int
+| *heartbeatTopicsPrefix* (mongodb) | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
+| *initialSyncMaxThreads* (mongodb) | Maximum number of threads used to perform an intial sync of the collections in a replica set. Defaults to 1. | 1 | int
+| *maxBatchSize* (mongodb) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
+| *maxQueueSize* (mongodb) | Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size. | 8192 | int
+| *mongodbHosts* (mongodb) | The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server(s) in the replica set. |  | String
+| *mongodbMembersAutoDiscover* (mongodb) | Specifies whether the addresses in 'hosts' are seeds that should be used to discover all members of the cluster or replica set ('true'), or whether the address(es) in 'hosts' should be used as is ('false'). The default is 'true'. | true | boolean
+| *mongodbName* (mongodb) | *Required* Unique name that identifies the MongoDB replica set or cluster and all recorded offsets, andthat is used as a prefix for all schemas and topics. Each distinct MongoDB installation should have a separate namespace and monitored by at most one Debezium connector. |  | String
+| *mongodbPassword* (mongodb) | *Required* Password to be used when connecting to MongoDB, if necessary. |  | String
+| *mongodbSslEnabled* (mongodb) | Should connector use SSL to connect to MongoDB instances | false | boolean
+| *mongodbSslInvalidHostname Allowed* (mongodb) | Whether invalid host names are allowed when using SSL. If true the connection will not prevent man-in-the-middle attacks | false | boolean
+| *mongodbUser* (mongodb) | Database user for connecting to MongoDB, if necessary. |  | String
+| *pollIntervalMs* (mongodb) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500 | long
+| *snapshotDelayMs* (mongodb) | The number of milliseconds to delay before a snapshot will begin. | 0 | long
+| *snapshotFetchSize* (mongodb) | The maximum number of records that should be loaded into memory while performing a snapshot |  | int
+| *snapshotMode* (mongodb) | The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should always perform an initial sync when required; 'never' to specify the connector should never perform an initial sync | initial | String
+| *sourceStructVersion* (mongodb) | A version of the format of the publicly visible source part in the message | v2 | String
+| *tombstonesOnDelete* (mongodb) | Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted. | false | boolean
 |===
 // component options: END
 
diff --git a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
index fb1ed72..4343650 100644
--- a/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
+++ b/components/camel-debezium-mysql/src/generated/java/org/apache/camel/component/debezium/DebeziumMySqlComponentConfigurer.java
@@ -11,15 +11,160 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class DebeziumMySqlComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration getOrCreateConfiguration(DebeziumMySqlComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         DebeziumMySqlComponent target = (DebeziumMySqlComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "additionalproperties":
+        case "additionalProperties": getOrCreateConfiguration(target).setAdditionalProperties(property(camelContext, java.util.Map.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration.class, value)); return true;
+        case "internalkeyconverter":
+        case "internalKeyConverter": getOrCreateConfiguration(target).setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
+        case "internalvalueconverter":
+        case "internalValueConverter": getOrCreateConfiguration(target).setInternalValueConverter(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetcommitpolicy":
+        case "offsetCommitPolicy": getOrCreateConfiguration(target).setOffsetCommitPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetcommittimeoutms":
+        case "offsetCommitTimeoutMs": getOrCreateConfiguration(target).setOffsetCommitTimeoutMs(property(camelContext, long.class, value)); return true;
+        case "offsetflushintervalms":
+        case "offsetFlushIntervalMs": getOrCreateConfiguration(target).setOffsetFlushIntervalMs(property(camelContext, long.class, value)); return true;
+        case "offsetstorage":
+        case "offsetStorage": getOrCreateConfiguration(target).setOffsetStorage(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetstoragefilename":
+        case "offsetStorageFileName": getOrCreateConfiguration(target).setOffsetStorageFileName(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetstoragepartitions":
+        case "offsetStoragePartitions": getOrCreateConfiguration(target).setOffsetStoragePartitions(property(camelContext, int.class, value)); return true;
+        case "offsetstoragereplicationfactor":
+        case "offsetStorageReplicationFactor": getOrCreateConfiguration(target).setOffsetStorageReplicationFactor(property(camelContext, int.class, value)); return true;
+        case "offsetstoragetopic":
+        case "offsetStorageTopic": getOrCreateConfiguration(target).setOffsetStorageTopic(property(camelContext, java.lang.String.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "bigintunsignedhandlingmode":
+        case "bigintUnsignedHandlingMode": getOrCreateConfiguration(target).setBigintUnsignedHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "binlogbuffersize":
+        case "binlogBufferSize": getOrCreateConfiguration(target).setBinlogBufferSize(property(camelContext, int.class, value)); return true;
+        case "columnblacklist":
+        case "columnBlacklist": getOrCreateConfiguration(target).setColumnBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "connectkeepalive":
+        case "connectKeepAlive": getOrCreateConfiguration(target).setConnectKeepAlive(property(camelContext, boolean.class, value)); return true;
+        case "connectkeepaliveintervalms":
+        case "connectKeepAliveIntervalMs": getOrCreateConfiguration(target).setConnectKeepAliveIntervalMs(property(camelContext, long.class, value)); return true;
+        case "connecttimeoutms":
+        case "connectTimeoutMs": getOrCreateConfiguration(target).setConnectTimeoutMs(property(camelContext, int.class, value)); return true;
+        case "databaseblacklist":
+        case "databaseBlacklist": getOrCreateConfiguration(target).setDatabaseBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistory":
+        case "databaseHistory": getOrCreateConfiguration(target).setDatabaseHistory(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistoryfilefilename":
+        case "databaseHistoryFileFilename": getOrCreateConfiguration(target).setDatabaseHistoryFileFilename(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistorykafkabootstrapservers":
+        case "databaseHistoryKafkaBootstrapServers": getOrCreateConfiguration(target).setDatabaseHistoryKafkaBootstrapServers(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistorykafkarecoveryattempts":
+        case "databaseHistoryKafkaRecoveryAttempts": getOrCreateConfiguration(target).setDatabaseHistoryKafkaRecoveryAttempts(property(camelContext, int.class, value)); return true;
+        case "databasehistorykafkarecoverypollintervalms":
+        case "databaseHistoryKafkaRecoveryPollIntervalMs": getOrCreateConfiguration(target).setDatabaseHistoryKafkaRecoveryPollIntervalMs(property(camelContext, int.class, value)); return true;
+        case "databasehistorykafkatopic":
+        case "databaseHistoryKafkaTopic": getOrCreateConfiguration(target).setDatabaseHistoryKafkaTopic(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistoryskipunparseableddl":
+        case "databaseHistorySkipUnparseableDdl": getOrCreateConfiguration(target).setDatabaseHistorySkipUnparseableDdl(property(camelContext, boolean.class, value)); return true;
+        case "databasehistorystoreonlymonitoredtablesddl":
+        case "databaseHistoryStoreOnlyMonitoredTablesDdl": getOrCreateConfiguration(target).setDatabaseHistoryStoreOnlyMonitoredTablesDdl(property(camelContext, boolean.class, value)); return true;
+        case "databasehostname":
+        case "databaseHostname": getOrCreateConfiguration(target).setDatabaseHostname(property(camelContext, java.lang.String.class, value)); return true;
+        case "databaseinitialstatements":
+        case "databaseInitialStatements": getOrCreateConfiguration(target).setDatabaseInitialStatements(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasejdbcdriver":
+        case "databaseJdbcDriver": getOrCreateConfiguration(target).setDatabaseJdbcDriver(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasepassword":
+        case "databasePassword": getOrCreateConfiguration(target).setDatabasePassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "databaseport":
+        case "databasePort": getOrCreateConfiguration(target).setDatabasePort(property(camelContext, int.class, value)); return true;
+        case "databaseserverid":
+        case "databaseServerId": getOrCreateConfiguration(target).setDatabaseServerId(property(camelContext, long.class, value)); return true;
+        case "databaseserveridoffset":
+        case "databaseServerIdOffset": getOrCreateConfiguration(target).setDatabaseServerIdOffset(property(camelContext, long.class, value)); return true;
+        case "databaseservername":
+        case "databaseServerName": getOrCreateConfiguration(target).setDatabaseServerName(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslkeystore":
+        case "databaseSslKeystore": getOrCreateConfiguration(target).setDatabaseSslKeystore(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslkeystorepassword":
+        case "databaseSslKeystorePassword": getOrCreateConfiguration(target).setDatabaseSslKeystorePassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslmode":
+        case "databaseSslMode": getOrCreateConfiguration(target).setDatabaseSslMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasessltruststore":
+        case "databaseSslTruststore": getOrCreateConfiguration(target).setDatabaseSslTruststore(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasessltruststorepassword":
+        case "databaseSslTruststorePassword": getOrCreateConfiguration(target).setDatabaseSslTruststorePassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "databaseuser":
+        case "databaseUser": getOrCreateConfiguration(target).setDatabaseUser(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasewhitelist":
+        case "databaseWhitelist": getOrCreateConfiguration(target).setDatabaseWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+        case "decimalhandlingmode":
+        case "decimalHandlingMode": getOrCreateConfiguration(target).setDecimalHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "enabletimeadjuster":
+        case "enableTimeAdjuster": getOrCreateConfiguration(target).setEnableTimeAdjuster(property(camelContext, boolean.class, value)); return true;
+        case "eventdeserializationfailurehandlingmode":
+        case "eventDeserializationFailureHandlingMode": getOrCreateConfiguration(target).setEventDeserializationFailureHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "gtidnewchannelposition":
+        case "gtidNewChannelPosition": getOrCreateConfiguration(target).setGtidNewChannelPosition(property(camelContext, java.lang.String.class, value)); return true;
+        case "gtidsourceexcludes":
+        case "gtidSourceExcludes": getOrCreateConfiguration(target).setGtidSourceExcludes(property(camelContext, java.lang.String.class, value)); return true;
+        case "gtidsourcefilterdmlevents":
+        case "gtidSourceFilterDmlEvents": getOrCreateConfiguration(target).setGtidSourceFilterDmlEvents(property(camelContext, boolean.class, value)); return true;
+        case "gtidsourceincludes":
+        case "gtidSourceIncludes": getOrCreateConfiguration(target).setGtidSourceIncludes(property(camelContext, java.lang.String.class, value)); return true;
+        case "heartbeatintervalms":
+        case "heartbeatIntervalMs": getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
+        case "heartbeattopicsprefix":
+        case "heartbeatTopicsPrefix": getOrCreateConfiguration(target).setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
+        case "includequery":
+        case "includeQuery": getOrCreateConfiguration(target).setIncludeQuery(property(camelContext, boolean.class, value)); return true;
+        case "includeschemachanges":
+        case "includeSchemaChanges": getOrCreateConfiguration(target).setIncludeSchemaChanges(property(camelContext, boolean.class, value)); return true;
+        case "inconsistentschemahandlingmode":
+        case "inconsistentSchemaHandlingMode": getOrCreateConfiguration(target).setInconsistentSchemaHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "maxbatchsize":
+        case "maxBatchSize": getOrCreateConfiguration(target).setMaxBatchSize(property(camelContext, int.class, value)); return true;
+        case "maxqueuesize":
+        case "maxQueueSize": getOrCreateConfiguration(target).setMaxQueueSize(property(camelContext, int.class, value)); return true;
+        case "messagekeycolumns":
+        case "messageKeyColumns": getOrCreateConfiguration(target).setMessageKeyColumns(property(camelContext, java.lang.String.class, value)); return true;
+        case "pollintervalms":
+        case "pollIntervalMs": getOrCreateConfiguration(target).setPollIntervalMs(property(camelContext, long.class, value)); return true;
+        case "snapshotdelayms":
+        case "snapshotDelayMs": getOrCreateConfiguration(target).setSnapshotDelayMs(property(camelContext, long.class, value)); return true;
+        case "snapshotfetchsize":
+        case "snapshotFetchSize": getOrCreateConfiguration(target).setSnapshotFetchSize(property(camelContext, int.class, value)); return true;
+        case "snapshotlockingmode":
+        case "snapshotLockingMode": getOrCreateConfiguration(target).setSnapshotLockingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "snapshotmode":
+        case "snapshotMode": getOrCreateConfiguration(target).setSnapshotMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "snapshotnewtables":
+        case "snapshotNewTables": getOrCreateConfiguration(target).setSnapshotNewTables(property(camelContext, java.lang.String.class, value)); return true;
+        case "snapshotselectstatementoverrides":
+        case "snapshotSelectStatementOverrides": getOrCreateConfiguration(target).setSnapshotSelectStatementOverrides(property(camelContext, java.lang.String.class, value)); return true;
+        case "sourcestructversion":
+        case "sourceStructVersion": getOrCreateConfiguration(target).setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "tableblacklist":
+        case "tableBlacklist": getOrCreateConfiguration(target).setTableBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "tableignorebuiltin":
+        case "tableIgnoreBuiltin": getOrCreateConfiguration(target).setTableIgnoreBuiltin(property(camelContext, boolean.class, value)); return true;
+        case "tablewhitelist":
+        case "tableWhitelist": getOrCreateConfiguration(target).setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+        case "timeprecisionmode":
+        case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "tombstonesondelete":
+        case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json b/components/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
index 33eb515..88ff00b 100644
--- a/components/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
+++ b/components/camel-debezium-mysql/src/generated/resources/org/apache/camel/component/debezium/debezium-mysql.json
@@ -19,9 +19,78 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "additionalProperties": { "kind": "property", "displayName": "Additional Properties", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "additionalProperties.", "multiValue": true, "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descriptio [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "deprecated": false, "secret": false, "description": "Allow pre-configured Configurations to be set." },
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "internalKeyConverter": { "kind": "property", "displayName": "Internal Key Converter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.json.JsonConverter", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The Converter c [...]
+    "internalValueConverter": { "kind": "property", "displayName": "Internal Value Converter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.json.JsonConverter", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The Convert [...]
+    "offsetCommitPolicy": { "kind": "property", "displayName": "Offset Commit Policy", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descrip [...]
+    "offsetCommitTimeoutMs": { "kind": "property", "displayName": "Offset Commit Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of milliseconds to wait for records to flush an [...]
+    "offsetFlushIntervalMs": { "kind": "property", "displayName": "Offset Flush Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Interval at which to try committing offsets. The default is 1 [...]
+    "offsetStorage": { "kind": "property", "displayName": "Offset Storage", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Ja [...]
+    "offsetStorageFileName": { "kind": "property", "displayName": "Offset Storage File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Path to file where offsets are to be stored. Required when offset.storage i [...]
+    "offsetStoragePartitions": { "kind": "property", "displayName": "Offset Storage Partitions", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of partitions used when creating the offset storage topic. Required when  [...]
+    "offsetStorageReplicationFactor": { "kind": "property", "displayName": "Offset Storage Replication Factor", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Replication factor used when creating the offset storage topic. Requi [...]
+    "offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.s [...]
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "bigintUnsignedHandlingMode": { "kind": "property", "displayName": "Bigint Unsigned Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "long", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how BIGINT UNSIGNED columns sh [...]
+    "binlogBufferSize": { "kind": "property", "displayName": "Binlog Buffer Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The size of a look-ahead buffer used by the binlog reader to decide whethe [...]
+    "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding key [...]
+    "connectKeepAlive": { "kind": "property", "displayName": "Connect Keep Alive", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether a separate thread should be used to ensure the connection i [...]
+    "connectKeepAliveIntervalMs": { "kind": "property", "displayName": "Connect Keep Alive Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Interval in milliseconds to wait for connection [...]
+    "connectTimeoutMs": { "kind": "property", "displayName": "Connect Timeout Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "30000", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum time in milliseconds to wait after trying to connect to the da [...]
+    "databaseBlacklist": { "kind": "property", "displayName": "Database Blacklist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding [...]
+    "databaseHistory": { "kind": "property", "displayName": "Database History", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.debezium.relational.history.FileDatabaseHistory", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the  [...]
+    "databaseHistoryFileFilename": { "kind": "property", "displayName": "Database History File Filename", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record the databas [...]
+    "databaseHistoryKafkaBootstrapServers": { "kind": "property", "displayName": "Database History Kafka Bootstrap Servers", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A list of host\/port pairs that the conne [...]
+    "databaseHistoryKafkaRecoveryAttempts": { "kind": "property", "displayName": "Database History Kafka Recovery Attempts", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of attempts in a ro [...]
+    "databaseHistoryKafkaRecoveryPollIntervalMs": { "kind": "property", "displayName": "Database History Kafka Recovery Poll Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of mi [...]
+    "databaseHistoryKafkaTopic": { "kind": "property", "displayName": "Database History Kafka Topic", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the topic for the database schema history" },
+    "databaseHistorySkipUnparseableDdl": { "kind": "property", "displayName": "Database History Skip Unparseable Ddl", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Controls the action Debezium w [...]
+    "databaseHistoryStoreOnlyMonitoredTablesDdl": { "kind": "property", "displayName": "Database History Store Only Monitored Tables Ddl", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Controls w [...]
+    "databaseHostname": { "kind": "property", "displayName": "Database Hostname", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Resolvable hostname or IP address of the MySQL database server." },
+    "databaseInitialStatements": { "kind": "property", "displayName": "Database Initial Statements", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon separated list of SQL statements to be executed when  [...]
+    "databaseJdbcDriver": { "kind": "property", "displayName": "Database Jdbc Driver", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "class com.mysql.cj.jdbc.Driver", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "JDBC Driver class name used t [...]
+    "databasePassword": { "kind": "property", "displayName": "Database Password", "group": "mysql", "label": "consumer,mysql", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password of the MySQL database user to be used when connecting [...]
+    "databasePort": { "kind": "property", "displayName": "Database Port", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "3306", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Port of the MySQL database server." },
+    "databaseServerId": { "kind": "property", "displayName": "Database Server Id", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A numeric ID of this database client, which must be unique across all currently-running databa [...]
+    "databaseServerIdOffset": { "kind": "property", "displayName": "Database Server Id Offset", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Only relevant if parallel snapshotting is configured. Du [...]
+    "databaseServerName": { "kind": "property", "displayName": "Database Server Name", "group": "mysql", "label": "consumer,mysql", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name that identifies the database server and all r [...]
+    "databaseSslKeystore": { "kind": "property", "displayName": "Database Ssl Keystore", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Location of the Java keystore file containing an application process's own ce [...]
+    "databaseSslKeystorePassword": { "kind": "property", "displayName": "Database Ssl Keystore Password", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password to access the private key from the keystore file sp [...]
+    "databaseSslMode": { "kind": "property", "displayName": "Database Ssl Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "disabled", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether to use an encrypted connection to MySQL. Options  [...]
+    "databaseSslTruststore": { "kind": "property", "displayName": "Database Ssl Truststore", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Location of the Java truststore file containing the collection of CA cert [...]
+    "databaseSslTruststorePassword": { "kind": "property", "displayName": "Database Ssl Truststore Password", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password to unlock the keystore file (store password) sp [...]
+    "databaseUser": { "kind": "property", "displayName": "Database User", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Name of the MySQL database user to be used when connecting to the database." },
+    "databaseWhitelist": { "kind": "property", "displayName": "Database Whitelist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The databases for which changes are to be captured" },
+    "decimalHandlingMode": { "kind": "property", "displayName": "Decimal Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "precise", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how DECIMAL and NUMERIC columns should be  [...]
+    "enableTimeAdjuster": { "kind": "property", "displayName": "Enable Time Adjuster", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "MySQL allows user to insert year value as either 2-digit or 4-d [...]
+    "eventDeserializationFailureHandlingMode": { "kind": "property", "displayName": "Event Deserialization Failure Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how [...]
+    "gtidNewChannelPosition": { "kind": "property", "displayName": "Gtid New Channel Position", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "latest", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "If set to 'latest', when connector sees new  [...]
+    "gtidSourceExcludes": { "kind": "property", "displayName": "Gtid Source Excludes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to exclude GTID ranges when determine the starting positi [...]
+    "gtidSourceFilterDmlEvents": { "kind": "property", "displayName": "Gtid Source Filter Dml Events", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "If set to true, we will only produce DML events [...]
+    "gtidSourceIncludes": { "kind": "property", "displayName": "Gtid Source Includes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The source UUIDs used to include GTID ranges when determine the starting positi [...]
+    "heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in which the connector per [...]
+    "heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix that is used to name h [...]
+    "includeQuery": { "kind": "property", "displayName": "Include Query", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should include the original SQL query that generated  [...]
+    "includeSchemaChanges": { "kind": "property", "displayName": "Include Schema Changes", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether the connector should publish changes in the databas [...]
+    "inconsistentSchemaHandlingMode": { "kind": "property", "displayName": "Inconsistent Schema Handling Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "fail", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how binlog events that [...]
+    "maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
+    "maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the database log but not  [...]
+    "messageKeyColumns": { "kind": "property", "displayName": "Message Key Columns", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match fully-qualified tables and c [...]
+    "pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appear after rec [...]
+    "snapshotDelayMs": { "kind": "property", "displayName": "Snapshot Delay Ms", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will begin." },
+    "snapshotFetchSize": { "kind": "property", "displayName": "Snapshot Fetch Size", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing a snapshot" },
+    "snapshotLockingMode": { "kind": "property", "displayName": "Snapshot Locking Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "minimal", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Controls how long the connector holds onto the glo [...]
+    "snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of the connector [...]
+    "snapshotNewTables": { "kind": "property", "displayName": "Snapshot New Tables", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "off", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "BETA FEATURE: On connector restart, the connector will che [...]
+    "snapshotSelectStatementOverrides": { "kind": "property", "displayName": "Snapshot Select Statement Overrides", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property contains a comma-separated list of f [...]
+    "sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly visible source  [...]
+    "tableBlacklist": { "kind": "property", "displayName": "Table Blacklist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresponding key ' [...]
+    "tableIgnoreBuiltin": { "kind": "property", "displayName": "Table Ignore Builtin", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Flag specifying whether built-in tables should be ignored." },
+    "tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
+    "timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "adaptive_time_microseconds", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date and timestamps can be re [...]
+    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "mysql", "label": "consumer,mysql", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represented by a delete ev [...]
   },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the same name will fail." },
diff --git a/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc b/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
index 7cff86c..9d986c1 100644
--- a/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
+++ b/components/camel-debezium-mysql/src/main/docs/debezium-mysql-component.adoc
@@ -49,16 +49,85 @@ debezium-mysql:name[?options]
 
 
 // component options: START
-The Debezium MySQL Connector component supports 3 options, which are listed below.
+The Debezium MySQL Connector component supports 72 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *additionalProperties* (common) | Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro |  | Map
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *configuration* (consumer) | Allow pre-configured Configurations to be set. |  | MySqlConnectorEmbeddedDebeziumConfiguration
+| *internalKeyConverter* (consumer) | The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
+| *internalValueConverter* (consumer) | The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
+| *offsetCommitPolicy* (consumer) | The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals. | io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy | String
+| *offsetCommitTimeoutMs* (consumer) | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. | 5000 | long
+| *offsetFlushIntervalMs* (consumer) | Interval at which to try committing offsets. The default is 1 minute. | 60000 | long
+| *offsetStorage* (consumer) | The name of the Java class that is responsible for persistence of connector offsets. | org.apache.kafka.connect.storage.FileOffsetBackingStore | String
+| *offsetStorageFileName* (consumer) | Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore. |  | String
+| *offsetStoragePartitions* (consumer) | The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'. |  | int
+| *offsetStorageReplicationFactor* (consumer) | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore |  | int
+| *offsetStorageTopic* (consumer) | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *bigintUnsignedHandlingMode* (mysql) | Specify how BIGINT UNSIGNED columns should be represented in change events, including:'precise' uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'long' (the default) represents values using Java's 'long', which may not offer the precision but will be far easier to use in consumers. | long | String
+| *binlogBufferSize* (mysql) | The size of a look-ahead buffer used by the binlog reader to decide whether the transaction in progress is going to be committed or rolled back. Use 0 to disable look-ahead buffering. Defaults to 0 (i.e. buffering is disabled). | 0 | int
+| *columnBlacklist* (mysql) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. |  | String
+| *connectKeepAlive* (mysql) | Whether a separate thread should be used to ensure the connection is kept alive. | true | boolean
+| *connectKeepAliveIntervalMs* (mysql) | Interval in milliseconds to wait for connection checking if keep alive thread is used. | 60000 | long
+| *connectTimeoutMs* (mysql) | Maximum time in milliseconds to wait after trying to connect to the database before timing out. | 30000 | int
+| *databaseBlacklist* (mysql) | Description is not available here, please check Debezium website for corresponding key 'database.blacklist' description. |  | String
+| *databaseHistory* (mysql) | The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string. | io.debezium.relational.history.FileDatabaseHistory | String
+| *databaseHistoryFileFilename* (mysql) | The path to the file that will be used to record the database history |  | String
+| *databaseHistoryKafkaBootstrap Servers* (mysql) | A list of host/port pairs that the connector will use for establishing the initial connection to the Kafka cluster for retrieving database schema history previously stored by the connector. This should point to the same Kafka cluster used by the Kafka Connect process. |  | String
+| *databaseHistoryKafkaRecovery Attempts* (mysql) | The number of attempts in a row that no data are returned from Kafka before recover completes. The maximum amount of time to wait after receiving no data is (recovery.attempts) x (recovery.poll.interval.ms). | 100 | int
+| *databaseHistoryKafkaRecovery PollIntervalMs* (mysql) | The number of milliseconds to wait while polling for persisted data during recovery. | 100 | int
+| *databaseHistoryKafkaTopic* (mysql) | The name of the topic for the database schema history |  | String
+| *databaseHistorySkipUnparseable Ddl* (mysql) | Controls the action Debezium will take when it meets a DDL statement in binlog, that it cannot parse.By default the connector will stop operating but by changing the setting it can ignore the statements which it cannot parse. If skipping is enabled then Debezium can miss metadata changes. | false | boolean
+| *databaseHistoryStoreOnly MonitoredTablesDdl* (mysql) | Controls what DDL will Debezium store in database history.By default (false) Debezium will store all incoming DDL statements. If set to truethen only DDL that manipulates a monitored table will be stored. | false | boolean
+| *databaseHostname* (mysql) | Resolvable hostname or IP address of the MySQL database server. |  | String
+| *databaseInitialStatements* (mysql) | A semicolon separated list of SQL statements to be executed when a JDBC connection (not binlog reading connection) to the database is established. Note that the connector may establish JDBC connections at its own discretion, so this should typically be used for configuration of session parameters only,but not for executing DML statements. Use doubled semicolon (';;') to use a semicolon as a character and not as a delimiter. |  | String
+| *databaseJdbcDriver* (mysql) | JDBC Driver class name used to connect to the MySQL database server. | class com.mysql.cj.jdbc.Driver | String
+| *databasePassword* (mysql) | *Required* Password of the MySQL database user to be used when connecting to the database. |  | String
+| *databasePort* (mysql) | Port of the MySQL database server. | 3306 | int
+| *databaseServerId* (mysql) | A numeric ID of this database client, which must be unique across all currently-running database processes in the cluster. This connector joins the MySQL database cluster as another server (with this unique ID) so it can read the binlog. By default, a random number is generated between 5400 and 6400. |  | long
+| *databaseServerIdOffset* (mysql) | Only relevant if parallel snapshotting is configured. During parallel snapshotting, multiple (4) connections open to the database client, and they each need their own unique connection ID. This offset is used to generate those IDs from the base configured cluster ID. | 10000 | long
+| *databaseServerName* (mysql) | *Required* Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector. |  | String
+| *databaseSslKeystore* (mysql) | Location of the Java keystore file containing an application process's own certificate and private key. |  | String
+| *databaseSslKeystorePassword* (mysql) | Password to access the private key from the keystore file specified by 'ssl.keystore' configuration property or the 'javax.net.ssl.keyStore' system or JVM property. This password is used to unlock the keystore file (store password), and to decrypt the private key stored in the keystore (key password). |  | String
+| *databaseSslMode* (mysql) | Whether to use an encrypted connection to MySQL. Options include'disabled' (the default) to use an unencrypted connection; 'preferred' to establish a secure (encrypted) connection if the server supports secure connections, but fall back to an unencrypted connection otherwise; 'required' to use a secure (encrypted) connection, and fail if one cannot be established; 'verify_ca' like 'required' but additionally verify the server TLS certificate against the conf [...]
+| *databaseSslTruststore* (mysql) | Location of the Java truststore file containing the collection of CA certificates trusted by this application process (trust store). |  | String
+| *databaseSslTruststorePassword* (mysql) | Password to unlock the keystore file (store password) specified by 'ssl.trustore' configuration property or the 'javax.net.ssl.trustStore' system or JVM property. |  | String
+| *databaseUser* (mysql) | Name of the MySQL database user to be used when connecting to the database. |  | String
+| *databaseWhitelist* (mysql) | The databases for which changes are to be captured |  | String
+| *decimalHandlingMode* (mysql) | Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in con [...]
+| *enableTimeAdjuster* (mysql) | MySQL allows user to insert year value as either 2-digit or 4-digit. In case of two digit the value is automatically mapped into 1970 - 2069.false - delegates the implicit conversion to the databasetrue - (the default) Debezium makes the conversion | true | boolean
+| *eventDeserializationFailure HandlingMode* (mysql) | Specify how failures during deserialization of binlog events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its binlog position is raised, causing the connector to be stopped; 'warn' the problematic event and its binlog position will be logged and the event will be skipped;'ignore' the problematic event will be skipped. | fail | String
+| *gtidNewChannelPosition* (mysql) | If set to 'latest', when connector sees new GTID, it will start consuming gtid channel from the server latest executed gtid position. If 'earliest' connector starts reading channel from first available (not purged) gtid position on the server. | latest | String
+| *gtidSourceExcludes* (mysql) | The source UUIDs used to exclude GTID ranges when determine the starting position in the MySQL server's binlog. |  | String
+| *gtidSourceFilterDmlEvents* (mysql) | If set to true, we will only produce DML events into Kafka for transactions that were written on mysql servers with UUIDs matching the filters defined by the gtid.source.includes or gtid.source.excludes configuration options, if they are specified. | true | boolean
+| *gtidSourceIncludes* (mysql) | The source UUIDs used to include GTID ranges when determine the starting position in the MySQL server's binlog. |  | String
+| *heartbeatIntervalMs* (mysql) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0 | int
+| *heartbeatTopicsPrefix* (mysql) | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
+| *includeQuery* (mysql) | Whether the connector should include the original SQL query that generated the change event. Note: This option requires MySQL be configured with the binlog_rows_query_log_events option set to ON. Query will not be present for events generated from snapshot. WARNING: Enabling this option may expose tables or fields explicitly blacklisted or masked by including the original SQL statement in the change event. For this reason the default value is 'false'. | false | [...]
+| *includeSchemaChanges* (mysql) | Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value includes the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history. | true | boolean
+| *inconsistentSchemaHandlingMode* (mysql) | Specify how binlog events that belong to a table missing from internal schema representation (i.e. internal representation is not consistent with database) should be handled, including:'fail' (the default) an exception indicating the problematic event and its binlog position is raised, causing the connector to be stopped; 'warn' the problematic event and its binlog position will be logged and the event will be skipped;'ignore' the problematic  [...]
+| *maxBatchSize* (mysql) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
+| *maxQueueSize* (mysql) | Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size. | 8192 | int
+| *messageKeyColumns* (mysql) | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) [...]
+| *pollIntervalMs* (mysql) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500 | long
+| *snapshotDelayMs* (mysql) | The number of milliseconds to delay before a snapshot will begin. | 0 | long
+| *snapshotFetchSize* (mysql) | The maximum number of records that should be loaded into memory while performing a snapshot |  | int
+| *snapshotLockingMode* (mysql) | Controls how long the connector holds onto the global read lock while it is performing a snapshot. The default is 'minimal', which means the connector holds the global read lock (and thus prevents any updates) for just the initial portion of the snapshot while the database schemas and other metadata are being read. The remaining work in a snapshot involves selecting all rows from each table, and this can be done using the snapshot process' REPEATABLE REA [...]
+| *snapshotMode* (mysql) | The criteria for running a snapshot upon startup of the connector. Options include: 'when_needed' to specify that the connector run a snapshot upon startup whenever it deems it necessary; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally read the binlog; and [...]
+| *snapshotNewTables* (mysql) | BETA FEATURE: On connector restart, the connector will check if there have been any new tables added to the configuration, and snapshot them. There is presently only two options:'off': Default behavior. Do not snapshot new tables.'parallel': The snapshot of the new tables will occur in parallel to the continued binlog reading of the old tables. When the snapshot completes, an independent binlog reader will begin reading the events for the new tables until  [...]
+| *snapshotSelectStatement Overrides* (mysql) | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of [...]
+| *sourceStructVersion* (mysql) | A version of the format of the publicly visible source part in the message | v2 | String
+| *tableBlacklist* (mysql) | Description is not available here, please check Debezium website for corresponding key 'table.blacklist' description. |  | String
+| *tableIgnoreBuiltin* (mysql) | Flag specifying whether built-in tables should be ignored. | true | boolean
+| *tableWhitelist* (mysql) | The tables for which changes are to be captured |  | String
+| *timePrecisionMode* (mysql) | Time, date and timestamps can be represented with different kinds of precisions, including:'adaptive_time_microseconds': the precision of date and timestamp values is based the database column's precision; but time fields always use microseconds precision;'connect': always represents time, date and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database colum [...]
+| *tombstonesOnDelete* (mysql) | Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted. | false | boolean
 |===
 // component options: END
 
diff --git a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
index c127577..4a2ae2d 100644
--- a/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
+++ b/components/camel-debezium-postgres/src/generated/java/org/apache/camel/component/debezium/DebeziumPostgresComponentConfigurer.java
@@ -11,15 +11,144 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class DebeziumPostgresComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration getOrCreateConfiguration(DebeziumPostgresComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         DebeziumPostgresComponent target = (DebeziumPostgresComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "additionalproperties":
+        case "additionalProperties": getOrCreateConfiguration(target).setAdditionalProperties(property(camelContext, java.util.Map.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration.class, value)); return true;
+        case "internalkeyconverter":
+        case "internalKeyConverter": getOrCreateConfiguration(target).setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
+        case "internalvalueconverter":
+        case "internalValueConverter": getOrCreateConfiguration(target).setInternalValueConverter(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetcommitpolicy":
+        case "offsetCommitPolicy": getOrCreateConfiguration(target).setOffsetCommitPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetcommittimeoutms":
+        case "offsetCommitTimeoutMs": getOrCreateConfiguration(target).setOffsetCommitTimeoutMs(property(camelContext, long.class, value)); return true;
+        case "offsetflushintervalms":
+        case "offsetFlushIntervalMs": getOrCreateConfiguration(target).setOffsetFlushIntervalMs(property(camelContext, long.class, value)); return true;
+        case "offsetstorage":
+        case "offsetStorage": getOrCreateConfiguration(target).setOffsetStorage(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetstoragefilename":
+        case "offsetStorageFileName": getOrCreateConfiguration(target).setOffsetStorageFileName(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetstoragepartitions":
+        case "offsetStoragePartitions": getOrCreateConfiguration(target).setOffsetStoragePartitions(property(camelContext, int.class, value)); return true;
+        case "offsetstoragereplicationfactor":
+        case "offsetStorageReplicationFactor": getOrCreateConfiguration(target).setOffsetStorageReplicationFactor(property(camelContext, int.class, value)); return true;
+        case "offsetstoragetopic":
+        case "offsetStorageTopic": getOrCreateConfiguration(target).setOffsetStorageTopic(property(camelContext, java.lang.String.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "columnblacklist":
+        case "columnBlacklist": getOrCreateConfiguration(target).setColumnBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasedbname":
+        case "databaseDbname": getOrCreateConfiguration(target).setDatabaseDbname(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistoryfilefilename":
+        case "databaseHistoryFileFilename": getOrCreateConfiguration(target).setDatabaseHistoryFileFilename(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehostname":
+        case "databaseHostname": getOrCreateConfiguration(target).setDatabaseHostname(property(camelContext, java.lang.String.class, value)); return true;
+        case "databaseinitialstatements":
+        case "databaseInitialStatements": getOrCreateConfiguration(target).setDatabaseInitialStatements(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasepassword":
+        case "databasePassword": getOrCreateConfiguration(target).setDatabasePassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "databaseport":
+        case "databasePort": getOrCreateConfiguration(target).setDatabasePort(property(camelContext, int.class, value)); return true;
+        case "databaseservername":
+        case "databaseServerName": getOrCreateConfiguration(target).setDatabaseServerName(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslcert":
+        case "databaseSslcert": getOrCreateConfiguration(target).setDatabaseSslcert(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslfactory":
+        case "databaseSslfactory": getOrCreateConfiguration(target).setDatabaseSslfactory(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslkey":
+        case "databaseSslkey": getOrCreateConfiguration(target).setDatabaseSslkey(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslmode":
+        case "databaseSslmode": getOrCreateConfiguration(target).setDatabaseSslmode(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslpassword":
+        case "databaseSslpassword": getOrCreateConfiguration(target).setDatabaseSslpassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasesslrootcert":
+        case "databaseSslrootcert": getOrCreateConfiguration(target).setDatabaseSslrootcert(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasetcpkeepalive":
+        case "databaseTcpkeepalive": getOrCreateConfiguration(target).setDatabaseTcpkeepalive(property(camelContext, boolean.class, value)); return true;
+        case "databaseuser":
+        case "databaseUser": getOrCreateConfiguration(target).setDatabaseUser(property(camelContext, java.lang.String.class, value)); return true;
+        case "decimalhandlingmode":
+        case "decimalHandlingMode": getOrCreateConfiguration(target).setDecimalHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "heartbeatintervalms":
+        case "heartbeatIntervalMs": getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
+        case "heartbeattopicsprefix":
+        case "heartbeatTopicsPrefix": getOrCreateConfiguration(target).setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
+        case "hstorehandlingmode":
+        case "hstoreHandlingMode": getOrCreateConfiguration(target).setHstoreHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "includeunknowndatatypes":
+        case "includeUnknownDatatypes": getOrCreateConfiguration(target).setIncludeUnknownDatatypes(property(camelContext, boolean.class, value)); return true;
+        case "intervalhandlingmode":
+        case "intervalHandlingMode": getOrCreateConfiguration(target).setIntervalHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "maxbatchsize":
+        case "maxBatchSize": getOrCreateConfiguration(target).setMaxBatchSize(property(camelContext, int.class, value)); return true;
+        case "maxqueuesize":
+        case "maxQueueSize": getOrCreateConfiguration(target).setMaxQueueSize(property(camelContext, int.class, value)); return true;
+        case "messagekeycolumns":
+        case "messageKeyColumns": getOrCreateConfiguration(target).setMessageKeyColumns(property(camelContext, java.lang.String.class, value)); return true;
+        case "pluginname":
+        case "pluginName": getOrCreateConfiguration(target).setPluginName(property(camelContext, java.lang.String.class, value)); return true;
+        case "pollintervalms":
+        case "pollIntervalMs": getOrCreateConfiguration(target).setPollIntervalMs(property(camelContext, long.class, value)); return true;
+        case "publicationname":
+        case "publicationName": getOrCreateConfiguration(target).setPublicationName(property(camelContext, java.lang.String.class, value)); return true;
+        case "schemablacklist":
+        case "schemaBlacklist": getOrCreateConfiguration(target).setSchemaBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "schemarefreshmode":
+        case "schemaRefreshMode": getOrCreateConfiguration(target).setSchemaRefreshMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "schemawhitelist":
+        case "schemaWhitelist": getOrCreateConfiguration(target).setSchemaWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+        case "slotdroponstop":
+        case "slotDropOnStop": getOrCreateConfiguration(target).setSlotDropOnStop(property(camelContext, boolean.class, value)); return true;
+        case "slotmaxretries":
+        case "slotMaxRetries": getOrCreateConfiguration(target).setSlotMaxRetries(property(camelContext, int.class, value)); return true;
+        case "slotname":
+        case "slotName": getOrCreateConfiguration(target).setSlotName(property(camelContext, java.lang.String.class, value)); return true;
+        case "slotretrydelayms":
+        case "slotRetryDelayMs": getOrCreateConfiguration(target).setSlotRetryDelayMs(property(camelContext, long.class, value)); return true;
+        case "slotstreamparams":
+        case "slotStreamParams": getOrCreateConfiguration(target).setSlotStreamParams(property(camelContext, java.lang.String.class, value)); return true;
+        case "snapshotcustomclass":
+        case "snapshotCustomClass": getOrCreateConfiguration(target).setSnapshotCustomClass(property(camelContext, java.lang.String.class, value)); return true;
+        case "snapshotdelayms":
+        case "snapshotDelayMs": getOrCreateConfiguration(target).setSnapshotDelayMs(property(camelContext, long.class, value)); return true;
+        case "snapshotfetchsize":
+        case "snapshotFetchSize": getOrCreateConfiguration(target).setSnapshotFetchSize(property(camelContext, int.class, value)); return true;
+        case "snapshotlocktimeoutms":
+        case "snapshotLockTimeoutMs": getOrCreateConfiguration(target).setSnapshotLockTimeoutMs(property(camelContext, long.class, value)); return true;
+        case "snapshotmode":
+        case "snapshotMode": getOrCreateConfiguration(target).setSnapshotMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "snapshotselectstatementoverrides":
+        case "snapshotSelectStatementOverrides": getOrCreateConfiguration(target).setSnapshotSelectStatementOverrides(property(camelContext, java.lang.String.class, value)); return true;
+        case "sourcestructversion":
+        case "sourceStructVersion": getOrCreateConfiguration(target).setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "statusupdateintervalms":
+        case "statusUpdateIntervalMs": getOrCreateConfiguration(target).setStatusUpdateIntervalMs(property(camelContext, int.class, value)); return true;
+        case "tableblacklist":
+        case "tableBlacklist": getOrCreateConfiguration(target).setTableBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "tablewhitelist":
+        case "tableWhitelist": getOrCreateConfiguration(target).setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+        case "timeprecisionmode":
+        case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "toastedvalueplaceholder":
+        case "toastedValuePlaceholder": getOrCreateConfiguration(target).setToastedValuePlaceholder(property(camelContext, java.lang.String.class, value)); return true;
+        case "tombstonesondelete":
+        case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
+        case "xminfetchintervalms":
+        case "xminFetchIntervalMs": getOrCreateConfiguration(target).setXminFetchIntervalMs(property(camelContext, long.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json b/components/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
index d6be8a3..7b617a9 100644
--- a/components/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
+++ b/components/camel-debezium-postgres/src/generated/resources/org/apache/camel/component/debezium/debezium-postgres.json
@@ -19,9 +19,70 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "additionalProperties": { "kind": "property", "displayName": "Additional Properties", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "additionalProperties.", "multiValue": true, "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descrip [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "deprecated": false, "secret": false, "description": "Allow pre-configured Configurations to be set." },
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "internalKeyConverter": { "kind": "property", "displayName": "Internal Key Converter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.json.JsonConverter", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The Converte [...]
+    "internalValueConverter": { "kind": "property", "displayName": "Internal Value Converter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.json.JsonConverter", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The Conv [...]
+    "offsetCommitPolicy": { "kind": "property", "displayName": "Offset Commit Policy", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "desc [...]
+    "offsetCommitTimeoutMs": { "kind": "property", "displayName": "Offset Commit Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of milliseconds to wait for records to flush [...]
+    "offsetFlushIntervalMs": { "kind": "property", "displayName": "Offset Flush Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Interval at which to try committing offsets. The default i [...]
+    "offsetStorage": { "kind": "property", "displayName": "Offset Storage", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the [...]
+    "offsetStorageFileName": { "kind": "property", "displayName": "Offset Storage File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Path to file where offsets are to be stored. Required when offset.storag [...]
+    "offsetStoragePartitions": { "kind": "property", "displayName": "Offset Storage Partitions", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of partitions used when creating the offset storage topic. Required wh [...]
+    "offsetStorageReplicationFactor": { "kind": "property", "displayName": "Offset Storage Replication Factor", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Replication factor used when creating the offset storage topic. Re [...]
+    "offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. Required when offse [...]
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for correspo [...]
+    "databaseDbname": { "kind": "property", "displayName": "Database Dbname", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the database the connector should be monitoring" },
+    "databaseHistoryFileFilename": { "kind": "property", "displayName": "Database History File Filename", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record th [...]
+    "databaseHostname": { "kind": "property", "displayName": "Database Hostname", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Resolvable hostname or IP address of the Postgres database server." },
+    "databaseInitialStatements": { "kind": "property", "displayName": "Database Initial Statements", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon separated list of SQL statements to be execu [...]
+    "databasePassword": { "kind": "property", "displayName": "Database Password", "group": "postgres", "label": "consumer,postgres", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password of the Postgres database user to be used whe [...]
+    "databasePort": { "kind": "property", "displayName": "Database Port", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "5432", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Port of the Postgres database server." },
+    "databaseServerName": { "kind": "property", "displayName": "Database Server Name", "group": "postgres", "label": "consumer,postgres", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name that identifies the database server  [...]
+    "databaseSslcert": { "kind": "property", "displayName": "Database Sslcert", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "File containing the SSL Certificate for the client. See the Postgres SSL docs [...]
+    "databaseSslfactory": { "kind": "property", "displayName": "Database Sslfactory", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A name of class to that creates SSL Sockets. Use org.postgresql.ssl.Non [...]
+    "databaseSslkey": { "kind": "property", "displayName": "Database Sslkey", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "File containing the SSL private key for the client. See the Postgres SSL docs f [...]
+    "databaseSslmode": { "kind": "property", "displayName": "Database Sslmode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "disable", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether to use an encrypted connection to Postgres [...]
+    "databaseSslpassword": { "kind": "property", "displayName": "Database Sslpassword", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password to access the client private key from the file specified by  [...]
+    "databaseSslrootcert": { "kind": "property", "displayName": "Database Sslrootcert", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "File containing the root certificate(s) against which the server is v [...]
+    "databaseTcpkeepalive": { "kind": "property", "displayName": "Database Tcpkeepalive", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Enable or disable TCP keep-alive probe to avoid dro [...]
+    "databaseUser": { "kind": "property", "displayName": "Database User", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Name of the Postgres database user to be used when connecting to the database." },
+    "decimalHandlingMode": { "kind": "property", "displayName": "Decimal Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "precise", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how DECIMAL and NUMERIC columns s [...]
+    "heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in which the conn [...]
+    "heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix that is used  [...]
+    "hstoreHandlingMode": { "kind": "property", "displayName": "Hstore Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "json", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how HSTORE columns should be represent [...]
+    "includeUnknownDatatypes": { "kind": "property", "displayName": "Include Unknown Datatypes", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify whether the fields of data type not [...]
+    "intervalHandlingMode": { "kind": "property", "displayName": "Interval Handling Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "numeric", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how INTERVAL columns should be  [...]
+    "maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
+    "maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the database log [...]
+    "messageKeyColumns": { "kind": "property", "displayName": "Message Key Columns", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match fully-qualified tab [...]
+    "pluginName": { "kind": "property", "displayName": "Plugin Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "decoderbufs", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical decoding plugin install [...]
+    "pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appear  [...]
+    "publicationName": { "kind": "property", "displayName": "Publication Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "dbz_publication", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres 10 publication us [...]
+    "schemaBlacklist": { "kind": "property", "displayName": "Schema Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The schemas for which events must not be captured" },
+    "schemaRefreshMode": { "kind": "property", "displayName": "Schema Refresh Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "columns_diff", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify the conditions that trigger a re [...]
+    "schemaWhitelist": { "kind": "property", "displayName": "Schema Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The schemas for which events should be captured" },
+    "slotDropOnStop": { "kind": "property", "displayName": "Slot Drop On Stop", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether or not to drop the logical replication slot when the [...]
+    "slotMaxRetries": { "kind": "property", "displayName": "Slot Max Retries", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "6", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "How many times to retry connecting to a replication slot when an atte [...]
+    "slotName": { "kind": "property", "displayName": "Slot Name", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "debezium", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Postgres logical decoding slot created for stre [...]
+    "slotRetryDelayMs": { "kind": "property", "displayName": "Slot Retry Delay Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milli-seconds to wait between retry attempts  [...]
+    "slotStreamParams": { "kind": "property", "displayName": "Slot Stream Params", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Any optional parameters used by logical decoding plugin. Semi-colon separa [...]
+    "snapshotCustomClass": { "kind": "property", "displayName": "Snapshot Custom Class", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "When 'snapshot.mode' is set as custom, this setting must be set to s [...]
+    "snapshotDelayMs": { "kind": "property", "displayName": "Snapshot Delay Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will begin." },
+    "snapshotFetchSize": { "kind": "property", "displayName": "Snapshot Fetch Size", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing a s [...]
+    "snapshotLockTimeoutMs": { "kind": "property", "displayName": "Snapshot Lock Timeout Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of millis to wait for table lo [...]
+    "snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of the  [...]
+    "snapshotSelectStatementOverrides": { "kind": "property", "displayName": "Snapshot Select Statement Overrides", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property contains a comma-separated  [...]
+    "sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly visibl [...]
+    "statusUpdateIntervalMs": { "kind": "property", "displayName": "Status Update Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds for sending replicatio [...]
+    "tableBlacklist": { "kind": "property", "displayName": "Table Blacklist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for correspond [...]
+    "tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
+    "timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and timestamps can be represente [...]
+    "toastedValuePlaceholder": { "kind": "property", "displayName": "Toasted Value Placeholder", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium_unavailable_value", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify the  [...]
+    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represented by a  [...]
+    "xminFetchIntervalMs": { "kind": "property", "displayName": "Xmin Fetch Interval Ms", "group": "postgres", "label": "consumer,postgres", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how often (in ms) the xmin will be fetched from t [...]
   },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the same name will fail." },
diff --git a/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc b/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
index 44ac383..cfcc52c 100644
--- a/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
+++ b/components/camel-debezium-postgres/src/main/docs/debezium-postgres-component.adoc
@@ -40,16 +40,77 @@ debezium-postgres:name[?options]
 
 
 // component options: START
-The Debezium PostgresSQL Connector component supports 3 options, which are listed below.
+The Debezium PostgresSQL Connector component supports 64 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *additionalProperties* (common) | Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro |  | Map
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *configuration* (consumer) | Allow pre-configured Configurations to be set. |  | PostgresConnectorEmbeddedDebeziumConfiguration
+| *internalKeyConverter* (consumer) | The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
+| *internalValueConverter* (consumer) | The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
+| *offsetCommitPolicy* (consumer) | The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals. | io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy | String
+| *offsetCommitTimeoutMs* (consumer) | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. | 5000 | long
+| *offsetFlushIntervalMs* (consumer) | Interval at which to try committing offsets. The default is 1 minute. | 60000 | long
+| *offsetStorage* (consumer) | The name of the Java class that is responsible for persistence of connector offsets. | org.apache.kafka.connect.storage.FileOffsetBackingStore | String
+| *offsetStorageFileName* (consumer) | Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore. |  | String
+| *offsetStoragePartitions* (consumer) | The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'. |  | int
+| *offsetStorageReplicationFactor* (consumer) | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore |  | int
+| *offsetStorageTopic* (consumer) | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *columnBlacklist* (postgres) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. |  | String
+| *databaseDbname* (postgres) | The name of the database the connector should be monitoring |  | String
+| *databaseHistoryFileFilename* (postgres) | The path to the file that will be used to record the database history |  | String
+| *databaseHostname* (postgres) | Resolvable hostname or IP address of the Postgres database server. |  | String
+| *databaseInitialStatements* (postgres) | A semicolon separated list of SQL statements to be executed when a JDBC connection to the database is established. Note that the connector may establish JDBC connections at its own discretion, so this should typically be used for configurationof session parameters only, but not for executing DML statements. Use doubled semicolon (';;') to use a semicolon as a character and not as a delimiter. |  | String
+| *databasePassword* (postgres) | *Required* Password of the Postgres database user to be used when connecting to the database. |  | String
+| *databasePort* (postgres) | Port of the Postgres database server. | 5432 | int
+| *databaseServerName* (postgres) | *Required* Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector. |  | String
+| *databaseSslcert* (postgres) | File containing the SSL Certificate for the client. See the Postgres SSL docs for further information |  | String
+| *databaseSslfactory* (postgres) | A name of class to that creates SSL Sockets. Use org.postgresql.ssl.NonValidatingFactory to disable SSL validation in development environments |  | String
+| *databaseSslkey* (postgres) | File containing the SSL private key for the client. See the Postgres SSL docs for further information |  | String
+| *databaseSslmode* (postgres) | Whether to use an encrypted connection to Postgres. Options include'disable' (the default) to use an unencrypted connection; 'require' to use a secure (encrypted) connection, and fail if one cannot be established; 'verify-ca' like 'required' but additionally verify the server TLS certificate against the configured Certificate Authority (CA) certificates, or fail if no valid matching CA certificates are found; or'verify-full' like 'verify-ca' but additiona [...]
+| *databaseSslpassword* (postgres) | Password to access the client private key from the file specified by 'database.sslkey'. See the Postgres SSL docs for further information |  | String
+| *databaseSslrootcert* (postgres) | File containing the root certificate(s) against which the server is validated. See the Postgres JDBC SSL docs for further information |  | String
+| *databaseTcpkeepalive* (postgres) | Enable or disable TCP keep-alive probe to avoid dropping TCP connection | true | boolean
+| *databaseUser* (postgres) | Name of the Postgres database user to be used when connecting to the database. |  | String
+| *decimalHandlingMode* (postgres) | Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in  [...]
+| *heartbeatIntervalMs* (postgres) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0 | int
+| *heartbeatTopicsPrefix* (postgres) | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
+| *hstoreHandlingMode* (postgres) | Specify how HSTORE columns should be represented in change events, including:'json' represents values as json string'map' (default) represents values using java.util.Map | json | String
+| *includeUnknownDatatypes* (postgres) | Specify whether the fields of data type not supported by Debezium should be processed:'false' (the default) omits the fields; 'true' converts the field into an implementation dependent binary representation. | false | boolean
+| *intervalHandlingMode* (postgres) | Specify how INTERVAL columns should be represented in change events, including:'string' represents values as an exact ISO formatted string'numeric' (default) represents values using the inexact conversion into microseconds | numeric | String
+| *maxBatchSize* (postgres) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
+| *maxQueueSize* (postgres) | Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size. | 8192 | int
+| *messageKeyColumns* (postgres) | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column [...]
+| *pluginName* (postgres) | The name of the Postgres logical decoding plugin installed on the server. Supported values are 'decoderbufs' and 'wal2json'. Defaults to 'decoderbufs'. | decoderbufs | String
+| *pollIntervalMs* (postgres) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500 | long
+| *publicationName* (postgres) | The name of the Postgres 10 publication used for streaming changes from a plugin.Defaults to 'dbz_publication' | dbz_publication | String
+| *schemaBlacklist* (postgres) | The schemas for which events must not be captured |  | String
+| *schemaRefreshMode* (postgres) | Specify the conditions that trigger a refresh of the in-memory schema for a table. 'columns_diff' (the default) is the safest mode, ensuring the in-memory schema stays in-sync with the database table's schema at all times. 'columns_diff_exclude_unchanged_toast' instructs the connector to refresh the in-memory schema cache if there is a discrepancy between it and the schema derived from the incoming message, unless unchanged TOASTable data fully accounts [...]
+| *schemaWhitelist* (postgres) | The schemas for which events should be captured |  | String
+| *slotDropOnStop* (postgres) | Whether or not to drop the logical replication slot when the connector finishes orderlyBy default the replication is kept so that on restart progress can resume from the last recorded location | false | boolean
+| *slotMaxRetries* (postgres) | How many times to retry connecting to a replication slot when an attempt fails. | 6 | int
+| *slotName* (postgres) | The name of the Postgres logical decoding slot created for streaming changes from a plugin.Defaults to 'debezium | debezium | String
+| *slotRetryDelayMs* (postgres) | The number of milli-seconds to wait between retry attempts when the connector fails to connect to a replication slot. | 10000 | long
+| *slotStreamParams* (postgres) | Any optional parameters used by logical decoding plugin. Semi-colon separated. E.g. 'add-tables=public.table,public.table2;include-lsn=true' |  | String
+| *snapshotCustomClass* (postgres) | When 'snapshot.mode' is set as custom, this setting must be set to specify a fully qualified class name to load (via the default class loader).This class must implement the 'Snapshotter' interface and is called on each app boot to determine whether to do a snapshot and how to build queries. |  | String
+| *snapshotDelayMs* (postgres) | The number of milliseconds to delay before a snapshot will begin. | 0 | long
+| *snapshotFetchSize* (postgres) | The maximum number of records that should be loaded into memory while performing a snapshot |  | int
+| *snapshotLockTimeoutMs* (postgres) | The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds | 10000 | long
+| *snapshotMode* (postgres) | The criteria for running a snapshot upon startup of the connector. Options include: 'always' to specify that the connector run a snapshot each time it starts up; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally start emitting changes;'never' to specify t [...]
+| *snapshotSelectStatement Overrides* (postgres) | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value [...]
+| *sourceStructVersion* (postgres) | A version of the format of the publicly visible source part in the message | v2 | String
+| *statusUpdateIntervalMs* (postgres) | Frequency in milliseconds for sending replication connection status updates to the server. Defaults to 10 seconds (10000 ms). | 10000 | int
+| *tableBlacklist* (postgres) | Description is not available here, please check Debezium website for corresponding key 'table.blacklist' description. |  | String
+| *tableWhitelist* (postgres) | The tables for which changes are to be captured |  | String
+| *timePrecisionMode* (postgres) | Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which us [...]
+| *toastedValuePlaceholder* (postgres) | Specify the constant that will be provided by Debezium to indicate that the original value is a toasted value not provided by the database.If starts with 'hex:' prefix it is expected that the rest of the string repesents hexadecimally encoded octets. | __debezium_unavailable_value | String
+| *tombstonesOnDelete* (postgres) | Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted. | false | boolean
+| *xminFetchIntervalMs* (postgres) | Specify how often (in ms) the xmin will be fetched from the replication slot. This xmin value is exposed by the slot which gives a lower bound of where a new replication slot could start from. The lower the value, the more likely this value is to be the current 'true' value, but the bigger the performance cost. The bigger the value, the less likely this value is to be the current 'true' value, but the lower the performance penalty. The default is set  [...]
 |===
 // component options: END
 
diff --git a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
index 56fbe62..a0377c3 100644
--- a/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
+++ b/components/camel-debezium-sqlserver/src/generated/java/org/apache/camel/component/debezium/DebeziumSqlserverComponentConfigurer.java
@@ -11,15 +11,108 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class DebeziumSqlserverComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration getOrCreateConfiguration(DebeziumSqlserverComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         DebeziumSqlserverComponent target = (DebeziumSqlserverComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "additionalproperties":
+        case "additionalProperties": getOrCreateConfiguration(target).setAdditionalProperties(property(camelContext, java.util.Map.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration.class, value)); return true;
+        case "internalkeyconverter":
+        case "internalKeyConverter": getOrCreateConfiguration(target).setInternalKeyConverter(property(camelContext, java.lang.String.class, value)); return true;
+        case "internalvalueconverter":
+        case "internalValueConverter": getOrCreateConfiguration(target).setInternalValueConverter(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetcommitpolicy":
+        case "offsetCommitPolicy": getOrCreateConfiguration(target).setOffsetCommitPolicy(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetcommittimeoutms":
+        case "offsetCommitTimeoutMs": getOrCreateConfiguration(target).setOffsetCommitTimeoutMs(property(camelContext, long.class, value)); return true;
+        case "offsetflushintervalms":
+        case "offsetFlushIntervalMs": getOrCreateConfiguration(target).setOffsetFlushIntervalMs(property(camelContext, long.class, value)); return true;
+        case "offsetstorage":
+        case "offsetStorage": getOrCreateConfiguration(target).setOffsetStorage(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetstoragefilename":
+        case "offsetStorageFileName": getOrCreateConfiguration(target).setOffsetStorageFileName(property(camelContext, java.lang.String.class, value)); return true;
+        case "offsetstoragepartitions":
+        case "offsetStoragePartitions": getOrCreateConfiguration(target).setOffsetStoragePartitions(property(camelContext, int.class, value)); return true;
+        case "offsetstoragereplicationfactor":
+        case "offsetStorageReplicationFactor": getOrCreateConfiguration(target).setOffsetStorageReplicationFactor(property(camelContext, int.class, value)); return true;
+        case "offsetstoragetopic":
+        case "offsetStorageTopic": getOrCreateConfiguration(target).setOffsetStorageTopic(property(camelContext, java.lang.String.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "columnblacklist":
+        case "columnBlacklist": getOrCreateConfiguration(target).setColumnBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasedbname":
+        case "databaseDbname": getOrCreateConfiguration(target).setDatabaseDbname(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistory":
+        case "databaseHistory": getOrCreateConfiguration(target).setDatabaseHistory(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistoryfilefilename":
+        case "databaseHistoryFileFilename": getOrCreateConfiguration(target).setDatabaseHistoryFileFilename(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistorykafkabootstrapservers":
+        case "databaseHistoryKafkaBootstrapServers": getOrCreateConfiguration(target).setDatabaseHistoryKafkaBootstrapServers(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehistorykafkarecoveryattempts":
+        case "databaseHistoryKafkaRecoveryAttempts": getOrCreateConfiguration(target).setDatabaseHistoryKafkaRecoveryAttempts(property(camelContext, int.class, value)); return true;
+        case "databasehistorykafkarecoverypollintervalms":
+        case "databaseHistoryKafkaRecoveryPollIntervalMs": getOrCreateConfiguration(target).setDatabaseHistoryKafkaRecoveryPollIntervalMs(property(camelContext, int.class, value)); return true;
+        case "databasehistorykafkatopic":
+        case "databaseHistoryKafkaTopic": getOrCreateConfiguration(target).setDatabaseHistoryKafkaTopic(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasehostname":
+        case "databaseHostname": getOrCreateConfiguration(target).setDatabaseHostname(property(camelContext, java.lang.String.class, value)); return true;
+        case "databasepassword":
+        case "databasePassword": getOrCreateConfiguration(target).setDatabasePassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "databaseport":
+        case "databasePort": getOrCreateConfiguration(target).setDatabasePort(property(camelContext, int.class, value)); return true;
+        case "databaseservername":
+        case "databaseServerName": getOrCreateConfiguration(target).setDatabaseServerName(property(camelContext, java.lang.String.class, value)); return true;
+        case "databaseservertimezone":
+        case "databaseServerTimezone": getOrCreateConfiguration(target).setDatabaseServerTimezone(property(camelContext, java.lang.String.class, value)); return true;
+        case "databaseuser":
+        case "databaseUser": getOrCreateConfiguration(target).setDatabaseUser(property(camelContext, java.lang.String.class, value)); return true;
+        case "decimalhandlingmode":
+        case "decimalHandlingMode": getOrCreateConfiguration(target).setDecimalHandlingMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "heartbeatintervalms":
+        case "heartbeatIntervalMs": getOrCreateConfiguration(target).setHeartbeatIntervalMs(property(camelContext, int.class, value)); return true;
+        case "heartbeattopicsprefix":
+        case "heartbeatTopicsPrefix": getOrCreateConfiguration(target).setHeartbeatTopicsPrefix(property(camelContext, java.lang.String.class, value)); return true;
+        case "maxbatchsize":
+        case "maxBatchSize": getOrCreateConfiguration(target).setMaxBatchSize(property(camelContext, int.class, value)); return true;
+        case "maxqueuesize":
+        case "maxQueueSize": getOrCreateConfiguration(target).setMaxQueueSize(property(camelContext, int.class, value)); return true;
+        case "messagekeycolumns":
+        case "messageKeyColumns": getOrCreateConfiguration(target).setMessageKeyColumns(property(camelContext, java.lang.String.class, value)); return true;
+        case "pollintervalms":
+        case "pollIntervalMs": getOrCreateConfiguration(target).setPollIntervalMs(property(camelContext, long.class, value)); return true;
+        case "snapshotdelayms":
+        case "snapshotDelayMs": getOrCreateConfiguration(target).setSnapshotDelayMs(property(camelContext, long.class, value)); return true;
+        case "snapshotfetchsize":
+        case "snapshotFetchSize": getOrCreateConfiguration(target).setSnapshotFetchSize(property(camelContext, int.class, value)); return true;
+        case "snapshotlocktimeoutms":
+        case "snapshotLockTimeoutMs": getOrCreateConfiguration(target).setSnapshotLockTimeoutMs(property(camelContext, long.class, value)); return true;
+        case "snapshotmode":
+        case "snapshotMode": getOrCreateConfiguration(target).setSnapshotMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "snapshotselectstatementoverrides":
+        case "snapshotSelectStatementOverrides": getOrCreateConfiguration(target).setSnapshotSelectStatementOverrides(property(camelContext, java.lang.String.class, value)); return true;
+        case "sourcestructversion":
+        case "sourceStructVersion": getOrCreateConfiguration(target).setSourceStructVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "tableblacklist":
+        case "tableBlacklist": getOrCreateConfiguration(target).setTableBlacklist(property(camelContext, java.lang.String.class, value)); return true;
+        case "tableignorebuiltin":
+        case "tableIgnoreBuiltin": getOrCreateConfiguration(target).setTableIgnoreBuiltin(property(camelContext, boolean.class, value)); return true;
+        case "tablewhitelist":
+        case "tableWhitelist": getOrCreateConfiguration(target).setTableWhitelist(property(camelContext, java.lang.String.class, value)); return true;
+        case "timeprecisionmode":
+        case "timePrecisionMode": getOrCreateConfiguration(target).setTimePrecisionMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "tombstonesondelete":
+        case "tombstonesOnDelete": getOrCreateConfiguration(target).setTombstonesOnDelete(property(camelContext, boolean.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json b/components/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
index d7cd991..98c00bf 100644
--- a/components/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
+++ b/components/camel-debezium-sqlserver/src/generated/resources/org/apache/camel/component/debezium/debezium-sqlserver.json
@@ -19,9 +19,52 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "additionalProperties": { "kind": "property", "displayName": "Additional Properties", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "additionalProperties.", "multiValue": true, "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "descri [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "deprecated": false, "secret": false, "description": "Allow pre-configured Configurations to be set." },
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "internalKeyConverter": { "kind": "property", "displayName": "Internal Key Converter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.json.JsonConverter", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The Convert [...]
+    "internalValueConverter": { "kind": "property", "displayName": "Internal Value Converter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.json.JsonConverter", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The Con [...]
+    "offsetCommitPolicy": { "kind": "property", "displayName": "Offset Commit Policy", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "des [...]
+    "offsetCommitTimeoutMs": { "kind": "property", "displayName": "Offset Commit Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum number of milliseconds to wait for records to flus [...]
+    "offsetFlushIntervalMs": { "kind": "property", "displayName": "Offset Flush Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Interval at which to try committing offsets. The default  [...]
+    "offsetStorage": { "kind": "property", "displayName": "Offset Storage", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of th [...]
+    "offsetStorageFileName": { "kind": "property", "displayName": "Offset Storage File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Path to file where offsets are to be stored. Required when offset.stora [...]
+    "offsetStoragePartitions": { "kind": "property", "displayName": "Offset Storage Partitions", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of partitions used when creating the offset storage topic. Required w [...]
+    "offsetStorageReplicationFactor": { "kind": "property", "displayName": "Offset Storage Replication Factor", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Replication factor used when creating the offset storage topic. R [...]
+    "offsetStorageTopic": { "kind": "property", "displayName": "Offset Storage Topic", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the Kafka topic where offsets are to be stored. Required when offs [...]
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "columnBlacklist": { "kind": "property", "displayName": "Column Blacklist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corre [...]
+    "databaseDbname": { "kind": "property", "displayName": "Database Dbname", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the database the connector should be monitoring. When working wi [...]
+    "databaseHistory": { "kind": "property", "displayName": "Database History", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "io.debezium.relational.history.FileDatabaseHistory", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The  [...]
+    "databaseHistoryFileFilename": { "kind": "property", "displayName": "Database History File Filename", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The path to the file that will be used to record [...]
+    "databaseHistoryKafkaBootstrapServers": { "kind": "property", "displayName": "Database History Kafka Bootstrap Servers", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A list of host\/port pairs th [...]
+    "databaseHistoryKafkaRecoveryAttempts": { "kind": "property", "displayName": "Database History Kafka Recovery Attempts", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of atte [...]
+    "databaseHistoryKafkaRecoveryPollIntervalMs": { "kind": "property", "displayName": "Database History Kafka Recovery Poll Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The  [...]
+    "databaseHistoryKafkaTopic": { "kind": "property", "displayName": "Database History Kafka Topic", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The name of the topic for the database schema history" },
+    "databaseHostname": { "kind": "property", "displayName": "Database Hostname", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Resolvable hostname or IP address of the SQL Server database server." },
+    "databasePassword": { "kind": "property", "displayName": "Database Password", "group": "sqlserver", "label": "consumer,sqlserver", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Password of the SQL Server database user to be use [...]
+    "databasePort": { "kind": "property", "displayName": "Database Port", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1433", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Port of the SQL Server database server." },
+    "databaseServerName": { "kind": "property", "displayName": "Database Server Name", "group": "sqlserver", "label": "consumer,sqlserver", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name that identifies the database serv [...]
+    "databaseServerTimezone": { "kind": "property", "displayName": "Database Server Timezone", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The timezone of the server used to correctly shift the comm [...]
+    "databaseUser": { "kind": "property", "displayName": "Database User", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Name of the SQL Server database user to be used when connecting to the database." },
+    "decimalHandlingMode": { "kind": "property", "displayName": "Decimal Handling Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "precise", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Specify how DECIMAL and NUMERIC column [...]
+    "heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Length of an interval in milli-seconds in in which the c [...]
+    "heartbeatTopicsPrefix": { "kind": "property", "displayName": "Heartbeat Topics Prefix", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "__debezium-heartbeat", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The prefix that is us [...]
+    "maxBatchSize": { "kind": "property", "displayName": "Max Batch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "2048", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of each batch of source records. Defaults to 2048." },
+    "maxQueueSize": { "kind": "property", "displayName": "Max Queue Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Maximum size of the queue for change events read from the database  [...]
+    "messageKeyColumns": { "kind": "property", "displayName": "Message Key Columns", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A semicolon-separated list of expressions that match fully-qualified  [...]
+    "pollIntervalMs": { "kind": "property", "displayName": "Poll Interval Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "500", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Frequency in milliseconds to wait for new change events to appe [...]
+    "snapshotDelayMs": { "kind": "property", "displayName": "Snapshot Delay Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The number of milliseconds to delay before a snapshot will begin." },
+    "snapshotFetchSize": { "kind": "property", "displayName": "Snapshot Fetch Size", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of records that should be loaded into memory while performing  [...]
+    "snapshotLockTimeoutMs": { "kind": "property", "displayName": "Snapshot Lock Timeout Ms", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The maximum number of millis to wait for table [...]
+    "snapshotMode": { "kind": "property", "displayName": "Snapshot Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "initial", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The criteria for running a snapshot upon startup of t [...]
+    "snapshotSelectStatementOverrides": { "kind": "property", "displayName": "Snapshot Select Statement Overrides", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "This property contains a comma-separat [...]
+    "sourceStructVersion": { "kind": "property", "displayName": "Source Struct Version", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "v2", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "A version of the format of the publicly vis [...]
+    "tableBlacklist": { "kind": "property", "displayName": "Table Blacklist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Description is not available here, please check Debezium website for corresp [...]
+    "tableIgnoreBuiltin": { "kind": "property", "displayName": "Table Ignore Builtin", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Flag specifying whether built-in tables should be i [...]
+    "tableWhitelist": { "kind": "property", "displayName": "Table Whitelist", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "The tables for which changes are to be captured" },
+    "timePrecisionMode": { "kind": "property", "displayName": "Time Precision Mode", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "adaptive", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Time, date, and timestamps can be represe [...]
+    "tombstonesOnDelete": { "kind": "property", "displayName": "Tombstones On Delete", "group": "sqlserver", "label": "consumer,sqlserver", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Whether delete operations should be represented by [...]
   },
   "properties": {
     "name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration", "configurationField": "configuration", "description": "Unique name for the connector. Attempting to register again with the same name will fail." },
diff --git a/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc b/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
index d23b198..e289f7d 100644
--- a/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
+++ b/components/camel-debezium-sqlserver/src/main/docs/debezium-sqlserver-component.adoc
@@ -39,16 +39,59 @@ debezium-sqlserver:name[?options]
 
 
 // component options: START
-The Debezium SQL Server Connector component supports 3 options, which are listed below.
+The Debezium SQL Server Connector component supports 46 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *additionalProperties* (common) | Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=\http://localhost:8811/avro |  | Map
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *configuration* (consumer) | Allow pre-configured Configurations to be set. |  | SqlServerConnectorEmbeddedDebeziumConfiguration
+| *internalKeyConverter* (consumer) | The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
+| *internalValueConverter* (consumer) | The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter. | org.apache.kafka.connect.json.JsonConverter | String
+| *offsetCommitPolicy* (consumer) | The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals. | io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy | String
+| *offsetCommitTimeoutMs* (consumer) | Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. | 5000 | long
+| *offsetFlushIntervalMs* (consumer) | Interval at which to try committing offsets. The default is 1 minute. | 60000 | long
+| *offsetStorage* (consumer) | The name of the Java class that is responsible for persistence of connector offsets. | org.apache.kafka.connect.storage.FileOffsetBackingStore | String
+| *offsetStorageFileName* (consumer) | Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore. |  | String
+| *offsetStoragePartitions* (consumer) | The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'. |  | int
+| *offsetStorageReplicationFactor* (consumer) | Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore |  | int
+| *offsetStorageTopic* (consumer) | The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore. |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *columnBlacklist* (sqlserver) | Description is not available here, please check Debezium website for corresponding key 'column.blacklist' description. |  | String
+| *databaseDbname* (sqlserver) | The name of the database the connector should be monitoring. When working with a multi-tenant set-up, must be set to the CDB name. |  | String
+| *databaseHistory* (sqlserver) | The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string. | io.debezium.relational.history.FileDatabaseHistory | String
+| *databaseHistoryFileFilename* (sqlserver) | The path to the file that will be used to record the database history |  | String
+| *databaseHistoryKafkaBootstrap Servers* (sqlserver) | A list of host/port pairs that the connector will use for establishing the initial connection to the Kafka cluster for retrieving database schema history previously stored by the connector. This should point to the same Kafka cluster used by the Kafka Connect process. |  | String
+| *databaseHistoryKafkaRecovery Attempts* (sqlserver) | The number of attempts in a row that no data are returned from Kafka before recover completes. The maximum amount of time to wait after receiving no data is (recovery.attempts) x (recovery.poll.interval.ms). | 100 | int
+| *databaseHistoryKafkaRecovery PollIntervalMs* (sqlserver) | The number of milliseconds to wait while polling for persisted data during recovery. | 100 | int
+| *databaseHistoryKafkaTopic* (sqlserver) | The name of the topic for the database schema history |  | String
+| *databaseHostname* (sqlserver) | Resolvable hostname or IP address of the SQL Server database server. |  | String
+| *databasePassword* (sqlserver) | *Required* Password of the SQL Server database user to be used when connecting to the database. |  | String
+| *databasePort* (sqlserver) | Port of the SQL Server database server. | 1433 | int
+| *databaseServerName* (sqlserver) | *Required* Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector. |  | String
+| *databaseServerTimezone* (sqlserver) | The timezone of the server used to correctly shift the commit transaction timestamp on the client sideOptions include: Any valid Java ZoneId |  | String
+| *databaseUser* (sqlserver) | Name of the SQL Server database user to be used when connecting to the database. |  | String
+| *decimalHandlingMode* (sqlserver) | Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in [...]
+| *heartbeatIntervalMs* (sqlserver) | Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. | 0 | int
+| *heartbeatTopicsPrefix* (sqlserver) | The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat. | __debezium-heartbeat | String
+| *maxBatchSize* (sqlserver) | Maximum size of each batch of source records. Defaults to 2048. | 2048 | int
+| *maxQueueSize* (sqlserver) | Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size. | 8192 | int
+| *messageKeyColumns* (sqlserver) | A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key colum [...]
+| *pollIntervalMs* (sqlserver) | Frequency in milliseconds to wait for new change events to appear after receiving no events. Defaults to 500ms. | 500 | long
+| *snapshotDelayMs* (sqlserver) | The number of milliseconds to delay before a snapshot will begin. | 0 | long
+| *snapshotFetchSize* (sqlserver) | The maximum number of records that should be loaded into memory while performing a snapshot |  | int
+| *snapshotLockTimeoutMs* (sqlserver) | The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds | 10000 | long
+| *snapshotMode* (sqlserver) | The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should run a snapshot only when no offsets are available for the logical server name; 'schema_only' to specify the connector should run a snapshot of the schema when no offsets are available for the logical server name. | initial | String
+| *snapshotSelectStatement Overrides* (sqlserver) | This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors . Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The valu [...]
+| *sourceStructVersion* (sqlserver) | A version of the format of the publicly visible source part in the message | v2 | String
+| *tableBlacklist* (sqlserver) | Description is not available here, please check Debezium website for corresponding key 'table.blacklist' description. |  | String
+| *tableIgnoreBuiltin* (sqlserver) | Flag specifying whether built-in tables should be ignored. | true | boolean
+| *tableWhitelist* (sqlserver) | The tables for which changes are to be captured |  | String
+| *timePrecisionMode* (sqlserver) | Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which u [...]
+| *tombstonesOnDelete* (sqlserver) | Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted. | false | boolean
 |===
 // component options: END
 
diff --git a/components/camel-disruptor/src/generated/java/org/apache/camel/component/disruptor/DisruptorComponentConfigurer.java b/components/camel-disruptor/src/generated/java/org/apache/camel/component/disruptor/DisruptorComponentConfigurer.java
index d457d25..ecaaa62 100644
--- a/components/camel-disruptor/src/generated/java/org/apache/camel/component/disruptor/DisruptorComponentConfigurer.java
+++ b/components/camel-disruptor/src/generated/java/org/apache/camel/component/disruptor/DisruptorComponentConfigurer.java
@@ -17,8 +17,6 @@ public class DisruptorComponentConfigurer extends PropertyConfigurerSupport impl
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "buffersize":
         case "bufferSize": target.setBufferSize(property(camelContext, int.class, value)); return true;
-        case "queuesize":
-        case "queueSize": target.setQueueSize(property(camelContext, int.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "defaultconcurrentconsumers":
diff --git a/components/camel-disruptor/src/generated/resources/org/apache/camel/component/disruptor/disruptor-vm.json b/components/camel-disruptor/src/generated/resources/org/apache/camel/component/disruptor/disruptor-vm.json
index 2b68204..4aec71f 100644
--- a/components/camel-disruptor/src/generated/resources/org/apache/camel/component/disruptor/disruptor-vm.json
+++ b/components/camel-disruptor/src/generated/resources/org/apache/camel/component/disruptor/disruptor-vm.json
@@ -21,7 +21,6 @@
   },
   "componentProperties": {
     "bufferSize": { "kind": "property", "displayName": "Buffer Size", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1024", "description": "To configure the ring buffer size" },
-    "queueSize": { "kind": "property", "displayName": "Queue Size", "group": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": true, "secret": false, "description": "To configure the ring buffer size" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "defaultConcurrentConsumers": { "kind": "property", "displayName": "Default Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "description": "To configure the default number of concurrent consumers" },
     "defaultMultipleConsumers": { "kind": "property", "displayName": "Default Multiple Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "To configure the default value for multiple consumers" },
diff --git a/components/camel-disruptor/src/generated/resources/org/apache/camel/component/disruptor/disruptor.json b/components/camel-disruptor/src/generated/resources/org/apache/camel/component/disruptor/disruptor.json
index b5dcb4a..a6e46e4 100644
--- a/components/camel-disruptor/src/generated/resources/org/apache/camel/component/disruptor/disruptor.json
+++ b/components/camel-disruptor/src/generated/resources/org/apache/camel/component/disruptor/disruptor.json
@@ -21,7 +21,6 @@
   },
   "componentProperties": {
     "bufferSize": { "kind": "property", "displayName": "Buffer Size", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1024", "description": "To configure the ring buffer size" },
-    "queueSize": { "kind": "property", "displayName": "Queue Size", "group": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": true, "secret": false, "description": "To configure the ring buffer size" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "defaultConcurrentConsumers": { "kind": "property", "displayName": "Default Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "description": "To configure the default number of concurrent consumers" },
     "defaultMultipleConsumers": { "kind": "property", "displayName": "Default Multiple Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "To configure the default value for multiple consumers" },
diff --git a/components/camel-disruptor/src/main/docs/disruptor-component.adoc b/components/camel-disruptor/src/main/docs/disruptor-component.adoc
index ef90416..c93540c 100644
--- a/components/camel-disruptor/src/main/docs/disruptor-component.adoc
+++ b/components/camel-disruptor/src/main/docs/disruptor-component.adoc
@@ -99,7 +99,7 @@ All the following options are valid for both the **disruptor:** and
 
 
 // component options: START
-The Disruptor component supports 10 options, which are listed below.
+The Disruptor component supports 9 options, which are listed below.
 
 
 
@@ -107,7 +107,6 @@ The Disruptor component supports 10 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *bufferSize* (common) | To configure the ring buffer size | 1024 | int
-| *queueSize* (common) | *Deprecated* To configure the ring buffer size |  | int
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *defaultConcurrentConsumers* (consumer) | To configure the default number of concurrent consumers | 1 | int
 | *defaultMultipleConsumers* (consumer) | To configure the default value for multiple consumers | false | boolean
diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java
index 6c9d6be..b4d5541 100644
--- a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java
+++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java
@@ -41,9 +41,6 @@ public class DisruptorComponent extends DefaultComponent {
 
     @Metadata(defaultValue = "" + DEFAULT_BUFFER_SIZE)
     private int bufferSize = -1;
-    //for SEDA compatibility only
-    private int queueSize = -1;
-
     @Metadata(label = "consumer", defaultValue = "1")
     private int defaultConcurrentConsumers = 1;
     @Metadata(label = "consumer")
@@ -120,8 +117,6 @@ public class DisruptorComponent extends DefaultComponent {
             sizeToUse = size;
         } else if (bufferSize > 0) {
             sizeToUse = bufferSize;
-        } else if (queueSize > 0) {
-            sizeToUse = queueSize;
         } else {
             sizeToUse = DEFAULT_BUFFER_SIZE;
         }
@@ -243,19 +238,6 @@ public class DisruptorComponent extends DefaultComponent {
     /**
      * To configure the ring buffer size
      */
-    @Deprecated
-    public void setQueueSize(final int size) {
-        queueSize = size;
-    }
-
-    @Deprecated
-    public int getQueueSize() {
-        return queueSize;
-    }
-
-    /**
-     * To configure the ring buffer size
-     */
     public void setBufferSize(final int size) {
         bufferSize = size;
     }
diff --git a/components/camel-docker/src/generated/java/org/apache/camel/component/docker/DockerComponentConfigurer.java b/components/camel-docker/src/generated/java/org/apache/camel/component/docker/DockerComponentConfigurer.java
index 42a7ae1..80437eb 100644
--- a/components/camel-docker/src/generated/java/org/apache/camel/component/docker/DockerComponentConfigurer.java
+++ b/components/camel-docker/src/generated/java/org/apache/camel/component/docker/DockerComponentConfigurer.java
@@ -11,17 +11,50 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class DockerComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.docker.DockerConfiguration getOrCreateConfiguration(DockerComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.docker.DockerConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         DockerComponent target = (DockerComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.docker.DockerConfiguration.class, value)); return true;
+        case "email": getOrCreateConfiguration(target).setEmail(property(camelContext, java.lang.String.class, value)); return true;
+        case "host": getOrCreateConfiguration(target).setHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "port": getOrCreateConfiguration(target).setPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "requesttimeout":
+        case "requestTimeout": getOrCreateConfiguration(target).setRequestTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "cmdexecfactory":
+        case "cmdExecFactory": getOrCreateConfiguration(target).setCmdExecFactory(property(camelContext, java.lang.String.class, value)); return true;
+        case "followredirectfilter":
+        case "followRedirectFilter": getOrCreateConfiguration(target).setFollowRedirectFilter(property(camelContext, boolean.class, value)); return true;
+        case "loggingfilter":
+        case "loggingFilter": getOrCreateConfiguration(target).setLoggingFilter(property(camelContext, boolean.class, value)); return true;
+        case "maxperrouteconnections":
+        case "maxPerRouteConnections": getOrCreateConfiguration(target).setMaxPerRouteConnections(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "maxtotalconnections":
+        case "maxTotalConnections": getOrCreateConfiguration(target).setMaxTotalConnections(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "parameters": getOrCreateConfiguration(target).setParameters(property(camelContext, java.util.Map.class, value)); return true;
+        case "serveraddress":
+        case "serverAddress": getOrCreateConfiguration(target).setServerAddress(property(camelContext, java.lang.String.class, value)); return true;
+        case "socket": getOrCreateConfiguration(target).setSocket(property(camelContext, boolean.class, value)); return true;
+        case "certpath":
+        case "certPath": getOrCreateConfiguration(target).setCertPath(property(camelContext, java.lang.String.class, value)); return true;
+        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "secure": getOrCreateConfiguration(target).setSecure(property(camelContext, boolean.class, value)); return true;
+        case "tlsverify":
+        case "tlsVerify": getOrCreateConfiguration(target).setTlsVerify(property(camelContext, boolean.class, value)); return true;
+        case "username": getOrCreateConfiguration(target).setUsername(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-docker/src/generated/resources/org/apache/camel/component/docker/docker.json b/components/camel-docker/src/generated/resources/org/apache/camel/component/docker/docker.json
index 8925740..72450a4 100644
--- a/components/camel-docker/src/generated/resources/org/apache/camel/component/docker/docker.json
+++ b/components/camel-docker/src/generated/resources/org/apache/camel/component/docker/docker.json
@@ -20,9 +20,26 @@
   },
   "componentProperties": {
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.docker.DockerConfiguration", "deprecated": false, "secret": false, "description": "To use the shared docker configuration" },
+    "email": { "kind": "property", "displayName": "Email", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Email address associated with the user" },
+    "host": { "kind": "property", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "localhost", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Docker host" },
+    "port": { "kind": "property", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "2375", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Docker port" },
+    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Request timeout for response (in seconds)" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "cmdExecFactory": { "kind": "property", "displayName": "Cmd Exec Factory", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "com.github.dockerjava.netty.NettyDockerCmdExecFactory", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "The fully qualified class name of the DockerCmdExecFactor [...]
+    "followRedirectFilter": { "kind": "property", "displayName": "Follow Redirect Filter", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Whether to follow redirect filter" },
+    "loggingFilter": { "kind": "property", "displayName": "Logging Filter", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Whether to use logging filter" },
+    "maxPerRouteConnections": { "kind": "property", "displayName": "Max Per Route Connections", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Maximum route connections" },
+    "maxTotalConnections": { "kind": "property", "displayName": "Max Total Connections", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Maximum total connections" },
+    "parameters": { "kind": "property", "displayName": "Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Additional configuration parameters as key\/value pairs" },
+    "serverAddress": { "kind": "property", "displayName": "Server Address", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https:\/\/index.docker.io\/v1\/", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Server address for docker registry." },
+    "socket": { "kind": "property", "displayName": "Socket", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Socket connection mode" },
+    "certPath": { "kind": "property", "displayName": "Cert Path", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Location containing the SSL certificate chain" },
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Password to authenticate with" },
+    "secure": { "kind": "property", "displayName": "Secure", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Use HTTPS communication" },
+    "tlsVerify": { "kind": "property", "displayName": "Tls Verify", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Check TLS" },
+    "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "User name to authenticate with" }
   },
   "properties": {
     "operation": { "kind": "path", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.docker.DockerOperation", "enum": [ "events", "stats", "auth", "info", "ping", "version", "imagebuild", "imagecreate", "imageinspect", "imagelist", "imagepull", "imagepushimageremove", "imagesearch", "imagetag", "containerattach", "containercommit", "containercopyfile", "containercreate", "containerdiffinspectcontainer", [...]
diff --git a/components/camel-docker/src/main/docs/docker-component.adoc b/components/camel-docker/src/main/docs/docker-component.adoc
index 5d2f26f..5a9482c 100644
--- a/components/camel-docker/src/main/docs/docker-component.adoc
+++ b/components/camel-docker/src/main/docs/docker-component.adoc
@@ -27,7 +27,7 @@ Where *operation* is the specific action to perform on Docker.
 == General Options
 
 // component options: START
-The Docker component supports 4 options, which are listed below.
+The Docker component supports 21 options, which are listed below.
 
 
 
@@ -35,9 +35,26 @@ The Docker component supports 4 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared docker configuration |  | DockerConfiguration
+| *email* (common) | Email address associated with the user |  | String
+| *host* (common) | *Required* Docker host | localhost | String
+| *port* (common) | Docker port | 2375 | Integer
+| *requestTimeout* (common) | Request timeout for response (in seconds) |  | Integer
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *cmdExecFactory* (advanced) | The fully qualified class name of the DockerCmdExecFactory implementation to use | com.github.dockerjava.netty.NettyDockerCmdExecFactory | String
+| *followRedirectFilter* (advanced) | Whether to follow redirect filter | false | boolean
+| *loggingFilter* (advanced) | Whether to use logging filter | false | boolean
+| *maxPerRouteConnections* (advanced) | Maximum route connections | 100 | Integer
+| *maxTotalConnections* (advanced) | Maximum total connections | 100 | Integer
+| *parameters* (advanced) | Additional configuration parameters as key/value pairs |  | Map
+| *serverAddress* (advanced) | Server address for docker registry. | https://index.docker.io/v1/ | String
+| *socket* (advanced) | Socket connection mode | true | boolean
+| *certPath* (security) | Location containing the SSL certificate chain |  | String
+| *password* (security) | Password to authenticate with |  | String
+| *secure* (security) | Use HTTPS communication | false | boolean
+| *tlsVerify* (security) | Check TLS | false | boolean
+| *username* (security) | User name to authenticate with |  | String
 |===
 // component options: END
 
diff --git a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
index fdb3b32..aaa1817 100644
--- a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
+++ b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
@@ -76,7 +76,7 @@ public class DockerComponent extends DefaultComponent {
     /**
      * To use the shared docker configuration
      */
-    protected DockerConfiguration getConfiguration() {
+    public DockerConfiguration getConfiguration() {
         return configuration;
     }
 
diff --git a/components/camel-ehcache/src/generated/java/org/apache/camel/component/ehcache/EhcacheComponentConfigurer.java b/components/camel-ehcache/src/generated/java/org/apache/camel/component/ehcache/EhcacheComponentConfigurer.java
index 3d2fecf..ff37f28 100644
--- a/components/camel-ehcache/src/generated/java/org/apache/camel/component/ehcache/EhcacheComponentConfigurer.java
+++ b/components/camel-ehcache/src/generated/java/org/apache/camel/component/ehcache/EhcacheComponentConfigurer.java
@@ -11,27 +11,45 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class EhcacheComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.ehcache.EhcacheConfiguration getOrCreateConfiguration(EhcacheComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.ehcache.EhcacheConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         EhcacheComponent target = (EhcacheComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "cacheconfiguration":
-        case "cacheConfiguration": target.setCacheConfiguration(property(camelContext, org.ehcache.config.CacheConfiguration.class, value)); return true;
-        case "cacheconfigurationuri":
-        case "cacheConfigurationUri": target.setCacheConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
         case "cachemanager":
-        case "cacheManager": target.setCacheManager(property(camelContext, org.ehcache.CacheManager.class, value)); return true;
+        case "cacheManager": getOrCreateConfiguration(target).setCacheManager(property(camelContext, org.ehcache.CacheManager.class, value)); return true;
         case "cachemanagerconfiguration":
-        case "cacheManagerConfiguration": target.setCacheManagerConfiguration(property(camelContext, org.ehcache.config.Configuration.class, value)); return true;
-        case "cachesconfigurations":
-        case "cachesConfigurations": target.setCachesConfigurations(property(camelContext, java.util.Map.class, value)); return true;
+        case "cacheManagerConfiguration": getOrCreateConfiguration(target).setCacheManagerConfiguration(property(camelContext, org.ehcache.config.Configuration.class, value)); return true;
+        case "configurationuri":
+        case "configurationUri": getOrCreateConfiguration(target).setConfigurationUri(property(camelContext, java.lang.String.class, value)); return true;
+        case "createcacheifnotexist":
+        case "createCacheIfNotExist": getOrCreateConfiguration(target).setCreateCacheIfNotExist(property(camelContext, boolean.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "eventfiring":
+        case "eventFiring": getOrCreateConfiguration(target).setEventFiring(property(camelContext, org.ehcache.event.EventFiring.class, value)); return true;
+        case "eventordering":
+        case "eventOrdering": getOrCreateConfiguration(target).setEventOrdering(property(camelContext, org.ehcache.event.EventOrdering.class, value)); return true;
+        case "eventtypes":
+        case "eventTypes": getOrCreateConfiguration(target).setEventTypes(property(camelContext, java.lang.String.class, value)); return true;
+        case "action": getOrCreateConfiguration(target).setAction(property(camelContext, java.lang.String.class, value)); return true;
+        case "key": getOrCreateConfiguration(target).setKey(property(camelContext, java.lang.Object.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
-        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.ehcache.EhcacheConfiguration.class, value)); return true;
+        case "configuration": getOrCreateConfiguration(target).setConfiguration(property(camelContext, org.ehcache.config.CacheConfiguration.class, value)); return true;
+        case "configurations": getOrCreateConfiguration(target).setConfigurations(property(camelContext, java.util.Map.class, value)); return true;
+        case "keytype":
+        case "keyType": getOrCreateConfiguration(target).setKeyType(property(camelContext, java.lang.String.class, value)); return true;
+        case "valuetype":
+        case "valueType": getOrCreateConfiguration(target).setValueType(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-ehcache/src/generated/resources/org/apache/camel/component/ehcache/ehcache.json b/components/camel-ehcache/src/generated/resources/org/apache/camel/component/ehcache/ehcache.json
index 27bbdaf..3a8f75e 100644
--- a/components/camel-ehcache/src/generated/resources/org/apache/camel/component/ehcache/ehcache.json
+++ b/components/camel-ehcache/src/generated/resources/org/apache/camel/component/ehcache/ehcache.json
@@ -19,15 +19,22 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "cacheConfiguration": { "kind": "property", "displayName": "Cache Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.ehcache.config.CacheConfiguration", "deprecated": false, "secret": false, "description": "The default cache configuration to be used to create caches." },
-    "cacheConfigurationUri": { "kind": "property", "displayName": "Cache Configuration Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "URI pointing to the Ehcache XML configuration file's location" },
-    "cacheManager": { "kind": "property", "displayName": "Cache Manager", "group": "common", "required": false, "type": "object", "javaType": "org.ehcache.CacheManager", "deprecated": false, "secret": false, "description": "The cache manager" },
-    "cacheManagerConfiguration": { "kind": "property", "displayName": "Cache Manager Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.ehcache.config.Configuration", "deprecated": false, "secret": false, "description": "The cache manager configuration" },
-    "cachesConfigurations": { "kind": "property", "displayName": "Caches Configurations", "group": "common", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, org.ehcache.config.CacheConfiguration>", "deprecated": false, "secret": false, "description": "A map of caches configurations to be used to create caches." },
+    "cacheManager": { "kind": "property", "displayName": "Cache Manager", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.ehcache.CacheManager", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The cache manager" },
+    "cacheManagerConfiguration": { "kind": "property", "displayName": "Cache Manager Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.ehcache.config.Configuration", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The cache manager configuration" },
+    "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "URI pointing to the Ehcache XML configuration file's location" },
+    "createCacheIfNotExist": { "kind": "property", "displayName": "Create Cache If Not Exist", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Configure if a cache need to be created if it does exist or can't be pre-configured." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "eventFiring": { "kind": "property", "displayName": "Event Firing", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.ehcache.event.EventFiring", "enum": [ "ASYNCHRONOUS", "SYNCHRONOUS" ], "deprecated": false, "secret": false, "defaultValue": "ASYNCHRONOUS", "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the delivery mode (synchronous, asynchronous)" },
+    "eventOrdering": { "kind": "property", "displayName": "Event Ordering", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.ehcache.event.EventOrdering", "enum": [ "UNORDERED", "ORDERED" ], "deprecated": false, "secret": false, "defaultValue": "ORDERED", "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the delivery mode (ordered, unordered)" },
+    "eventTypes": { "kind": "property", "displayName": "Event Types", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "EVICTED", "EXPIRED", "REMOVED", "CREATED", "UPDATED" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the type of events to listen for (EVICTED,EXPIRED,REMOVED,CREATED, [...]
+    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence." },
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.ehcache.EhcacheConfiguration", "deprecated": false, "secret": false, "description": "Sets the global component configuration" }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.ehcache.config.CacheConfiguration", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The default cache configuration to be used to create caches." },
+    "configurations": { "kind": "property", "displayName": "Configurations", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, org.ehcache.config.CacheConfiguration>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "A map of cache configuration to be used to create caches." },
+    "keyType": { "kind": "property", "displayName": "Key Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The cache key type, default java.lang.Object" },
+    "valueType": { "kind": "property", "displayName": "Value Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The cache value type, default java.lang.Object" }
   },
   "properties": {
     "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "the cache name" },
diff --git a/components/camel-ehcache/src/main/docs/ehcache-component.adoc b/components/camel-ehcache/src/main/docs/ehcache-component.adoc
index 56f548b..d043d81 100644
--- a/components/camel-ehcache/src/main/docs/ehcache-component.adoc
+++ b/components/camel-ehcache/src/main/docs/ehcache-component.adoc
@@ -42,22 +42,29 @@ format, `?option=value&option=#beanRef&...`
 
 
 // component options: START
-The Ehcache component supports 9 options, which are listed below.
+The Ehcache component supports 16 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *cacheConfiguration* (common) | The default cache configuration to be used to create caches. |  | CacheConfiguration
-| *cacheConfigurationUri* (common) | URI pointing to the Ehcache XML configuration file's location |  | String
 | *cacheManager* (common) | The cache manager |  | CacheManager
 | *cacheManagerConfiguration* (common) | The cache manager configuration |  | Configuration
-| *cachesConfigurations* (common) | A map of caches configurations to be used to create caches. |  | Map
+| *configurationUri* (common) | URI pointing to the Ehcache XML configuration file's location |  | String
+| *createCacheIfNotExist* (common) | Configure if a cache need to be created if it does exist or can't be pre-configured. | true | boolean
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *eventFiring* (consumer) | Set the delivery mode (synchronous, asynchronous). The value can be one of: ASYNCHRONOUS, SYNCHRONOUS | ASYNCHRONOUS | EventFiring
+| *eventOrdering* (consumer) | Set the delivery mode (ordered, unordered). The value can be one of: UNORDERED, ORDERED | ORDERED | EventOrdering
+| *eventTypes* (consumer) | Set the type of events to listen for (EVICTED,EXPIRED,REMOVED,CREATED,UPDATED). You can specify multiple entries separated by comma. The value can be one of: EVICTED, EXPIRED, REMOVED, CREATED, UPDATED |  | String
+| *action* (producer) | To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence. |  | String
+| *key* (producer) | To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. |  | Object
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *configuration* (advanced) | Sets the global component configuration |  | EhcacheConfiguration
+| *configuration* (advanced) | The default cache configuration to be used to create caches. |  | CacheConfiguration
+| *configurations* (advanced) | A map of cache configuration to be used to create caches. |  | Map
+| *keyType* (advanced) | The cache key type, default java.lang.Object |  | String
+| *valueType* (advanced) | The cache value type, default java.lang.Object |  | String
 |===
 // component options: END
 
diff --git a/components/camel-elsql/src/generated/resources/org/apache/camel/component/elsql/elsql.json b/components/camel-elsql/src/generated/resources/org/apache/camel/component/elsql/elsql.json
index 2be19cc..1ba3da7 100644
--- a/components/camel-elsql/src/generated/resources/org/apache/camel/component/elsql/elsql.json
+++ b/components/camel-elsql/src/generated/resources/org/apache/camel/component/elsql/elsql.json
@@ -19,9 +19,9 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "databaseVendor": { "kind": "property", "displayName": "Database Vendor", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.elsql.ElSqlDatabaseVendor", "enum": [ "Default", "Postgres", "HSql", "MySql", "Oracle", "SqlServer2008", "Veritca" ], "deprecated": false, "secret": false, "description": "To use a vendor specific com.opengamma.elsql.ElSqlConfig" },
-    "dataSource": { "kind": "property", "displayName": "Data Source", "group": "common", "required": false, "type": "object", "javaType": "javax.sql.DataSource", "deprecated": false, "secret": false, "description": "Sets the DataSource to use to communicate with the database." },
-    "resourceUri": { "kind": "property", "displayName": "Resource Uri", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The resource file which contains the elsql SQL statements to use. You can specify multiple resources separated by comma. The resources are loaded on the classpath by default, you can prefix with file: to load from file system. Notice you can set this option on the component and [...]
+    "databaseVendor": { "kind": "property", "displayName": "Database Vendor", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.elsql.ElSqlDatabaseVendor", "enum": [ "Default", "Postgres", "HSql", "MySql", "Oracle", "SqlServer2008", "Veritca" ], "deprecated": false, "secret": false, "description": "To use a vendor specific com.opengamma.elsql.ElSqlConfig" },
+    "dataSource": { "kind": "property", "displayName": "Data Source", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.sql.DataSource", "deprecated": false, "secret": false, "description": "Sets the DataSource to use to communicate with the database." },
+    "resourceUri": { "kind": "property", "displayName": "Resource Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The resource file which contains the elsql SQL statements to use. You can specify multiple resources separated by comma. The resources are loaded on the classpath by default, you can prefix with file: to load from file system. Notice you can set this option on the  [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java
index fc1273b..c6c88a3 100644
--- a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java
+++ b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java
@@ -33,10 +33,13 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 @Component("elsql")
 public class ElsqlComponent extends DefaultComponent {
 
+    @Metadata
     private ElSqlDatabaseVendor databaseVendor;
+    @Metadata
     private DataSource dataSource;
     @Metadata(label = "advanced")
     private ElSqlConfig elSqlConfig;
+    @Metadata
     private String resourceUri;
 
     public ElsqlComponent() {
diff --git a/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdKeysComponentConfigurer.java b/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdKeysComponentConfigurer.java
index 465703e..2d11d58 100644
--- a/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdKeysComponentConfigurer.java
+++ b/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdKeysComponentConfigurer.java
@@ -11,6 +11,13 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class EtcdKeysComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.etcd.EtcdConfiguration getOrCreateConfiguration(EtcdKeysComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.etcd.EtcdConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         EtcdKeysComponent target = (EtcdKeysComponent) obj;
@@ -18,16 +25,22 @@ public class EtcdKeysComponentConfigurer extends PropertyConfigurerSupport imple
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.etcd.EtcdConfiguration.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
-        case "password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
-        case "sslcontextparameters":
-        case "sslContextParameters": target.setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
-        case "uris": target.setUris(property(camelContext, java.lang.String.class, value)); return true;
-        case "username":
-        case "userName": target.setUserName(property(camelContext, java.lang.String.class, value)); return true;
+        case "recursive": getOrCreateConfiguration(target).setRecursive(property(camelContext, boolean.class, value)); return true;
+        case "servicepath":
+        case "servicePath": getOrCreateConfiguration(target).setServicePath(property(camelContext, java.lang.String.class, value)); return true;
+        case "timeout": getOrCreateConfiguration(target).setTimeout(property(camelContext, java.lang.Long.class, value)); return true;
+        case "uris": getOrCreateConfiguration(target).setUris(property(camelContext, java.lang.String.class, value)); return true;
+        case "timetolive":
+        case "timeToLive": getOrCreateConfiguration(target).setTimeToLive(property(camelContext, java.lang.Integer.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslcontextparameters":
+        case "sslContextParameters": getOrCreateConfiguration(target).setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
         case "useglobalsslcontextparameters":
         case "useGlobalSslContextParameters": target.setUseGlobalSslContextParameters(property(camelContext, boolean.class, value)); return true;
+        case "username":
+        case "userName": getOrCreateConfiguration(target).setUserName(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdStatsComponentConfigurer.java b/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdStatsComponentConfigurer.java
index 9c1e367..18ad40c 100644
--- a/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdStatsComponentConfigurer.java
+++ b/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdStatsComponentConfigurer.java
@@ -11,25 +11,42 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class EtcdStatsComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.etcd.EtcdConfiguration getOrCreateConfiguration(EtcdStatsComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.etcd.EtcdConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         EtcdStatsComponent target = (EtcdStatsComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.etcd.EtcdConfiguration.class, value)); return true;
-        case "password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
-        case "sslcontextparameters":
-        case "sslContextParameters": target.setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
-        case "uris": target.setUris(property(camelContext, java.lang.String.class, value)); return true;
-        case "username":
-        case "userName": target.setUserName(property(camelContext, java.lang.String.class, value)); return true;
+        case "recursive": getOrCreateConfiguration(target).setRecursive(property(camelContext, boolean.class, value)); return true;
+        case "servicepath":
+        case "servicePath": getOrCreateConfiguration(target).setServicePath(property(camelContext, java.lang.String.class, value)); return true;
+        case "timeout": getOrCreateConfiguration(target).setTimeout(property(camelContext, java.lang.Long.class, value)); return true;
+        case "uris": getOrCreateConfiguration(target).setUris(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "sendemptyexchangeontimeout":
+        case "sendEmptyExchangeOnTimeout": getOrCreateConfiguration(target).setSendEmptyExchangeOnTimeout(property(camelContext, boolean.class, value)); return true;
+        case "fromindex":
+        case "fromIndex": getOrCreateConfiguration(target).setFromIndex(property(camelContext, long.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "timetolive":
+        case "timeToLive": getOrCreateConfiguration(target).setTimeToLive(property(camelContext, java.lang.Integer.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslcontextparameters":
+        case "sslContextParameters": getOrCreateConfiguration(target).setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
         case "useglobalsslcontextparameters":
         case "useGlobalSslContextParameters": target.setUseGlobalSslContextParameters(property(camelContext, boolean.class, value)); return true;
+        case "username":
+        case "userName": getOrCreateConfiguration(target).setUserName(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdWatchComponentConfigurer.java b/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdWatchComponentConfigurer.java
index ebdce36..6e93e99 100644
--- a/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdWatchComponentConfigurer.java
+++ b/components/camel-etcd/src/generated/java/org/apache/camel/component/etcd/EtcdWatchComponentConfigurer.java
@@ -11,6 +11,13 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class EtcdWatchComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.etcd.EtcdConfiguration getOrCreateConfiguration(EtcdWatchComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.etcd.EtcdConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         EtcdWatchComponent target = (EtcdWatchComponent) obj;
@@ -18,16 +25,24 @@ public class EtcdWatchComponentConfigurer extends PropertyConfigurerSupport impl
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.etcd.EtcdConfiguration.class, value)); return true;
-        case "password": target.setPassword(property(camelContext, java.lang.String.class, value)); return true;
-        case "sslcontextparameters":
-        case "sslContextParameters": target.setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
-        case "uris": target.setUris(property(camelContext, java.lang.String.class, value)); return true;
-        case "username":
-        case "userName": target.setUserName(property(camelContext, java.lang.String.class, value)); return true;
+        case "recursive": getOrCreateConfiguration(target).setRecursive(property(camelContext, boolean.class, value)); return true;
+        case "servicepath":
+        case "servicePath": getOrCreateConfiguration(target).setServicePath(property(camelContext, java.lang.String.class, value)); return true;
+        case "timeout": getOrCreateConfiguration(target).setTimeout(property(camelContext, java.lang.Long.class, value)); return true;
+        case "uris": getOrCreateConfiguration(target).setUris(property(camelContext, java.lang.String.class, value)); return true;
+        case "sendemptyexchangeontimeout":
+        case "sendEmptyExchangeOnTimeout": getOrCreateConfiguration(target).setSendEmptyExchangeOnTimeout(property(camelContext, boolean.class, value)); return true;
+        case "fromindex":
+        case "fromIndex": getOrCreateConfiguration(target).setFromIndex(property(camelContext, long.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "sslcontextparameters":
+        case "sslContextParameters": getOrCreateConfiguration(target).setSslContextParameters(property(camelContext, org.apache.camel.support.jsse.SSLContextParameters.class, value)); return true;
         case "useglobalsslcontextparameters":
         case "useGlobalSslContextParameters": target.setUseGlobalSslContextParameters(property(camelContext, boolean.class, value)); return true;
+        case "username":
+        case "userName": getOrCreateConfiguration(target).setUserName(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-keys.json b/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-keys.json
index 9cd0aac..cbb3abd 100644
--- a/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-keys.json
+++ b/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-keys.json
@@ -19,14 +19,18 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": false, "secret": false, "description": "Sets the common configuration shared among endpoints" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": false, "secret": false, "description": "Component configuration." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "password": { "kind": "property", "displayName": "Password", "group": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The password to use for basic authentication." },
-    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "description": "To configure security using SSLContextParameters." },
-    "uris": { "kind": "property", "displayName": "Uris", "group": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "To set the URIs the client connects." },
-    "userName": { "kind": "property", "displayName": "User Name", "group": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The user name to use for basic authentication." },
+    "recursive": { "kind": "property", "displayName": "Recursive", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To apply an action recursively." },
+    "servicePath": { "kind": "property", "displayName": "Service Path", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "\/services\/", "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The path to look for for service discovery" },
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To set the maximum time an action could take to complete." },
+    "uris": { "kind": "property", "displayName": "Uris", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001", "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To set the URIs the client connects." },
+    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To set the lifespan of a key in milliseconds." },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Enable usage of global SSL context parameters." }
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The password to use for basic authentication." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Enable usage of global SSL context parameters." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The user name to use for basic authentication." }
   },
   "properties": {
     "path": { "kind": "path", "displayName": "Path", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path the endpoint refers to" },
diff --git a/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-stats.json b/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-stats.json
index ae3d0e1..f9c048e 100644
--- a/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-stats.json
+++ b/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-stats.json
@@ -19,15 +19,21 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": false, "secret": false, "description": "Sets the common configuration shared among endpoints" },
-    "password": { "kind": "property", "displayName": "Password", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The password to use for basic authentication." },
-    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "description": "To configure security using SSLContextParameters." },
-    "uris": { "kind": "property", "displayName": "Uris", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "To set the URIs the client connects." },
-    "userName": { "kind": "property", "displayName": "User Name", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The user name to use for basic authentication." },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": false, "secret": false, "description": "Component configuration." },
+    "recursive": { "kind": "property", "displayName": "Recursive", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To apply an action recursively." },
+    "servicePath": { "kind": "property", "displayName": "Service Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "\/services\/", "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The path to look for for service discovery" },
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To set the maximum time an action could take to complete." },
+    "uris": { "kind": "property", "displayName": "Uris", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001", "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To set the URIs the client connects." },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "sendEmptyExchangeOnTimeout": { "kind": "property", "displayName": "Send Empty Exchange On Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To send an empty message in case of timeout watching for a key." },
+    "fromIndex": { "kind": "property", "displayName": "From Index", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The index to watch from" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To set the lifespan of a key in milliseconds." },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Enable usage of global SSL context parameters." }
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The password to use for basic authentication." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Enable usage of global SSL context parameters." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The user name to use for basic authentication." }
   },
   "properties": {
     "path": { "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path the endpoint refers to" },
diff --git a/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-watch.json b/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-watch.json
index 217a727..b7504fb 100644
--- a/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-watch.json
+++ b/components/camel-etcd/src/generated/resources/org/apache/camel/component/etcd/etcd-watch.json
@@ -20,13 +20,18 @@
   },
   "componentProperties": {
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": false, "secret": false, "description": "Sets the common configuration shared among endpoints" },
-    "password": { "kind": "property", "displayName": "Password", "group": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The password to use for basic authentication." },
-    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "description": "To configure security using SSLContextParameters." },
-    "uris": { "kind": "property", "displayName": "Uris", "group": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "To set the URIs the client connects." },
-    "userName": { "kind": "property", "displayName": "User Name", "group": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The user name to use for basic authentication." },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.etcd.EtcdConfiguration", "deprecated": false, "secret": false, "description": "Component configuration." },
+    "recursive": { "kind": "property", "displayName": "Recursive", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To apply an action recursively." },
+    "servicePath": { "kind": "property", "displayName": "Service Path", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "\/services\/", "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The path to look for for service discovery" },
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To set the maximum time an action could take to complete." },
+    "uris": { "kind": "property", "displayName": "Uris", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001", "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To set the URIs the client connects." },
+    "sendEmptyExchangeOnTimeout": { "kind": "property", "displayName": "Send Empty Exchange On Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To send an empty message in case of timeout watching for a key." },
+    "fromIndex": { "kind": "property", "displayName": "From Index", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The index to watch from" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Enable usage of global SSL context parameters." }
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The password to use for basic authentication." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Enable usage of global SSL context parameters." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.etcd.EtcdConfiguration", "configurationField": "configuration", "description": "The user name to use for basic authentication." }
   },
   "properties": {
     "path": { "kind": "path", "displayName": "Path", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "The path the endpoint refers to" },
diff --git a/components/camel-etcd/src/main/docs/etcd-keys-component.adoc b/components/camel-etcd/src/main/docs/etcd-keys-component.adoc
index abfa274..8f6524a 100644
--- a/components/camel-etcd/src/main/docs/etcd-keys-component.adoc
+++ b/components/camel-etcd/src/main/docs/etcd-keys-component.adoc
@@ -22,21 +22,25 @@ etcd-keys:path[?options]
 == URI Options
 
 // component options: START
-The Etcd Keys component supports 8 options, which are listed below.
+The Etcd Keys component supports 12 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *configuration* (producer) | Sets the common configuration shared among endpoints |  | EtcdConfiguration
+| *configuration* (producer) | Component configuration. |  | EtcdConfiguration
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *password* (producer) | The password to use for basic authentication. |  | String
-| *sslContextParameters* (producer) | To configure security using SSLContextParameters. |  | SSLContextParameters
-| *uris* (producer) | To set the URIs the client connects. |  | String
-| *userName* (producer) | The user name to use for basic authentication. |  | String
+| *recursive* (producer) | To apply an action recursively. | false | boolean
+| *servicePath* (producer) | The path to look for for service discovery | /services/ | String
+| *timeout* (producer) | To set the maximum time an action could take to complete. |  | Long
+| *uris* (common) | To set the URIs the client connects. | http://localhost:2379,http://localhost:4001 | String
+| *timeToLive* (producer) | To set the lifespan of a key in milliseconds. |  | Integer
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *password* (security) | The password to use for basic authentication. |  | String
+| *sslContextParameters* (security) | To configure security using SSLContextParameters. |  | SSLContextParameters
 | *useGlobalSslContextParameters* (security) | Enable usage of global SSL context parameters. | false | boolean
+| *userName* (security) | The user name to use for basic authentication. |  | String
 |===
 // component options: END
 
diff --git a/components/camel-etcd/src/main/docs/etcd-stats-component.adoc b/components/camel-etcd/src/main/docs/etcd-stats-component.adoc
index e258e3a..ed1e673 100644
--- a/components/camel-etcd/src/main/docs/etcd-stats-component.adoc
+++ b/components/camel-etcd/src/main/docs/etcd-stats-component.adoc
@@ -22,22 +22,28 @@ etcd-stats:path[?options]
 == URI Options
 
 // component options: START
-The Etcd Stats component supports 9 options, which are listed below.
+The Etcd Stats component supports 15 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *configuration* (common) | Sets the common configuration shared among endpoints |  | EtcdConfiguration
-| *password* (common) | The password to use for basic authentication. |  | String
-| *sslContextParameters* (common) | To configure security using SSLContextParameters. |  | SSLContextParameters
-| *uris* (common) | To set the URIs the client connects. |  | String
-| *userName* (common) | The user name to use for basic authentication. |  | String
+| *configuration* (common) | Component configuration. |  | EtcdConfiguration
+| *recursive* (common) | To apply an action recursively. | false | boolean
+| *servicePath* (common) | The path to look for for service discovery | /services/ | String
+| *timeout* (common) | To set the maximum time an action could take to complete. |  | Long
+| *uris* (common) | To set the URIs the client connects. | http://localhost:2379,http://localhost:4001 | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *sendEmptyExchangeOnTimeout* (consumer) | To send an empty message in case of timeout watching for a key. | false | boolean
+| *fromIndex* (consumer) | The index to watch from | 0 | long
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *timeToLive* (producer) | To set the lifespan of a key in milliseconds. |  | Integer
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *password* (security) | The password to use for basic authentication. |  | String
+| *sslContextParameters* (security) | To configure security using SSLContextParameters. |  | SSLContextParameters
 | *useGlobalSslContextParameters* (security) | Enable usage of global SSL context parameters. | false | boolean
+| *userName* (security) | The user name to use for basic authentication. |  | String
 |===
 // component options: END
 
diff --git a/components/camel-etcd/src/main/docs/etcd-watch-component.adoc b/components/camel-etcd/src/main/docs/etcd-watch-component.adoc
index 6a01ce9..a973f47 100644
--- a/components/camel-etcd/src/main/docs/etcd-watch-component.adoc
+++ b/components/camel-etcd/src/main/docs/etcd-watch-component.adoc
@@ -22,7 +22,7 @@ etcd-watch:path[?options]
 == URI Options
 
 // component options: START
-The Etcd Watch component supports 8 options, which are listed below.
+The Etcd Watch component supports 13 options, which are listed below.
 
 
 
@@ -30,13 +30,18 @@ The Etcd Watch component supports 8 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *bridgeErrorHandler* (consumer) | 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 | boolean
-| *configuration* (consumer) | Sets the common configuration shared among endpoints |  | EtcdConfiguration
-| *password* (consumer) | The password to use for basic authentication. |  | String
-| *sslContextParameters* (consumer) | To configure security using SSLContextParameters. |  | SSLContextParameters
-| *uris* (consumer) | To set the URIs the client connects. |  | String
-| *userName* (consumer) | The user name to use for basic authentication. |  | String
+| *configuration* (consumer) | Component configuration. |  | EtcdConfiguration
+| *recursive* (consumer) | To apply an action recursively. | false | boolean
+| *servicePath* (consumer) | The path to look for for service discovery | /services/ | String
+| *timeout* (consumer) | To set the maximum time an action could take to complete. |  | Long
+| *uris* (common) | To set the URIs the client connects. | http://localhost:2379,http://localhost:4001 | String
+| *sendEmptyExchangeOnTimeout* (consumer) | To send an empty message in case of timeout watching for a key. | false | boolean
+| *fromIndex* (consumer) | The index to watch from | 0 | long
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *password* (security) | The password to use for basic authentication. |  | String
+| *sslContextParameters* (security) | To configure security using SSLContextParameters. |  | SSLContextParameters
 | *useGlobalSslContextParameters* (security) | Enable usage of global SSL context parameters. | false | boolean
+| *userName* (security) | The user name to use for basic authentication. |  | String
 |===
 // component options: END
 
diff --git a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdComponent.java b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdComponent.java
index e722f5d..2b61d29 100644
--- a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdComponent.java
+++ b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/AbstractEtcdComponent.java
@@ -23,7 +23,6 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.DefaultComponent;
-import org.apache.camel.support.jsse.SSLContextParameters;
 
 public abstract class AbstractEtcdComponent extends DefaultComponent implements SSLContextParametersAware {
 
@@ -43,56 +42,13 @@ public abstract class AbstractEtcdComponent extends DefaultComponent implements
     // Options
     // ************************************
 
-    public String getUris() {
-        return configuration.getUris();
-    }
-
-    /**
-     * To set the URIs the client connects.
-     */
-    public void setUris(String uris) {
-        configuration.setUris(uris);
-    }
-
-    public SSLContextParameters getSslContextParameters() {
-        return configuration.getSslContextParameters();
-    }
-
-    /**
-     * To configure security using SSLContextParameters.
-     */
-    public void setSslContextParameters(SSLContextParameters sslContextParameters) {
-        configuration.setSslContextParameters(sslContextParameters);
-    }
-
-    public String getUserName() {
-        return configuration.getUserName();
-    }
-
-    /**
-     * The user name to use for basic authentication.
-     */
-    public void setUserName(String userName) {
-        configuration.setUserName(userName);
-    }
-
-    public String getPassword() {
-        return configuration.getPassword();
-    }
-
-    /**
-     * The password to use for basic authentication.
-     */
-    public void setPassword(String password) {
-        configuration.setPassword(password);
-    }
 
     public EtcdConfiguration getConfiguration() {
         return configuration;
     }
 
     /**
-     * Sets the common configuration shared among endpoints
+     * Component configuration.
      */
     public void setConfiguration(EtcdConfiguration configuration) {
         this.configuration = configuration;
diff --git a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/support/EtcdTestSupport.java b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/support/EtcdTestSupport.java
index 4d04908..9a4ad6a 100644
--- a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/support/EtcdTestSupport.java
+++ b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/support/EtcdTestSupport.java
@@ -60,13 +60,13 @@ public abstract class EtcdTestSupport extends ContainerAwareTestSupport {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         EtcdKeysComponent keys = new EtcdKeysComponent();
-        keys.setUris(getClientUri());
+        keys.getConfiguration().setUris(getClientUri());
 
         EtcdStatsComponent stats = new EtcdStatsComponent();
-        stats.setUris(getClientUri());
+        stats.getConfiguration().setUris(getClientUri());
 
         EtcdWatchComponent watch = new EtcdWatchComponent();
-        watch.setUris(getClientUri());
+        watch.getConfiguration().setUris(getClientUri());
 
         CamelContext context = super.createCamelContext();
         context.addComponent("etcd-keys", keys);
diff --git a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/support/SpringEtcdTestSupport.java b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/support/SpringEtcdTestSupport.java
index aa0de4b..0e8d846 100644
--- a/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/support/SpringEtcdTestSupport.java
+++ b/components/camel-etcd/src/test/java/org/apache/camel/component/etcd/support/SpringEtcdTestSupport.java
@@ -56,13 +56,13 @@ public abstract class SpringEtcdTestSupport extends ContainerAwareSpringTestSupp
     @Override
     protected CamelContext createCamelContext() throws Exception {
         EtcdKeysComponent keys = new EtcdKeysComponent();
-        keys.setUris(getClientUri());
+        keys.getConfiguration().setUris(getClientUri());
 
         EtcdStatsComponent stats = new EtcdStatsComponent();
-        stats.setUris(getClientUri());
+        stats.getConfiguration().setUris(getClientUri());
 
         EtcdWatchComponent watch = new EtcdWatchComponent();
-        watch.setUris(getClientUri());
+        watch.getConfiguration().setUris(getClientUri());
 
         CamelContext context = super.createCamelContext();
         context.addComponent("etcd-keys", keys);
diff --git a/components/camel-facebook/src/generated/java/org/apache/camel/component/facebook/FacebookComponentConfigurer.java b/components/camel-facebook/src/generated/java/org/apache/camel/component/facebook/FacebookComponentConfigurer.java
index b05d4aa8..a9769e2 100644
--- a/components/camel-facebook/src/generated/java/org/apache/camel/component/facebook/FacebookComponentConfigurer.java
+++ b/components/camel-facebook/src/generated/java/org/apache/camel/component/facebook/FacebookComponentConfigurer.java
@@ -11,10 +11,51 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class FacebookComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.facebook.config.FacebookConfiguration getOrCreateConfiguration(FacebookComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.facebook.config.FacebookConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         FacebookComponent target = (FacebookComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "clienturl":
+        case "clientURL": getOrCreateConfiguration(target).setClientURL(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientversion":
+        case "clientVersion": getOrCreateConfiguration(target).setClientVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "debugenabled":
+        case "debugEnabled": getOrCreateConfiguration(target).setDebugEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
+        case "gzipenabled":
+        case "gzipEnabled": getOrCreateConfiguration(target).setGzipEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
+        case "httpconnectiontimeout":
+        case "httpConnectionTimeout": getOrCreateConfiguration(target).setHttpConnectionTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "httpdefaultmaxperroute":
+        case "httpDefaultMaxPerRoute": getOrCreateConfiguration(target).setHttpDefaultMaxPerRoute(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "httpmaxtotalconnections":
+        case "httpMaxTotalConnections": getOrCreateConfiguration(target).setHttpMaxTotalConnections(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "httpreadtimeout":
+        case "httpReadTimeout": getOrCreateConfiguration(target).setHttpReadTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "httpretrycount":
+        case "httpRetryCount": getOrCreateConfiguration(target).setHttpRetryCount(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "httpretryintervalseconds":
+        case "httpRetryIntervalSeconds": getOrCreateConfiguration(target).setHttpRetryIntervalSeconds(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "httpstreamingreadtimeout":
+        case "httpStreamingReadTimeout": getOrCreateConfiguration(target).setHttpStreamingReadTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "jsonstoreenabled":
+        case "jsonStoreEnabled": getOrCreateConfiguration(target).setJsonStoreEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
+        case "mbeanenabled":
+        case "mbeanEnabled": getOrCreateConfiguration(target).setMbeanEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
+        case "prettydebugenabled":
+        case "prettyDebugEnabled": getOrCreateConfiguration(target).setPrettyDebugEnabled(property(camelContext, java.lang.Boolean.class, value)); return true;
+        case "restbaseurl":
+        case "restBaseURL": getOrCreateConfiguration(target).setRestBaseURL(property(camelContext, java.lang.String.class, value)); return true;
+        case "usessl":
+        case "useSSL": getOrCreateConfiguration(target).setUseSSL(property(camelContext, java.lang.Boolean.class, value)); return true;
+        case "videobaseurl":
+        case "videoBaseURL": getOrCreateConfiguration(target).setVideoBaseURL(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
@@ -22,6 +63,26 @@ public class FacebookComponentConfigurer extends PropertyConfigurerSupport imple
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.facebook.config.FacebookConfiguration.class, value)); return true;
+        case "httpproxyhost":
+        case "httpProxyHost": getOrCreateConfiguration(target).setHttpProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "httpproxypassword":
+        case "httpProxyPassword": getOrCreateConfiguration(target).setHttpProxyPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "httpproxyport":
+        case "httpProxyPort": getOrCreateConfiguration(target).setHttpProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "httpproxyuser":
+        case "httpProxyUser": getOrCreateConfiguration(target).setHttpProxyUser(property(camelContext, java.lang.String.class, value)); return true;
+        case "oauthaccesstoken":
+        case "oAuthAccessToken": getOrCreateConfiguration(target).setOAuthAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "oauthaccesstokenurl":
+        case "oAuthAccessTokenURL": getOrCreateConfiguration(target).setOAuthAccessTokenURL(property(camelContext, java.lang.String.class, value)); return true;
+        case "oauthappid":
+        case "oAuthAppId": getOrCreateConfiguration(target).setOAuthAppId(property(camelContext, java.lang.String.class, value)); return true;
+        case "oauthappsecret":
+        case "oAuthAppSecret": getOrCreateConfiguration(target).setOAuthAppSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "oauthauthorizationurl":
+        case "oAuthAuthorizationURL": getOrCreateConfiguration(target).setOAuthAuthorizationURL(property(camelContext, java.lang.String.class, value)); return true;
+        case "oauthpermissions":
+        case "oAuthPermissions": getOrCreateConfiguration(target).setOAuthPermissions(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-facebook/src/generated/resources/org/apache/camel/component/facebook/facebook.json b/components/camel-facebook/src/generated/resources/org/apache/camel/component/facebook/facebook.json
index d62b22f..d44ec58 100644
--- a/components/camel-facebook/src/generated/resources/org/apache/camel/component/facebook/facebook.json
+++ b/components/camel-facebook/src/generated/resources/org/apache/camel/component/facebook/facebook.json
@@ -19,10 +19,37 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "clientURL": { "kind": "property", "displayName": "Client URL", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Facebook4J API client URL" },
+    "clientVersion": { "kind": "property", "displayName": "Client Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Facebook4J client API version" },
+    "debugEnabled": { "kind": "property", "displayName": "Debug Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Enables deubg output. Effective only with the embedded logger" },
+    "gzipEnabled": { "kind": "property", "displayName": "Gzip Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Use Facebook GZIP encoding" },
+    "httpConnectionTimeout": { "kind": "property", "displayName": "Http Connection Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "20000", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Http connection timeout in milliseconds" },
+    "httpDefaultMaxPerRoute": { "kind": "property", "displayName": "Http Default Max Per Route", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "2", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "HTTP maximum connections per route" },
+    "httpMaxTotalConnections": { "kind": "property", "displayName": "Http Max Total Connections", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "20", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "HTTP maximum total connections" },
+    "httpReadTimeout": { "kind": "property", "displayName": "Http Read Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "120000", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Http read timeout in milliseconds" },
+    "httpRetryCount": { "kind": "property", "displayName": "Http Retry Count", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Number of HTTP retries" },
+    "httpRetryIntervalSeconds": { "kind": "property", "displayName": "Http Retry Interval Seconds", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "5", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "HTTP retry interval in seconds" },
+    "httpStreamingReadTimeout": { "kind": "property", "displayName": "Http Streaming Read Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "40000", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "HTTP streaming read timeout in milliseconds" },
+    "jsonStoreEnabled": { "kind": "property", "displayName": "Json Store Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "If set to true, raw JSON forms will be stored in DataObjectFactory" },
+    "mbeanEnabled": { "kind": "property", "displayName": "Mbean Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "If set to true, Facebook4J mbean will be registerd" },
+    "prettyDebugEnabled": { "kind": "property", "displayName": "Pretty Debug Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Prettify JSON debug output if set to true" },
+    "restBaseURL": { "kind": "property", "displayName": "Rest Base URL", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https:\/\/graph.facebook.com\/", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "API base URL" },
+    "useSSL": { "kind": "property", "displayName": "Use SSL", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Use SSL" },
+    "videoBaseURL": { "kind": "property", "displayName": "Video Base URL", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https:\/\/graph-video.facebook.com\/", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Video API base URL" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.facebook.config.FacebookConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" }
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.facebook.config.FacebookConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "httpProxyHost": { "kind": "property", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "HTTP proxy server host name" },
+    "httpProxyPassword": { "kind": "property", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "HTTP proxy server password" },
+    "httpProxyPort": { "kind": "property", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "HTTP proxy server port" },
+    "httpProxyUser": { "kind": "property", "displayName": "Http Proxy User", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "HTTP proxy server user name" },
+    "oAuthAccessToken": { "kind": "property", "displayName": "OAuth Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "The user access token" },
+    "oAuthAccessTokenURL": { "kind": "property", "displayName": "OAuth Access Token URL", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https:\/\/graph.facebook.com\/oauth\/access_token", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "OAuth access token URL" },
+    "oAuthAppId": { "kind": "property", "displayName": "OAuth App Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "The application Id" },
+    "oAuthAppSecret": { "kind": "property", "displayName": "OAuth App Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "The application Secret" },
+    "oAuthAuthorizationURL": { "kind": "property", "displayName": "OAuth Authorization URL", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https:\/\/www.facebook.com\/dialog\/oauth", "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "OAuth authorization URL" },
+    "oAuthPermissions": { "kind": "property", "displayName": "OAuth Permissions", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookConfiguration", "configurationField": "configuration", "description": "Default OAuth permissions. Comma separated permission names. See https:\/\/developers.facebook.com\/docs\/reference\ [...]
   },
   "properties": {
     "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "description": "What operation to perform" },
diff --git a/components/camel-facebook/src/main/docs/facebook-component.adoc b/components/camel-facebook/src/main/docs/facebook-component.adoc
index f188e5e..ac7878e 100644
--- a/components/camel-facebook/src/main/docs/facebook-component.adoc
+++ b/components/camel-facebook/src/main/docs/facebook-component.adoc
@@ -57,17 +57,44 @@ to application APIs.
 
 
 // component options: START
-The Facebook component supports 4 options, which are listed below.
+The Facebook component supports 31 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *clientURL* (common) | Facebook4J API client URL |  | String
+| *clientVersion* (common) | Facebook4J client API version |  | String
+| *debugEnabled* (common) | Enables deubg output. Effective only with the embedded logger | false | Boolean
+| *gzipEnabled* (common) | Use Facebook GZIP encoding | true | Boolean
+| *httpConnectionTimeout* (common) | Http connection timeout in milliseconds | 20000 | Integer
+| *httpDefaultMaxPerRoute* (common) | HTTP maximum connections per route | 2 | Integer
+| *httpMaxTotalConnections* (common) | HTTP maximum total connections | 20 | Integer
+| *httpReadTimeout* (common) | Http read timeout in milliseconds | 120000 | Integer
+| *httpRetryCount* (common) | Number of HTTP retries | 0 | Integer
+| *httpRetryIntervalSeconds* (common) | HTTP retry interval in seconds | 5 | Integer
+| *httpStreamingReadTimeout* (common) | HTTP streaming read timeout in milliseconds | 40000 | Integer
+| *jsonStoreEnabled* (common) | If set to true, raw JSON forms will be stored in DataObjectFactory | false | Boolean
+| *mbeanEnabled* (common) | If set to true, Facebook4J mbean will be registerd | false | Boolean
+| *prettyDebugEnabled* (common) | Prettify JSON debug output if set to true | false | Boolean
+| *restBaseURL* (common) | API base URL | https://graph.facebook.com/ | String
+| *useSSL* (common) | Use SSL | true | Boolean
+| *videoBaseURL* (common) | Video API base URL | https://graph-video.facebook.com/ | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | To use the shared configuration |  | FacebookConfiguration
+| *httpProxyHost* (proxy) | HTTP proxy server host name |  | String
+| *httpProxyPassword* (proxy) | HTTP proxy server password |  | String
+| *httpProxyPort* (proxy) | HTTP proxy server port |  | Integer
+| *httpProxyUser* (proxy) | HTTP proxy server user name |  | String
+| *oAuthAccessToken* (security) | The user access token |  | String
+| *oAuthAccessTokenURL* (security) | OAuth access token URL | https://graph.facebook.com/oauth/access_token | String
+| *oAuthAppId* (security) | The application Id |  | String
+| *oAuthAppSecret* (security) | The application Secret |  | String
+| *oAuthAuthorizationURL* (security) | OAuth authorization URL | https://www.facebook.com/dialog/oauth | String
+| *oAuthPermissions* (security) | Default OAuth permissions. Comma separated permission names. See \https://developers.facebook.com/docs/reference/login/#permissions for the detail |  | String
 |===
 // component options: END
 
diff --git a/components/camel-fhir/camel-fhir-component/src/generated/java/org/apache/camel/component/fhir/FhirComponentConfigurer.java b/components/camel-fhir/camel-fhir-component/src/generated/java/org/apache/camel/component/fhir/FhirComponentConfigurer.java
index 4b94f9e..80daf22 100644
--- a/components/camel-fhir/camel-fhir-component/src/generated/java/org/apache/camel/component/fhir/FhirComponentConfigurer.java
+++ b/components/camel-fhir/camel-fhir-component/src/generated/java/org/apache/camel/component/fhir/FhirComponentConfigurer.java
@@ -11,17 +11,63 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class FhirComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.fhir.FhirConfiguration getOrCreateConfiguration(FhirComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.fhir.FhirConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         FhirComponent target = (FhirComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.fhir.FhirConfiguration.class, value)); return true;
+        case "encoding": getOrCreateConfiguration(target).setEncoding(property(camelContext, java.lang.String.class, value)); return true;
+        case "fhirversion":
+        case "fhirVersion": getOrCreateConfiguration(target).setFhirVersion(property(camelContext, java.lang.String.class, value)); return true;
+        case "log": getOrCreateConfiguration(target).setLog(property(camelContext, boolean.class, value)); return true;
+        case "prettyprint":
+        case "prettyPrint": getOrCreateConfiguration(target).setPrettyPrint(property(camelContext, boolean.class, value)); return true;
+        case "serverurl":
+        case "serverUrl": getOrCreateConfiguration(target).setServerUrl(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "client": getOrCreateConfiguration(target).setClient(property(camelContext, ca.uhn.fhir.rest.client.api.IGenericClient.class, value)); return true;
+        case "clientfactory":
+        case "clientFactory": getOrCreateConfiguration(target).setClientFactory(property(camelContext, ca.uhn.fhir.rest.client.api.IRestfulClientFactory.class, value)); return true;
+        case "compress": getOrCreateConfiguration(target).setCompress(property(camelContext, boolean.class, value)); return true;
+        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.fhir.FhirConfiguration.class, value)); return true;
+        case "connectiontimeout":
+        case "connectionTimeout": getOrCreateConfiguration(target).setConnectionTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "defermodelscanning":
+        case "deferModelScanning": getOrCreateConfiguration(target).setDeferModelScanning(property(camelContext, boolean.class, value)); return true;
+        case "fhircontext":
+        case "fhirContext": getOrCreateConfiguration(target).setFhirContext(property(camelContext, ca.uhn.fhir.context.FhirContext.class, value)); return true;
+        case "forceconformancecheck":
+        case "forceConformanceCheck": getOrCreateConfiguration(target).setForceConformanceCheck(property(camelContext, boolean.class, value)); return true;
+        case "sessioncookie":
+        case "sessionCookie": getOrCreateConfiguration(target).setSessionCookie(property(camelContext, java.lang.String.class, value)); return true;
+        case "sockettimeout":
+        case "socketTimeout": getOrCreateConfiguration(target).setSocketTimeout(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "summary": getOrCreateConfiguration(target).setSummary(property(camelContext, java.lang.String.class, value)); return true;
+        case "validationmode":
+        case "validationMode": getOrCreateConfiguration(target).setValidationMode(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxypassword":
+        case "proxyPassword": getOrCreateConfiguration(target).setProxyPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyuser":
+        case "proxyUser": getOrCreateConfiguration(target).setProxyUser(property(camelContext, java.lang.String.class, value)); return true;
+        case "accesstoken":
+        case "accessToken": getOrCreateConfiguration(target).setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "password": getOrCreateConfiguration(target).setPassword(property(camelContext, java.lang.String.class, value)); return true;
+        case "username": getOrCreateConfiguration(target).setUsername(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhir.json b/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhir.json
index d3a2893..e965522 100644
--- a/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhir.json
+++ b/components/camel-fhir/camel-fhir-component/src/generated/resources/org/apache/camel/component/fhir/fhir.json
@@ -19,10 +19,33 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.fhir.FhirConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "encoding": { "kind": "property", "displayName": "Encoding", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "JSON", "XML" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "Encoding to use for all request" },
+    "fhirVersion": { "kind": "property", "displayName": "Fhir Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "DSTU2", "DSTU2_HL7ORG", "DSTU2_1", "DSTU3", "R4", "R5" ], "deprecated": false, "secret": false, "defaultValue": "R4", "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "The FHIR Version to use" },
+    "log": { "kind": "property", "displayName": "Log", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "Will log every requests and responses" },
+    "prettyPrint": { "kind": "property", "displayName": "Pretty Print", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "Pretty print all request" },
+    "serverUrl": { "kind": "property", "displayName": "Server Url", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "The FHIR server base URL" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" }
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "client": { "kind": "property", "displayName": "Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "ca.uhn.fhir.rest.client.api.IGenericClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "To use the custom client" },
+    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "ca.uhn.fhir.rest.client.api.IRestfulClientFactory", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "To use the custom client factory" },
+    "compress": { "kind": "property", "displayName": "Compress", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "Compresses outgoing (POST\/PUT) contents to the GZIP format" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.fhir.FhirConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "connectionTimeout": { "kind": "property", "displayName": "Connection Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "How long to try and establish the initial TCP connection (in ms)" },
+    "deferModelScanning": { "kind": "property", "displayName": "Defer Model Scanning", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "When this option is set, model classes will not be scanned for children until the child list for the given ty [...]
+    "fhirContext": { "kind": "property", "displayName": "Fhir Context", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "ca.uhn.fhir.context.FhirContext", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "FhirContext is an expensive object to create. To avoid creating multiple instances, it can be set directly." },
+    "forceConformanceCheck": { "kind": "property", "displayName": "Force Conformance Check", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "Force conformance check" },
+    "sessionCookie": { "kind": "property", "displayName": "Session Cookie", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "HTTP session cookie to add to every request" },
+    "socketTimeout": { "kind": "property", "displayName": "Socket Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "How long to block for individual read\/write operations (in ms)" },
+    "summary": { "kind": "property", "displayName": "Summary", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "COUNT", "TEXT", "DATA", "TRUE", "FALSE" ], "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "Request that the server modify the response using the _summary param" },
+    "validationMode": { "kind": "property", "displayName": "Validation Mode", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "NEVER", "ONCE" ], "deprecated": false, "secret": false, "defaultValue": "ONCE", "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "When should Camel validate the FHIR Server's conformance statement" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "The proxy host" },
+    "proxyPassword": { "kind": "property", "displayName": "Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "The proxy password" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "The proxy port" },
+    "proxyUser": { "kind": "property", "displayName": "Proxy User", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "The proxy username" },
+    "accessToken": { "kind": "property", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "OAuth access token" },
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "Username to use for basic authentication" },
+    "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationField": "configuration", "description": "Username to use for basic authentication" }
   },
   "properties": {
     "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.fhir.internal.FhirApiName", "enum": [ "capabilities", "create", "delete", "history", "load-page", "meta", "patch", "read", "search", "transaction", "update", "validate" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.fhir.FhirConfiguration", "configurationFi [...]
diff --git a/components/camel-fhir/camel-fhir-component/src/main/docs/fhir-component.adoc b/components/camel-fhir/camel-fhir-component/src/main/docs/fhir-component.adoc
index 8ac75ec..d861954 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/docs/fhir-component.adoc
+++ b/components/camel-fhir/camel-fhir-component/src/main/docs/fhir-component.adoc
@@ -51,17 +51,40 @@ Endpoint prefix can be one of:
 
 
 // component options: START
-The FHIR component supports 4 options, which are listed below.
+The FHIR component supports 27 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *configuration* (common) | To use the shared configuration |  | FhirConfiguration
+| *encoding* (common) | Encoding to use for all request. The value can be one of: JSON, XML |  | String
+| *fhirVersion* (common) | The FHIR Version to use. The value can be one of: DSTU2, DSTU2_HL7ORG, DSTU2_1, DSTU3, R4, R5 | R4 | String
+| *log* (common) | Will log every requests and responses | false | boolean
+| *prettyPrint* (common) | Pretty print all request | false | boolean
+| *serverUrl* (common) | The FHIR server base URL |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *client* (advanced) | To use the custom client |  | IGenericClient
+| *clientFactory* (advanced) | To use the custom client factory |  | IRestfulClientFactory
+| *compress* (advanced) | Compresses outgoing (POST/PUT) contents to the GZIP format | false | boolean
+| *configuration* (advanced) | To use the shared configuration |  | FhirConfiguration
+| *connectionTimeout* (advanced) | How long to try and establish the initial TCP connection (in ms) | 10000 | Integer
+| *deferModelScanning* (advanced) | When this option is set, model classes will not be scanned for children until the child list for the given type is actually accessed. | false | boolean
+| *fhirContext* (advanced) | FhirContext is an expensive object to create. To avoid creating multiple instances, it can be set directly. |  | FhirContext
+| *forceConformanceCheck* (advanced) | Force conformance check | false | boolean
+| *sessionCookie* (advanced) | HTTP session cookie to add to every request |  | String
+| *socketTimeout* (advanced) | How long to block for individual read/write operations (in ms) | 10000 | Integer
+| *summary* (advanced) | Request that the server modify the response using the _summary param. The value can be one of: COUNT, TEXT, DATA, TRUE, FALSE |  | String
+| *validationMode* (advanced) | When should Camel validate the FHIR Server's conformance statement. The value can be one of: NEVER, ONCE | ONCE | String
+| *proxyHost* (proxy) | The proxy host |  | String
+| *proxyPassword* (proxy) | The proxy password |  | String
+| *proxyPort* (proxy) | The proxy port |  | Integer
+| *proxyUser* (proxy) | The proxy username |  | String
+| *accessToken* (security) | OAuth access token |  | String
+| *password* (security) | Username to use for basic authentication |  | String
+| *username* (security) | Username to use for basic authentication |  | String
 |===
 // component options: END
 
diff --git a/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java b/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java
index 9063a52..cafd048 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java
+++ b/components/camel-fhir/camel-fhir-component/src/main/java/org/apache/camel/component/fhir/FhirComponent.java
@@ -33,6 +33,9 @@ import org.apache.camel.support.component.AbstractApiComponent;
 public class FhirComponent extends AbstractApiComponent<FhirApiName, FhirConfiguration, FhirApiCollection> {
 
     @Metadata(label = "advanced")
+    FhirConfiguration configuration;
+
+    @Metadata(label = "advanced")
     private IGenericClient client;
 
     public FhirComponent() {
diff --git a/components/camel-ganglia/src/generated/java/org/apache/camel/component/ganglia/GangliaComponentConfigurer.java b/components/camel-ganglia/src/generated/java/org/apache/camel/component/ganglia/GangliaComponentConfigurer.java
index 7ddd974..36a5303 100644
--- a/components/camel-ganglia/src/generated/java/org/apache/camel/component/ganglia/GangliaComponentConfigurer.java
+++ b/components/camel-ganglia/src/generated/java/org/apache/camel/component/ganglia/GangliaComponentConfigurer.java
@@ -11,12 +11,35 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class GangliaComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.ganglia.GangliaConfiguration getOrCreateConfiguration(GangliaComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.ganglia.GangliaConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         GangliaComponent target = (GangliaComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "dmax": getOrCreateConfiguration(target).setDmax(property(camelContext, int.class, value)); return true;
+        case "groupname":
+        case "groupName": getOrCreateConfiguration(target).setGroupName(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "metricname":
+        case "metricName": getOrCreateConfiguration(target).setMetricName(property(camelContext, java.lang.String.class, value)); return true;
+        case "mode": getOrCreateConfiguration(target).setMode(property(camelContext, info.ganglia.gmetric4j.gmetric.GMetric.UDPAddressingMode.class, value)); return true;
+        case "prefix": getOrCreateConfiguration(target).setPrefix(property(camelContext, java.lang.String.class, value)); return true;
+        case "slope": getOrCreateConfiguration(target).setSlope(property(camelContext, info.ganglia.gmetric4j.gmetric.GMetricSlope.class, value)); return true;
+        case "spoofhostname":
+        case "spoofHostname": getOrCreateConfiguration(target).setSpoofHostname(property(camelContext, java.lang.String.class, value)); return true;
+        case "tmax": getOrCreateConfiguration(target).setTmax(property(camelContext, int.class, value)); return true;
+        case "ttl": getOrCreateConfiguration(target).setTtl(property(camelContext, int.class, value)); return true;
+        case "type": getOrCreateConfiguration(target).setType(property(camelContext, info.ganglia.gmetric4j.gmetric.GMetricType.class, value)); return true;
+        case "units": getOrCreateConfiguration(target).setUnits(property(camelContext, java.lang.String.class, value)); return true;
+        case "wireformat31x":
+        case "wireFormat31x": getOrCreateConfiguration(target).setWireFormat31x(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.ganglia.GangliaConfiguration.class, value)); return true;
diff --git a/components/camel-ganglia/src/generated/resources/org/apache/camel/component/ganglia/ganglia.json b/components/camel-ganglia/src/generated/resources/org/apache/camel/component/ganglia/ganglia.json
index 3a3a7ee..ceaa201 100644
--- a/components/camel-ganglia/src/generated/resources/org/apache/camel/component/ganglia/ganglia.json
+++ b/components/camel-ganglia/src/generated/resources/org/apache/camel/component/ganglia/ganglia.json
@@ -19,7 +19,19 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "dmax": { "kind": "property", "displayName": "Dmax", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Minumum time in seconds before Ganglia will purge the metric value if it expires. Set to 0 and the value will remain in Ganglia indefinitely until a  [...]
+    "groupName": { "kind": "property", "displayName": "Group Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "java", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "The group that the metric belongs to." },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "metricName": { "kind": "property", "displayName": "Metric Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "metric", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "The name to use for the metric." },
+    "mode": { "kind": "property", "displayName": "Mode", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "info.ganglia.gmetric4j.gmetric.GMetric.UDPAddressingMode", "enum": [ "MULTICAST", "UNICAST" ], "deprecated": false, "secret": false, "defaultValue": "MULTICAST", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Send the UDP metric packets using MULTICAST or UNICAST" },
+    "prefix": { "kind": "property", "displayName": "Prefix", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Prefix the metric name with this string and an underscore." },
+    "slope": { "kind": "property", "displayName": "Slope", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "info.ganglia.gmetric4j.gmetric.GMetricSlope", "enum": [ "ZERO", "POSITIVE", "NEGATIVE", "BOTH" ], "deprecated": false, "secret": false, "defaultValue": "BOTH", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "The slope" },
+    "spoofHostname": { "kind": "property", "displayName": "Spoof Hostname", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Spoofing information IP:hostname" },
+    "tmax": { "kind": "property", "displayName": "Tmax", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "60", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Maximum time in seconds that the value can be considered current. After this, Ganglia considers the value to have expired." },
+    "ttl": { "kind": "property", "displayName": "Ttl", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "5", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "If using multicast, set the TTL of the packets" },
+    "type": { "kind": "property", "displayName": "Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "info.ganglia.gmetric4j.gmetric.GMetricType", "enum": [ "STRING", "INT8", "UINT8", "INT16", "UINT16", "INT32", "UINT32", "FLOAT", "DOUBLE" ], "deprecated": false, "secret": false, "defaultValue": "STRING", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "The type o [...]
+    "units": { "kind": "property", "displayName": "Units", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Any unit of measurement that qualifies the metric, e.g. widgets, litres, bytes. Do not include a prefix such as k (kilo) or m (milli), other tools may scale [...]
+    "wireFormat31x": { "kind": "property", "displayName": "Wire Format31x", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Use the wire format of Ganglia 3.1.0 and later versions. Set this to false to use Ganglia 3.0.x or earlier." },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.ganglia.GangliaConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" }
   },
diff --git a/components/camel-ganglia/src/main/docs/ganglia-component.adoc b/components/camel-ganglia/src/main/docs/ganglia-component.adoc
index f5d8fd0..6500f75 100644
--- a/components/camel-ganglia/src/main/docs/ganglia-component.adoc
+++ b/components/camel-ganglia/src/main/docs/ganglia-component.adoc
@@ -55,14 +55,26 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The Ganglia component supports 3 options, which are listed below.
+The Ganglia component supports 15 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *dmax* (producer) | Minumum time in seconds before Ganglia will purge the metric value if it expires. Set to 0 and the value will remain in Ganglia indefinitely until a gmond agent restart. | 0 | int
+| *groupName* (producer) | The group that the metric belongs to. | java | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *metricName* (producer) | The name to use for the metric. | metric | String
+| *mode* (producer) | Send the UDP metric packets using MULTICAST or UNICAST. The value can be one of: MULTICAST, UNICAST | MULTICAST | UDPAddressingMode
+| *prefix* (producer) | Prefix the metric name with this string and an underscore. |  | String
+| *slope* (producer) | The slope. The value can be one of: ZERO, POSITIVE, NEGATIVE, BOTH | BOTH | GMetricSlope
+| *spoofHostname* (producer) | Spoofing information IP:hostname |  | String
+| *tmax* (producer) | Maximum time in seconds that the value can be considered current. After this, Ganglia considers the value to have expired. | 60 | int
+| *ttl* (producer) | If using multicast, set the TTL of the packets | 5 | int
+| *type* (producer) | The type of value. The value can be one of: STRING, INT8, UINT8, INT16, UINT16, INT32, UINT32, FLOAT, DOUBLE | STRING | GMetricType
+| *units* (producer) | Any unit of measurement that qualifies the metric, e.g. widgets, litres, bytes. Do not include a prefix such as k (kilo) or m (milli), other tools may scale the units later. The value should be unscaled. |  | String
+| *wireFormat31x* (producer) | Use the wire format of Ganglia 3.1.0 and later versions. Set this to false to use Ganglia 3.0.x or earlier. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | To use the shared configuration |  | GangliaConfiguration
 |===
diff --git a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarComponentConfigurer.java b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarComponentConfigurer.java
index 2acc79b..0aeeef9 100644
--- a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarComponentConfigurer.java
+++ b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarComponentConfigurer.java
@@ -11,11 +11,28 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class GoogleCalendarComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.google.calendar.GoogleCalendarConfiguration getOrCreateConfiguration(GoogleCalendarComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.google.calendar.GoogleCalendarConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         GoogleCalendarComponent target = (GoogleCalendarComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "applicationname":
+        case "applicationName": getOrCreateConfiguration(target).setApplicationName(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientid":
+        case "clientId": getOrCreateConfiguration(target).setClientId(property(camelContext, java.lang.String.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.google.calendar.GoogleCalendarConfiguration.class, value)); return true;
+        case "emailaddress":
+        case "emailAddress": getOrCreateConfiguration(target).setEmailAddress(property(camelContext, java.lang.String.class, value)); return true;
+        case "p12filename":
+        case "p12FileName": getOrCreateConfiguration(target).setP12FileName(property(camelContext, java.lang.String.class, value)); return true;
+        case "scopes": getOrCreateConfiguration(target).setScopes(property(camelContext, java.lang.String.class, value)); return true;
+        case "user": getOrCreateConfiguration(target).setUser(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
@@ -24,6 +41,12 @@ public class GoogleCalendarComponentConfigurer extends PropertyConfigurerSupport
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "clientfactory":
         case "clientFactory": target.setClientFactory(property(camelContext, org.apache.camel.component.google.calendar.GoogleCalendarClientFactory.class, value)); return true;
+        case "accesstoken":
+        case "accessToken": getOrCreateConfiguration(target).setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "clientSecret": getOrCreateConfiguration(target).setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "refreshToken": getOrCreateConfiguration(target).setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpointConfigurer.java b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpointConfigurer.java
index aeeaad8..7bc43ef 100644
--- a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpointConfigurer.java
+++ b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpointConfigurer.java
@@ -15,22 +15,16 @@ public class GoogleCalendarEndpointConfigurer extends PropertyConfigurerSupport
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         GoogleCalendarEndpoint target = (GoogleCalendarEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesstoken":
-        case "accessToken": target.getConfiguration().setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
         case "applicationname":
         case "applicationName": target.getConfiguration().setApplicationName(property(camelContext, java.lang.String.class, value)); return true;
         case "clientid":
         case "clientId": target.getConfiguration().setClientId(property(camelContext, java.lang.String.class, value)); return true;
-        case "clientsecret":
-        case "clientSecret": target.getConfiguration().setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
         case "emailaddress":
         case "emailAddress": target.getConfiguration().setEmailAddress(property(camelContext, java.lang.String.class, value)); return true;
         case "inbody":
         case "inBody": target.setInBody(property(camelContext, java.lang.String.class, value)); return true;
         case "p12filename":
         case "p12FileName": target.getConfiguration().setP12FileName(property(camelContext, java.lang.String.class, value)); return true;
-        case "refreshtoken":
-        case "refreshToken": target.getConfiguration().setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         case "scopes": target.getConfiguration().setScopes(property(camelContext, java.lang.String.class, value)); return true;
         case "user": target.getConfiguration().setUser(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
@@ -73,6 +67,12 @@ public class GoogleCalendarEndpointConfigurer extends PropertyConfigurerSupport
         case "timeUnit": target.setTimeUnit(property(camelContext, java.util.concurrent.TimeUnit.class, value)); return true;
         case "usefixeddelay":
         case "useFixedDelay": target.setUseFixedDelay(property(camelContext, boolean.class, value)); return true;
+        case "accesstoken":
+        case "accessToken": target.getConfiguration().setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "clientSecret": target.getConfiguration().setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "refreshToken": target.getConfiguration().setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponentConfigurer.java b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponentConfigurer.java
index e7d7194..948cceb 100644
--- a/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponentConfigurer.java
+++ b/components/camel-google-calendar/src/generated/java/org/apache/camel/component/google/calendar/stream/GoogleCalendarStreamComponentConfigurer.java
@@ -11,12 +11,39 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class GoogleCalendarStreamComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration getOrCreateConfiguration(GoogleCalendarStreamComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         GoogleCalendarStreamComponent target = (GoogleCalendarStreamComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesstoken":
+        case "accessToken": getOrCreateConfiguration(target).setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "applicationname":
+        case "applicationName": getOrCreateConfiguration(target).setApplicationName(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "calendarid":
+        case "calendarId": getOrCreateConfiguration(target).setCalendarId(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientid":
+        case "clientId": getOrCreateConfiguration(target).setClientId(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "clientSecret": getOrCreateConfiguration(target).setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "considerlastupdate":
+        case "considerLastUpdate": getOrCreateConfiguration(target).setConsiderLastUpdate(property(camelContext, boolean.class, value)); return true;
+        case "consumefromnow":
+        case "consumeFromNow": getOrCreateConfiguration(target).setConsumeFromNow(property(camelContext, boolean.class, value)); return true;
+        case "maxresults":
+        case "maxResults": getOrCreateConfiguration(target).setMaxResults(property(camelContext, int.class, value)); return true;
+        case "query": getOrCreateConfiguration(target).setQuery(property(camelContext, java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "refreshToken": getOrCreateConfiguration(target).setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "scopes": getOrCreateConfiguration(target).setScopes(property(camelContext, java.util.List.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "clientfactory":
diff --git a/components/camel-google-calendar/src/generated/resources/org/apache/camel/component/google/calendar/google-calendar.json b/components/camel-google-calendar/src/generated/resources/org/apache/camel/component/google/calendar/google-calendar.json
index d114e62..322884d 100644
--- a/components/camel-google-calendar/src/generated/resources/org/apache/camel/component/google/calendar/google-calendar.json
+++ b/components/camel-google-calendar/src/generated/resources/org/apache/camel/component/google/calendar/google-calendar.json
@@ -19,23 +19,29 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "applicationName": { "kind": "property", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Google calendar application name. Example would be camel-google-calendar\/1.0" },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Client ID of the calendar application" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "emailAddress": { "kind": "property", "displayName": "Email Address", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "The emailAddress of the Google Service Account." },
+    "p12FileName": { "kind": "property", "displayName": "P12 File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "The name of the p12 file which has the private key to use with the Google Service Account." },
+    "scopes": { "kind": "property", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https:\/\/www.googleapis.com\/auth\/calendar", "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a calendar application to have to [...]
+    "user": { "kind": "property", "displayName": "User", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "The email address of the user the application is trying to impersonate in the service account flow" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.calendar.GoogleCalendarClientFactory", "deprecated": false, "secret": false, "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory" }
+    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.calendar.GoogleCalendarClientFactory", "deprecated": false, "secret": false, "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory" },
+    "accessToken": { "kind": "property", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage." },
+    "clientSecret": { "kind": "property", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Client secret of the calendar application" },
+    "refreshToken": { "kind": "property", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one  [...]
   },
   "properties": {
     "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName", "enum": [ "ACL", "LIST", "CALENDARS", "CHANNELS", "COLORS", "FREEBUSY", "EVENTS", "SETTINGS" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField":  [...]
     "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "calendarImport", "clear", "delete", "get", "insert", "instances", "list", "move", "patch", "query", "quickAdd", "stop", "update", "watch" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationFie [...]
-    "accessToken": { "kind": "parameter", "displayName": "Access Token", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage." },
     "applicationName": { "kind": "parameter", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Google calendar application name. Example would be camel-google-calendar\/1.0" },
     "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Client ID of the calendar application" },
-    "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Client secret of the calendar application" },
     "emailAddress": { "kind": "parameter", "displayName": "Email Address", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "The emailAddress of the Google Service Account." },
     "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
     "p12FileName": { "kind": "parameter", "displayName": "P12 File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "The name of the p12 file which has the private key to use with the Google Service Account." },
-    "refreshToken": { "kind": "parameter", "displayName": "Refresh Token", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires  [...]
     "scopes": { "kind": "parameter", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "https:\/\/www.googleapis.com\/auth\/calendar", "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a calendar application to have t [...]
     "user": { "kind": "parameter", "displayName": "User", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "The email address of the user the application is trying to impersonate in the service account flow" },
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 b [...]
@@ -59,6 +65,9 @@
     "schedulerProperties": { "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler." },
     "startScheduler": { "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Whether the scheduler should be auto started." },
     "timeUnit": { "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." },
-    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "accessToken": { "kind": "parameter", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage." },
+    "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Client secret of the calendar application" },
+    "refreshToken": { "kind": "parameter", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one [...]
   }
 }
diff --git a/components/camel-google-calendar/src/generated/resources/org/apache/camel/component/google/calendar/stream/google-calendar-stream.json b/components/camel-google-calendar/src/generated/resources/org/apache/camel/component/google/calendar/stream/google-calendar-stream.json
index 5e1bfa3..e0c9089 100644
--- a/components/camel-google-calendar/src/generated/resources/org/apache/camel/component/google/calendar/stream/google-calendar-stream.json
+++ b/components/camel-google-calendar/src/generated/resources/org/apache/camel/component/google/calendar/stream/google-calendar-stream.json
@@ -19,7 +19,18 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
+    "accessToken": { "kind": "property", "displayName": "Access Token", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage." },
+    "applicationName": { "kind": "property", "displayName": "Application Name", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "Google Calendar application name. Example would be camel-google-calendar\/1.0" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "calendarId": { "kind": "property", "displayName": "Calendar Id", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "primary", "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "The calendarId to be used" },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "Client ID of the calendar application" },
+    "clientSecret": { "kind": "property", "displayName": "Client Secret", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "Client secret of the calendar application" },
+    "considerLastUpdate": { "kind": "property", "displayName": "Consider Last Update", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "Take into account the lastUpdate of the last event polled as start date for the nex [...]
+    "consumeFromNow": { "kind": "property", "displayName": "Consume From Now", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "Consume events in the selected calendar from now on" },
+    "maxResults": { "kind": "property", "displayName": "Max Results", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "10", "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "Max results to be returned" },
+    "query": { "kind": "property", "displayName": "Query", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "The query to execute on calendar" },
+    "refreshToken": { "kind": "property", "displayName": "Refresh Token", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the curren [...]
+    "scopes": { "kind": "property", "displayName": "Scopes", "group": "consumer", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a calendar application to have to a user account. See https:\/\/dev [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.calendar.GoogleCalendarClientFactory", "deprecated": false, "secret": false, "description": "The client Factory" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration", "deprecated": false, "secret": false, "description": "The configuration" }
diff --git a/components/camel-google-calendar/src/main/docs/google-calendar-component.adoc b/components/camel-google-calendar/src/main/docs/google-calendar-component.adoc
index d0282b9..656c973 100644
--- a/components/camel-google-calendar/src/main/docs/google-calendar-component.adoc
+++ b/components/camel-google-calendar/src/main/docs/google-calendar-component.adoc
@@ -41,18 +41,27 @@ for this component:
 
 
 // component options: START
-The Google Calendar component supports 5 options, which are listed below.
+The Google Calendar component supports 14 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *applicationName* (common) | Google calendar application name. Example would be camel-google-calendar/1.0 |  | String
+| *clientId* (common) | Client ID of the calendar application |  | String
 | *configuration* (common) | To use the shared configuration |  | GoogleCalendarConfiguration
+| *emailAddress* (common) | The emailAddress of the Google Service Account. |  | String
+| *p12FileName* (common) | The name of the p12 file which has the private key to use with the Google Service Account. |  | String
+| *scopes* (common) | 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 | String
+| *user* (common) | The email address of the user the application is trying to impersonate in the service account flow |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *clientFactory* (advanced) | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory |  | GoogleCalendarClientFactory
+| *accessToken* (security) | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. |  | String
+| *clientSecret* (security) | Client secret of the calendar application |  | String
+| *refreshToken* (security) | 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. |  | String
 |===
 // component options: END
 
@@ -89,14 +98,11 @@ with the following path and query parameters:
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *accessToken* (common) | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. |  | String
 | *applicationName* (common) | Google calendar application name. Example would be camel-google-calendar/1.0 |  | String
 | *clientId* (common) | Client ID of the calendar application |  | String
-| *clientSecret* (common) | Client secret of the calendar application |  | String
 | *emailAddress* (common) | The emailAddress of the Google Service Account. |  | String
 | *inBody* (common) | Sets the name of a parameter to be passed in the exchange In Body |  | String
 | *p12FileName* (common) | The name of the p12 file which has the private key to use with the Google Service Account. |  | String
-| *refreshToken* (common) | 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. |  | String
 | *scopes* (common) | 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 | String
 | *user* (common) | The email address of the user the application is trying to impersonate in the service account flow |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
@@ -121,6 +127,9 @@ with the following path and query parameters:
 | *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
 | *timeUnit* (scheduler) | Time unit for initialDelay and delay options. The value can be one of: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
 | *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
+| *accessToken* (security) | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. |  | String
+| *clientSecret* (security) | Client secret of the calendar application |  | String
+| *refreshToken* (security) | 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. |  | String
 |===
 // endpoint options: END
 
diff --git a/components/camel-google-calendar/src/main/docs/google-calendar-stream-component.adoc b/components/camel-google-calendar/src/main/docs/google-calendar-stream-component.adoc
index 9a26bf3..09a7458 100644
--- a/components/camel-google-calendar/src/main/docs/google-calendar-stream-component.adoc
+++ b/components/camel-google-calendar/src/main/docs/google-calendar-stream-component.adoc
@@ -48,14 +48,25 @@ The Google Calendar Component uses the following URI format:
 
 
 // component options: START
-The Google Calendar Stream component supports 4 options, which are listed below.
+The Google Calendar Stream component supports 15 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *accessToken* (consumer) | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. |  | String
+| *applicationName* (consumer) | Google Calendar application name. Example would be camel-google-calendar/1.0 |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *calendarId* (consumer) | The calendarId to be used | primary | String
+| *clientId* (consumer) | Client ID of the calendar application |  | String
+| *clientSecret* (consumer) | Client secret of the calendar application |  | String
+| *considerLastUpdate* (consumer) | Take into account the lastUpdate of the last event polled as start date for the next poll | false | boolean
+| *consumeFromNow* (consumer) | Consume events in the selected calendar from now on | true | boolean
+| *maxResults* (consumer) | Max results to be returned | 10 | int
+| *query* (consumer) | The query to execute on calendar |  | String
+| *refreshToken* (consumer) | 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. |  | String
+| *scopes* (consumer) | Specifies the level of permissions you want a calendar application to have to a user account. See \https://developers.google.com/calendar/auth for more info. |  | List
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *clientFactory* (advanced) | The client Factory |  | GoogleCalendarClientFactory
 | *configuration* (advanced) | The configuration |  | GoogleCalendarStreamConfiguration
diff --git a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java
index 0ffb36c..6f76f25 100644
--- a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java
+++ b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java
@@ -34,6 +34,9 @@ import org.apache.camel.support.component.AbstractApiComponent;
 @Component("google-calendar")
 public class GoogleCalendarComponent extends AbstractApiComponent<GoogleCalendarApiName, GoogleCalendarConfiguration, GoogleCalendarApiCollection> {
 
+    @Metadata
+    GoogleCalendarConfiguration configuration;
+
     @Metadata(label = "advanced")
     private Calendar client;
     @Metadata(label = "advanced")
diff --git a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarConfiguration.java b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarConfiguration.java
index 4fef4bf..176212d 100644
--- a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarConfiguration.java
+++ b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarConfiguration.java
@@ -46,13 +46,13 @@ public class GoogleCalendarConfiguration {
     @UriParam
     private String emailAddress;
 
-    @UriParam
+    @UriParam(label = "security", secret = true)
     private String clientSecret;
 
-    @UriParam
+    @UriParam(label = "security", secret = true)
     private String accessToken;
 
-    @UriParam
+    @UriParam(label = "security", secret = true)
     private String refreshToken;
 
     @UriParam
diff --git a/components/camel-google-drive/src/generated/java/org/apache/camel/component/google/drive/GoogleDriveComponentConfigurer.java b/components/camel-google-drive/src/generated/java/org/apache/camel/component/google/drive/GoogleDriveComponentConfigurer.java
index 8c1850b..943aa3b 100644
--- a/components/camel-google-drive/src/generated/java/org/apache/camel/component/google/drive/GoogleDriveComponentConfigurer.java
+++ b/components/camel-google-drive/src/generated/java/org/apache/camel/component/google/drive/GoogleDriveComponentConfigurer.java
@@ -11,11 +11,23 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class GoogleDriveComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.google.drive.GoogleDriveConfiguration getOrCreateConfiguration(GoogleDriveComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.google.drive.GoogleDriveConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         GoogleDriveComponent target = (GoogleDriveComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "applicationname":
+        case "applicationName": getOrCreateConfiguration(target).setApplicationName(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientid":
+        case "clientId": getOrCreateConfiguration(target).setClientId(property(camelContext, java.lang.String.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.google.drive.GoogleDriveConfiguration.class, value)); return true;
+        case "scopes": getOrCreateConfiguration(target).setScopes(property(camelContext, java.util.List.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "lazystartproducer":
@@ -24,6 +36,12 @@ public class GoogleDriveComponentConfigurer extends PropertyConfigurerSupport im
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "clientfactory":
         case "clientFactory": target.setClientFactory(property(camelContext, org.apache.camel.component.google.drive.GoogleDriveClientFactory.class, value)); return true;
+        case "accesstoken":
+        case "accessToken": getOrCreateConfiguration(target).setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "clientSecret": getOrCreateConfiguration(target).setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "refreshToken": getOrCreateConfiguration(target).setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-google-drive/src/generated/java/org/apache/camel/component/google/drive/GoogleDriveEndpointConfigurer.java b/components/camel-google-drive/src/generated/java/org/apache/camel/component/google/drive/GoogleDriveEndpointConfigurer.java
index c34f220..34abefa 100644
--- a/components/camel-google-drive/src/generated/java/org/apache/camel/component/google/drive/GoogleDriveEndpointConfigurer.java
+++ b/components/camel-google-drive/src/generated/java/org/apache/camel/component/google/drive/GoogleDriveEndpointConfigurer.java
@@ -15,20 +15,14 @@ public class GoogleDriveEndpointConfigurer extends PropertyConfigurerSupport imp
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         GoogleDriveEndpoint target = (GoogleDriveEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesstoken":
-        case "accessToken": target.getConfiguration().setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
         case "applicationname":
         case "applicationName": target.getConfiguration().setApplicationName(property(camelContext, java.lang.String.class, value)); return true;
         case "clientfactory":
         case "clientFactory": target.setClientFactory(property(camelContext, org.apache.camel.component.google.drive.GoogleDriveClientFactory.class, value)); return true;
         case "clientid":
         case "clientId": target.getConfiguration().setClientId(property(camelContext, java.lang.String.class, value)); return true;
-        case "clientsecret":
-        case "clientSecret": target.getConfiguration().setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
         case "inbody":
         case "inBody": target.setInBody(property(camelContext, java.lang.String.class, value)); return true;
-        case "refreshtoken":
-        case "refreshToken": target.getConfiguration().setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         case "scopes": target.getConfiguration().setScopes(property(camelContext, java.util.List.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
@@ -70,6 +64,12 @@ public class GoogleDriveEndpointConfigurer extends PropertyConfigurerSupport imp
         case "timeUnit": target.setTimeUnit(property(camelContext, java.util.concurrent.TimeUnit.class, value)); return true;
         case "usefixeddelay":
         case "useFixedDelay": target.setUseFixedDelay(property(camelContext, boolean.class, value)); return true;
+        case "accesstoken":
+        case "accessToken": target.getConfiguration().setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "clientSecret": target.getConfiguration().setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "refreshToken": target.getConfiguration().setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-google-drive/src/generated/resources/org/apache/camel/component/google/drive/google-drive.json b/components/camel-google-drive/src/generated/resources/org/apache/camel/component/google/drive/google-drive.json
index 15eb42d..5b5ea98 100644
--- a/components/camel-google-drive/src/generated/resources/org/apache/camel/component/google/drive/google-drive.json
+++ b/components/camel-google-drive/src/generated/resources/org/apache/camel/component/google/drive/google-drive.json
@@ -19,22 +19,25 @@
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "applicationName": { "kind": "property", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Google drive application name. Example would be camel-google-drive\/1.0" },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Client ID of the drive application" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "deprecated": false, "secret": false, "description": "To use the shared configuration" },
+    "scopes": { "kind": "property", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a drive application to have to a user account. See https:\/\/developers.google.com\/driv [...]
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.drive.GoogleDriveClientFactory", "deprecated": false, "secret": false, "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleDriveClientFactory" }
+    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.drive.GoogleDriveClientFactory", "deprecated": false, "secret": false, "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleDriveClientFactory" },
+    "accessToken": { "kind": "property", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage." },
+    "clientSecret": { "kind": "property", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Client secret of the drive application" },
+    "refreshToken": { "kind": "property", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expire [...]
   },
   "properties": {
     "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.google.drive.internal.GoogleDriveApiName", "enum": [ "drive-about", "drive-apps", "drive-changes", "drive-channels", "drive-children", "drive-comments", "drive-files", "drive-parents", "drive-permissions", "drive-properties", "drive-realtime", "drive-replies", "drive-revisions" ], "deprecated": false, "deprecationNote": "" [...]
     "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "copy", "delete", "get", "getIdForEmail", "insert", "list", "patch", "stop", "touch", "trash", "untrash", "update", "watch" ], "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", [...]
-    "accessToken": { "kind": "parameter", "displayName": "Access Token", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage." },
     "applicationName": { "kind": "parameter", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Google drive application name. Example would be camel-google-drive\/1.0" },
     "clientFactory": { "kind": "parameter", "displayName": "Client Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.drive.GoogleDriveClientFactory", "deprecated": false, "secret": false, "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleDriveClientFactory" },
     "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Client ID of the drive application" },
-    "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Client secret of the drive application" },
     "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
-    "refreshToken": { "kind": "parameter", "displayName": "Refresh Token", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a ne [...]
     "scopes": { "kind": "parameter", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Specifies the level of permissions you want a drive application to have to a user account. See https:\/\/developers.google.com\/dri [...]
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 b [...]
     "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." },
@@ -57,6 +60,9 @@
     "schedulerProperties": { "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler." },
     "startScheduler": { "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Whether the scheduler should be auto started." },
     "timeUnit": { "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." },
-    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "accessToken": { "kind": "parameter", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage." },
+    "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Client secret of the drive application" },
+    "refreshToken": { "kind": "parameter", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expir [...]
   }
 }
diff --git a/components/camel-google-drive/src/main/docs/google-drive-component.adoc b/components/camel-google-drive/src/main/docs/google-drive-component.adoc
index b9e3717..b46b65e 100644
--- a/components/camel-google-drive/src/main/docs/google-drive-component.adoc
+++ b/components/camel-google-drive/src/main/docs/google-drive-component.adoc
@@ -68,18 +68,24 @@ Endpoint prefix can be one of:
 
 
 // component options: START
-The Google Drive component supports 5 options, which are listed below.
+The Google Drive component supports 11 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
+| *applicationName* (common) | Google drive application name. Example would be camel-google-drive/1.0 |  | String
+| *clientId* (common) | Client ID of the drive application |  | String
 | *configuration* (common) | To use the shared configuration |  | GoogleDriveConfiguration
+| *scopes* (common) | Specifies the level of permissions you want a drive application to have to a user account. See \https://developers.google.com/drive/web/scopes for more info. |  | List
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *clientFactory* (advanced) | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleDriveClientFactory |  | GoogleDriveClientFactory
+| *accessToken* (security) | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. |  | String
+| *clientSecret* (security) | Client secret of the drive application |  | String
+| *refreshToken* (security) | 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. |  | String
 |===
 // component options: END
 
@@ -116,13 +122,10 @@ with the following path and query parameters:
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *accessToken* (common) | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. |  | String
 | *applicationName* (common) | Google drive application name. Example would be camel-google-drive/1.0 |  | String
 | *clientFactory* (common) | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleDriveClientFactory |  | GoogleDriveClientFactory
 | *clientId* (common) | Client ID of the drive application |  | String
-| *clientSecret* (common) | Client secret of the drive application |  | String
 | *inBody* (common) | Sets the name of a parameter to be passed in the exchange In Body |  | String
-| *refreshToken* (common) | 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. |  | String
 | *scopes* (common) | Specifies the level of permissions you want a drive application to have to a user account. See \https://developers.google.com/drive/web/scopes for more info. |  | List
 | *bridgeErrorHandler* (consumer) | 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 | boolean
 | *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean
@@ -146,6 +149,9 @@ with the following path and query parameters:
 | *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
 | *timeUnit* (scheduler) | Time unit for initialDelay and delay options. The value can be one of: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
 | *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
+| *accessToken* (security) | OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage. |  | String
+| *clientSecret* (security) | Client secret of the drive application |  | String
+| *refreshToken* (security) | 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. |  | String
 |===
 // endpoint options: END
 
diff --git a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java
index b61f779..585588e 100644
--- a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java
+++ b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java
@@ -32,6 +32,9 @@ import org.apache.camel.util.ObjectHelper;
 @Component("google-drive")
 public class GoogleDriveComponent extends AbstractApiComponent<GoogleDriveApiName, GoogleDriveConfiguration, GoogleDriveApiCollection> {
 
+    @Metadata
+    GoogleDriveConfiguration configuration;
+
     @Metadata(label = "advanced")
     private Drive client;
     @Metadata(label = "advanced")
diff --git a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveConfiguration.java b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveConfiguration.java
index c1dc221..63210a8 100644
--- a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveConfiguration.java
+++ b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveConfiguration.java
@@ -48,13 +48,13 @@ public class GoogleDriveConfiguration {
     @UriParam
     private String clientId;
 
-    @UriParam
+    @UriParam(label = "security", secret = true)
     private String clientSecret;
 
-    @UriParam
+    @UriParam(label = "security", secret = true)
     private String accessToken;
 
-    @UriParam
+    @UriParam(label = "security", secret = true)
     private String refreshToken;
 
     @UriParam
diff --git a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailComponentConfigurer.java b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailComponentConfigurer.java
index 7ecacfd..a07628c 100644
--- a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailComponentConfigurer.java
+++ b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailComponentConfigurer.java
@@ -11,10 +11,21 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class GoogleMailComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.google.mail.GoogleMailConfiguration getOrCreateConfiguration(GoogleMailComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.google.mail.GoogleMailConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         GoogleMailComponent target = (GoogleMailComponent) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
+        case "applicationname":
+        case "applicationName": getOrCreateConfiguration(target).setApplicationName(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientid":
+        case "clientId": getOrCreateConfiguration(target).setClientId(property(camelContext, java.lang.String.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.google.mail.GoogleMailConfiguration.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
@@ -24,6 +35,12 @@ public class GoogleMailComponentConfigurer extends PropertyConfigurerSupport imp
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "clientfactory":
         case "clientFactory": target.setClientFactory(property(camelContext, org.apache.camel.component.google.mail.GoogleMailClientFactory.class, value)); return true;
+        case "accesstoken":
+        case "accessToken": getOrCreateConfiguration(target).setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "clientSecret": getOrCreateConfiguration(target).setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "refreshToken": getOrCreateConfiguration(target).setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailEndpointConfigurer.java b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailEndpointConfigurer.java
index 58a4143..41e2873 100644
--- a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailEndpointConfigurer.java
+++ b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/GoogleMailEndpointConfigurer.java
@@ -15,18 +15,12 @@ public class GoogleMailEndpointConfigurer extends PropertyConfigurerSupport impl
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         GoogleMailEndpoint target = (GoogleMailEndpoint) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesstoken":
-        case "accessToken": target.getConfiguration().setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
         case "applicationname":
         case "applicationName": target.getConfiguration().setApplicationName(property(camelContext, java.lang.String.class, value)); return true;
         case "clientid":
         case "clientId": target.getConfiguration().setClientId(property(camelContext, java.lang.String.class, value)); return true;
-        case "clientsecret":
-        case "clientSecret": target.getConfiguration().setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
         case "inbody":
         case "inBody": target.setInBody(property(camelContext, java.lang.String.class, value)); return true;
-        case "refreshtoken":
-        case "refreshToken": target.getConfiguration().setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "sendemptymessagewhenidle":
@@ -67,6 +61,12 @@ public class GoogleMailEndpointConfigurer extends PropertyConfigurerSupport impl
         case "timeUnit": target.setTimeUnit(property(camelContext, java.util.concurrent.TimeUnit.class, value)); return true;
         case "usefixeddelay":
         case "useFixedDelay": target.setUseFixedDelay(property(camelContext, boolean.class, value)); return true;
+        case "accesstoken":
+        case "accessToken": target.getConfiguration().setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "clientsecret":
+        case "clientSecret": target.getConfiguration().setClientSecret(property(camelContext, java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "refreshToken": target.getConfiguration().setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         default: return false;
         }
     }
diff --git a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamComponentConfigurer.java b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamComponentConfigurer.java
index f3a90a4..82c3d09 100644
--- a/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamComponentConfigurer.java
+++ b/components/camel-google-mail/src/generated/java/org/apache/camel/component/google/mail/stream/GoogleMailStreamComponentConfigurer.java
@@ -11,12 +11,35 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class GoogleMailStreamComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.google.mail.stream.GoogleMailStreamConfiguration getOrCreateConfiguration(GoogleMailStreamComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.google.mail.stream.GoogleMailStreamConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
... 49341 lines suppressed ...


[camel] 02/02: CAMEL-14568: Regen

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

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

commit f4f11cb366d5fd2f3b2e85cf016cce0f53d6c59a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Feb 28 11:41:52 2020 +0100

    CAMEL-14568: Regen
---
 .../KinesisFirehose2ComponentConfigurer.java       |  15 +++
 .../aws2/kinesis/Kinesis2ComponentConfigurer.java  |  25 ++++
 .../aws2/firehose/aws2-kinesis-firehose.json       |   4 +
 .../camel/component/aws2/kinesis/aws2-kinesis.json |   9 ++
 .../src/main/docs/aws2-kinesis-component.adoc      |  11 +-
 .../main/docs/aws2-kinesis-firehose-component.adoc |   6 +-
 .../component/kafka/KafkaComponentConfigurer.java  |   4 +-
 .../org/apache/camel/component/kafka/kafka.json    |   6 +-
 .../camel-kafka/src/main/docs/kafka-component.adoc |   6 +-
 .../camel/component/kafka/KafkaComponent.java      |  19 ---
 .../camel/component/kafka/KafkaConfiguration.java  |   2 +
 .../dsl/Aws2KinesisComponentBuilderFactory.java    | 137 +++++++++++++++++++++
 ...Aws2KinesisFirehoseComponentBuilderFactory.java |  67 ++++++++++
 .../dsl/KafkaComponentBuilderFactory.java          |  30 ++---
 .../modules/ROOT/pages/aws2-kinesis-component.adoc |  11 +-
 .../pages/aws2-kinesis-firehose-component.adoc     |   6 +-
 .../modules/ROOT/pages/kafka-component.adoc        |   6 +-
 17 files changed, 316 insertions(+), 48 deletions(-)

diff --git a/components/camel-aws2-kinesis/src/generated/java/org/apache/camel/component/aws2/firehose/KinesisFirehose2ComponentConfigurer.java b/components/camel-aws2-kinesis/src/generated/java/org/apache/camel/component/aws2/firehose/KinesisFirehose2ComponentConfigurer.java
index da6f21f..331eb0d 100644
--- a/components/camel-aws2-kinesis/src/generated/java/org/apache/camel/component/aws2/firehose/KinesisFirehose2ComponentConfigurer.java
+++ b/components/camel-aws2-kinesis/src/generated/java/org/apache/camel/component/aws2/firehose/KinesisFirehose2ComponentConfigurer.java
@@ -11,14 +11,29 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class KinesisFirehose2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration getOrCreateConfiguration(KinesisFirehose2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         KinesisFirehose2Component target = (KinesisFirehose2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonkinesisfirehoseclient":
+        case "amazonKinesisFirehoseClient": getOrCreateConfiguration(target).setAmazonKinesisFirehoseClient(property(camelContext, software.amazon.awssdk.services.firehose.FirehoseClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
diff --git a/components/camel-aws2-kinesis/src/generated/java/org/apache/camel/component/aws2/kinesis/Kinesis2ComponentConfigurer.java b/components/camel-aws2-kinesis/src/generated/java/org/apache/camel/component/aws2/kinesis/Kinesis2ComponentConfigurer.java
index 298f2be..dae5a60 100644
--- a/components/camel-aws2-kinesis/src/generated/java/org/apache/camel/component/aws2/kinesis/Kinesis2ComponentConfigurer.java
+++ b/components/camel-aws2-kinesis/src/generated/java/org/apache/camel/component/aws2/kinesis/Kinesis2ComponentConfigurer.java
@@ -11,17 +11,42 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
 @SuppressWarnings("unchecked")
 public class Kinesis2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer {
 
+    private org.apache.camel.component.aws2.kinesis.Kinesis2Configuration getOrCreateConfiguration(Kinesis2Component target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.kinesis.Kinesis2Configuration());
+        }
+        return target.getConfiguration();
+    }
+
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
         Kinesis2Component target = (Kinesis2Component) obj;
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesskey":
         case "accessKey": target.setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "amazonkinesisclient":
+        case "amazonKinesisClient": getOrCreateConfiguration(target).setAmazonKinesisClient(property(camelContext, software.amazon.awssdk.services.kinesis.KinesisClient.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": target.setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+        case "iteratortype":
+        case "iteratorType": getOrCreateConfiguration(target).setIteratorType(property(camelContext, software.amazon.awssdk.services.kinesis.model.ShardIteratorType.class, value)); return true;
+        case "maxresultsperrequest":
+        case "maxResultsPerRequest": getOrCreateConfiguration(target).setMaxResultsPerRequest(property(camelContext, int.class, value)); return true;
+        case "sequencenumber":
+        case "sequenceNumber": getOrCreateConfiguration(target).setSequenceNumber(property(camelContext, java.lang.String.class, value)); return true;
+        case "shardclosed":
+        case "shardClosed": getOrCreateConfiguration(target).setShardClosed(property(camelContext, org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum.class, value)); return true;
+        case "shardid":
+        case "shardId": getOrCreateConfiguration(target).setShardId(property(camelContext, java.lang.String.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
diff --git a/components/camel-aws2-kinesis/src/generated/resources/org/apache/camel/component/aws2/firehose/aws2-kinesis-firehose.json b/components/camel-aws2-kinesis/src/generated/resources/org/apache/camel/component/aws2/firehose/aws2-kinesis-firehose.json
index 009a075..548a4b4 100644
--- a/components/camel-aws2-kinesis/src/generated/resources/org/apache/camel/component/aws2/firehose/aws2-kinesis-firehose.json
+++ b/components/camel-aws2-kinesis/src/generated/resources/org/apache/camel/component/aws2/firehose/aws2-kinesis-firehose.json
@@ -20,7 +20,11 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonKinesisFirehoseClient": { "kind": "property", "displayName": "Amazon Kinesis Firehose Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.firehose.FirehoseClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration", "configurationField": "configuration", "description": "Amazon Kinesis Firehose client to use for all requests  [...]
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Kinesis Firehose client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Kinesis Firehose client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the  [...]
     "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-aws2-kinesis/src/generated/resources/org/apache/camel/component/aws2/kinesis/aws2-kinesis.json b/components/camel-aws2-kinesis/src/generated/resources/org/apache/camel/component/aws2/kinesis/aws2-kinesis.json
index 61cf590..d0aea7a 100644
--- a/components/camel-aws2-kinesis/src/generated/resources/org/apache/camel/component/aws2/kinesis/aws2-kinesis.json
+++ b/components/camel-aws2-kinesis/src/generated/resources/org/apache/camel/component/aws2/kinesis/aws2-kinesis.json
@@ -20,9 +20,18 @@
   },
   "componentProperties": {
     "accessKey": { "kind": "property", "displayName": "Access Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Access Key" },
+    "amazonKinesisClient": { "kind": "property", "displayName": "Amazon Kinesis Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kinesis.KinesisClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Amazon Kinesis client to use for all requests for this endpoint" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Kinesis client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Kinesis client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the Kinesis client" },
     "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Region" },
     "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "Amazon AWS Secret Key" },
     "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "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 [...]
+    "iteratorType": { "kind": "property", "displayName": "Iterator Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kinesis.model.ShardIteratorType", "enum": [ "AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER", "TRIM_HORIZON", "LATEST", "AT_TIMESTAMP", "null" ], "deprecated": false, "secret": false, "defaultValue": "TRIM_HORIZON", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configurat [...]
+    "maxResultsPerRequest": { "kind": "property", "displayName": "Max Results Per Request", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Maximum number of records that will be fetched in each poll" },
+    "sequenceNumber": { "kind": "property", "displayName": "Sequence Number", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER" },
+    "shardClosed": { "kind": "property", "displayName": "Shard Closed", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum", "enum": [ "ignore", "fail", "silent" ], "deprecated": false, "secret": false, "defaultValue": "ignore", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Define w [...]
+    "shardId": { "kind": "property", "displayName": "Shard Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Defines which shardId in the Kinesis stream to get records from" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "deprecated": false, "secret": false, "description": "The AWS S3 default configuration" }
diff --git a/components/camel-aws2-kinesis/src/main/docs/aws2-kinesis-component.adoc b/components/camel-aws2-kinesis/src/main/docs/aws2-kinesis-component.adoc
index cfb71a5..d89007a 100644
--- a/components/camel-aws2-kinesis/src/main/docs/aws2-kinesis-component.adoc
+++ b/components/camel-aws2-kinesis/src/main/docs/aws2-kinesis-component.adoc
@@ -36,7 +36,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS 2 Kinesis component supports 7 options, which are listed below.
+The AWS 2 Kinesis component supports 16 options, which are listed below.
 
 
 
@@ -44,9 +44,18 @@ The AWS 2 Kinesis component supports 7 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (common) | Amazon AWS Access Key |  | String
+| *amazonKinesisClient* (common) | Amazon Kinesis client to use for all requests for this endpoint |  | KinesisClient
+| *proxyHost* (common) | To define a proxy host when instantiating the Kinesis client |  | String
+| *proxyPort* (common) | To define a proxy port when instantiating the Kinesis client |  | Integer
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the Kinesis client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (common) | Amazon AWS Region |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *iteratorType* (consumer) | Defines where in the Kinesis stream to start getting records. The value can be one of: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST, AT_TIMESTAMP, null | TRIM_HORIZON | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll | 1 | int
+| *sequenceNumber* (consumer) | The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER |  | String
+| *shardClosed* (consumer) | Define what will be the behavior in case of shard closed. Possible value are ignore, silent and fail. In case of ignore a message will be logged and the consumer will restart from the beginning,in case of silent there will be no logging and the consumer will start from the beginning,in case of fail a ReachedClosedStateException will be raised. The value can be one of: ignore, fail, silent | ignore | Kinesis2ShardClosedStrategyEnum
+| *shardId* (consumer) | Defines which shardId in the Kinesis stream to get records from |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS S3 default configuration |  | Kinesis2Configuration
diff --git a/components/camel-aws2-kinesis/src/main/docs/aws2-kinesis-firehose-component.adoc b/components/camel-aws2-kinesis/src/main/docs/aws2-kinesis-firehose-component.adoc
index 85848b3..62d7691 100644
--- a/components/camel-aws2-kinesis/src/main/docs/aws2-kinesis-firehose-component.adoc
+++ b/components/camel-aws2-kinesis/src/main/docs/aws2-kinesis-firehose-component.adoc
@@ -35,7 +35,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS 2 Kinesis Firehose component supports 6 options, which are listed below.
+The AWS 2 Kinesis Firehose component supports 10 options, which are listed below.
 
 
 
@@ -43,7 +43,11 @@ The AWS 2 Kinesis Firehose component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonKinesisFirehoseClient* (producer) | Amazon Kinesis Firehose client to use for all requests for this endpoint |  | FirehoseClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *proxyHost* (producer) | To define a proxy host when instantiating the Kinesis Firehose client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Kinesis Firehose client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Kinesis Firehose client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | Amazon AWS Region |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-kafka/src/generated/java/org/apache/camel/component/kafka/KafkaComponentConfigurer.java b/components/camel-kafka/src/generated/java/org/apache/camel/component/kafka/KafkaComponentConfigurer.java
index 4a6a499..8e4160b 100644
--- a/components/camel-kafka/src/generated/java/org/apache/camel/component/kafka/KafkaComponentConfigurer.java
+++ b/components/camel-kafka/src/generated/java/org/apache/camel/component/kafka/KafkaComponentConfigurer.java
@@ -199,12 +199,12 @@ public class KafkaComponentConfigurer extends PropertyConfigurerSupport implemen
         case "sslProvider": getOrCreateConfiguration(target).setSslProvider(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltrustmanageralgorithm":
         case "sslTrustmanagerAlgorithm": getOrCreateConfiguration(target).setSslTrustmanagerAlgorithm(property(camelContext, java.lang.String.class, value)); return true;
+        case "ssltruststorelocation":
+        case "sslTruststoreLocation": getOrCreateConfiguration(target).setSslTruststoreLocation(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltruststoretype":
         case "sslTruststoreType": getOrCreateConfiguration(target).setSslTruststoreType(property(camelContext, java.lang.String.class, value)); return true;
         case "schemaregistryurl":
         case "schemaRegistryURL": getOrCreateConfiguration(target).setSchemaRegistryURL(property(camelContext, java.lang.String.class, value)); return true;
-        case "ssltruststorelocation":
-        case "sslTruststoreLocation": getOrCreateConfiguration(target).setSslTruststoreLocation(property(camelContext, java.lang.String.class, value)); return true;
         case "ssltruststorepassword":
         case "sslTruststorePassword": getOrCreateConfiguration(target).setSslTruststorePassword(property(camelContext, java.lang.String.class, value)); return true;
         case "useglobalsslcontextparameters":
diff --git a/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json b/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
index ec08268..9b0590e 100644
--- a/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
+++ b/components/camel-kafka/src/generated/resources/org/apache/camel/component/kafka/kafka.json
@@ -84,7 +84,7 @@
     "retryBackoffMs": { "kind": "property", "displayName": "Retry Backoff Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Before each retry, the producer refreshes the metadata of relevant topics to see if a new leader has been e [...]
     "sendBufferBytes": { "kind": "property", "displayName": "Send Buffer Bytes", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "131072", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Socket write buffer size" },
     "serializerClass": { "kind": "property", "displayName": "Serializer Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The serializer class for messages." },
-    "workerPool": { "kind": "property", "displayName": "Worker Pool", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to [...]
+    "workerPool": { "kind": "property", "displayName": "Worker Pool", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to [...]
     "workerPoolCoreSize": { "kind": "property", "displayName": "Worker Pool Core Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "10", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Number of core threads for the worker pool for continue routing Exchange after kafka server has ack [...]
     "workerPoolMaxSize": { "kind": "property", "displayName": "Worker Pool Max Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "20", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Maximum number of threads for the worker pool for continue routing Exchange after kafka server has ac [...]
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
@@ -110,9 +110,9 @@
     "sslProtocol": { "kind": "property", "displayName": "Ssl Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "TLS", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allow [...]
     "sslProvider": { "kind": "property", "displayName": "Ssl Provider", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The name of the security provider used for SSL connections. Default value is the default security provider of the JVM." },
     "sslTrustmanagerAlgorithm": { "kind": "property", "displayName": "Ssl Trustmanager Algorithm", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "PKIX", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by trust manager factory for SSL connections. Default value is [...]
+    "sslTruststoreLocation": { "kind": "property", "displayName": "Ssl Truststore Location", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The location of the trust store file." },
     "sslTruststoreType": { "kind": "property", "displayName": "Ssl Truststore Type", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "JKS", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The file format of the trust store file. Default value is JKS." },
     "schemaRegistryURL": { "kind": "property", "displayName": "Schema Registry URL", "group": "confluent", "label": "confluent", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "URL of the Confluent Platform schema registry servers to use. The format is host1:port1,host2:port2. This is known as schema [...]
-    "sslTruststoreLocation": { "kind": "property", "displayName": "Ssl Truststore Location", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The location of the trust store file." },
     "sslTruststorePassword": { "kind": "property", "displayName": "Ssl Truststore Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file." },
     "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Enable usage of global SSL context parameters." }
   },
@@ -183,7 +183,7 @@
     "retryBackoffMs": { "kind": "parameter", "displayName": "Retry Backoff Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Before each retry, the producer refreshes the metadata of relevant topics to see if a new leader has been  [...]
     "sendBufferBytes": { "kind": "parameter", "displayName": "Send Buffer Bytes", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "131072", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Socket write buffer size" },
     "serializerClass": { "kind": "parameter", "displayName": "Serializer Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The serializer class for messages." },
-    "workerPool": { "kind": "parameter", "displayName": "Worker Pool", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent t [...]
+    "workerPool": { "kind": "parameter", "displayName": "Worker Pool", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent t [...]
     "workerPoolCoreSize": { "kind": "parameter", "displayName": "Worker Pool Core Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "10", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Number of core threads for the worker pool for continue routing Exchange after kafka server has ac [...]
     "workerPoolMaxSize": { "kind": "parameter", "displayName": "Worker Pool Max Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "defaultValue": "20", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Maximum number of threads for the worker pool for continue routing Exchange after kafka server has a [...]
     "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
diff --git a/components/camel-kafka/src/main/docs/kafka-component.adoc b/components/camel-kafka/src/main/docs/kafka-component.adoc
index 2cfa9ac..b8b38c8 100644
--- a/components/camel-kafka/src/main/docs/kafka-component.adoc
+++ b/components/camel-kafka/src/main/docs/kafka-component.adoc
@@ -108,7 +108,7 @@ The Kafka component supports 96 options, which are listed below.
 | *retryBackoffMs* (producer) | Before each retry, the producer refreshes the metadata of relevant topics to see if a new leader has been elected. Since leader election takes a bit of time, this property specifies the amount of time that the producer waits before refreshing the metadata. | 100 | Integer
 | *sendBufferBytes* (producer) | Socket write buffer size | 131072 | Integer
 | *serializerClass* (producer) | The serializer class for messages. | org.apache.kafka.common.serialization.StringSerializer | String
-| *workerPool* (producer) | To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. |  | ExecutorService
+| *workerPool* (producer) | To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. If using this option then you must handle the lifecycle of the thread pool to shut the pool down when no longer needed. |  | ExecutorService
 | *workerPoolCoreSize* (producer) | Number of core threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. | 10 | Integer
 | *workerPoolMaxSize* (producer) | Maximum number of threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. | 20 | Integer
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
@@ -134,9 +134,9 @@ The Kafka component supports 96 options, which are listed below.
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. | TLS | String
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
 | *sslTruststoreType* (security) | The file format of the trust store file. Default value is JKS. | JKS | String
 | *schemaRegistryURL* (confluent) | URL of the Confluent Platform schema registry servers to use. The format is host1:port1,host2:port2. This is known as schema.registry.url in the Confluent Platform documentation. This option is only available in the Confluent Platform (not standard Apache Kafka) |  | String
-| *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
 | *sslTruststorePassword* (security) | The password for the trust store file. |  | String
 | *useGlobalSslContextParameters* (security) | Enable usage of global SSL context parameters. | false | boolean
 |===
@@ -234,7 +234,7 @@ with the following path and query parameters:
 | *retryBackoffMs* (producer) | Before each retry, the producer refreshes the metadata of relevant topics to see if a new leader has been elected. Since leader election takes a bit of time, this property specifies the amount of time that the producer waits before refreshing the metadata. | 100 | Integer
 | *sendBufferBytes* (producer) | Socket write buffer size | 131072 | Integer
 | *serializerClass* (producer) | The serializer class for messages. | org.apache.kafka.common.serialization.StringSerializer | String
-| *workerPool* (producer) | To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. |  | ExecutorService
+| *workerPool* (producer) | To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. If using this option then you must handle the lifecycle of the thread pool to shut the pool down when no longer needed. |  | ExecutorService
 | *workerPoolCoreSize* (producer) | Number of core threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. | 10 | Integer
 | *workerPoolMaxSize* (producer) | Maximum number of threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. | 20 | Integer
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
index b9bc5d5..710fa20 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
@@ -33,8 +33,6 @@ public class KafkaComponent extends DefaultComponent implements SSLContextParame
 
     @Metadata
     private KafkaConfiguration configuration = new KafkaConfiguration();
-    @Metadata(label = "advanced")
-    private ExecutorService workerPool;
     @Metadata(label = "security", defaultValue = "false")
     private boolean useGlobalSslContextParameters;
     @Metadata(label = "consumer,advanced")
@@ -57,9 +55,7 @@ public class KafkaComponent extends DefaultComponent implements SSLContextParame
 
         KafkaConfiguration copy = getConfiguration().copy();
         endpoint.setConfiguration(copy);
-
         endpoint.getConfiguration().setTopic(remaining);
-        endpoint.getConfiguration().setWorkerPool(getWorkerPool());
 
         setProperties(endpoint, parameters);
 
@@ -91,21 +87,6 @@ public class KafkaComponent extends DefaultComponent implements SSLContextParame
         this.configuration = configuration;
     }
 
-    public ExecutorService getWorkerPool() {
-        return workerPool;
-    }
-
-    /**
-     * To use a shared custom worker pool for continue routing {@link Exchange}
-     * after kafka server has acknowledge the message that was sent to it from
-     * {@link KafkaProducer} using asynchronous non-blocking processing. If
-     * using this option then you must handle the lifecycle of the thread pool
-     * to shut the pool down when no longer needed.
-     */
-    public void setWorkerPool(ExecutorService workerPool) {
-        this.workerPool = workerPool;
-    }
-
     @Override
     public boolean isUseGlobalSslContextParameters() {
         return this.useGlobalSslContextParameters;
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
index 67a5c73..e96333e 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
@@ -1635,6 +1635,8 @@ public class KafkaConfiguration implements Cloneable, HeaderFilterStrategyAware
      * To use a custom worker pool for continue routing {@link Exchange} after
      * kafka server has acknowledge the message that was sent to it from
      * {@link KafkaProducer} using asynchronous non-blocking processing.
+     * If using this option then you must handle the lifecycle of the thread pool
+     * to shut the pool down when no longer needed.
      */
     public void setWorkerPool(ExecutorService workerPool) {
         this.workerPool = workerPool;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2KinesisComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2KinesisComponentBuilderFactory.java
index 33b6a10..eb6dd92 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2KinesisComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2KinesisComponentBuilderFactory.java
@@ -62,6 +62,57 @@ public interface Aws2KinesisComponentBuilderFactory {
             return this;
         }
         /**
+         * Amazon Kinesis client to use for all requests for this endpoint.
+         * 
+         * The option is a:
+         * <code>software.amazon.awssdk.services.kinesis.KinesisClient</code>
+         * type.
+         * 
+         * Group: common
+         */
+        default Aws2KinesisComponentBuilder amazonKinesisClient(
+                software.amazon.awssdk.services.kinesis.KinesisClient amazonKinesisClient) {
+            doSetProperty("amazonKinesisClient", amazonKinesisClient);
+            return this;
+        }
+        /**
+         * To define a proxy host when instantiating the Kinesis client.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: common
+         */
+        default Aws2KinesisComponentBuilder proxyHost(java.lang.String proxyHost) {
+            doSetProperty("proxyHost", proxyHost);
+            return this;
+        }
+        /**
+         * To define a proxy port when instantiating the Kinesis client.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: common
+         */
+        default Aws2KinesisComponentBuilder proxyPort(
+                java.lang.Integer proxyPort) {
+            doSetProperty("proxyPort", proxyPort);
+            return this;
+        }
+        /**
+         * To define a proxy protocol when instantiating the Kinesis client.
+         * 
+         * The option is a: <code>software.amazon.awssdk.core.Protocol</code>
+         * type.
+         * 
+         * Default: HTTPS
+         * Group: common
+         */
+        default Aws2KinesisComponentBuilder proxyProtocol(
+                software.amazon.awssdk.core.Protocol proxyProtocol) {
+            doSetProperty("proxyProtocol", proxyProtocol);
+            return this;
+        }
+        /**
          * Amazon AWS Region.
          * 
          * The option is a: <code>java.lang.String</code> type.
@@ -103,6 +154,76 @@ public interface Aws2KinesisComponentBuilderFactory {
             return this;
         }
         /**
+         * Defines where in the Kinesis stream to start getting records.
+         * 
+         * The option is a:
+         * <code>software.amazon.awssdk.services.kinesis.model.ShardIteratorType</code> type.
+         * 
+         * Default: TRIM_HORIZON
+         * Group: consumer
+         */
+        default Aws2KinesisComponentBuilder iteratorType(
+                software.amazon.awssdk.services.kinesis.model.ShardIteratorType iteratorType) {
+            doSetProperty("iteratorType", iteratorType);
+            return this;
+        }
+        /**
+         * Maximum number of records that will be fetched in each poll.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: consumer
+         */
+        default Aws2KinesisComponentBuilder maxResultsPerRequest(
+                int maxResultsPerRequest) {
+            doSetProperty("maxResultsPerRequest", maxResultsPerRequest);
+            return this;
+        }
+        /**
+         * The sequence number to start polling from. Required if iteratorType
+         * is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: consumer
+         */
+        default Aws2KinesisComponentBuilder sequenceNumber(
+                java.lang.String sequenceNumber) {
+            doSetProperty("sequenceNumber", sequenceNumber);
+            return this;
+        }
+        /**
+         * Define what will be the behavior in case of shard closed. Possible
+         * value are ignore, silent and fail. In case of ignore a message will
+         * be logged and the consumer will restart from the beginning,in case of
+         * silent there will be no logging and the consumer will start from the
+         * beginning,in case of fail a ReachedClosedStateException will be
+         * raised.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum</code> type.
+         * 
+         * Default: ignore
+         * Group: consumer
+         */
+        default Aws2KinesisComponentBuilder shardClosed(
+                org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum shardClosed) {
+            doSetProperty("shardClosed", shardClosed);
+            return this;
+        }
+        /**
+         * Defines which shardId in the Kinesis stream to get records from.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: consumer
+         */
+        default Aws2KinesisComponentBuilder shardId(java.lang.String shardId) {
+            doSetProperty("shardId", shardId);
+            return this;
+        }
+        /**
          * 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
@@ -161,6 +282,13 @@ public interface Aws2KinesisComponentBuilderFactory {
         protected Kinesis2Component buildConcreteComponent() {
             return new Kinesis2Component();
         }
+        private org.apache.camel.component.aws2.kinesis.Kinesis2Configuration getOrCreateConfiguration(
+                org.apache.camel.component.aws2.kinesis.Kinesis2Component component) {
+            if (component.getConfiguration() == null) {
+                component.setConfiguration(new org.apache.camel.component.aws2.kinesis.Kinesis2Configuration());
+            }
+            return component.getConfiguration();
+        }
         @Override
         protected boolean setPropertyOnComponent(
                 Component component,
@@ -168,9 +296,18 @@ public interface Aws2KinesisComponentBuilderFactory {
                 Object value) {
             switch (name) {
             case "accessKey": ((Kinesis2Component) component).setAccessKey((java.lang.String) value); return true;
+            case "amazonKinesisClient": getOrCreateConfiguration((Kinesis2Component) component).setAmazonKinesisClient((software.amazon.awssdk.services.kinesis.KinesisClient) value); return true;
+            case "proxyHost": getOrCreateConfiguration((Kinesis2Component) component).setProxyHost((java.lang.String) value); return true;
+            case "proxyPort": getOrCreateConfiguration((Kinesis2Component) component).setProxyPort((java.lang.Integer) value); return true;
+            case "proxyProtocol": getOrCreateConfiguration((Kinesis2Component) component).setProxyProtocol((software.amazon.awssdk.core.Protocol) value); return true;
             case "region": ((Kinesis2Component) component).setRegion((java.lang.String) value); return true;
             case "secretKey": ((Kinesis2Component) component).setSecretKey((java.lang.String) value); return true;
             case "bridgeErrorHandler": ((Kinesis2Component) component).setBridgeErrorHandler((boolean) value); return true;
+            case "iteratorType": getOrCreateConfiguration((Kinesis2Component) component).setIteratorType((software.amazon.awssdk.services.kinesis.model.ShardIteratorType) value); return true;
+            case "maxResultsPerRequest": getOrCreateConfiguration((Kinesis2Component) component).setMaxResultsPerRequest((int) value); return true;
+            case "sequenceNumber": getOrCreateConfiguration((Kinesis2Component) component).setSequenceNumber((java.lang.String) value); return true;
+            case "shardClosed": getOrCreateConfiguration((Kinesis2Component) component).setShardClosed((org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum) value); return true;
+            case "shardId": getOrCreateConfiguration((Kinesis2Component) component).setShardId((java.lang.String) value); return true;
             case "lazyStartProducer": ((Kinesis2Component) component).setLazyStartProducer((boolean) value); return true;
             case "basicPropertyBinding": ((Kinesis2Component) component).setBasicPropertyBinding((boolean) value); return true;
             case "configuration": ((Kinesis2Component) component).setConfiguration((org.apache.camel.component.aws2.kinesis.Kinesis2Configuration) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2KinesisFirehoseComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2KinesisFirehoseComponentBuilderFactory.java
index d79c64f..c87bd5b 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2KinesisFirehoseComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2KinesisFirehoseComponentBuilderFactory.java
@@ -63,6 +63,21 @@ public interface Aws2KinesisFirehoseComponentBuilderFactory {
             return this;
         }
         /**
+         * Amazon Kinesis Firehose client to use for all requests for this
+         * endpoint.
+         * 
+         * The option is a:
+         * <code>software.amazon.awssdk.services.firehose.FirehoseClient</code>
+         * type.
+         * 
+         * Group: producer
+         */
+        default Aws2KinesisFirehoseComponentBuilder amazonKinesisFirehoseClient(
+                software.amazon.awssdk.services.firehose.FirehoseClient amazonKinesisFirehoseClient) {
+            doSetProperty("amazonKinesisFirehoseClient", amazonKinesisFirehoseClient);
+            return this;
+        }
+        /**
          * 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
@@ -84,6 +99,47 @@ public interface Aws2KinesisFirehoseComponentBuilderFactory {
             return this;
         }
         /**
+         * To define a proxy host when instantiating the Kinesis Firehose
+         * client.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         */
+        default Aws2KinesisFirehoseComponentBuilder proxyHost(
+                java.lang.String proxyHost) {
+            doSetProperty("proxyHost", proxyHost);
+            return this;
+        }
+        /**
+         * To define a proxy port when instantiating the Kinesis Firehose
+         * client.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: producer
+         */
+        default Aws2KinesisFirehoseComponentBuilder proxyPort(
+                java.lang.Integer proxyPort) {
+            doSetProperty("proxyPort", proxyPort);
+            return this;
+        }
+        /**
+         * To define a proxy protocol when instantiating the Kinesis Firehose
+         * client.
+         * 
+         * The option is a: <code>software.amazon.awssdk.core.Protocol</code>
+         * type.
+         * 
+         * Default: HTTPS
+         * Group: producer
+         */
+        default Aws2KinesisFirehoseComponentBuilder proxyProtocol(
+                software.amazon.awssdk.core.Protocol proxyProtocol) {
+            doSetProperty("proxyProtocol", proxyProtocol);
+            return this;
+        }
+        /**
          * Amazon AWS Region.
          * 
          * The option is a: <code>java.lang.String</code> type.
@@ -145,6 +201,13 @@ public interface Aws2KinesisFirehoseComponentBuilderFactory {
         protected KinesisFirehose2Component buildConcreteComponent() {
             return new KinesisFirehose2Component();
         }
+        private org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration getOrCreateConfiguration(
+                org.apache.camel.component.aws2.firehose.KinesisFirehose2Component component) {
+            if (component.getConfiguration() == null) {
+                component.setConfiguration(new org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration());
+            }
+            return component.getConfiguration();
+        }
         @Override
         protected boolean setPropertyOnComponent(
                 Component component,
@@ -152,7 +215,11 @@ public interface Aws2KinesisFirehoseComponentBuilderFactory {
                 Object value) {
             switch (name) {
             case "accessKey": ((KinesisFirehose2Component) component).setAccessKey((java.lang.String) value); return true;
+            case "amazonKinesisFirehoseClient": getOrCreateConfiguration((KinesisFirehose2Component) component).setAmazonKinesisFirehoseClient((software.amazon.awssdk.services.firehose.FirehoseClient) value); return true;
             case "lazyStartProducer": ((KinesisFirehose2Component) component).setLazyStartProducer((boolean) value); return true;
+            case "proxyHost": getOrCreateConfiguration((KinesisFirehose2Component) component).setProxyHost((java.lang.String) value); return true;
+            case "proxyPort": getOrCreateConfiguration((KinesisFirehose2Component) component).setProxyPort((java.lang.Integer) value); return true;
+            case "proxyProtocol": getOrCreateConfiguration((KinesisFirehose2Component) component).setProxyProtocol((software.amazon.awssdk.core.Protocol) value); return true;
             case "region": ((KinesisFirehose2Component) component).setRegion((java.lang.String) value); return true;
             case "secretKey": ((KinesisFirehose2Component) component).setSecretKey((java.lang.String) value); return true;
             case "basicPropertyBinding": ((KinesisFirehose2Component) component).setBasicPropertyBinding((boolean) value); return true;
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KafkaComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KafkaComponentBuilderFactory.java
index 6aeeda3..d8d0897 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KafkaComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/KafkaComponentBuilderFactory.java
@@ -1087,7 +1087,9 @@ public interface KafkaComponentBuilderFactory {
         /**
          * To use a custom worker pool for continue routing Exchange after kafka
          * server has acknowledge the message that was sent to it from
-         * KafkaProducer using asynchronous non-blocking processing.
+         * KafkaProducer using asynchronous non-blocking processing. If using
+         * this option then you must handle the lifecycle of the thread pool to
+         * shut the pool down when no longer needed.
          * 
          * The option is a: <code>java.util.concurrent.ExecutorService</code>
          * type.
@@ -1460,6 +1462,18 @@ public interface KafkaComponentBuilderFactory {
             return this;
         }
         /**
+         * The location of the trust store file.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default KafkaComponentBuilder sslTruststoreLocation(
+                java.lang.String sslTruststoreLocation) {
+            doSetProperty("sslTruststoreLocation", sslTruststoreLocation);
+            return this;
+        }
+        /**
          * The file format of the trust store file. Default value is JKS.
          * 
          * The option is a: <code>java.lang.String</code> type.
@@ -1489,18 +1503,6 @@ public interface KafkaComponentBuilderFactory {
             return this;
         }
         /**
-         * The location of the trust store file.
-         * 
-         * The option is a: <code>java.lang.String</code> type.
-         * 
-         * Group: security
-         */
-        default KafkaComponentBuilder sslTruststoreLocation(
-                java.lang.String sslTruststoreLocation) {
-            doSetProperty("sslTruststoreLocation", sslTruststoreLocation);
-            return this;
-        }
-        /**
          * The password for the trust store file.
          * 
          * The option is a: <code>java.lang.String</code> type.
@@ -1640,9 +1642,9 @@ public interface KafkaComponentBuilderFactory {
             case "sslProtocol": getOrCreateConfiguration((KafkaComponent) component).setSslProtocol((java.lang.String) value); return true;
             case "sslProvider": getOrCreateConfiguration((KafkaComponent) component).setSslProvider((java.lang.String) value); return true;
             case "sslTrustmanagerAlgorithm": getOrCreateConfiguration((KafkaComponent) component).setSslTrustmanagerAlgorithm((java.lang.String) value); return true;
+            case "sslTruststoreLocation": getOrCreateConfiguration((KafkaComponent) component).setSslTruststoreLocation((java.lang.String) value); return true;
             case "sslTruststoreType": getOrCreateConfiguration((KafkaComponent) component).setSslTruststoreType((java.lang.String) value); return true;
             case "schemaRegistryURL": getOrCreateConfiguration((KafkaComponent) component).setSchemaRegistryURL((java.lang.String) value); return true;
-            case "sslTruststoreLocation": getOrCreateConfiguration((KafkaComponent) component).setSslTruststoreLocation((java.lang.String) value); return true;
             case "sslTruststorePassword": getOrCreateConfiguration((KafkaComponent) component).setSslTruststorePassword((java.lang.String) value); return true;
             case "useGlobalSslContextParameters": ((KafkaComponent) component).setUseGlobalSslContextParameters((boolean) value); return true;
             default: return false;
diff --git a/docs/components/modules/ROOT/pages/aws2-kinesis-component.adoc b/docs/components/modules/ROOT/pages/aws2-kinesis-component.adoc
index 75d8ce9..fb3c6c7 100644
--- a/docs/components/modules/ROOT/pages/aws2-kinesis-component.adoc
+++ b/docs/components/modules/ROOT/pages/aws2-kinesis-component.adoc
@@ -37,7 +37,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS 2 Kinesis component supports 7 options, which are listed below.
+The AWS 2 Kinesis component supports 16 options, which are listed below.
 
 
 
@@ -45,9 +45,18 @@ The AWS 2 Kinesis component supports 7 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (common) | Amazon AWS Access Key |  | String
+| *amazonKinesisClient* (common) | Amazon Kinesis client to use for all requests for this endpoint |  | KinesisClient
+| *proxyHost* (common) | To define a proxy host when instantiating the Kinesis client |  | String
+| *proxyPort* (common) | To define a proxy port when instantiating the Kinesis client |  | Integer
+| *proxyProtocol* (common) | To define a proxy protocol when instantiating the Kinesis client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (common) | Amazon AWS Region |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
 | *bridgeErrorHandler* (consumer) | 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 | boolean
+| *iteratorType* (consumer) | Defines where in the Kinesis stream to start getting records. The value can be one of: AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER, TRIM_HORIZON, LATEST, AT_TIMESTAMP, null | TRIM_HORIZON | ShardIteratorType
+| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll | 1 | int
+| *sequenceNumber* (consumer) | The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER |  | String
+| *shardClosed* (consumer) | Define what will be the behavior in case of shard closed. Possible value are ignore, silent and fail. In case of ignore a message will be logged and the consumer will restart from the beginning,in case of silent there will be no logging and the consumer will start from the beginning,in case of fail a ReachedClosedStateException will be raised. The value can be one of: ignore, fail, silent | ignore | Kinesis2ShardClosedStrategyEnum
+| *shardId* (consumer) | Defines which shardId in the Kinesis stream to get records from |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *configuration* (advanced) | The AWS S3 default configuration |  | Kinesis2Configuration
diff --git a/docs/components/modules/ROOT/pages/aws2-kinesis-firehose-component.adoc b/docs/components/modules/ROOT/pages/aws2-kinesis-firehose-component.adoc
index 7e62dd7..06d7183 100644
--- a/docs/components/modules/ROOT/pages/aws2-kinesis-firehose-component.adoc
+++ b/docs/components/modules/ROOT/pages/aws2-kinesis-firehose-component.adoc
@@ -36,7 +36,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS 2 Kinesis Firehose component supports 6 options, which are listed below.
+The AWS 2 Kinesis Firehose component supports 10 options, which are listed below.
 
 
 
@@ -44,7 +44,11 @@ The AWS 2 Kinesis Firehose component supports 6 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
+| *amazonKinesisFirehoseClient* (producer) | Amazon Kinesis Firehose client to use for all requests for this endpoint |  | FirehoseClient
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *proxyHost* (producer) | To define a proxy host when instantiating the Kinesis Firehose client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the Kinesis Firehose client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the Kinesis Firehose client. The value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | Amazon AWS Region |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
diff --git a/docs/components/modules/ROOT/pages/kafka-component.adoc b/docs/components/modules/ROOT/pages/kafka-component.adoc
index 0f5b118..98ef316 100644
--- a/docs/components/modules/ROOT/pages/kafka-component.adoc
+++ b/docs/components/modules/ROOT/pages/kafka-component.adoc
@@ -109,7 +109,7 @@ The Kafka component supports 96 options, which are listed below.
 | *retryBackoffMs* (producer) | Before each retry, the producer refreshes the metadata of relevant topics to see if a new leader has been elected. Since leader election takes a bit of time, this property specifies the amount of time that the producer waits before refreshing the metadata. | 100 | Integer
 | *sendBufferBytes* (producer) | Socket write buffer size | 131072 | Integer
 | *serializerClass* (producer) | The serializer class for messages. | org.apache.kafka.common.serialization.StringSerializer | String
-| *workerPool* (producer) | To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. |  | ExecutorService
+| *workerPool* (producer) | To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. If using this option then you must handle the lifecycle of the thread pool to shut the pool down when no longer needed. |  | ExecutorService
 | *workerPoolCoreSize* (producer) | Number of core threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. | 10 | Integer
 | *workerPoolMaxSize* (producer) | Maximum number of threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. | 20 | Integer
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
@@ -135,9 +135,9 @@ The Kafka component supports 96 options, which are listed below.
 | *sslProtocol* (security) | The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. | TLS | String
 | *sslProvider* (security) | The name of the security provider used for SSL connections. Default value is the default security provider of the JVM. |  | String
 | *sslTrustmanagerAlgorithm* (security) | The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine. | PKIX | String
+| *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
 | *sslTruststoreType* (security) | The file format of the trust store file. Default value is JKS. | JKS | String
 | *schemaRegistryURL* (confluent) | URL of the Confluent Platform schema registry servers to use. The format is host1:port1,host2:port2. This is known as schema.registry.url in the Confluent Platform documentation. This option is only available in the Confluent Platform (not standard Apache Kafka) |  | String
-| *sslTruststoreLocation* (security) | The location of the trust store file. |  | String
 | *sslTruststorePassword* (security) | The password for the trust store file. |  | String
 | *useGlobalSslContextParameters* (security) | Enable usage of global SSL context parameters. | false | boolean
 |===
@@ -235,7 +235,7 @@ with the following path and query parameters:
 | *retryBackoffMs* (producer) | Before each retry, the producer refreshes the metadata of relevant topics to see if a new leader has been elected. Since leader election takes a bit of time, this property specifies the amount of time that the producer waits before refreshing the metadata. | 100 | Integer
 | *sendBufferBytes* (producer) | Socket write buffer size | 131072 | Integer
 | *serializerClass* (producer) | The serializer class for messages. | org.apache.kafka.common.serialization.StringSerializer | String
-| *workerPool* (producer) | To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. |  | ExecutorService
+| *workerPool* (producer) | To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. If using this option then you must handle the lifecycle of the thread pool to shut the pool down when no longer needed. |  | ExecutorService
 | *workerPoolCoreSize* (producer) | Number of core threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. | 10 | Integer
 | *workerPoolMaxSize* (producer) | Maximum number of threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. | 20 | Integer
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean